texlive[50961] Build/source/libs: TECkit-2.5.9

commits+kakuto at tug.org commits+kakuto at tug.org
Fri May 3 06:30:22 CEST 2019


Revision: 50961
          http://tug.org/svn/texlive?view=revision&revision=50961
Author:   kakuto
Date:     2019-05-03 06:30:21 +0200 (Fri, 03 May 2019)
Log Message:
-----------
TECkit-2.5.9

Modified Paths:
--------------
    trunk/Build/source/libs/README
    trunk/Build/source/libs/teckit/ChangeLog
    trunk/Build/source/libs/teckit/TECkit-src/ChangeLog
    trunk/Build/source/libs/teckit/TECkit-src/NEWS
    trunk/Build/source/libs/teckit/TECkit-src/README
    trunk/Build/source/libs/teckit/TECkit-src/configure.ac
    trunk/Build/source/libs/teckit/TECkit-src/docs/TECkit_Tools.pdf
    trunk/Build/source/libs/teckit/TECkit-src/license/LICENSING.txt
    trunk/Build/source/libs/teckit/TECkit-src/m4/libtool.m4
    trunk/Build/source/libs/teckit/TECkit-src/source/Compiler.cpp
    trunk/Build/source/libs/teckit/TECkit-src/source/Compiler.h
    trunk/Build/source/libs/teckit/TECkit-src/source/Engine.cpp
    trunk/Build/source/libs/teckit/TECkit-src/source/Engine.h
    trunk/Build/source/libs/teckit/TECkit-src/source/NormalizationData.c
    trunk/Build/source/libs/teckit/TECkit-src/source/Public-headers/TECkit_Common.h
    trunk/Build/source/libs/teckit/TECkit-src/source/Public-headers/TECkit_Compiler.h
    trunk/Build/source/libs/teckit/TECkit-src/source/Public-headers/TECkit_Engine.h
    trunk/Build/source/libs/teckit/TECkit-src/source/Sample-tools/TECkit_Compile.cpp
    trunk/Build/source/libs/teckit/TECkit-src/source/Sample-tools/TxtConv.cpp
    trunk/Build/source/libs/teckit/TECkit-src/source/TECkit_Format.h
    trunk/Build/source/libs/teckit/TECkit-src/source/UnicodeNames.cpp
    trunk/Build/source/libs/teckit/TECkit-src/source/ulong_chartraits.h
    trunk/Build/source/libs/teckit/TECkit-src/test/NormalizationTest.txt
    trunk/Build/source/libs/teckit/TECkit-src/test/dotests.pl
    trunk/Build/source/libs/teckit/TLpatches/ChangeLog
    trunk/Build/source/libs/teckit/TLpatches/TL-Changes
    trunk/Build/source/libs/teckit/TLpatches/patch-02-warning
    trunk/Build/source/libs/teckit/TLpatches/patch-03-warnings
    trunk/Build/source/libs/teckit/TLpatches/patch-05-static
    trunk/Build/source/libs/teckit/TLpatches/patch-06-dont-build-sfconv
    trunk/Build/source/libs/teckit/configure
    trunk/Build/source/libs/teckit/version.ac

Removed Paths:
-------------
    trunk/Build/source/libs/teckit/TLpatches/patch-04-pragmas

Modified: trunk/Build/source/libs/README
===================================================================
--- trunk/Build/source/libs/README	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/README	2019-05-03 04:30:21 UTC (rev 50961)
@@ -56,8 +56,8 @@
   http://poppler.freedesktop.org/ - used by xetex
   (requires C++11)
 
-teckit 2.5.8 - checked 24jul18
-  https://github.com/silnrsi/teckit/archive/2.5.8.tar.gz
+teckit 2.5.9 - checked 03may19
+  https://github.com/silnrsi/teckit/archive/2.5.9.tar.gz
 
 xpdf 4.01 - checked 25feb19
   http://www.xpdfreader.com/download.html

Modified: trunk/Build/source/libs/teckit/ChangeLog
===================================================================
--- trunk/Build/source/libs/teckit/ChangeLog	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/ChangeLog	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,3 +1,8 @@
+2019-05-03  Akira Kakuto  <kakuto at w32tex.org>
+
+	Import TECkit-2.5.9.
+	* version.ac: Adjust.
+
 2018-07-24  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	Import TECkit-2.5.8.

Modified: trunk/Build/source/libs/teckit/TECkit-src/ChangeLog
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/ChangeLog	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/ChangeLog	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1 +1 @@
-(Not here. See the Subversion logs.)
+See the commit history from git.

Modified: trunk/Build/source/libs/teckit/TECkit-src/NEWS
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/NEWS	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/NEWS	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,3 +1,8 @@
+2019-03-18
+    Version 2.5.9
+    Updated Unicode character names and normalization data to 12.0.0
+    Various improvements for testing, compiling, and documentation.
+
 2018-06-18
     Version 2.5.8
     Updated Unicode character names and normalization data to 11.0.0

Modified: trunk/Build/source/libs/teckit/TECkit-src/README
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/README	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/README	2019-05-03 04:30:21 UTC (rev 50961)
@@ -7,7 +7,7 @@
 See the Documentation folder for information on the TECkit mapping language
 and conversion tool usage notes.
 
-The TECkit libraries have been updated to support the Unicode 11.0.0 character
+The TECkit libraries have been updated to support the Unicode 12.0.0 character
 repertoire.
 
 Starting with TECkit version 2.5.7 there are several changes with the Windows

Modified: trunk/Build/source/libs/teckit/TECkit-src/configure.ac
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/configure.ac	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/configure.ac	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,5 +1,5 @@
 AC_PREREQ(2.54)
-AC_INIT(teckit, 2.5.8, nrsi at sil.org)
+AC_INIT(teckit, 2.5.9, wstech at sil.org)
 AM_CONFIG_HEADER([config.h])
 AC_CONFIG_SRCDIR([source/UnicodeNames.cpp])
 AC_CONFIG_MACRO_DIR([m4])
@@ -111,7 +111,7 @@
 noexpat_LIBS="$LIBS"
 AC_CHECK_LIB(expat, XML_ExpatVersion)
 AM_CONDITIONAL(SYSTEM_EXPAT, test x$ac_cv_lib_expat_XML_ExpatVersion = xyes)
-expat_CFLAGS="$CFLAGS"
+expat_CFLAGS=""
 expat_LIBS="$LIBS"
 CFLAGS="$noexpat_CFLAGS"
 LIBS="$noexpat_LIBS"

Modified: trunk/Build/source/libs/teckit/TECkit-src/docs/TECkit_Tools.pdf
===================================================================
(Binary files differ)

Modified: trunk/Build/source/libs/teckit/TECkit-src/license/LICENSING.txt
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/license/LICENSING.txt	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/license/LICENSING.txt	2019-05-03 04:30:21 UTC (rev 50961)
@@ -12,7 +12,7 @@
 
 Rest of the project:
 
-		   Copyright 2002-2018, SIL International
+		   Copyright 2002-2019, SIL International
 			    All rights reserved.
 
     This library is free software; you can redistribute it and/or modify

Modified: trunk/Build/source/libs/teckit/TECkit-src/m4/libtool.m4
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/m4/libtool.m4	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/m4/libtool.m4	2019-05-03 04:30:21 UTC (rev 50961)
@@ -728,7 +728,6 @@
     cat <<_LT_EOF >> "$cfgfile"
 #! $SHELL
 # Generated automatically by $as_me ($PACKAGE) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 
 # Provide generalized library-building support services.

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/Compiler.cpp
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/Compiler.cpp	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/Compiler.cpp	2019-05-03 04:30:21 UTC (rev 50961)
@@ -75,7 +75,7 @@
 const UInt32 byteMask				= 0x000000BFUL;
 const UInt32 byteMark				= 0x00000080UL;
 
-#define FOUR_CHAR_CODE(a,b,c,d)	(UInt32)((a << 24) + (b << 16) + (c << 8) + d)
+#define FOUR_CHAR_CODE(a,b,c,d)	UInt32((a << 24) + (b << 16) + (c << 8) + d)
 
 const UInt32 kCode_Byte	= FOUR_CHAR_CODE('B','y','t','e');
 const UInt32 kCode_BU	= FOUR_CHAR_CODE('B','-','>','U');
@@ -142,7 +142,7 @@
 {
 	TECkit_Status	result = kStatus_CompilationFailed;
 	try {
-		Compiler*	cmp = new Compiler(txt, len, kForm_Unspecified, (bool)doCompression, false, errFunc, userData);
+		Compiler*	cmp = new Compiler(txt, len, kForm_Unspecified, bool(doCompression), false, errFunc, userData);
 		cmp->GetCompiledTable(*outTable, *outLen);
 		if (*outTable == 0)
 			result = kStatus_CompilationFailed;
@@ -196,7 +196,7 @@
 	const CharName	*c = &gUnicodeNames[0];
 	while (c->name != 0)
 		if (c->usv == usv)
-			return c->name;
+			return const_cast<char*>(c->name);
 		else
 			++c;
 	return NULL;
@@ -252,10 +252,10 @@
 TECkit_GetUnicodeValue(char* name)
 {
 	const CharName	*c = &gUnicodeNames[0];
-	int	len = strlen(name);
+	size_t	len = strlen(name);
 	while (c->name != 0)
 		if (unicodeNameCompare(c->name, name, len) == 0)
-			return c->usv;
+			return static_cast<int>(c->usv);
 		else
 			++c;
 	return -1;
@@ -524,7 +524,7 @@
 	compiledSize = 0;
 	usedExtStringRules = false;
 
-	textPtr = (const unsigned char*)txt;
+	textPtr = reinterpret_cast<const unsigned char*>(txt);
 	textEnd = textPtr + len;
 	
 	ungotten = kInvalidChar;
@@ -628,7 +628,7 @@
 		errorState = false;
 
 		string32::const_iterator i;
-		switch ((int)tok.type) {
+		switch (int(tok.type)) {
 			default:
 				Error("this can't happen!");
 				break;
@@ -771,7 +771,7 @@
 			case '^':
 				// negation can only apply to a few things:
 				GetNextToken();
-				switch ((int)tok.type) {
+				switch (int(tok.type)) {
 					case tok_Number:
 						AppendLiteral(tok.val, true);
 						break;
@@ -943,8 +943,8 @@
 			
 			case '{':
 				{
-					int	repeatMin = 0;
-					int repeatMax = 15;
+					UInt32 repeatMin = 0;
+					UInt32 repeatMax = 15;
 					GetNextToken();
 					if (tok.type == tok_Number) {
 						repeatMin = repeatMax = tok.val;
@@ -997,7 +997,7 @@
 						break;
 					if (!ExpectToken(tok_Number,  "expected (NUMBER) STRING after Name"))
 						break;
-					int nameID = tok.val;
+					UInt16 nameID = tok.val;
 					if (!ExpectToken(')', "expected (NUMBER) STRING after Name"))
 						break;
 					ReadNameString(nameID);
@@ -1129,7 +1129,7 @@
 					bool	ellipsisOK = false;
 					while (tok.type != ')' && tok.type != tok_Newline) {
 						GetNextToken();
-						switch ((int)tok.type) {
+						switch (int(tok.type)) {
 							case tok_USV:
 								if (classType == 'B') {
 									Error("can't use Unicode value in byte encoding");
@@ -1250,7 +1250,7 @@
 								break;
 
 							default:
-								Error("unexpected token within class", string((const char*)tokStart, (const char*)textPtr - (const char*)tokStart).c_str());
+								Error("unexpected token within class", string(reinterpret_cast<const char *>(tokStart), reinterpret_cast<const char *>(textPtr - tokStart)).c_str());
 								break;
 						}
 					}
@@ -1339,7 +1339,7 @@
 			string	trailer("</teckitMapping>\n");
 			
 			compiledSize = header.length() + xmlRepresentation.length() + trailer.length();
-			compiledTable = (Byte*)malloc(compiledSize + 1);
+			compiledTable = static_cast<Byte*>(malloc(compiledSize + 1));
 			if (compiledTable == NULL)
 				throw bad_alloc();
 			
@@ -1378,30 +1378,30 @@
 			// pack all the name records
 			string	namesData;
 			for (vector<UInt16>::const_iterator i = nameIDs.begin(); i != nameIDs.end(); ++i) {
-				appendToTable(offsets, (const char*)&offset, sizeof(offset));
+				appendToTable(offsets, reinterpret_cast<const char*>(&offset), sizeof(offset));
 				NameRec	r;
 				WRITE(r.nameID, *i);
 				WRITE(r.nameLength, names[*i].length());
-				namesData.append((const char*)&r, sizeof(r));
+				namesData.append(reinterpret_cast<const char*>(&r), sizeof(r));
 				namesData.append(names[*i]);
 				if ((namesData.length() & 1) != 0)
-					namesData.append(1, (char)0);
+					namesData.append(1, '\0');
 				offset += namesData.length() - prevLength;
 				prevLength = namesData.length();
 			}
 			if ((namesData.length() & 2) != 0)
-				namesData.append(2, (char)0);
+				namesData.append(2, '\0');
 			offset += namesData.length() - prevLength;
 			
 			// pack the offsets to the actual mapping tables
 			vector<string>::const_iterator t;
 			for (t = fwdTables.begin(); t != fwdTables.end(); ++t) {
-				appendToTable(offsets, (const char*)&offset, sizeof(offset));
+				appendToTable(offsets, reinterpret_cast<const char*>(&offset), sizeof(offset));
 				offset += t->size();
 			}
 			for (t = revTables.end(); t != revTables.begin(); ) {
 				--t;
-				appendToTable(offsets, (const char*)&offset, sizeof(offset));
+				appendToTable(offsets, reinterpret_cast<const char*>(&offset), sizeof(offset));
 				offset += t->size();
 			}
 			
@@ -1417,9 +1417,9 @@
 				for (t = revTables.begin(); t != revTables.end(); ++t)
 					compiledSize += t->length();
 	
-				compiledTable = (Byte*)malloc(compiledSize);
+				compiledTable = static_cast<Byte*>(malloc(compiledSize));
 				if (compiledTable != 0) {
-					char*	cp = (char*)compiledTable;
+					Byte*	cp = compiledTable;
 					memcpy(cp, &fh, sizeof(fh));
 					cp += sizeof(fh);
 					memcpy(cp, offsets.data(), offsets.length());
@@ -1435,7 +1435,7 @@
 						memcpy(cp, t->data(), t->length());
 						cp += t->length();
 					}
-					if ((char*)compiledTable + compiledSize != cp)
+					if (compiledTable + compiledSize != cp)
 						cerr << "error!" << endl;
 				}
 				else
@@ -1445,14 +1445,14 @@
 			if (errorCount == 0 && cmp) {
 				// do the compression...
 				unsigned long	destLen = compiledSize * 11 / 10 + 20;
-				Byte*	dest = (Byte*)malloc(destLen + 8);
+				Byte*	dest = static_cast<Byte*>(malloc(destLen + 8));
 				if (dest != 0) {
 					int	result = compress2(dest + 8, &destLen, compiledTable, compiledSize, Z_BEST_COMPRESSION);
 					if (result == Z_OK) {
 						destLen += 8;
-						dest = (Byte*)realloc(dest, destLen); // shrink dest to fit
-						WRITE(((FileHeader*)dest)->type, kMagicNumberCmp);
-						WRITE(((FileHeader*)dest)->version, compiledSize);
+						dest = static_cast<Byte*>(realloc(dest, destLen)); // shrink dest to fit
+						WRITE(reinterpret_cast<FileHeader*>(dest)->type, kMagicNumberCmp);
+						WRITE(reinterpret_cast<FileHeader*>(dest)->version, compiledSize);
 						free(compiledTable);
 						compiledTable = dest;
 						compiledSize = destLen;
@@ -1500,12 +1500,12 @@
 		} else {					bytesToWrite = 2;
 									c = 0x0000fffd;
 		};
-		rval.append((size_t)bytesToWrite, 0);
-		int index = rval.length();
+		rval.append(size_t(bytesToWrite), 0);
+		size_t index = rval.length();
 		switch (bytesToWrite) {	/* note: code falls through cases! */
-			case 4:	rval[--index] = (c | byteMark) & byteMask; c >>= 6;
-			case 3:	rval[--index] = (c | byteMark) & byteMask; c >>= 6;
-			case 2:	rval[--index] = (c | byteMark) & byteMask; c >>= 6;
+			case 4:	rval[--index] = static_cast<char>((c | byteMark) & byteMask); c >>= 6;
+			case 3:	rval[--index] = static_cast<char>((c | byteMark) & byteMask); c >>= 6;
+			case 2:	rval[--index] = static_cast<char>((c | byteMark) & byteMask); c >>= 6;
 			case 1:	rval[--index] =  c | firstByteMark[bytesToWrite];
 		};
 	}
@@ -1746,7 +1746,7 @@
 	tok.strval.erase(tok.strval.begin(), tok.strval.end());
 #endif
 	while (len-- > 0)
-		tok.strval.append(1, *str++);
+		tok.strval.append(1, static_cast<UInt32>(*str++));
 	return tok_Identifier;
 }
 
@@ -1790,12 +1790,12 @@
 
 		case kForm_UTF16BE:
 			CHECK_AVAIL(2);
-			rval = *textPtr++ << 8;
+			rval = static_cast<UInt32>(*textPtr++) << 8;
 			rval += *textPtr++;
 			if (rval >= kSurrogateHighStart && rval <= kSurrogateHighEnd) {
 				// check that 2 more bytes are available
 				CHECK_AVAIL(2);
-				UInt32	low = *textPtr++ << 8;
+				UInt32	low = static_cast<UInt32>(*textPtr++) << 8;
 				low += *textPtr++;
 				rval = ((rval - kSurrogateHighStart) << halfShift) + (low - kSurrogateLowStart) + halfBase;
 			}
@@ -1804,11 +1804,11 @@
 		case kForm_UTF16LE:
 			CHECK_AVAIL(2);
 			rval = *textPtr++;
-			rval += *textPtr++ << 8;
+			rval += static_cast<UInt32>(*textPtr++) << 8;
 			if (rval >= kSurrogateHighStart && rval <= kSurrogateHighEnd) {
 				CHECK_AVAIL(2);
 				UInt32	low = *textPtr++;
-				low += *textPtr++ << 8;
+				low += static_cast<UInt32>(*textPtr++) << 8;
 				rval = ((rval - kSurrogateHighStart) << halfShift) + (low - kSurrogateLowStart) + halfBase;
 			}
 			break;
@@ -1815,9 +1815,9 @@
 
 		case kForm_UTF32BE:
 			CHECK_AVAIL(4);
-			rval = *textPtr++ << 24;
-			rval += *textPtr++ << 16;
-			rval += *textPtr++ << 8;
+			rval = static_cast<UInt32>(*textPtr++) << 24;
+			rval += static_cast<UInt32>(*textPtr++) << 16;
+			rval += static_cast<UInt32>(*textPtr++) << 8;
 			rval += *textPtr++;
 			break;
 
@@ -1824,9 +1824,9 @@
 		case kForm_UTF32LE:
 			CHECK_AVAIL(4);
 			rval = *textPtr++;
-			rval += *textPtr++ << 8;
-			rval += *textPtr++ << 16;
-			rval += *textPtr++ << 24;
+			rval += static_cast<UInt32>(*textPtr++) << 8;
+			rval += static_cast<UInt32>(*textPtr++) << 16;
+			rval += static_cast<UInt32>(*textPtr++) << 24;
 			break;
 	}
 
@@ -1946,11 +1946,11 @@
 			case '/':
 			case '=':
 			case '@':
-				tok.type = (tokenType)currCh;
+				tok.type = tokenType(currCh);
 				return true;
 	
 			case '<':
-				tok.type = (tokenType)'<';
+				tok.type = tokenType('<');
 				if (textPtr < textEnd) {
 					if ((currCh = getChar()) == '>')
 						tok.type = tok_Map;
@@ -1960,7 +1960,7 @@
 				return true;
 	
 			case '.':
-				tok.type = (tokenType)'.';
+				tok.type = tokenType('.');
 				if (textPtr < textEnd) {
 					if ((currCh = getChar()) == '.')
 						tok.type = tok_Ellipsis;
@@ -1978,7 +1978,7 @@
 						goto DEFAULT;
 					}
 				}
-				tok.type = (tokenType)'_';
+				tok.type = tokenType('_');
 				return true;
 			
 			case '0':
@@ -2133,7 +2133,7 @@
 		cout << " at line " << line << endl;
 	}
 	else
-		(*errorFunction)(errFuncUserData, msg, s, line);
+		(*errorFunction)(errFuncUserData, const_cast<char*>(msg), const_cast<char*>(s), line);
 	errorState = true;
 	++errorCount;
 }
@@ -2356,7 +2356,7 @@
 }
 
 void
-Compiler::SetMinMax(int repeatMin, int repeatMax)
+Compiler::SetMinMax(UInt32 repeatMin, UInt32 repeatMax)
 {
 	Item*	item = 0;
 	switch (ruleState) {
@@ -2577,7 +2577,7 @@
 				continue;
 			
 			default:
-				cerr << "bad rep elem type: " << (int)i->type << endl;
+				cerr << "bad rep elem type: " << i->type << endl;
 				break;
 		}
 	}
@@ -2944,12 +2944,12 @@
 }
 
 void
-Compiler::appendMatchElem(string& packedRule, Item& item, int index,
+Compiler::appendMatchElem(string& packedRule, Item& item, unsigned int index,
 							vector<MatClass>& matchClasses)
 {
 	MatchElem	m;
 	WRITE(m.value.usv.data, 0);
-	WRITE(m.flags.repeat, (item.repeatMin << 4) + item.repeatMax);
+	WRITE(m.flags.repeat, (static_cast<UInt32>(item.repeatMin) << 4) + item.repeatMax);
 	if (item.negate)
 		WRITE(m.flags.type, kMatchElem_Negate);
 	else
@@ -2997,8 +2997,7 @@
 			WRITE(m.flags.type, READ(m.flags.type) | (kMatchElem_NonLit + kMatchElem_Type_EOS));
 			break;
 	}
-	const char*	p = (const char*)&m;
-	packedRule.append(p, sizeof(m));
+	packedRule.append(reinterpret_cast<const char*>(&m), sizeof(m));
 }
 
 void
@@ -3039,8 +3038,7 @@
 			WRITE(r.flags.type, kRepElem_Unmapped);
 			break;
 	}
-	const char*	p = (const char*)&r;
-	packedRule.append(p, sizeof(r));
+	packedRule.append(reinterpret_cast<const char*>(&r), sizeof(r));
 }
 
 vector<Compiler::Item>
@@ -3068,29 +3066,30 @@
 	UInt8	plane = ch >> 16;
 	UInt8	page = (ch & 0x00ffff) >> 8;
 	if (buildVars.planeMap.size() <= plane)
-		buildVars.planeMap.resize(plane + 1, 0xff);
-	if ((UInt8)buildVars.planeMap[plane] == (UInt8)0xff) {
+		buildVars.planeMap.resize(plane + 1, '\xff');
+	if (UInt8(buildVars.planeMap[plane]) == 0xff) {
 		buildVars.planeMap[plane] = buildVars.pageMaps.size();
 		buildVars.pageMaps.resize(buildVars.pageMaps.size() + 1);
-		buildVars.pageMaps.back().resize(256, 0xff);
+		buildVars.pageMaps.back().resize(256, '\xff');
 	}
-	UInt8	planeIndex = buildVars.planeMap[plane];
+	UInt8	planeIndex = static_cast<UInt8>(buildVars.planeMap[plane]);
 	string&	pageMap = buildVars.pageMaps[planeIndex];
-	if ((UInt8)pageMap[page] == (UInt8)0xff) {
+	if (UInt8(pageMap[page]) == 0xff) {
 		pageMap[page] = buildVars.charMaps.size();
 		buildVars.charMaps.resize(buildVars.charMaps.size() + 1);
 		buildVars.charMaps.back().resize(256);
 	}
-	vector<UInt16>&	charMap = buildVars.charMaps[(UInt8)pageMap[page]];
+	vector<UInt16>&	charMap = buildVars.charMaps[UInt8(pageMap[page])];
 	charMap[ch & 0x0000ff] = index;
 }
 
 void
-Compiler::align(string& table, int alignment)
+Compiler::align(string& table, string::size_type alignment)
 {
-	int	remainder = table.size() % alignment;
+	const string::size_type length = table.size();
+	const string::size_type remainder = length % alignment;
 	if (remainder != 0)
-		table.resize(table.size() + alignment - remainder);
+		table.resize(length + alignment - remainder);
 }
 
 class Member {
@@ -3268,7 +3267,17 @@
 					// mapping to Unicode: direct lookup can only support one Unicode character
 					if (rule.replaceStr.size() == 1) {
 						const Item&	rep = rule.replaceStr.front();
-						int	t = rep.tag.length() > 0 ? findTag(rep.tag, rule.matchStr) : 0;
+						vector<Item>::size_type tag;
+						if (rep.tag.length() > 0) {
+							const int result = findTag(rep.tag, rule.matchStr);
+							if (result < 0) {
+								Error("tag not found", rep.tag.c_str(), rule.lineNumber);
+								continue;
+							}
+							tag = static_cast<vector<Item>::size_type>(result);
+						} else {
+							tag = 0;
+						}
 						switch (rep.type) {
 							case 0:
 								WRITE(lookup[i].usv, rep.val);
@@ -3276,11 +3285,7 @@
 						
 							case kMatchElem_Type_Class:
 								{
-									if (t == -1) {
-										Error("tag not found", rep.tag.c_str(), rule.lineNumber);
-										continue;
-									}
-									const Item&	mat = rule.matchStr[t];
+									const Item&	mat = rule.matchStr[tag];
 									if (mat.type != kMatchElem_Type_Class) {
 										Error("improper use of class as target of mapping", 0, rule.lineNumber);
 										continue;
@@ -3307,7 +3312,7 @@
 							
 							case kMatchElem_Type_Copy:
 								// should only occur in UU table
-								if (t > (int)rule.matchStr.size()) {
+								if (tag > rule.matchStr.size()) {
 									Error("no corresponding item for copy", 0, rule.lineNumber);
 									goto ERR_FOUND;
 								}
@@ -3324,13 +3329,18 @@
 					if (rule.replaceStr.size() <= 3) {
 						WRITE(lookup[i].bytes.count, rule.replaceStr.size());
 							// this will get overwritten by lookup[i].rules.type if string rules turn out to be needed
-						UInt32 j;
-						for (j = 0; j < rule.replaceStr.size(); ++j) {
+						for (UInt32 j = 0; j < rule.replaceStr.size(); ++j) {
 							const Item&	rep = rule.replaceStr[j];
-							int	t = rep.tag.length() > 0 ? findTag(rep.tag, rule.matchStr) : j;
-							if (t == -1) {
-								Error("tag not found", rep.tag.c_str(), rule.lineNumber);
-								goto ERR_FOUND;
+							vector<Item>::size_type tag;
+							if (rep.tag.length() > 0) {
+								const int result = findTag(rep.tag, rule.matchStr);
+								if (result < 0) {
+									Error("tag not found", rep.tag.c_str(), rule.lineNumber);
+									goto ERR_FOUND;
+								}
+								tag = static_cast<vector<Item>::size_type>(result);
+							} else {
+								tag = j;
 							}
 							switch (rep.type) {
 								case 0:	// literal
@@ -3338,12 +3348,12 @@
 									break;
 
 								case kMatchElem_Type_Class:
-									if (t > (int)rule.matchStr.size()) {
+									if (tag > rule.matchStr.size()) {
 										Error("no corresponding item for class replacement", 0, rule.lineNumber);
 										goto ERR_FOUND;
 									}
 									else {
-										const Item&	mat = rule.matchStr[t];
+										const Item&	mat = rule.matchStr[tag];
 										if (mat.type != kMatchElem_Type_Class) {
 											Error("improper use of class as target of mapping", 0, rule.lineNumber);
 											goto ERR_FOUND;
@@ -3370,7 +3380,7 @@
 
 								case kMatchElem_Type_Copy:
 									// should only occur in BB table
-									if (t > (int)rule.matchStr.size()) {
+									if (tag > rule.matchStr.size()) {
 										Error("no corresponding item for copy", 0, rule.lineNumber);
 										goto ERR_FOUND;
 									}
@@ -3455,22 +3465,22 @@
 		currentPass.supplementaryChars = true;
 
 	UInt32	headerOffset = table.size();
-	table.append((const char*)&th, sizeof(th));
+	table.append(reinterpret_cast<const char*>(&th), sizeof(th));
 
 	if (fromUni) {
 		WRITE(th.pageBase, table.size());
 		UInt32	i, j;
 		if (currentPass.supplementaryChars) {
-			buildVars.planeMap.resize(17, 0xff);
+			buildVars.planeMap.resize(17, '\xff');
 			for (i = 0; i < buildVars.planeMap.size(); ++i)
 				appendToTable(table, buildVars.planeMap[i]);
-			appendToTable(table, (UInt8)buildVars.pageMaps.size());
+			appendToTable(table, UInt8(buildVars.pageMaps.size()));
 			align(table, 4);
 		}
 
 		for (i = 0; i < buildVars.pageMaps.size(); ++i)
 			for (j = 0; j < buildVars.pageMaps[i].size(); ++j)
-				appendToTable(table, (UInt8)buildVars.pageMaps[i][j]);
+				appendToTable(table, UInt8(buildVars.pageMaps[i][j]));
 		align(table, 4);
 
 		for (i = 0; i < buildVars.charMaps.size(); ++i)
@@ -3515,7 +3525,7 @@
 						sortedClass.erase(sortedClass.begin() + j);
 			}
 
-			appendToTable(classes, (UInt32)sortedClass.size());
+			appendToTable(classes, UInt32(sortedClass.size()));
 			if (fromUni)
 				if (currentPass.supplementaryChars)
 					for (Class::iterator x = sortedClass.begin(); x != sortedClass.end(); ++x)
@@ -3522,10 +3532,10 @@
 						appendToTable(classes, *x);
 				else
 					for (Class::iterator x = sortedClass.begin(); x != sortedClass.end(); ++x)
-						appendToTable(classes, (UInt16)*x);
+						appendToTable(classes, UInt16(*x));
 			else
 				for (Class::iterator x = sortedClass.begin(); x != sortedClass.end(); ++x)
-					appendToTable(classes, (UInt8)*x);
+					appendToTable(classes, UInt8(*x));
 			align(classes, 4);
 		}
 		// copy the real classOffsets into the table
@@ -3563,7 +3573,7 @@
 						sortedClass.erase(sortedClass.begin() + j);
 			}
 
-			appendToTable(classes, (UInt32)sortedClass.size());
+			appendToTable(classes, UInt32(sortedClass.size()));
 			if (toUni)
 				if (currentPass.supplementaryChars)
 					for (vector<Member>::iterator x = sortedClass.begin(); x != sortedClass.end(); ++x)
@@ -3570,10 +3580,10 @@
 						appendToTable(classes, x->value);
 				else
 					for (vector<Member>::iterator x = sortedClass.begin(); x != sortedClass.end(); ++x)
-						appendToTable(classes, (UInt16)x->value);
+						appendToTable(classes, UInt16(x->value));
 			else
 				for (vector<Member>::iterator x = sortedClass.begin(); x != sortedClass.end(); ++x)
-					appendToTable(classes, (UInt8)(x->value));
+					appendToTable(classes, UInt8(x->value));
 			align(classes, 4);
 		}
 		// copy the real classOffsets into the table
@@ -3588,7 +3598,7 @@
 	if (currentPass.supplementaryChars)
 		WRITE(th.flags, READ(th.flags) | kTableFlags_Supplementary);
 	WRITE(th.length, table.size());
-	table.replace(0, sizeof(th), (const char*)&th, sizeof(th));
+	table.replace(0, sizeof(th), reinterpret_cast<const char*>(&th), sizeof(th));
 }
 
 void

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/Compiler.h
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/Compiler.h	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/Compiler.h	2019-05-03 04:30:21 UTC (rev 50961)
@@ -20,8 +20,7 @@
 
 -------------------------------------------------------------------------*/
 
-#ifndef __Compiler_H__
-#define __Compiler_H__
+#pragma once
 
 #ifdef HAVE_CONFIG_H
 #	include "config.h"	/* a Unix-ish setup where we have config.h available */
@@ -274,7 +273,7 @@
 	bool			GetNextToken();
 	bool			ExpectToken(tokenType type, const char* errMsg);
 	bool			ExpectToken(char c, const char* errMsg)
-						{ return ExpectToken((tokenType)c, errMsg); }
+						{ return ExpectToken(tokenType(c), errMsg); }
 	void			Error(const char* errMsg, const char* s = 0, UInt32 line = 0xffffffff);
 	void			StartDefaultPass();
 	void			AppendLiteral(UInt32 val, bool negate = false);
@@ -284,7 +283,7 @@
 	void			AppendToRule(const Item& item);
 	bool			tagExists(bool rhs, const string& tag);
 	void			AssignTag(const string& tag);
-	void			SetMinMax(int repeatMin, int repeatMax);
+	void			SetMinMax(UInt32 repeatMin, UInt32 repeatMax);
 	void			FinishPass();
 	string			asUTF8(const string32 s);
 	void			ReadNameString(UInt16 nameID);
@@ -307,7 +306,7 @@
 	long			uniClassIndex(UInt32 charCode, UInt32 classIndex);
 	long			byteClassIndex(UInt8 charCode, UInt32 classIndex);
 	bool			isSingleCharRule(const Rule& rule);
-	void			appendMatchElem(string& packedRule, Item& item, int index,
+	void			appendMatchElem(string& packedRule, Item& item, unsigned int index,
 									vector<MatClass>& matchClasses);
 	void			appendReplaceElem(string& packedRule, Item& item,
 									vector<Item>& matchStr, vector<RepClass>& repClasses);
@@ -314,12 +313,11 @@
 	void			appendToTable(string& s, const char* ptr, UInt32 len);
 	template <class T>
 		void		appendToTable(string& table, T x) {
+			const char*	xp = reinterpret_cast<const char*>(&x);
 #ifdef WORDS_BIGENDIAN
-			const char*	xp = (const char*)&x;
 			table.append(xp, sizeof(x));
 #else
 			/* split into separate statements to work around VC++6 problems */
- 			const char*	xp = (const char*)&x;
  			xp = xp + sizeof(T);
  			for (unsigned int i = 0; i < sizeof(T); ++i) {
 				xp = xp - 1;
@@ -329,7 +327,7 @@
 	}
 
 	vector<Item>	reverseContext(const vector<Item>& ctx);
-	void			align(string& table, int alignment);
+	void			align(string& table, string::size_type alignment);
 	
 	void			xmlOut(const char* s);
 	void			xmlOut(const string& s);
@@ -345,5 +343,3 @@
 	};
 	extern CharName	gUnicodeNames[];
 }
-
-#endif	/* __Compiler_H__ */

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/Engine.cpp
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/Engine.cpp	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/Engine.cpp	2019-05-03 04:30:21 UTC (rev 50961)
@@ -400,12 +400,12 @@
 	bSupplementaryChars	= (READ(tableHeader->flags) & kTableFlags_Supplementary) != 0;
 
 	numPageMaps = 1;
-	pageBase		= (const Byte*)tableHeader + READ(tableHeader->pageBase);
-	lookupBase		= (const Lookup*)((const Byte*)tableHeader + READ(tableHeader->lookupBase));
-	matchClassBase	= (const Byte*)tableHeader + READ(tableHeader->matchClassBase);
-	repClassBase	= (const Byte*)tableHeader + READ(tableHeader->repClassBase);
-	stringListBase	= (const Byte*)tableHeader + READ(tableHeader->stringListBase);
-	stringRuleData	= (const Byte*)tableHeader + READ(tableHeader->stringRuleData);
+	pageBase		= reinterpret_cast<const Byte*>(tableHeader) + READ(tableHeader->pageBase);
+	lookupBase		= reinterpret_cast<const Lookup*>(reinterpret_cast<const Byte*>(tableHeader) + READ(tableHeader->lookupBase));
+	matchClassBase	= reinterpret_cast<const Byte*>(tableHeader) + READ(tableHeader->matchClassBase);
+	repClassBase	= reinterpret_cast<const Byte*>(tableHeader) + READ(tableHeader->repClassBase);
+	stringListBase	= reinterpret_cast<const Byte*>(tableHeader) + READ(tableHeader->stringListBase);
+	stringRuleData	= reinterpret_cast<const Byte*>(tableHeader) + READ(tableHeader->stringRuleData);
 
 	if (bInputIsUnicode && bSupplementaryChars) {
 		// support supplementary plane chars
@@ -580,7 +580,7 @@
 long
 Pass::classMatch(UInt32 classNumber, UInt32 inChar) const
 {
-	const UInt32*	classPtr = (const UInt32*)(matchClassBase + READ(*((const UInt32*)matchClassBase + classNumber)));
+	const UInt32*	classPtr = reinterpret_cast<const UInt32*>(matchClassBase + READ(*(reinterpret_cast<const UInt32*>(matchClassBase) + classNumber)));
 	UInt32			memberCount = READ(*classPtr++);
 	if (bInputIsUnicode) {
 		if (bSupplementaryChars) {
@@ -591,16 +591,16 @@
 		}
 		else {
 			// classes are 16-bit
-			const UInt16*	p = binary_search((const UInt16*)classPtr, memberCount, inChar);
+			const UInt16*	p = binary_search(reinterpret_cast<const UInt16*>(classPtr), memberCount, inChar);
 			if (READ(*p) == inChar)
-				return p - (const UInt16*)classPtr;
+				return p - reinterpret_cast<const UInt16*>(classPtr);
 		}
 	}
 	else {
 		// classes are 8-bit
-		const UInt8*	p = binary_search((const UInt8*)classPtr, memberCount, inChar);
+		const UInt8*	p = binary_search(reinterpret_cast<const UInt8*>(classPtr), memberCount, inChar);
 		if (READ(*p) == inChar)
-			return p - (const UInt8*)classPtr;
+			return p - reinterpret_cast<const UInt8*>(classPtr);
 	}
 	return -1;
 }
@@ -608,7 +608,7 @@
 UInt32
 Pass::repClassMember(UInt32 classNumber, UInt32 index) const
 {
-	const UInt32*	classPtr = (const UInt32*)(repClassBase + READ(*((const UInt32*)repClassBase + classNumber)));
+	const UInt32*	classPtr = reinterpret_cast<const UInt32*>(repClassBase + READ(*(reinterpret_cast<const UInt32*>(repClassBase) + classNumber)));
 	UInt32			memberCount = READ(*classPtr++);
 	if (index < memberCount)
 		if (bOutputIsUnicode)
@@ -615,9 +615,9 @@
 			if (bSupplementaryChars)
 				return READ(classPtr[index]);
 			else
-				return READ(((const UInt16*)classPtr)[index]);
+				return READ(reinterpret_cast<const UInt16*>(classPtr)[index]);
 		else {
-			return READ(((const UInt8*)classPtr)[index]);
+			return READ(reinterpret_cast<const UInt8*>(classPtr)[index]);
 		}
 	else
 		return 0;	// this can't happen if the compiler is right!
@@ -997,7 +997,7 @@
 	if (bInputIsUnicode) {
 		// Unicode lookup
 		UInt16	charIndex = 0;
-		if ((const UInt8*)lookupBase == pageBase) {
+		if (reinterpret_cast<const UInt8*>(lookupBase) == pageBase) {
 			// leave charIndex == 0 : pass with no rules
 		}
 		else {
@@ -1005,7 +1005,7 @@
 			const UInt8*	pageMap = 0;
 			if (bSupplementaryChars) {
 				if ((plane < 17) && (READ(planeMap[plane]) != 0xff)) {
-					pageMap = (const UInt8*)(pageBase + 256 * READ(planeMap[plane]));
+					pageMap = reinterpret_cast<const UInt8*>(pageBase + 256 * READ(planeMap[plane]));
 					goto GOT_PAGE_MAP;
 				}
 			}
@@ -1014,7 +1014,7 @@
 			GOT_PAGE_MAP:
 				UInt8	page = (inChar >> 8) & 0xff;
 				if (READ(pageMap[page]) != 0xff) {
-					const UInt16*	charMapBase = (const UInt16*)(pageBase + 256 * numPageMaps);
+					const UInt16*	charMapBase = reinterpret_cast<const UInt16*>(pageBase + 256 * numPageMaps);
 					const UInt16*	charMap = charMapBase + 256 * READ(pageMap[page]);
 					charIndex = READ(charMap[inChar & 0xff]);
 				}
@@ -1024,7 +1024,7 @@
 	}
 	else {
 		// byte-oriented lookup
-		if (pageBase != (const Byte*)tableHeader) {
+		if (pageBase != reinterpret_cast<const Byte*>(tableHeader)) {
 			// dbcsPage present
 			long	pageNumber = READ(pageBase[inChar]);
 			if (pageNumber == 0)
@@ -1054,7 +1054,7 @@
 	UInt8	ruleType = READ(lookup->rules.type);
 	if (ruleType == kLookupType_StringRules || (ruleType & kLookupType_RuleTypeMask) == kLookupType_ExtStringRules) {
 		// process string rule list
-		const UInt32*	ruleList = (const UInt32*)stringListBase + READ(lookup->rules.ruleIndex);
+		const UInt32*	ruleList = reinterpret_cast<const UInt32*>(stringListBase) + READ(lookup->rules.ruleIndex);
 		bool			matched = false;
 		bool			allowInsertion = true;
 		int ruleCount = READ(lookup->rules.ruleCount);
@@ -1061,7 +1061,7 @@
 		if ((ruleType & kLookupType_RuleTypeMask) == kLookupType_ExtStringRules)
 			ruleCount += 256 * (ruleType & kLookupType_ExtRuleCountMask);
 		for ( ; ruleCount > 0; --ruleCount) {
-			const StringRule*	rule = (const StringRule*)(stringRuleData + READ(*ruleList));
+			const StringRule*	rule = reinterpret_cast<const StringRule*>(stringRuleData + READ(*ruleList));
 #ifdef TRACING
 if (traceLevel > 0) {
 	cerr << "** trying match: ";
@@ -1075,7 +1075,7 @@
 			if (matchElems == 0 && allowInsertion == false)
 				continue;
 			patternLength = matchElems + READ(rule->postLength);
-			pattern = (const MatchElem*)(rule + 1);	// point past the defined struct for the rule header
+			pattern = reinterpret_cast<const MatchElem*>(rule + 1);	// point past the defined struct for the rule header
 			direction = 1;
 			infoLimit = matchElems;
 
@@ -1116,7 +1116,7 @@
 	cerr << "** GENERATES:";
 }
 #endif
-					const RepElem*	r = (const RepElem*)(pattern + patternLength);
+					const RepElem*	r = reinterpret_cast<const RepElem*>(pattern + patternLength);
 					for (int i = 0; i < READ(rule->repLength); ++i, ++r) {
 #ifdef TRACING
 if (traceLevel > 0)
@@ -1285,11 +1285,11 @@
 	finalStage = this;
 	UInt16	normForm = 0;
 	if (inTable != 0) {
-		const FileHeader*	fh = (const FileHeader*)inTable;
+		const FileHeader*	fh = reinterpret_cast<const FileHeader*>(inTable);
 		if (READ(fh->type) == kMagicNumberCmp) {
 			// the table is compressed; allocate a new buffer and decompress
 			unsigned long	uncompressedLen = READ(fh->version);
-			table = (Byte*)malloc(uncompressedLen);
+			table = static_cast<Byte*>(malloc(uncompressedLen));
 			if (table == 0) {
 				status = kStatus_OutOfMemory;
 				return;
@@ -1299,7 +1299,7 @@
 				status = kStatus_InvalidMapping;
 				return;
 			}
-			fh = (const FileHeader*)table;
+			fh = reinterpret_cast<const FileHeader*>(table);
 		}
 		
 		if (READ(fh->type) != kMagicNumber) {
@@ -1312,7 +1312,7 @@
 		}
 
 		if (table == 0) {
-			table = (Byte*)malloc(inTableSize);
+			table = static_cast<Byte*>(malloc(inTableSize));
 			if (table == 0) {
 				status = kStatus_OutOfMemory;
 				return;
@@ -1320,8 +1320,8 @@
 			memcpy(table, inTable, inTableSize);
 		}
 
-		fh = (const FileHeader*)table;
-		const UInt32*	nameOffsets = (const UInt32*)(table + sizeof(FileHeader));
+		fh = reinterpret_cast<const FileHeader*>(table);
+		const UInt32*	nameOffsets = reinterpret_cast<const UInt32*>(table + sizeof(FileHeader));
 		const UInt32*	tableBase = nameOffsets + READ(fh->numNames);
 		UInt32			numTables = READ(fh->numFwdTables);
 		if (!forward) {
@@ -1376,7 +1376,7 @@
 
 		// create the processing pipeline
 		for (UInt32 i = 0; i < numTables; ++i) {
-			const TableHeader*	t = (const TableHeader*)(table + READ(tableBase[i]));
+			const TableHeader*	t = reinterpret_cast<const TableHeader*>(table + READ(tableBase[i]));
 			Stage*	p = 0;
 			switch (READ(t->type)) {
 				case kTableType_BB:
@@ -1686,7 +1686,7 @@
 void
 Converter::GetFlags(UInt32& sourceFlags, UInt32& targetFlags) const
 {
-	const FileHeader*	fh = (const FileHeader*)table;
+	const FileHeader*	fh = reinterpret_cast<const FileHeader*>(table);
 	if (forward) {
 		sourceFlags = READ(fh->formFlagsLHS);
 		targetFlags = READ(fh->formFlagsRHS);
@@ -1700,13 +1700,13 @@
 static bool
 getNamePtrFromTable(const Byte* table, UInt16 nameID, const Byte*& outNamePtr, UInt32& outNameLen)
 {
-	const FileHeader*	fh = (const FileHeader*)table;
-	const UInt32*		nameOffsets = (const UInt32*)(table + sizeof(FileHeader));
+	const FileHeader*	fh = reinterpret_cast<const FileHeader*>(table);
+	const UInt32*		nameOffsets = reinterpret_cast<const UInt32*>(table + sizeof(FileHeader));
 	for (UInt32 i = 0; i < READ(fh->numNames); ++i) {
-		const NameRec*	n = (const NameRec*)(table + READ(nameOffsets[i]));
+		const NameRec*	n = reinterpret_cast<const NameRec*>(table + READ(nameOffsets[i]));
 		if (READ(n->nameID) == nameID) {
 			outNameLen = READ(n->nameLength);
-			outNamePtr = (const Byte*)n + sizeof(NameRec);
+			outNamePtr = reinterpret_cast<const Byte*>(n) + sizeof(NameRec);
 			return true;
 		}
 	}
@@ -1913,7 +1913,7 @@
 	if (cnv->status != kStatus_NoError)
 		return false;
 	if (cnv->table != 0) {
-		const FileHeader*	fh = (const FileHeader*)cnv->table;
+		const FileHeader*	fh = reinterpret_cast<const FileHeader*>(cnv->table);
 		if (READ(fh->type) != kMagicNumber)
 			return false;
 	}
@@ -1937,7 +1937,7 @@
 		cnv = new Converter(mapping, mappingSize, mapForward, inputForm, outputForm);
 		status = cnv->creationStatus();
 		if (status == kStatus_NoError)
-			*converter = (TECkit_Converter)cnv;
+			*converter = reinterpret_cast<TECkit_Converter>(cnv);
 		else
 			delete cnv;
 	}
@@ -1956,7 +1956,7 @@
 	TECkit_Converter	converter)
 {
 	TECkit_Status	status = kStatus_NoError;
-	Converter*	cnv = (Converter*)converter;
+	Converter*	cnv = reinterpret_cast<Converter*>(converter);
 	if (!Converter::Validate(cnv))
 		status = kStatus_InvalidConverter;
 	else
@@ -1974,7 +1974,7 @@
 	UInt32*				nameLength)
 {
 	TECkit_Status	status = kStatus_NoError;
-	Converter*	cnv = (Converter*)converter;
+	Converter*	cnv = reinterpret_cast<Converter*>(converter);
 	if (!Converter::Validate(cnv))
 		status = kStatus_InvalidConverter;
 	else {
@@ -1998,7 +1998,7 @@
 	UInt32*				targetFlags)
 {
 	TECkit_Status	status = kStatus_NoError;
-	Converter*	cnv = (Converter*)converter;
+	Converter*	cnv = reinterpret_cast<Converter*>(converter);
 	if (!Converter::Validate(cnv))
 		status = kStatus_InvalidConverter;
 	else
@@ -2012,7 +2012,7 @@
 	TECkit_Converter	converter)
 {
 	TECkit_Status	status = kStatus_NoError;
-	Converter*	cnv = (Converter*)converter;
+	Converter*	cnv = reinterpret_cast<Converter*>(converter);
 	if (!Converter::Validate(cnv))
 		status = kStatus_InvalidConverter;
 	else
@@ -2034,7 +2034,7 @@
 	UInt32*				lookaheadCount)
 {
 	TECkit_Status	status = kStatus_NoError;
-	Converter*	cnv = (Converter*)converter;
+	Converter*	cnv = reinterpret_cast<Converter*>(converter);
 	if (!Converter::Validate(cnv))
 		status = kStatus_InvalidConverter;
 	else
@@ -2069,7 +2069,7 @@
 	UInt32*				lookaheadCount)
 {
 	TECkit_Status	status = kStatus_NoError;
-	Converter*	cnv = (Converter*)converter;
+	Converter*	cnv = reinterpret_cast<Converter*>(converter);
 	if (!Converter::Validate(cnv))
 		status = kStatus_InvalidConverter;
 	else
@@ -2101,12 +2101,12 @@
 	if (mapping == 0)
 		status = kStatus_InvalidMapping;
 	else {
-		const FileHeader*	fh = (const FileHeader*)mapping;
+		const FileHeader*	fh = reinterpret_cast<const FileHeader*>(mapping);
 		FileHeader			header;
 		if (READ(fh->type) == kMagicNumberCmp) {
 			// compressed mapping, so we need to decompress enough of it to read the flags
 			unsigned long	uncompressedLen = sizeof(FileHeader);
-			int	result = uncompress((Byte*)&header, &uncompressedLen, mapping + 2 * sizeof(UInt32), mappingSize - 2 * sizeof(UInt32));
+			int	result = uncompress(reinterpret_cast<Byte*>(&header), &uncompressedLen, mapping + 2 * sizeof(UInt32), mappingSize - 2 * sizeof(UInt32));
 			if (result != Z_BUF_ERROR)
 				status = kStatus_InvalidMapping;
 			fh = &header;
@@ -2140,13 +2140,13 @@
 	if (mapping == 0)
 		status = kStatus_InvalidMapping;
 	else {
-		const FileHeader*	fh = (const FileHeader*)mapping;
+		const FileHeader*	fh = reinterpret_cast<const FileHeader*>(mapping);
 		FileHeader			header;
 		if (READ(fh->type) == kMagicNumberCmp) {
 			// compressed mapping, so we need to decompress the fixed header to read the headerLength field,
 			// and then decompress the complete header to get the names
 			unsigned long	uncompressedLen = sizeof(FileHeader);
-			int	result = uncompress((Byte*)&header, &uncompressedLen, mapping + 2 * sizeof(UInt32), mappingSize - 2 * sizeof(UInt32));
+			int	result = uncompress(reinterpret_cast<Byte*>(&header), &uncompressedLen, mapping + 2 * sizeof(UInt32), mappingSize - 2 * sizeof(UInt32));
 			if (result != Z_BUF_ERROR)
 				status = kStatus_InvalidMapping;
 			else {
@@ -2156,10 +2156,10 @@
 				if (buf == 0)
 					status = kStatus_OutOfMemory;
 				else {
-					result = uncompress((Byte*)buf, &uncompressedLen, mapping + 2 * sizeof(UInt32), mappingSize - 2 * sizeof(UInt32));
+					result = uncompress(static_cast<Byte*>(buf), &uncompressedLen, mapping + 2 * sizeof(UInt32), mappingSize - 2 * sizeof(UInt32));
 					if (result != Z_BUF_ERROR)
 						status = kStatus_InvalidMapping;
-					fh = (const FileHeader*)buf;
+					fh = static_cast<const FileHeader*>(buf);
 				}
 			}
 		}
@@ -2168,7 +2168,7 @@
 				status = kStatus_BadMappingVersion;
 			else {
 				const Byte*	namePtr;
-				if (getNamePtrFromTable((const Byte*)fh, nameID, namePtr, *nameLength)) {
+				if (getNamePtrFromTable(reinterpret_cast<const Byte*>(fh), nameID, namePtr, *nameLength)) {
 					UInt16	copyBytes = *nameLength < bufferSize ? *nameLength : bufferSize;
 					if (copyBytes > 0)
 						memcpy(nameBuffer, namePtr, copyBytes);

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/Engine.h
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/Engine.h	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/Engine.h	2019-05-03 04:30:21 UTC (rev 50961)
@@ -17,8 +17,7 @@
 	2003-09-23	jk	updated for version 2.1 with new Opt APIs
 */
 
-#ifndef __Engine_H__
-#define __Engine_H__
+#pragma once
 
 #include "TECkit_Engine.h"
 #include "TECkit_Format.h"
@@ -117,7 +116,7 @@
 
 	UInt32				match(int index, int repeats, int textLoc);
 								// returns 0 for no match, 1 for match, or kNeedMoreInput/kInvalidChar
-	const MatchElem*			pattern;
+	const MatchElem*		pattern;
 	int					patternLength;
 	int					direction;
 	MatchInfo			info[256];
@@ -220,5 +219,3 @@
 	
 	UInt32				warningStatus;
 };
-
-#endif /* __Engine_H__ */

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/NormalizationData.c
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/NormalizationData.c	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/NormalizationData.c	2019-05-03 04:30:21 UTC (rev 50961)
@@ -2,7 +2,7 @@
 
 const UInt8 ccPageMaps[][256] = {
 	{0,0,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,0,0,15,0,0,0,16,17,18,19,20,21,22,0,0,23,0,0,0,0,0,0,0,0,0,0,0,24,25,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,27,0,28,29,30,31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,32,0,0,33,0},
-	{0,34,35,36,0,0,0,0,0,0,37,0,0,38,0,39,40,41,42,43,44,45,46,47,48,0,49,0,50,51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,52,53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,56,0,0,0,0,0,0,0,0,0,0,0,0,0,57,0,0,0,0,0,0,0,58,59,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+	{0,34,35,36,0,0,0,0,0,0,37,0,0,38,0,39,40,41,42,43,44,45,46,47,48,49,50,0,51,52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,53,54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,56,57,0,0,0,0,0,0,0,0,0,0,0,0,0,58,54,59,0,0,0,0,0,60,61,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 };
 
@@ -19,7 +19,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,7,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,84,91,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,9,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
-	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,103,9,0,0,0,0,0,0,0,0,0,0,0,0,0,107,107,107,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,118,0,0,0,0,0,0,0,0,0,0,0,0,0,0,122,122,122,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,103,103,9,0,0,0,0,0,0,0,0,0,0,0,0,0,107,107,107,107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,118,118,9,0,0,0,0,0,0,0,0,0,0,0,0,0,122,122,122,122,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,0,220,0,216,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,129,130,0,132,0,0,0,0,0,130,130,130,130,0,0,130,0,230,230,9,0,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
@@ -56,6 +56,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,9,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
@@ -65,6 +66,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,216,216,1,1,1,0,0,0,226,216,216,216,216,216,0,0,0,0,0,0,0,0,220,220,220,220,220,220,220,220,0,0,230,230,230,230,230,220,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{230,230,230,230,230,230,230,0,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,230,0,0,230,230,230,230,230,230,230,0,230,230,0,230,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
+	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,220,220,220,220,220,220,220,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 	{0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,230,230,230,230,230,230,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,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0},
 };

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/Public-headers/TECkit_Common.h
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/Public-headers/TECkit_Common.h	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/Public-headers/TECkit_Common.h	2019-05-03 04:30:21 UTC (rev 50961)
@@ -23,8 +23,7 @@
 	xx-xxx-2002		jk	version 2.0 initial release
 */
 
-#ifndef __TECkit_Common_H__
-#define __TECkit_Common_H__
+#pragma once
 
 #define	kCurrentTECkitVersion	0x00020004	/* 16.16 version number */
 
@@ -91,5 +90,3 @@
 #define kForm_UTF16LE				4
 #define kForm_UTF32BE				5
 #define kForm_UTF32LE				6
-
-#endif

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/Public-headers/TECkit_Compiler.h
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/Public-headers/TECkit_Compiler.h	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/Public-headers/TECkit_Compiler.h	2019-05-03 04:30:21 UTC (rev 50961)
@@ -18,8 +18,7 @@
 	Copyright (c) 2002-2016 SIL International.
 */
 
-#ifndef __TECkit_Compiler_H__
-#define __TECkit_Compiler_H__
+#pragma once
 
 #include "TECkit_Common.h"
 
@@ -98,5 +97,3 @@
 #ifdef __cplusplus
 }
 #endif
-
-#endif

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/Public-headers/TECkit_Engine.h
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/Public-headers/TECkit_Engine.h	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/Public-headers/TECkit_Engine.h	2019-05-03 04:30:21 UTC (rev 50961)
@@ -26,22 +26,21 @@
 	22-Dec-2001		jk	initial version
 */
 
-#ifndef __TECkit_Engine_H__
-#define __TECkit_Engine_H__
+#pragma once
 
 #include "TECkit_Common.h"
 
 /* formFlags bits for normalization; if none are set, then this side of the mapping is normalization-form-agnostic on input, and may generate an unspecified mixture */
-#define kFlags_ExpectsNFC		0x00000001	/* expects fully composed text (NC) */
-#define kFlags_ExpectsNFD		0x00000002	/* expects fully decomposed text (NCD) */
-#define kFlags_GeneratesNFC		0x00000004	/* generates fully composed text (NC) */
-#define kFlags_GeneratesNFD		0x00000008	/* generates fully decomposed text (NCD) */
+#define kFlags_ExpectsNFC		0x00000001U	/* expects fully composed text (NC) */
+#define kFlags_ExpectsNFD		0x00000002U	/* expects fully decomposed text (NCD) */
+#define kFlags_GeneratesNFC		0x00000004U	/* generates fully composed text (NC) */
+#define kFlags_GeneratesNFD		0x00000008U	/* generates fully decomposed text (NCD) */
 
 /* if VisualOrder is set, this side of the mapping deals with visual-order rather than logical-order text (only relevant for bidi scripts) */
-#define kFlags_VisualOrder		0x00008000	/* visual rather than logical order */
+#define kFlags_VisualOrder		0x00008000U	/* visual rather than logical order */
 
 /* if Unicode is set, the encoding is Unicode on this side of the mapping */
-#define kFlags_Unicode			0x00010000	/* this is Unicode rather than a byte encoding */
+#define kFlags_Unicode			0x00010000U	/* this is Unicode rather than a byte encoding */
 
 /* required names */
 #define kNameID_LHS_Name		0		/* "source" or LHS encoding name, e.g. "SIL-EEG_URDU-2001" */
@@ -267,5 +266,3 @@
 #if defined(__cplusplus)
 }	/* extern "C" */
 #endif
-
-#endif /* __TECkit_Engine_H__ */

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/Sample-tools/TECkit_Compile.cpp
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/Sample-tools/TECkit_Compile.cpp	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/Sample-tools/TECkit_Compile.cpp	2019-05-03 04:30:21 UTC (rev 50961)
@@ -36,7 +36,7 @@
 	if (param != 0)
 		fprintf(stderr, ": \"%s\"", param);
 	if (line != 0)
-		fprintf(stderr, " at line %lu", (unsigned long)line);
+		fprintf(stderr, " at line %lu", static_cast<unsigned long>(line));
 	fprintf(stderr, "\n");
 }
 
@@ -114,7 +114,7 @@
 
 	if (tecFileName == 0) {
 		int	x = strlen(mapFileName);
-		tecFileName = (char*)malloc(x + 5);
+		tecFileName = static_cast<char*>(malloc(x + 5));
 		if (tecFileName == 0)
 			return 1;	// unlikely!
 		strcpy(tecFileName, mapFileName);
@@ -143,7 +143,7 @@
 		
 		if (inFile == 0) {
 			// try adding .map
-			char*	mapFileName2 = (char*)malloc(strlen(mapFileName) + 5);
+			char*	mapFileName2 = static_cast<char*>(malloc(strlen(mapFileName) + 5));
 			if (mapFileName2 == 0)
 				return 1;
 			strcpy(mapFileName2, mapFileName);
@@ -159,7 +159,7 @@
 		len = ftell(inFile);
 		fseek(inFile, 0, SEEK_SET);
 		
-		txt = (char*)malloc(len);
+		txt = static_cast<char*>(malloc(len));
 		if (txt == 0) {
 			fprintf(stderr, "not enough memory to read mapping file\n");
 			return 1;	// not enough memory
@@ -194,7 +194,7 @@
 			TECkit_DisposeCompiled(compiledTable);
 		}
 		else {
-			fprintf(stderr, "compilation failed: status = %d\n", (int)status);
+			fprintf(stderr, "compilation failed: status = %d\n", int(status));
 			return 1;
 		}
 		

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/Sample-tools/TxtConv.cpp
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/Sample-tools/TxtConv.cpp	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/Sample-tools/TxtConv.cpp	2019-05-03 04:30:21 UTC (rev 50961)
@@ -76,8 +76,8 @@
 		}
 
 		if (inAvail > 0) {
-			status = TECkit_ConvertBufferOpt(cnv, (Byte*)inPtr, inAvail, &inUsed,
-											(Byte*)outBuffer, kOutBufLen, &outUsed, opts, &lookahead);
+			status = TECkit_ConvertBufferOpt(cnv, reinterpret_cast<Byte*>(inPtr), inAvail, &inUsed,
+											reinterpret_cast<Byte*>(outBuffer), kOutBufLen, &outUsed, opts, &lookahead);
 			fwrite(outBuffer, 1, outUsed, outFile);
 			
 			switch (status & kStatusMask_Basic) {
@@ -93,7 +93,7 @@
 
 				case kStatus_UnmappedChar:
 					fprintf(stderr, "processing aborted at unmappable character, within %lu characters before file offset %lu\n",
-								(unsigned long)lookahead, (unsigned long)(offset - amountToRead + inUsed));
+								static_cast<unsigned long>(lookahead), static_cast<unsigned long>(offset - amountToRead + inUsed));
 					break;
 
 				default:
@@ -105,7 +105,7 @@
 		if ((status & kStatusMask_Basic) != kStatus_UnmappedChar) {
 			// flush the converter
 			do {
-				status = TECkit_FlushOpt(cnv, (Byte*)outBuffer, kOutBufLen, &outUsed, opts, &lookahead);
+				status = TECkit_FlushOpt(cnv, reinterpret_cast<Byte*>(outBuffer), kOutBufLen, &outUsed, opts, &lookahead);
 				fwrite(outBuffer, 1, outUsed, outFile);
 				savedLen -= inUsed;
 				inPtr += inUsed;
@@ -113,7 +113,7 @@
 			} while ((status & kStatusMask_Basic) == kStatus_OutputBufferFull);
 
 			if ((status & kStatusMask_Basic) == kStatus_UnmappedChar)
-				fprintf(stderr, "processing aborted at unmappable character, within %lu characters before end of input\n", (unsigned long)lookahead);
+				fprintf(stderr, "processing aborted at unmappable character, within %lu characters before end of input\n", static_cast<unsigned long>(lookahead));
 			else if ((status & kStatusMask_Basic) != kStatus_NoError)
 				fprintf(stderr, "bad returned status from TECkit_Flush: %ld\n", status);
 		}
@@ -340,7 +340,7 @@
 		len = ftell(tecFile);
 		fseek(tecFile, 0, SEEK_SET);
 
-		table = (char*)malloc(len);
+		table = static_cast<char*>(malloc(len));
 		if (table == 0) {
 			fprintf(stderr, "out of memory!\n");
 			fclose(tecFile);
@@ -351,8 +351,8 @@
 		fclose(tecFile);
 
 		status = forward
-			? TECkit_GetMappingFlags((Byte*)table, len, &sourceFlags, &targetFlags)
-			: TECkit_GetMappingFlags((Byte*)table, len, &targetFlags, &sourceFlags);
+			? TECkit_GetMappingFlags(reinterpret_cast<Byte*>(table), len, &sourceFlags, &targetFlags)
+			: TECkit_GetMappingFlags(reinterpret_cast<Byte*>(table), len, &targetFlags, &sourceFlags);
 		if (status != kStatus_NoError) {
 			fprintf(stderr, "couldn't get encoding flags from mapping\n");
 			return 1;
@@ -510,7 +510,7 @@
 
 	// OK, we have figured out the input and output encoding forms we want to use;
 	// now at last we can instantiate a converter
-	status = TECkit_CreateConverter((Byte*)table, len, forward, inForm, outForm | normForm, &cnv);
+	status = TECkit_CreateConverter(reinterpret_cast<Byte*>(table), len, forward, inForm, outForm | normForm, &cnv);
 	if (table != 0)
 		free(table);
 	if (status != kStatus_NoError) {

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/TECkit_Format.h
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/TECkit_Format.h	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/TECkit_Format.h	2019-05-03 04:30:21 UTC (rev 50961)
@@ -14,8 +14,7 @@
 	2006-06-02	jk	added support for extended string rules (>255 per initial char)
 -------------------------------------------------------------------------*/
 
-#ifndef __TECkit_Format_H__
-#define __TECkit_Format_H__
+#pragma once
 
 #include "TECkit_Common.h"
 
@@ -217,5 +216,3 @@
 #define kRepElem_Class				kMatchElem_Type_Class
 #define kRepElem_Copy				kMatchElem_Type_Copy
 #define kRepElem_Unmapped			0x0f	/* used in default terminator rules */
-
-#endif	/* __TECkit_Format_H__ */

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/UnicodeNames.cpp
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/UnicodeNames.cpp	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/UnicodeNames.cpp	2019-05-03 04:30:21 UTC (rev 50961)
@@ -9,6 +9,7 @@
 {0x00B4,"ACUTE ACCENT"},
 {0x299F,"ACUTE ANGLE"},
 {0x2101,"ADDRESSED TO THE SUBJECT"},
+{0x1FA79,"ADHESIVE BANDAGE"},
 {0x262C,"ADI SHAKTI"},
 {0x1E944,"ADLAM ALIF LENGTHENER"},
 {0x1E900,"ADLAM CAPITAL LETTER ALIF"},
@@ -61,6 +62,7 @@
 {0x1E947,"ADLAM HAMZA"},
 {0x1E95E,"ADLAM INITIAL EXCLAMATION MARK"},
 {0x1E95F,"ADLAM INITIAL QUESTION MARK"},
+{0x1E94B,"ADLAM NASALIZATION MARK"},
 {0x1E94A,"ADLAM NUKTA"},
 {0x1E922,"ADLAM SMALL LETTER ALIF"},
 {0x1E926,"ADLAM SMALL LETTER BA"},
@@ -2410,6 +2412,7 @@
 {0x269B,"ATOM SYMBOL"},
 {0x1F346,"AUBERGINE"},
 {0x20B3,"AUSTRAL SIGN"},
+{0x1F6FA,"AUTO RICKSHAW"},
 {0x1F3E7,"AUTOMATED TELLER MACHINE"},
 {0x1F697,"AUTOMOBILE"},
 {0x10B39,"AVESTAN ABBREVIATION MARK"},
@@ -2468,6 +2471,7 @@
 {0x10B30,"AVESTAN LETTER ZE"},
 {0x10B32,"AVESTAN LETTER ZHE"},
 {0x1F951,"AVOCADO"},
+{0x1FA93,"AXE"},
 {0x1F476,"BABY"},
 {0x1F47C,"BABY ANGEL"},
 {0x1F37C,"BABY BOTTLE"},
@@ -2607,6 +2611,7 @@
 {0x1B37,"BALINESE VOWEL SIGN ULU SARI"},
 {0x1B5C,"BALINESE WINDU"},
 {0x1F9F6,"BALL OF YARN"},
+{0x1FA70,"BALLET SHOES"},
 {0x1F388,"BALLOON"},
 {0x2749,"BALLOON-SPOKED ASTERISK"},
 {0x1F5F6,"BALLOT BOLD SCRIPT X"},
@@ -3278,6 +3283,7 @@
 {0xA6F7,"BAMUM QUESTION MARK"},
 {0xA6F6,"BAMUM SEMICOLON"},
 {0x1F34C,"BANANA"},
+{0x1FA95,"BANJO"},
 {0x1F3E6,"BANK"},
 {0x1F4B5,"BANKNOTE WITH DOLLAR SIGN"},
 {0x1F4B6,"BANKNOTE WITH EURO SIGN"},
@@ -3502,6 +3508,7 @@
 {0x23E3,"BENZENE RING WITH CIRCLE"},
 {0x2136,"BET SYMBOL"},
 {0x226C,"BETWEEN"},
+{0x1F9C3,"BEVERAGE BOX"},
 {0x11C41,"BHAIKSUKI DANDA"},
 {0x11C58,"BHAIKSUKI DIGIT EIGHT"},
 {0x11C55,"BHAIKSUKI DIGIT FIVE"},
@@ -3613,11 +3620,38 @@
 {0x29D3,"BLACK BOWTIE"},
 {0x272C,"BLACK CENTRE WHITE STAR"},
 {0x265D,"BLACK CHESS BISHOP"},
+{0x1FA12,"BLACK CHESS BISHOP ROTATED NINETY DEGREES"},
+{0x1FA3C,"BLACK CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES"},
+{0x1FA49,"BLACK CHESS EQUIHOPPER"},
+{0x1FA4C,"BLACK CHESS EQUIHOPPER ROTATED NINETY DEGREES"},
 {0x265A,"BLACK CHESS KING"},
+{0x1FA0F,"BLACK CHESS KING ROTATED NINETY DEGREES"},
+{0x1FA39,"BLACK CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES"},
 {0x265E,"BLACK CHESS KNIGHT"},
+{0x1FA07,"BLACK CHESS KNIGHT ROTATED FORTY-FIVE DEGREES"},
+{0x1FA13,"BLACK CHESS KNIGHT ROTATED NINETY DEGREES"},
+{0x1FA1C,"BLACK CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES"},
+{0x1FA46,"BLACK CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES"},
+{0x1FA3D,"BLACK CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES"},
+{0x1FA31,"BLACK CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES"},
+{0x1FA53,"BLACK CHESS KNIGHT-BISHOP"},
+{0x1FA51,"BLACK CHESS KNIGHT-QUEEN"},
+{0x1FA52,"BLACK CHESS KNIGHT-ROOK"},
 {0x265F,"BLACK CHESS PAWN"},
+{0x1FA14,"BLACK CHESS PAWN ROTATED NINETY DEGREES"},
+{0x1FA3E,"BLACK CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES"},
 {0x265B,"BLACK CHESS QUEEN"},
+{0x1FA10,"BLACK CHESS QUEEN ROTATED NINETY DEGREES"},
+{0x1FA3A,"BLACK CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES"},
 {0x265C,"BLACK CHESS ROOK"},
+{0x1FA11,"BLACK CHESS ROOK ROTATED NINETY DEGREES"},
+{0x1FA3B,"BLACK CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES"},
+{0x1FA27,"BLACK CHESS TURNED BISHOP"},
+{0x1FA24,"BLACK CHESS TURNED KING"},
+{0x1FA28,"BLACK CHESS TURNED KNIGHT"},
+{0x1FA29,"BLACK CHESS TURNED PAWN"},
+{0x1FA25,"BLACK CHESS TURNED QUEEN"},
+{0x1FA26,"BLACK CHESS TURNED ROOK"},
 {0x25CF,"BLACK CIRCLE"},
 {0x23FA,"BLACK CIRCLE FOR RECORD"},
 {0x29ED,"BLACK CIRCLE WITH DOWN ARROW"},
@@ -4377,11 +4411,13 @@
 {0x1F470,"BRIDE WITH VEIL"},
 {0x1F309,"BRIDGE AT NIGHT"},
 {0x1F4BC,"BRIEFCASE"},
+{0x1FA72,"BRIEFS"},
 {0x1F966,"BROCCOLI"},
 {0x00A6,"BROKEN BAR"},
 {0x238B,"BROKEN CIRCLE WITH NORTHWEST ARROW"},
 {0x1F494,"BROKEN HEART"},
 {0x1F9F9,"BROOM"},
+{0x1F90E,"BROWN HEART"},
 {0x1F41B,"BUG"},
 {0x1A1F,"BUGINESE END OF SECTION"},
 {0x1A15,"BUGINESE LETTER A"},
@@ -4444,6 +4480,7 @@
 {0x1F68F,"BUS STOP"},
 {0x1F464,"BUST IN SILHOUETTE"},
 {0x1F465,"BUSTS IN SILHOUETTE"},
+{0x1F9C8,"BUTTER"},
 {0x1F98B,"BUTTERFLY"},
 {0x1D09C,"BYZANTINE MUSICAL SYMBOL AGOGI ARGI"},
 {0x1D09B,"BYZANTINE MUSICAL SYMBOL AGOGI ARGOTERI"},
@@ -5546,6 +5583,7 @@
 {0xFE4A,"CENTRELINE OVERLINE"},
 {0x26B3,"CERES"},
 {0x26D3,"CHAINS"},
+{0x1FA91,"CHAIR"},
 {0x11132,"CHAKMA AU MARK"},
 {0x11141,"CHAKMA DANDA"},
 {0x1113E,"CHAKMA DIGIT EIGHT"},
@@ -7999,6 +8037,7 @@
 {0x2CE8,"COPTIC SYMBOL TAU RO"},
 {0x1F12F,"COPYLEFT SYMBOL"},
 {0x00A9,"COPYRIGHT SIGN"},
+{0x2E4F,"CORNISH VERSE DIVIDER"},
 {0x2258,"CORRESPONDS TO"},
 {0x1F6CB,"COUCH AND LAMP"},
 {0x2334,"COUNTERBORE"},
@@ -9752,6 +9791,7 @@
 {0xFE4D,"DASHED LOW LINE"},
 {0xFE49,"DASHED OVERLINE"},
 {0x279F,"DASHED TRIANGLE-HEADED RIGHTWARDS ARROW"},
+{0x1F9CF,"DEAF PERSON"},
 {0x1F333,"DECIDUOUS TREE"},
 {0x23E8,"DECIMAL EXPONENT SYMBOL"},
 {0x2396,"DECIMAL SEPARATOR KEY SYMBOL"},
@@ -10103,10 +10143,12 @@
 {0x2382,"DISCONTINUOUS UNDERLINE SYMBOL"},
 {0x3003,"DITTO MARK"},
 {0x2223,"DIVIDES"},
+{0x1F93F,"DIVING MASK"},
 {0x00F7,"DIVISION SIGN"},
 {0x2215,"DIVISION SLASH"},
 {0x22C7,"DIVISION TIMES"},
 {0x26AE,"DIVORCE SYMBOL"},
+{0x1FA94,"DIYA LAMP"},
 {0x1F635,"DIZZY FACE"},
 {0x1F4AB,"DIZZY SYMBOL"},
 {0x1F9EC,"DNA DOUBLE HELIX"},
@@ -10465,6 +10507,7 @@
 {0x26DA,"DRIVE SLOW SIGN"},
 {0x1F42A,"DROMEDARY CAMEL"},
 {0x1F924,"DROOLING FACE"},
+{0x1FA78,"DROP OF BLOOD"},
 {0x1F4A7,"DROPLET"},
 {0x1F941,"DRUM WITH DRUMSTICKS"},
 {0x1F986,"DUCK"},
@@ -10618,6 +10661,7 @@
 {0x1F442,"EAR"},
 {0x1F33D,"EAR OF MAIZE"},
 {0x1F33E,"EAR OF RICE"},
+{0x1F9BB,"EAR WITH HEARING AID"},
 {0x2641,"EARTH"},
 {0x1F30E,"EARTH GLOBE AMERICAS"},
 {0x1F30F,"EARTH GLOBE ASIA-AUSTRALIA"},
@@ -10750,6 +10794,7 @@
 {0x13057,"EGYPTIAN HIEROGLYPH B007"},
 {0x13058,"EGYPTIAN HIEROGLYPH B008"},
 {0x13059,"EGYPTIAN HIEROGLYPH B009"},
+{0x13437,"EGYPTIAN HIEROGLYPH BEGIN SEGMENT"},
 {0x1305A,"EGYPTIAN HIEROGLYPH C001"},
 {0x1305B,"EGYPTIAN HIEROGLYPH C002"},
 {0x1305C,"EGYPTIAN HIEROGLYPH C002A"},
@@ -10914,6 +10959,7 @@
 {0x130FB,"EGYPTIAN HIEROGLYPH E036"},
 {0x130FC,"EGYPTIAN HIEROGLYPH E037"},
 {0x130FD,"EGYPTIAN HIEROGLYPH E038"},
+{0x13438,"EGYPTIAN HIEROGLYPH END SEGMENT"},
 {0x130FE,"EGYPTIAN HIEROGLYPH F001"},
 {0x130FF,"EGYPTIAN HIEROGLYPH F001A"},
 {0x13100,"EGYPTIAN HIEROGLYPH F002"},
@@ -11052,6 +11098,7 @@
 {0x13185,"EGYPTIAN HIEROGLYPH H006A"},
 {0x13186,"EGYPTIAN HIEROGLYPH H007"},
 {0x13187,"EGYPTIAN HIEROGLYPH H008"},
+{0x13431,"EGYPTIAN HIEROGLYPH HORIZONTAL JOINER"},
 {0x13188,"EGYPTIAN HIEROGLYPH I001"},
 {0x13189,"EGYPTIAN HIEROGLYPH I002"},
 {0x1318A,"EGYPTIAN HIEROGLYPH I003"},
@@ -11071,6 +11118,10 @@
 {0x13198,"EGYPTIAN HIEROGLYPH I013"},
 {0x13199,"EGYPTIAN HIEROGLYPH I014"},
 {0x1319A,"EGYPTIAN HIEROGLYPH I015"},
+{0x13435,"EGYPTIAN HIEROGLYPH INSERT AT BOTTOM END"},
+{0x13433,"EGYPTIAN HIEROGLYPH INSERT AT BOTTOM START"},
+{0x13434,"EGYPTIAN HIEROGLYPH INSERT AT TOP END"},
+{0x13432,"EGYPTIAN HIEROGLYPH INSERT AT TOP START"},
 {0x1319B,"EGYPTIAN HIEROGLYPH K001"},
 {0x1319C,"EGYPTIAN HIEROGLYPH K002"},
 {0x1319D,"EGYPTIAN HIEROGLYPH K003"},
@@ -11327,6 +11378,7 @@
 {0x13298,"EGYPTIAN HIEROGLYPH O050A"},
 {0x13299,"EGYPTIAN HIEROGLYPH O050B"},
 {0x1329A,"EGYPTIAN HIEROGLYPH O051"},
+{0x13436,"EGYPTIAN HIEROGLYPH OVERLAY MIDDLE"},
 {0x1329B,"EGYPTIAN HIEROGLYPH P001"},
 {0x1329C,"EGYPTIAN HIEROGLYPH P001A"},
 {0x1329D,"EGYPTIAN HIEROGLYPH P002"},
@@ -11603,6 +11655,7 @@
 {0x133AC,"EGYPTIAN HIEROGLYPH V039"},
 {0x133AD,"EGYPTIAN HIEROGLYPH V040"},
 {0x133AE,"EGYPTIAN HIEROGLYPH V040A"},
+{0x13430,"EGYPTIAN HIEROGLYPH VERTICAL JOINER"},
 {0x133AF,"EGYPTIAN HIEROGLYPH W001"},
 {0x133B0,"EGYPTIAN HIEROGLYPH W002"},
 {0x133B1,"EGYPTIAN HIEROGLYPH W003"},
@@ -11761,6 +11814,29 @@
 {0x22F3,"ELEMENT OF WITH VERTICAL BAR AT END OF HORIZONTAL STROKE"},
 {0x1F418,"ELEPHANT"},
 {0x1F9DD,"ELF"},
+{0x10FE0,"ELYMAIC LETTER ALEPH"},
+{0x10FEF,"ELYMAIC LETTER AYIN"},
+{0x10FE1,"ELYMAIC LETTER BETH"},
+{0x10FE3,"ELYMAIC LETTER DALETH"},
+{0x10FE2,"ELYMAIC LETTER GIMEL"},
+{0x10FE4,"ELYMAIC LETTER HE"},
+{0x10FE7,"ELYMAIC LETTER HETH"},
+{0x10FEA,"ELYMAIC LETTER KAPH"},
+{0x10FEB,"ELYMAIC LETTER LAMEDH"},
+{0x10FEC,"ELYMAIC LETTER MEM"},
+{0x10FED,"ELYMAIC LETTER NUN"},
+{0x10FF0,"ELYMAIC LETTER PE"},
+{0x10FF2,"ELYMAIC LETTER QOPH"},
+{0x10FF3,"ELYMAIC LETTER RESH"},
+{0x10FF1,"ELYMAIC LETTER SADHE"},
+{0x10FEE,"ELYMAIC LETTER SAMEKH"},
+{0x10FF4,"ELYMAIC LETTER SHIN"},
+{0x10FF5,"ELYMAIC LETTER TAW"},
+{0x10FE8,"ELYMAIC LETTER TETH"},
+{0x10FE5,"ELYMAIC LETTER WAW"},
+{0x10FE9,"ELYMAIC LETTER YODH"},
+{0x10FE6,"ELYMAIC LETTER ZAYIN"},
+{0x10FF6,"ELYMAIC LIGATURE ZAYIN-YODH"},
 {0x2014,"EM DASH"},
 {0x2001,"EM QUAD"},
 {0x2003,"EM SPACE"},
@@ -12384,6 +12460,7 @@
 {0x213B,"FACSIMILE SIGN"},
 {0x1F3ED,"FACTORY"},
 {0x1F9DA,"FAIRY"},
+{0x1F9C6,"FALAFEL"},
 {0x1F342,"FALLEN LEAF"},
 {0x292F,"FALLING DIAGONAL CROSSING NORTH EAST ARROW"},
 {0x292C,"FALLING DIAGONAL CROSSING RISING DIAGONAL"},
@@ -12426,6 +12503,7 @@
 {0x2E2D,"FIVE DOT MARK"},
 {0x2059,"FIVE DOT PUNCTUATION"},
 {0x26F3,"FLAG IN HOLE"},
+{0x1F9A9,"FLAMINGO"},
 {0x1F97F,"FLAT SHOE"},
 {0x23E5,"FLATNESS"},
 {0x269C,"FLEUR-DE-LIS"},
@@ -12590,6 +12668,7 @@
 {0x26B1,"FUNERAL URN"},
 {0x23DB,"FUSE"},
 {0x1F3B2,"GAME DIE"},
+{0x1F9C4,"GARLIC"},
 {0x2699,"GEAR"},
 {0x26EE,"GEAR WITH HANDLES"},
 {0x26ED,"GEAR WITHOUT HUB"},
@@ -13539,6 +13618,7 @@
 {0x1F497,"GROWING HEART"},
 {0x20B2,"GUARANI SIGN"},
 {0x1F482,"GUARDSMAN"},
+{0x1F9AE,"GUIDE DOG"},
 {0x1F3B8,"GUITAR"},
 {0x0AF0,"GUJARATI ABBREVIATION SIGN"},
 {0x0AEE,"GUJARATI DIGIT EIGHT"},
@@ -14712,6 +14792,7 @@
 {0x05EF,"HEBREW YOD TRIANGLE"},
 {0x1F994,"HEDGEHOG"},
 {0x1F681,"HELICOPTER"},
+{0x2BFF,"HELLSCHREIBER PAUSE SYMBOL"},
 {0x2388,"HELM SYMBOL"},
 {0x26D1,"HELMET WITH WHITE CROSS"},
 {0x1B002,"HENTAIGANA LETTER A-1"},
@@ -15072,6 +15153,7 @@
 {0x1F684,"HIGH-SPEED TRAIN"},
 {0x1F685,"HIGH-SPEED TRAIN WITH BULLET NOSE"},
 {0x1F97E,"HIKING BOOT"},
+{0x1F6D5,"HINDU TEMPLE"},
 {0x1F99B,"HIPPOPOTAMUS"},
 {0x309F,"HIRAGANA DIGRAPH YORI"},
 {0x309D,"HIRAGANA ITERATION MARK"},
@@ -15138,6 +15220,9 @@
 {0x3063,"HIRAGANA LETTER SMALL TU"},
 {0x3045,"HIRAGANA LETTER SMALL U"},
 {0x308E,"HIRAGANA LETTER SMALL WA"},
+{0x1B151,"HIRAGANA LETTER SMALL WE"},
+{0x1B150,"HIRAGANA LETTER SMALL WI"},
+{0x1B152,"HIRAGANA LETTER SMALL WO"},
 {0x3083,"HIRAGANA LETTER SMALL YA"},
 {0x3087,"HIRAGANA LETTER SMALL YO"},
 {0x3085,"HIRAGANA LETTER SMALL YU"},
@@ -15212,6 +15297,7 @@
 {0x238E,"HYSTERESIS SYMBOL"},
 {0x1F91F,"I LOVE YOU HAND SIGN"},
 {0x1F368,"ICE CREAM"},
+{0x1F9CA,"ICE CUBE"},
 {0x1F3D2,"ICE HOCKEY STICK AND PUCK"},
 {0x26F8,"ICE SKATE"},
 {0x2261,"IDENTICAL TO"},
@@ -16096,6 +16182,7 @@
 {0x30F6,"KATAKANA LETTER SMALL KE"},
 {0x31F0,"KATAKANA LETTER SMALL KU"},
 {0x31FA,"KATAKANA LETTER SMALL MU"},
+{0x1B167,"KATAKANA LETTER SMALL N"},
 {0x31F4,"KATAKANA LETTER SMALL NU"},
 {0x30A9,"KATAKANA LETTER SMALL O"},
 {0x31FB,"KATAKANA LETTER SMALL RA"},
@@ -16109,6 +16196,9 @@
 {0x30C3,"KATAKANA LETTER SMALL TU"},
 {0x30A5,"KATAKANA LETTER SMALL U"},
 {0x30EE,"KATAKANA LETTER SMALL WA"},
+{0x1B165,"KATAKANA LETTER SMALL WE"},
+{0x1B164,"KATAKANA LETTER SMALL WI"},
+{0x1B166,"KATAKANA LETTER SMALL WO"},
 {0x30E3,"KATAKANA LETTER SMALL YA"},
 {0x30E7,"KATAKANA LETTER SMALL YO"},
 {0x30E5,"KATAKANA LETTER SMALL YU"},
@@ -16549,7 +16639,9 @@
 {0x1F617,"KISSING FACE"},
 {0x1F61A,"KISSING FACE WITH CLOSED EYES"},
 {0x1F619,"KISSING FACE WITH SMILING EYES"},
+{0x1FA81,"KITE"},
 {0x1F95D,"KIWIFRUIT"},
+{0x1F9CE,"KNEELING PERSON"},
 {0x1F428,"KOALA"},
 {0x327F,"KOREAN STANDARD SYMBOL"},
 {0x2BE3,"KRONOS"},
@@ -16593,9 +16685,23 @@
 {0x0E99,"LAO LETTER NO"},
 {0x0E8D,"LAO LETTER NYO"},
 {0x0EAD,"LAO LETTER O"},
+{0x0EA0,"LAO LETTER PALI BHA"},
+{0x0E89,"LAO LETTER PALI CHA"},
+{0x0E91,"LAO LETTER PALI DDA"},
+{0x0E92,"LAO LETTER PALI DDHA"},
+{0x0E98,"LAO LETTER PALI DHA"},
+{0x0E86,"LAO LETTER PALI GHA"},
+{0x0E8C,"LAO LETTER PALI JHA"},
+{0x0EAC,"LAO LETTER PALI LLA"},
+{0x0E93,"LAO LETTER PALI NNA"},
+{0x0E8E,"LAO LETTER PALI NYA"},
+{0x0E8F,"LAO LETTER PALI TTA"},
+{0x0E90,"LAO LETTER PALI TTHA"},
 {0x0E9C,"LAO LETTER PHO SUNG"},
 {0x0E9E,"LAO LETTER PHO TAM"},
 {0x0E9B,"LAO LETTER PO"},
+{0x0EA8,"LAO LETTER SANSKRIT SHA"},
+{0x0EA9,"LAO LETTER SANSKRIT SSA"},
 {0x0EAA,"LAO LETTER SO SUNG"},
 {0x0E8A,"LAO LETTER SO TAM"},
 {0x0E96,"LAO LETTER THO SUNG"},
@@ -16606,6 +16712,7 @@
 {0x0ECD,"LAO NIGGAHITA"},
 {0x0EBC,"LAO SEMIVOWEL SIGN LO"},
 {0x0EBD,"LAO SEMIVOWEL SIGN NYO"},
+{0x0EBA,"LAO SIGN PALI VIRAMA"},
 {0x0ECB,"LAO TONE MAI CATAWA"},
 {0x0EC8,"LAO TONE MAI EK"},
 {0x0EC9,"LAO TONE MAI THO"},
@@ -16628,17 +16735,29 @@
 {0x0EB7,"LAO VOWEL SIGN YY"},
 {0x1F535,"LARGE BLUE CIRCLE"},
 {0x1F537,"LARGE BLUE DIAMOND"},
+{0x1F7E6,"LARGE BLUE SQUARE"},
+{0x1F7E4,"LARGE BROWN CIRCLE"},
+{0x1F7EB,"LARGE BROWN SQUARE"},
 {0x25EF,"LARGE CIRCLE"},
 {0x27D9,"LARGE DOWN TACK"},
+{0x1F7E2,"LARGE GREEN CIRCLE"},
+{0x1F7E9,"LARGE GREEN SQUARE"},
 {0x2A1E,"LARGE LEFT TRIANGLE OPERATOR"},
 {0x10B3D,"LARGE ONE DOT OVER TWO DOTS PUNCTUATION"},
 {0x10B3F,"LARGE ONE RING OVER TWO RINGS PUNCTUATION"},
+{0x1F7E0,"LARGE ORANGE CIRCLE"},
 {0x1F536,"LARGE ORANGE DIAMOND"},
+{0x1F7E7,"LARGE ORANGE SQUARE"},
+{0x1F7E3,"LARGE PURPLE CIRCLE"},
+{0x1F7EA,"LARGE PURPLE SQUARE"},
 {0x1F534,"LARGE RED CIRCLE"},
+{0x1F7E5,"LARGE RED SQUARE"},
 {0x2AFC,"LARGE TRIPLE VERTICAL BAR OPERATOR"},
 {0x10B3C,"LARGE TWO DOTS OVER ONE DOT PUNCTUATION"},
 {0x10B3E,"LARGE TWO RINGS OVER ONE RING PUNCTUATION"},
 {0x27D8,"LARGE UP TACK"},
+{0x1F7E1,"LARGE YELLOW CIRCLE"},
+{0x1F7E8,"LARGE YELLOW SQUARE"},
 {0x2AAB,"LARGER THAN"},
 {0x2AAD,"LARGER THAN OR EQUAL TO"},
 {0x20BE,"LARI SIGN"},
@@ -16682,6 +16801,7 @@
 {0x01E2,"LATIN CAPITAL LETTER AE WITH MACRON"},
 {0x0189,"LATIN CAPITAL LETTER AFRICAN D"},
 {0x2C6D,"LATIN CAPITAL LETTER ALPHA"},
+{0xA7C2,"LATIN CAPITAL LETTER ANGLICANA W"},
 {0xA734,"LATIN CAPITAL LETTER AO"},
 {0xA736,"LATIN CAPITAL LETTER AU"},
 {0xA738,"LATIN CAPITAL LETTER AV"},
@@ -16706,6 +16826,7 @@
 {0x0108,"LATIN CAPITAL LETTER C WITH CIRCUMFLEX"},
 {0x010A,"LATIN CAPITAL LETTER C WITH DOT ABOVE"},
 {0x0187,"LATIN CAPITAL LETTER C WITH HOOK"},
+{0xA7C4,"LATIN CAPITAL LETTER C WITH PALATAL HOOK"},
 {0x023B,"LATIN CAPITAL LETTER C WITH STROKE"},
 {0xA7B3,"LATIN CAPITAL LETTER CHI"},
 {0xA76E,"LATIN CAPITAL LETTER CON"},
@@ -16777,7 +16898,10 @@
 {0xA7A0,"LATIN CAPITAL LETTER G WITH OBLIQUE STROKE"},
 {0x01E4,"LATIN CAPITAL LETTER G WITH STROKE"},
 {0x0194,"LATIN CAPITAL LETTER GAMMA"},
+{0xA7BA,"LATIN CAPITAL LETTER GLOTTAL A"},
+{0xA7BC,"LATIN CAPITAL LETTER GLOTTAL I"},
 {0x0241,"LATIN CAPITAL LETTER GLOTTAL STOP"},
+{0xA7BE,"LATIN CAPITAL LETTER GLOTTAL U"},
 {0x0048,"LATIN CAPITAL LETTER H"},
 {0x1E2A,"LATIN CAPITAL LETTER H WITH BREVE BELOW"},
 {0x021E,"LATIN CAPITAL LETTER H WITH CARON"},
@@ -16960,6 +17084,7 @@
 {0x1E60,"LATIN CAPITAL LETTER S WITH DOT ABOVE"},
 {0x1E62,"LATIN CAPITAL LETTER S WITH DOT BELOW"},
 {0x1E68,"LATIN CAPITAL LETTER S WITH DOT BELOW AND DOT ABOVE"},
+{0xA7C5,"LATIN CAPITAL LETTER S WITH HOOK"},
 {0xA7A8,"LATIN CAPITAL LETTER S WITH OBLIQUE STROKE"},
 {0x2C7E,"LATIN CAPITAL LETTER S WITH SWASH TAIL"},
 {0xA78B,"LATIN CAPITAL LETTER SALTILLO"},
@@ -17077,6 +17202,7 @@
 {0x1E92,"LATIN CAPITAL LETTER Z WITH DOT BELOW"},
 {0x0224,"LATIN CAPITAL LETTER Z WITH HOOK"},
 {0x1E94,"LATIN CAPITAL LETTER Z WITH LINE BELOW"},
+{0xA7C6,"LATIN CAPITAL LETTER Z WITH PALATAL HOOK"},
 {0x01B5,"LATIN CAPITAL LETTER Z WITH STROKE"},
 {0x2C7F,"LATIN CAPITAL LETTER Z WITH SWASH TAIL"},
 {0x0132,"LATIN CAPITAL LIGATURE IJ"},
@@ -17193,6 +17319,7 @@
 {0x01E3,"LATIN SMALL LETTER AE WITH MACRON"},
 {0x0251,"LATIN SMALL LETTER ALPHA"},
 {0x1D90,"LATIN SMALL LETTER ALPHA WITH RETROFLEX HOOK"},
+{0xA7C3,"LATIN SMALL LETTER ANGLICANA W"},
 {0xA735,"LATIN SMALL LETTER AO"},
 {0xA737,"LATIN SMALL LETTER AU"},
 {0xA739,"LATIN SMALL LETTER AV"},
@@ -17267,6 +17394,7 @@
 {0x01F3,"LATIN SMALL LETTER DZ"},
 {0x02A3,"LATIN SMALL LETTER DZ DIGRAPH"},
 {0x02A5,"LATIN SMALL LETTER DZ DIGRAPH WITH CURL"},
+{0xAB66,"LATIN SMALL LETTER DZ DIGRAPH WITH RETROFLEX HOOK"},
 {0x01C6,"LATIN SMALL LETTER DZ WITH CARON"},
 {0x0065,"LATIN SMALL LETTER E"},
 {0x00E9,"LATIN SMALL LETTER E WITH ACUTE"},
@@ -17334,7 +17462,10 @@
 {0x1D83,"LATIN SMALL LETTER G WITH PALATAL HOOK"},
 {0x01E5,"LATIN SMALL LETTER G WITH STROKE"},
 {0x0263,"LATIN SMALL LETTER GAMMA"},
+{0xA7BB,"LATIN SMALL LETTER GLOTTAL A"},
+{0xA7BD,"LATIN SMALL LETTER GLOTTAL I"},
 {0x0242,"LATIN SMALL LETTER GLOTTAL STOP"},
+{0xA7BF,"LATIN SMALL LETTER GLOTTAL U"},
 {0x0068,"LATIN SMALL LETTER H"},
 {0x1E2B,"LATIN SMALL LETTER H WITH BREVE BELOW"},
 {0x021F,"LATIN SMALL LETTER H WITH CARON"},
@@ -17628,6 +17759,7 @@
 {0x1D16,"LATIN SMALL LETTER TOP HALF O"},
 {0xA72B,"LATIN SMALL LETTER TRESILLO"},
 {0x02A6,"LATIN SMALL LETTER TS DIGRAPH"},
+{0xAB67,"LATIN SMALL LETTER TS DIGRAPH WITH RETROFLEX HOOK"},
 {0xA777,"LATIN SMALL LETTER TUM"},
 {0x0250,"LATIN SMALL LETTER TURNED A"},
 {0x1D02,"LATIN SMALL LETTER TURNED AE"},
@@ -19269,6 +19401,7 @@
 {0x10AC8,"MANICHAEAN SIGN UD"},
 {0x1F45E,"MANS SHOE"},
 {0x1F570,"MANTELPIECE CLOCK"},
+{0x1F9BD,"MANUAL WHEELCHAIR"},
 {0x26EF,"MAP SYMBOL FOR LIGHTHOUSE"},
 {0x1F341,"MAPLE LEAF"},
 {0x11C70,"MARCHEN HEAD MARK"},
@@ -19418,6 +19551,7 @@
 {0x11D36,"MASARAM GONDI VOWEL SIGN VOCALIC R"},
 {0x00BA,"MASCULINE ORDINAL INDICATOR"},
 {0x303C,"MASU MARK"},
+{0x1F9C9,"MATE DRINK"},
 {0x1D400,"MATHEMATICAL BOLD CAPITAL A"},
 {0x1D6A8,"MATHEMATICAL BOLD CAPITAL ALPHA"},
 {0x1D401,"MATHEMATICAL BOLD CAPITAL B"},
@@ -20460,6 +20594,8 @@
 {0x225E,"MEASURED BY"},
 {0x299D,"MEASURED RIGHT ANGLE WITH DOT"},
 {0x1F356,"MEAT ON BONE"},
+{0x1F9BE,"MECHANICAL ARM"},
+{0x1F9BF,"MECHANICAL LEG"},
 {0x16E4D,"MEDEFAIDRIN CAPITAL LETTER A"},
 {0x16E5E,"MEDEFAIDRIN CAPITAL LETTER AI"},
 {0x16E44,"MEDEFAIDRIN CAPITAL LETTER ATIU"},
@@ -21015,6 +21151,7 @@
 {0x16F25,"MIAO LETTER ARCHAIC NGA"},
 {0x16F3F,"MIAO LETTER ARCHAIC ZZA"},
 {0x16F01,"MIAO LETTER BA"},
+{0x16F45,"MIAO LETTER BRI"},
 {0x16F0B,"MIAO LETTER DA"},
 {0x16F0F,"MIAO LETTER DDA"},
 {0x16F1B,"MIAO LETTER DLHA"},
@@ -21021,6 +21158,7 @@
 {0x16F1D,"MIAO LETTER DLHYA"},
 {0x16F38,"MIAO LETTER DZA"},
 {0x16F2F,"MIAO LETTER DZHA"},
+{0x16F47,"MIAO LETTER DZYI"},
 {0x16F2B,"MIAO LETTER DZZA"},
 {0x16F07,"MIAO LETTER FA"},
 {0x16F1F,"MIAO LETTER GA"},
@@ -21055,10 +21193,13 @@
 {0x16F9E,"MIAO LETTER REFORMED TONE-6"},
 {0x16F9F,"MIAO LETTER REFORMED TONE-8"},
 {0x16F32,"MIAO LETTER REFORMED TSHA"},
+{0x16F4A,"MIAO LETTER RTE"},
 {0x16F3A,"MIAO LETTER SA"},
 {0x16F33,"MIAO LETTER SHA"},
 {0x16F34,"MIAO LETTER SSA"},
+{0x16F46,"MIAO LETTER SYI"},
 {0x16F0A,"MIAO LETTER TA"},
+{0x16F48,"MIAO LETTER TE"},
 {0x16F1A,"MIAO LETTER TLHA"},
 {0x16F1C,"MIAO LETTER TLHYA"},
 {0x16F93,"MIAO LETTER TONE-2"},
@@ -21069,6 +21210,7 @@
 {0x16F98,"MIAO LETTER TONE-7"},
 {0x16F99,"MIAO LETTER TONE-8"},
 {0x16F37,"MIAO LETTER TSA"},
+{0x16F49,"MIAO LETTER TSE"},
 {0x16F2E,"MIAO LETTER TSHA"},
 {0x16F2A,"MIAO LETTER TSSA"},
 {0x16F0E,"MIAO LETTER TTA"},
@@ -21093,6 +21235,7 @@
 {0x16F41,"MIAO LETTER ZZSYA"},
 {0x16F40,"MIAO LETTER ZZYA"},
 {0x16F51,"MIAO SIGN ASPIRATION"},
+{0x16F4F,"MIAO SIGN CONSONANT MODIFIER BAR"},
 {0x16F53,"MIAO SIGN REFORMED ASPIRATION"},
 {0x16F52,"MIAO SIGN REFORMED VOICING"},
 {0x16F91,"MIAO TONE ABOVE"},
@@ -21109,6 +21252,7 @@
 {0x16F58,"MIAO VOWEL SIGN ANG"},
 {0x16F7B,"MIAO VOWEL SIGN AU"},
 {0x16F5D,"MIAO VOWEL SIGN E"},
+{0x16F85,"MIAO VOWEL SIGN EA"},
 {0x16F7A,"MIAO VOWEL SIGN EI"},
 {0x16F5E,"MIAO VOWEL SIGN EN"},
 {0x16F5F,"MIAO VOWEL SIGN ENG"},
@@ -21119,14 +21263,18 @@
 {0x16F63,"MIAO VOWEL SIGN IAN"},
 {0x16F64,"MIAO VOWEL SIGN IANG"},
 {0x16F66,"MIAO VOWEL SIGN IE"},
+{0x16F84,"MIAO VOWEL SIGN IG"},
 {0x16F67,"MIAO VOWEL SIGN II"},
 {0x16F69,"MIAO VOWEL SIGN ING"},
 {0x16F65,"MIAO VOWEL SIGN IO"},
+{0x16F86,"MIAO VOWEL SIGN IONG"},
 {0x16F68,"MIAO VOWEL SIGN IU"},
 {0x16F7D,"MIAO VOWEL SIGN N"},
 {0x16F7E,"MIAO VOWEL SIGN NG"},
 {0x16F59,"MIAO VOWEL SIGN O"},
+{0x16F82,"MIAO VOWEL SIGN OER"},
 {0x16F60,"MIAO VOWEL SIGN OEY"},
+{0x16F81,"MIAO VOWEL SIGN OG"},
 {0x16F5A,"MIAO VOWEL SIGN OO"},
 {0x16F7C,"MIAO VOWEL SIGN OU"},
 {0x16F78,"MIAO VOWEL SIGN ROUNDED ER"},
@@ -21136,12 +21284,16 @@
 {0x16F6C,"MIAO VOWEL SIGN UAN"},
 {0x16F6D,"MIAO VOWEL SIGN UANG"},
 {0x16F6F,"MIAO VOWEL SIGN UEI"},
+{0x16F87,"MIAO VOWEL SIGN UI"},
 {0x16F70,"MIAO VOWEL SIGN UNG"},
+{0x16F7F,"MIAO VOWEL SIGN UOG"},
 {0x16F6E,"MIAO VOWEL SIGN UU"},
+{0x16F83,"MIAO VOWEL SIGN VW"},
 {0x16F5C,"MIAO VOWEL SIGN W"},
 {0x16F5B,"MIAO VOWEL SIGN WO"},
 {0x16F71,"MIAO VOWEL SIGN Y"},
 {0x16F72,"MIAO VOWEL SIGN YI"},
+{0x16F80,"MIAO VOWEL SIGN YUI"},
 {0x00B5,"MICRO SIGN"},
 {0x1F9A0,"MICROBE"},
 {0x1F3A4,"MICROPHONE"},
@@ -21650,6 +21802,7 @@
 {0x1F936,"MOTHER CHRISTMAS"},
 {0x1F6E5,"MOTOR BOAT"},
 {0x1F6F5,"MOTOR SCOOTER"},
+{0x1F9BC,"MOTORIZED WHEELCHAIR"},
 {0x1F6E3,"MOTORWAY"},
 {0x1F5FB,"MOUNT FUJI"},
 {0x26F0,"MOUNTAIN"},
@@ -22280,6 +22433,71 @@
 {0x20A6,"NAIRA SIGN"},
 {0x1F4DB,"NAME BADGE"},
 {0x22BC,"NAND"},
+{0x119E3,"NANDINAGARI HEADSTROKE"},
+{0x119A0,"NANDINAGARI LETTER A"},
+{0x119A1,"NANDINAGARI LETTER AA"},
+{0x119AB,"NANDINAGARI LETTER AI"},
+{0x119AD,"NANDINAGARI LETTER AU"},
+{0x119C4,"NANDINAGARI LETTER BA"},
+{0x119C5,"NANDINAGARI LETTER BHA"},
+{0x119B3,"NANDINAGARI LETTER CA"},
+{0x119B4,"NANDINAGARI LETTER CHA"},
+{0x119BF,"NANDINAGARI LETTER DA"},
+{0x119BA,"NANDINAGARI LETTER DDA"},
+{0x119BB,"NANDINAGARI LETTER DDHA"},
+{0x119C0,"NANDINAGARI LETTER DHA"},
+{0x119AA,"NANDINAGARI LETTER E"},
+{0x119B0,"NANDINAGARI LETTER GA"},
+{0x119B1,"NANDINAGARI LETTER GHA"},
+{0x119CE,"NANDINAGARI LETTER HA"},
+{0x119A2,"NANDINAGARI LETTER I"},
+{0x119A3,"NANDINAGARI LETTER II"},
+{0x119B5,"NANDINAGARI LETTER JA"},
+{0x119B6,"NANDINAGARI LETTER JHA"},
+{0x119AE,"NANDINAGARI LETTER KA"},
+{0x119AF,"NANDINAGARI LETTER KHA"},
+{0x119C9,"NANDINAGARI LETTER LA"},
+{0x119CF,"NANDINAGARI LETTER LLA"},
+{0x119C6,"NANDINAGARI LETTER MA"},
+{0x119C1,"NANDINAGARI LETTER NA"},
+{0x119B2,"NANDINAGARI LETTER NGA"},
+{0x119BC,"NANDINAGARI LETTER NNA"},
+{0x119B7,"NANDINAGARI LETTER NYA"},
+{0x119AC,"NANDINAGARI LETTER O"},
+{0x119C2,"NANDINAGARI LETTER PA"},
+{0x119C3,"NANDINAGARI LETTER PHA"},
+{0x119C8,"NANDINAGARI LETTER RA"},
+{0x119D0,"NANDINAGARI LETTER RRA"},
+{0x119CD,"NANDINAGARI LETTER SA"},
+{0x119CB,"NANDINAGARI LETTER SHA"},
+{0x119CC,"NANDINAGARI LETTER SSA"},
+{0x119BD,"NANDINAGARI LETTER TA"},
+{0x119BE,"NANDINAGARI LETTER THA"},
+{0x119B8,"NANDINAGARI LETTER TTA"},
+{0x119B9,"NANDINAGARI LETTER TTHA"},
+{0x119A4,"NANDINAGARI LETTER U"},
+{0x119A5,"NANDINAGARI LETTER UU"},
+{0x119CA,"NANDINAGARI LETTER VA"},
+{0x119A6,"NANDINAGARI LETTER VOCALIC R"},
+{0x119A7,"NANDINAGARI LETTER VOCALIC RR"},
+{0x119C7,"NANDINAGARI LETTER YA"},
+{0x119DE,"NANDINAGARI SIGN ANUSVARA"},
+{0x119E1,"NANDINAGARI SIGN AVAGRAHA"},
+{0x119E2,"NANDINAGARI SIGN SIDDHAM"},
+{0x119E0,"NANDINAGARI SIGN VIRAMA"},
+{0x119DF,"NANDINAGARI SIGN VISARGA"},
+{0x119D1,"NANDINAGARI VOWEL SIGN AA"},
+{0x119DB,"NANDINAGARI VOWEL SIGN AI"},
+{0x119DD,"NANDINAGARI VOWEL SIGN AU"},
+{0x119DA,"NANDINAGARI VOWEL SIGN E"},
+{0x119D2,"NANDINAGARI VOWEL SIGN I"},
+{0x119D3,"NANDINAGARI VOWEL SIGN II"},
+{0x119DC,"NANDINAGARI VOWEL SIGN O"},
+{0x119E4,"NANDINAGARI VOWEL SIGN PRISHTHAMATRA E"},
+{0x119D4,"NANDINAGARI VOWEL SIGN U"},
+{0x119D5,"NANDINAGARI VOWEL SIGN UU"},
+{0x119D6,"NANDINAGARI VOWEL SIGN VOCALIC R"},
+{0x119D7,"NANDINAGARI VOWEL SIGN VOCALIC RR"},
 {0x202F,"NARROW NO-BREAK SPACE"},
 {0x206E,"NATIONAL DIGIT SHAPES"},
 {0x1F3DE,"NATIONAL PARK"},
@@ -22368,9 +22586,40 @@
 {0x2274,"NEITHER LESS-THAN NOR EQUIVALENT TO"},
 {0x2278,"NEITHER LESS-THAN NOR GREATER-THAN"},
 {0x2646,"NEPTUNE"},
+{0x2BC9,"NEPTUNE FORM TWO"},
 {0x1F913,"NERD FACE"},
 {0x2BDC,"NESSUS"},
 {0x26B2,"NEUTER"},
+{0x1FA03,"NEUTRAL CHESS BISHOP"},
+{0x1FA18,"NEUTRAL CHESS BISHOP ROTATED NINETY DEGREES"},
+{0x1FA42,"NEUTRAL CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES"},
+{0x1FA4A,"NEUTRAL CHESS EQUIHOPPER"},
+{0x1FA4D,"NEUTRAL CHESS EQUIHOPPER ROTATED NINETY DEGREES"},
+{0x1FA00,"NEUTRAL CHESS KING"},
+{0x1FA15,"NEUTRAL CHESS KING ROTATED NINETY DEGREES"},
+{0x1FA3F,"NEUTRAL CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES"},
+{0x1FA04,"NEUTRAL CHESS KNIGHT"},
+{0x1FA08,"NEUTRAL CHESS KNIGHT ROTATED FORTY-FIVE DEGREES"},
+{0x1FA19,"NEUTRAL CHESS KNIGHT ROTATED NINETY DEGREES"},
+{0x1FA1D,"NEUTRAL CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES"},
+{0x1FA47,"NEUTRAL CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES"},
+{0x1FA43,"NEUTRAL CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES"},
+{0x1FA32,"NEUTRAL CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES"},
+{0x1FA05,"NEUTRAL CHESS PAWN"},
+{0x1FA1A,"NEUTRAL CHESS PAWN ROTATED NINETY DEGREES"},
+{0x1FA44,"NEUTRAL CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES"},
+{0x1FA01,"NEUTRAL CHESS QUEEN"},
+{0x1FA16,"NEUTRAL CHESS QUEEN ROTATED NINETY DEGREES"},
+{0x1FA40,"NEUTRAL CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES"},
+{0x1FA02,"NEUTRAL CHESS ROOK"},
+{0x1FA17,"NEUTRAL CHESS ROOK ROTATED NINETY DEGREES"},
+{0x1FA41,"NEUTRAL CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES"},
+{0x1FA2D,"NEUTRAL CHESS TURNED BISHOP"},
+{0x1FA2A,"NEUTRAL CHESS TURNED KING"},
+{0x1FA2E,"NEUTRAL CHESS TURNED KNIGHT"},
+{0x1FA2F,"NEUTRAL CHESS TURNED PAWN"},
+{0x1FA2B,"NEUTRAL CHESS TURNED QUEEN"},
+{0x1FA2C,"NEUTRAL CHESS TURNED ROOK"},
 {0x1F610,"NEUTRAL FACE"},
 {0x1F311,"NEW MOON SYMBOL"},
 {0x1F31A,"NEW MOON WITH FACE"},
@@ -22521,6 +22770,7 @@
 {0x1141B,"NEWA LETTER TTHA"},
 {0x11404,"NEWA LETTER U"},
 {0x11405,"NEWA LETTER UU"},
+{0x1145F,"NEWA LETTER VEDIC ANUSVARA"},
 {0x11408,"NEWA LETTER VOCALIC L"},
 {0x11409,"NEWA LETTER VOCALIC LL"},
 {0x11406,"NEWA LETTER VOCALIC R"},
@@ -23118,6 +23368,77 @@
 {0x1B2FB,"NUSHU CHARACTER-1B2FB"},
 {0x16FE1,"NUSHU ITERATION MARK"},
 {0x1F529,"NUT AND BOLT"},
+{0x1E14F,"NYIAKENG PUACHUE HMONG CIRCLED CA"},
+{0x1E148,"NYIAKENG PUACHUE HMONG DIGIT EIGHT"},
+{0x1E145,"NYIAKENG PUACHUE HMONG DIGIT FIVE"},
+{0x1E144,"NYIAKENG PUACHUE HMONG DIGIT FOUR"},
+{0x1E149,"NYIAKENG PUACHUE HMONG DIGIT NINE"},
+{0x1E141,"NYIAKENG PUACHUE HMONG DIGIT ONE"},
+{0x1E147,"NYIAKENG PUACHUE HMONG DIGIT SEVEN"},
+{0x1E146,"NYIAKENG PUACHUE HMONG DIGIT SIX"},
+{0x1E143,"NYIAKENG PUACHUE HMONG DIGIT THREE"},
+{0x1E142,"NYIAKENG PUACHUE HMONG DIGIT TWO"},
+{0x1E140,"NYIAKENG PUACHUE HMONG DIGIT ZERO"},
+{0x1E124,"NYIAKENG PUACHUE HMONG LETTER A"},
+{0x1E125,"NYIAKENG PUACHUE HMONG LETTER AA"},
+{0x1E108,"NYIAKENG PUACHUE HMONG LETTER CA"},
+{0x1E10F,"NYIAKENG PUACHUE HMONG LETTER DA"},
+{0x1E11D,"NYIAKENG PUACHUE HMONG LETTER DLA"},
+{0x1E12A,"NYIAKENG PUACHUE HMONG LETTER E"},
+{0x1E12B,"NYIAKENG PUACHUE HMONG LETTER EE"},
+{0x1E115,"NYIAKENG PUACHUE HMONG LETTER FA"},
+{0x1E122,"NYIAKENG PUACHUE HMONG LETTER GA"},
+{0x1E104,"NYIAKENG PUACHUE HMONG LETTER HA"},
+{0x1E11F,"NYIAKENG PUACHUE HMONG LETTER HAH"},
+{0x1E126,"NYIAKENG PUACHUE HMONG LETTER I"},
+{0x1E10E,"NYIAKENG PUACHUE HMONG LETTER KA"},
+{0x1E109,"NYIAKENG PUACHUE HMONG LETTER LA"},
+{0x1E100,"NYIAKENG PUACHUE HMONG LETTER MA"},
+{0x1E120,"NYIAKENG PUACHUE HMONG LETTER MLA"},
+{0x1E105,"NYIAKENG PUACHUE HMONG LETTER NA"},
+{0x1E10C,"NYIAKENG PUACHUE HMONG LETTER NCA"},
+{0x1E107,"NYIAKENG PUACHUE HMONG LETTER NKA"},
+{0x1E11C,"NYIAKENG PUACHUE HMONG LETTER NPA"},
+{0x1E11E,"NYIAKENG PUACHUE HMONG LETTER NPLA"},
+{0x1E119,"NYIAKENG PUACHUE HMONG LETTER NQA"},
+{0x1E111,"NYIAKENG PUACHUE HMONG LETTER NRA"},
+{0x1E102,"NYIAKENG PUACHUE HMONG LETTER NTA"},
+{0x1E10D,"NYIAKENG PUACHUE HMONG LETTER NTSA"},
+{0x1E113,"NYIAKENG PUACHUE HMONG LETTER NTXA"},
+{0x1E110,"NYIAKENG PUACHUE HMONG LETTER NYA"},
+{0x1E128,"NYIAKENG PUACHUE HMONG LETTER O"},
+{0x1E129,"NYIAKENG PUACHUE HMONG LETTER OO"},
+{0x1E11A,"NYIAKENG PUACHUE HMONG LETTER PA"},
+{0x1E121,"NYIAKENG PUACHUE HMONG LETTER PLA"},
+{0x1E117,"NYIAKENG PUACHUE HMONG LETTER QA"},
+{0x1E116,"NYIAKENG PUACHUE HMONG LETTER RA"},
+{0x1E123,"NYIAKENG PUACHUE HMONG LETTER RRA"},
+{0x1E10A,"NYIAKENG PUACHUE HMONG LETTER SA"},
+{0x1E103,"NYIAKENG PUACHUE HMONG LETTER TA"},
+{0x1E101,"NYIAKENG PUACHUE HMONG LETTER TSA"},
+{0x1E114,"NYIAKENG PUACHUE HMONG LETTER TXA"},
+{0x1E127,"NYIAKENG PUACHUE HMONG LETTER U"},
+{0x1E112,"NYIAKENG PUACHUE HMONG LETTER VA"},
+{0x1E12C,"NYIAKENG PUACHUE HMONG LETTER W"},
+{0x1E106,"NYIAKENG PUACHUE HMONG LETTER XA"},
+{0x1E11B,"NYIAKENG PUACHUE HMONG LETTER XYA"},
+{0x1E118,"NYIAKENG PUACHUE HMONG LETTER YA"},
+{0x1E10B,"NYIAKENG PUACHUE HMONG LETTER ZA"},
+{0x1E14E,"NYIAKENG PUACHUE HMONG LOGOGRAM NYAJ"},
+{0x1E13A,"NYIAKENG PUACHUE HMONG SIGN FOR ANIMAL"},
+{0x1E13B,"NYIAKENG PUACHUE HMONG SIGN FOR INVERTEBRATE"},
+{0x1E139,"NYIAKENG PUACHUE HMONG SIGN FOR LOCATION"},
+{0x1E137,"NYIAKENG PUACHUE HMONG SIGN FOR PERSON"},
+{0x1E138,"NYIAKENG PUACHUE HMONG SIGN FOR THING"},
+{0x1E13C,"NYIAKENG PUACHUE HMONG SIGN XW XW"},
+{0x1E13D,"NYIAKENG PUACHUE HMONG SYLLABLE LENGTHENER"},
+{0x1E130,"NYIAKENG PUACHUE HMONG TONE-B"},
+{0x1E136,"NYIAKENG PUACHUE HMONG TONE-D"},
+{0x1E135,"NYIAKENG PUACHUE HMONG TONE-G"},
+{0x1E132,"NYIAKENG PUACHUE HMONG TONE-J"},
+{0x1E131,"NYIAKENG PUACHUE HMONG TONE-M"},
+{0x1E134,"NYIAKENG PUACHUE HMONG TONE-S"},
+{0x1E133,"NYIAKENG PUACHUE HMONG TONE-V"},
 {0xFFFC,"OBJECT REPLACEMENT CHARACTER"},
 {0x29A7,"OBLIQUE ANGLE OPENING DOWN"},
 {0x29A6,"OBLIQUE ANGLE OPENING UP"},
@@ -23218,6 +23539,8 @@
 {0x1C7F,"OL CHIKI PUNCTUATION DOUBLE MUCAAD"},
 {0x1C7E,"OL CHIKI PUNCTUATION MUCAAD"},
 {0x1C7B,"OL CHIKI RELAA"},
+{0x16FE2,"OLD CHINESE HOOK MARK"},
+{0x16FE3,"OLD CHINESE ITERATION MARK"},
 {0x10C80,"OLD HUNGARIAN CAPITAL LETTER A"},
 {0x10C81,"OLD HUNGARIAN CAPITAL LETTER AA"},
 {0x10C94,"OLD HUNGARIAN CAPITAL LETTER AK"},
@@ -23645,6 +23968,8 @@
 {0x1F5AF,"ONE BUTTON MOUSE"},
 {0x2024,"ONE DOT LEADER"},
 {0x2E2B,"ONE DOT OVER TWO DOTS PUNCTUATION"},
+{0x1FA71,"ONE-PIECE SWIMSUIT"},
+{0x1F9C5,"ONION"},
 {0x1F4D6,"OPEN BOOK"},
 {0x2423,"OPEN BOX"},
 {0x2732,"OPEN CENTRE ASTERISK"},
@@ -23670,6 +23995,7 @@
 {0x27C7,"OR WITH DOT INSIDE"},
 {0x1F4D9,"ORANGE BOOK"},
 {0x1F9E1,"ORANGE HEART"},
+{0x1F9A7,"ORANGUTAN"},
 {0x22B6,"ORIGINAL OF"},
 {0x0B56,"ORIYA AI LENGTH MARK"},
 {0x0B57,"ORIYA AU LENGTH MARK"},
@@ -23876,6 +24202,68 @@
 {0x10493,"OSMANYA LETTER WAW"},
 {0x10484,"OSMANYA LETTER XA"},
 {0x10495,"OSMANYA LETTER YA"},
+{0x1F9A6,"OTTER"},
+{0x1ED35,"OTTOMAN SIYAQ ALTERNATE NUMBER EIGHT"},
+{0x1ED32,"OTTOMAN SIYAQ ALTERNATE NUMBER FIVE"},
+{0x1ED31,"OTTOMAN SIYAQ ALTERNATE NUMBER FOUR"},
+{0x1ED38,"OTTOMAN SIYAQ ALTERNATE NUMBER FOUR HUNDRED"},
+{0x1ED36,"OTTOMAN SIYAQ ALTERNATE NUMBER NINE"},
+{0x1ED34,"OTTOMAN SIYAQ ALTERNATE NUMBER SEVEN"},
+{0x1ED33,"OTTOMAN SIYAQ ALTERNATE NUMBER SIX"},
+{0x1ED39,"OTTOMAN SIYAQ ALTERNATE NUMBER SIX HUNDRED"},
+{0x1ED37,"OTTOMAN SIYAQ ALTERNATE NUMBER TEN"},
+{0x1ED3B,"OTTOMAN SIYAQ ALTERNATE NUMBER TEN THOUSAND"},
+{0x1ED30,"OTTOMAN SIYAQ ALTERNATE NUMBER THREE"},
+{0x1ED2F,"OTTOMAN SIYAQ ALTERNATE NUMBER TWO"},
+{0x1ED3A,"OTTOMAN SIYAQ ALTERNATE NUMBER TWO THOUSAND"},
+{0x1ED3C,"OTTOMAN SIYAQ FRACTION ONE HALF"},
+{0x1ED3D,"OTTOMAN SIYAQ FRACTION ONE SIXTH"},
+{0x1ED2E,"OTTOMAN SIYAQ MARRATAN"},
+{0x1ED08,"OTTOMAN SIYAQ NUMBER EIGHT"},
+{0x1ED1A,"OTTOMAN SIYAQ NUMBER EIGHT HUNDRED"},
+{0x1ED23,"OTTOMAN SIYAQ NUMBER EIGHT THOUSAND"},
+{0x1ED11,"OTTOMAN SIYAQ NUMBER EIGHTY"},
+{0x1ED2C,"OTTOMAN SIYAQ NUMBER EIGHTY THOUSAND"},
+{0x1ED0E,"OTTOMAN SIYAQ NUMBER FIFTY"},
+{0x1ED29,"OTTOMAN SIYAQ NUMBER FIFTY THOUSAND"},
+{0x1ED05,"OTTOMAN SIYAQ NUMBER FIVE"},
+{0x1ED17,"OTTOMAN SIYAQ NUMBER FIVE HUNDRED"},
+{0x1ED20,"OTTOMAN SIYAQ NUMBER FIVE THOUSAND"},
+{0x1ED0D,"OTTOMAN SIYAQ NUMBER FORTY"},
+{0x1ED28,"OTTOMAN SIYAQ NUMBER FORTY THOUSAND"},
+{0x1ED04,"OTTOMAN SIYAQ NUMBER FOUR"},
+{0x1ED16,"OTTOMAN SIYAQ NUMBER FOUR HUNDRED"},
+{0x1ED1F,"OTTOMAN SIYAQ NUMBER FOUR THOUSAND"},
+{0x1ED09,"OTTOMAN SIYAQ NUMBER NINE"},
+{0x1ED1B,"OTTOMAN SIYAQ NUMBER NINE HUNDRED"},
+{0x1ED24,"OTTOMAN SIYAQ NUMBER NINE THOUSAND"},
+{0x1ED12,"OTTOMAN SIYAQ NUMBER NINETY"},
+{0x1ED2D,"OTTOMAN SIYAQ NUMBER NINETY THOUSAND"},
+{0x1ED01,"OTTOMAN SIYAQ NUMBER ONE"},
+{0x1ED13,"OTTOMAN SIYAQ NUMBER ONE HUNDRED"},
+{0x1ED1C,"OTTOMAN SIYAQ NUMBER ONE THOUSAND"},
+{0x1ED07,"OTTOMAN SIYAQ NUMBER SEVEN"},
+{0x1ED19,"OTTOMAN SIYAQ NUMBER SEVEN HUNDRED"},
+{0x1ED22,"OTTOMAN SIYAQ NUMBER SEVEN THOUSAND"},
+{0x1ED10,"OTTOMAN SIYAQ NUMBER SEVENTY"},
+{0x1ED2B,"OTTOMAN SIYAQ NUMBER SEVENTY THOUSAND"},
+{0x1ED06,"OTTOMAN SIYAQ NUMBER SIX"},
+{0x1ED18,"OTTOMAN SIYAQ NUMBER SIX HUNDRED"},
+{0x1ED21,"OTTOMAN SIYAQ NUMBER SIX THOUSAND"},
+{0x1ED0F,"OTTOMAN SIYAQ NUMBER SIXTY"},
+{0x1ED2A,"OTTOMAN SIYAQ NUMBER SIXTY THOUSAND"},
+{0x1ED0A,"OTTOMAN SIYAQ NUMBER TEN"},
+{0x1ED25,"OTTOMAN SIYAQ NUMBER TEN THOUSAND"},
+{0x1ED0C,"OTTOMAN SIYAQ NUMBER THIRTY"},
+{0x1ED27,"OTTOMAN SIYAQ NUMBER THIRTY THOUSAND"},
+{0x1ED03,"OTTOMAN SIYAQ NUMBER THREE"},
+{0x1ED15,"OTTOMAN SIYAQ NUMBER THREE HUNDRED"},
+{0x1ED1E,"OTTOMAN SIYAQ NUMBER THREE THOUSAND"},
+{0x1ED0B,"OTTOMAN SIYAQ NUMBER TWENTY"},
+{0x1ED26,"OTTOMAN SIYAQ NUMBER TWENTY THOUSAND"},
+{0x1ED02,"OTTOMAN SIYAQ NUMBER TWO"},
+{0x1ED14,"OTTOMAN SIYAQ NUMBER TWO HUNDRED"},
+{0x1ED1D,"OTTOMAN SIYAQ NUMBER TWO THOUSAND"},
 {0x2125,"OUNCE SIGN"},
 {0x1F4E4,"OUTBOX TRAY"},
 {0x272D,"OUTLINED BLACK STAR"},
@@ -23890,6 +24278,7 @@
 {0x203E,"OVERLINE"},
 {0x1F989,"OWL"},
 {0x1F402,"OX"},
+{0x1F9AA,"OYSTER"},
 {0x1F4E6,"PACKAGE"},
 {0x1F5CF,"PAGE"},
 {0x1F4C4,"PAGE FACING UP"},
@@ -24064,6 +24453,7 @@
 {0x1F95E,"PANCAKES"},
 {0x1F43C,"PANDA FACE"},
 {0x1F4CE,"PAPERCLIP"},
+{0x1FA82,"PARACHUTE"},
 {0x2029,"PARAGRAPH SEPARATOR"},
 {0x2E0F,"PARAGRAPHOS"},
 {0x2E4D,"PARAGRAPHUS MARK"},
@@ -24457,6 +24847,7 @@
 {0x00B6,"PILCROW SIGN"},
 {0x1F4A9,"PILE OF POO"},
 {0x1F48A,"PILL"},
+{0x1F90F,"PINCHING HAND"},
 {0x1F38D,"PINE DECORATION"},
 {0x1F34D,"PINEAPPLE"},
 {0x272F,"PINWHEEL STAR"},
@@ -24650,6 +25041,7 @@
 {0x2399,"PRINT SCREEN SYMBOL"},
 {0x1F5A8,"PRINTER"},
 {0x1F5B6,"PRINTER ICON"},
+{0x1F9AF,"PROBING CANE"},
 {0x1F6C7,"PROHIBITED SIGN"},
 {0x2305,"PROJECTIVE"},
 {0x214A,"PROPERTY LINE"},
@@ -24735,10 +25127,12 @@
 {0x2E06,"RAISED INTERPOLATION MARKER"},
 {0x1F16A,"RAISED MC SIGN"},
 {0x1F16B,"RAISED MD SIGN"},
+{0x1F16C,"RAISED MR SIGN"},
 {0x2E0B,"RAISED SQUARE"},
 {0x1F40F,"RAM"},
 {0x1F400,"RAT"},
 {0x2236,"RATIO"},
+{0x1FA92,"RAZOR"},
 {0x1F9FE,"RECEIPT"},
 {0x1F699,"RECREATIONAL VEHICLE"},
 {0x267C,"RECYCLED PAPER SYMBOL"},
@@ -25070,6 +25464,7 @@
 {0x2256,"RING IN EQUAL TO"},
 {0x2218,"RING OPERATOR"},
 {0x2E30,"RING POINT"},
+{0x1FA90,"RINGED PLANET"},
 {0x1F56D,"RINGING BELL"},
 {0x292B,"RISING DIAGONAL CROSSING FALLING DIAGONAL"},
 {0x2930,"RISING DIAGONAL CROSSING SOUTH EAST ARROW"},
@@ -25267,6 +25662,7 @@
 {0x2BF3,"RUSSIAN ASTROLOGICAL SYMBOL VIGINTILE"},
 {0x29CC,"S IN TRIANGLE"},
 {0x1F9F7,"SAFETY PIN"},
+{0x1F9BA,"SAFETY VEST"},
 {0x2650,"SAGITTARIUS"},
 {0x26F5,"SAILBOAT"},
 {0x1F376,"SAKE BOTTLE AND CUP"},
@@ -25338,6 +25734,7 @@
 {0x1F676,"SANS-SERIF HEAVY DOUBLE TURNED COMMA QUOTATION MARK ORNAMENT"},
 {0x1F678,"SANS-SERIF HEAVY LOW DOUBLE COMMA QUOTATION MARK ORNAMENT"},
 {0x1F67A,"SANS-SERIF INTERROBANG ORNAMENT"},
+{0x1F97B,"SARI"},
 {0x1F6F0,"SATELLITE"},
 {0x1F4E1,"SATELLITE ANTENNA"},
 {0x2644,"SATURN"},
@@ -25640,6 +26037,7 @@
 {0x1BCA2,"SHORTHAND FORMAT DOWN STEP"},
 {0x1BCA0,"SHORTHAND FORMAT LETTER OVERLAP"},
 {0x1BCA3,"SHORTHAND FORMAT UP STEP"},
+{0x1FA73,"SHORTS"},
 {0x237D,"SHOULDERED OPEN BOX"},
 {0x1F6BF,"SHOWER"},
 {0x1F990,"SHRIMP"},
@@ -26550,6 +26948,7 @@
 {0x26F7,"SKIER"},
 {0x1F480,"SKULL"},
 {0x2620,"SKULL AND CROSSBONES"},
+{0x1F9A8,"SKUNK"},
 {0x2A96,"SLANTED EQUAL TO OR GREATER-THAN"},
 {0x2A98,"SLANTED EQUAL TO OR GREATER-THAN WITH DOT INSIDE"},
 {0x2A95,"SLANTED EQUAL TO OR LESS-THAN"},
@@ -26570,6 +26969,7 @@
 {0x2A58,"SLOPING LARGE AND"},
 {0x2A57,"SLOPING LARGE OR"},
 {0x1F3B0,"SLOT MACHINE"},
+{0x1F9A5,"SLOTH"},
 {0x1F6E9,"SMALL AIRPLANE"},
 {0xFE60,"SMALL AMPERSAND"},
 {0xFE61,"SMALL ASTERISK"},
@@ -26833,6 +27233,8 @@
 {0x11A9B,"SOYOMBO MARK SHAD"},
 {0x11A9A,"SOYOMBO MARK TSHEG"},
 {0x11A96,"SOYOMBO SIGN ANUSVARA"},
+{0x11A84,"SOYOMBO SIGN JIHVAMULIYA"},
+{0x11A85,"SOYOMBO SIGN UPADHMANIYA"},
 {0x11A97,"SOYOMBO SIGN VISARGA"},
 {0x11A99,"SOYOMBO SUBJOINER"},
 {0x11AA1,"SOYOMBO TERMINAL MARK-1"},
@@ -27238,6 +27640,7 @@
 {0x2695,"STAFF OF AESCULAPIUS"},
 {0x269A,"STAFF OF HERMES"},
 {0x1F583,"STAMPED ENVELOPE"},
+{0x1F9CD,"STANDING PERSON"},
 {0x262A,"STAR AND CRESCENT"},
 {0x225B,"STAR EQUALS"},
 {0x2721,"STAR OF DAVID"},
@@ -27249,6 +27652,7 @@
 {0x1F682,"STEAM LOCOMOTIVE"},
 {0x1F35C,"STEAMING BOWL"},
 {0x2E3C,"STENOGRAPHIC FULL STOP"},
+{0x1FA7A,"STETHOSCOPE"},
 {0x1F5E0,"STOCK CHART"},
 {0x23F1,"STOPWATCH"},
 {0x1F4CF,"STRAIGHT RULER"},
@@ -27984,6 +28388,7 @@
 {0x11680,"TAKRI LETTER A"},
 {0x11681,"TAKRI LETTER AA"},
 {0x11687,"TAKRI LETTER AI"},
+{0x116B8,"TAKRI LETTER ARCHAIC KHA"},
 {0x11689,"TAKRI LETTER AU"},
 {0x116A0,"TAKRI LETTER BA"},
 {0x116A1,"TAKRI LETTER BHA"},
@@ -28039,9 +28444,11 @@
 {0x116B1,"TAKRI VOWEL SIGN UU"},
 {0x1D378,"TALLY MARK FIVE"},
 {0x1D377,"TALLY MARK ONE"},
+{0x11FEB,"TAMIL AND ODD SIGN"},
 {0x0BF8,"TAMIL AS ABOVE SIGN"},
 {0x0BD7,"TAMIL AU LENGTH MARK"},
 {0x0BF7,"TAMIL CREDIT SIGN"},
+{0x11FEA,"TAMIL CURRENT SIGN"},
 {0x0BF3,"TAMIL DAY SIGN"},
 {0x0BF6,"TAMIL DEBIT SIGN"},
 {0x0BEE,"TAMIL DIGIT EIGHT"},
@@ -28054,6 +28461,30 @@
 {0x0BE9,"TAMIL DIGIT THREE"},
 {0x0BE8,"TAMIL DIGIT TWO"},
 {0x0BE6,"TAMIL DIGIT ZERO"},
+{0x11FE5,"TAMIL DRY CULTIVATION SIGN"},
+{0x11FD4,"TAMIL FRACTION DOWNSCALING FACTOR KIIZH"},
+{0x11FCC,"TAMIL FRACTION ONE EIGHTH"},
+{0x11FC2,"TAMIL FRACTION ONE EIGHTIETH"},
+{0x11FCF,"TAMIL FRACTION ONE FIFTH"},
+{0x11FC4,"TAMIL FRACTION ONE FORTIETH"},
+{0x11FD1,"TAMIL FRACTION ONE HALF-1"},
+{0x11FD2,"TAMIL FRACTION ONE HALF-2"},
+{0x11FC1,"TAMIL FRACTION ONE ONE-HUNDRED-AND-SIXTIETH"},
+{0x11FD0,"TAMIL FRACTION ONE QUARTER"},
+{0x11FC9,"TAMIL FRACTION ONE SIXTEENTH-1"},
+{0x11FCA,"TAMIL FRACTION ONE SIXTEENTH-2"},
+{0x11FC3,"TAMIL FRACTION ONE SIXTY-FOURTH"},
+{0x11FCB,"TAMIL FRACTION ONE TENTH"},
+{0x11FC5,"TAMIL FRACTION ONE THIRTY-SECOND"},
+{0x11FC0,"TAMIL FRACTION ONE THREE-HUNDRED-AND-TWENTIETH"},
+{0x11FC8,"TAMIL FRACTION ONE TWENTIETH"},
+{0x11FC6,"TAMIL FRACTION THREE EIGHTIETHS"},
+{0x11FD3,"TAMIL FRACTION THREE QUARTERS"},
+{0x11FCE,"TAMIL FRACTION THREE SIXTEENTHS"},
+{0x11FC7,"TAMIL FRACTION THREE SIXTY-FOURTHS"},
+{0x11FCD,"TAMIL FRACTION THREE TWENTIETHS"},
+{0x11FEE,"TAMIL IN POSSESSION SIGN"},
+{0x11FE6,"TAMIL LAND SIGN"},
 {0x0B85,"TAMIL LETTER A"},
 {0x0B86,"TAMIL LETTER AA"},
 {0x0B90,"TAMIL LETTER AI"},
@@ -28095,10 +28526,34 @@
 {0x0BFA,"TAMIL NUMBER SIGN"},
 {0x0BF0,"TAMIL NUMBER TEN"},
 {0x0BD0,"TAMIL OM"},
+{0x11FFF,"TAMIL PUNCTUATION END OF TEXT"},
 {0x0BF9,"TAMIL RUPEE SIGN"},
+{0x11FE7,"TAMIL SALT PAN SIGN"},
+{0x11FD7,"TAMIL SIGN AAZHAAKKU"},
 {0x0B82,"TAMIL SIGN ANUSVARA"},
+{0x11FD6,"TAMIL SIGN CEVITU"},
+{0x11FDD,"TAMIL SIGN KAACU"},
+{0x11FDA,"TAMIL SIGN KURUNI"},
+{0x11FE2,"TAMIL SIGN KUZHI"},
+{0x11FDC,"TAMIL SIGN MUKKURUNI"},
+{0x11FF0,"TAMIL SIGN MUTHALIYA"},
+{0x11FD9,"TAMIL SIGN MUUVUZHAKKU"},
+{0x11FD5,"TAMIL SIGN NEL"},
+{0x11FE1,"TAMIL SIGN PAARAM"},
+{0x11FDE,"TAMIL SIGN PANAM"},
+{0x11FDB,"TAMIL SIGN PATHAKKU"},
+{0x11FDF,"TAMIL SIGN PON"},
+{0x11FD8,"TAMIL SIGN UZHAKKU"},
+{0x11FF1,"TAMIL SIGN VAKAIYARAA"},
+{0x11FE0,"TAMIL SIGN VARAAKAN"},
+{0x11FE3,"TAMIL SIGN VELI"},
 {0x0BCD,"TAMIL SIGN VIRAMA"},
 {0x0B83,"TAMIL SIGN VISARGA"},
+{0x11FEC,"TAMIL SPENT SIGN"},
+{0x11FEF,"TAMIL STARTING FROM SIGN"},
+{0x11FED,"TAMIL TOTAL SIGN"},
+{0x11FE8,"TAMIL TRADITIONAL CREDIT SIGN"},
+{0x11FE9,"TAMIL TRADITIONAL NUMBER SIGN"},
 {0x0BBE,"TAMIL VOWEL SIGN AA"},
 {0x0BC8,"TAMIL VOWEL SIGN AI"},
 {0x0BCC,"TAMIL VOWEL SIGN AU"},
@@ -28110,6 +28565,7 @@
 {0x0BCB,"TAMIL VOWEL SIGN OO"},
 {0x0BC1,"TAMIL VOWEL SIGN U"},
 {0x0BC2,"TAMIL VOWEL SIGN UU"},
+{0x11FE4,"TAMIL WET CULTIVATION SIGN"},
 {0x0BF5,"TAMIL YEAR SIGN"},
 {0x1F38B,"TANABATA TREE"},
 {0x1F34A,"TANGERINE"},
@@ -28965,6 +29421,7 @@
 {0x0C01,"TELUGU SIGN CANDRABINDU"},
 {0x0C04,"TELUGU SIGN COMBINING ANUSVARA ABOVE"},
 {0x0C00,"TELUGU SIGN COMBINING CANDRABINDU ABOVE"},
+{0x0C77,"TELUGU SIGN SIDDHAM"},
 {0x0C7F,"TELUGU SIGN TUUMU"},
 {0x0C4D,"TELUGU SIGN VIRAMA"},
 {0x0C03,"TELUGU SIGN VISARGA"},
@@ -30462,6 +30919,7 @@
 {0x1CEC,"VEDIC SIGN ANUSVARA VAMAGOMUKHA WITH TAIL"},
 {0x1CF2,"VEDIC SIGN ARDHAVISARGA"},
 {0x1CF7,"VEDIC SIGN ATIKRAMA"},
+{0x1CFA,"VEDIC SIGN DOUBLE ANUSVARA ANTARGOMUKHA"},
 {0x1CEE,"VEDIC SIGN HEXIFORM LONG ANUSVARA"},
 {0x1CF5,"VEDIC SIGN JIHVAMULIYA"},
 {0x1CEF,"VEDIC SIGN LONG ANUSVARA"},
@@ -30566,6 +31024,66 @@
 {0x2156,"VULGAR FRACTION TWO FIFTHS"},
 {0x2154,"VULGAR FRACTION TWO THIRDS"},
 {0x2189,"VULGAR FRACTION ZERO THIRDS"},
+{0x1F9C7,"WAFFLE"},
+{0x1E2F8,"WANCHO DIGIT EIGHT"},
+{0x1E2F5,"WANCHO DIGIT FIVE"},
+{0x1E2F4,"WANCHO DIGIT FOUR"},
+{0x1E2F9,"WANCHO DIGIT NINE"},
+{0x1E2F1,"WANCHO DIGIT ONE"},
+{0x1E2F7,"WANCHO DIGIT SEVEN"},
+{0x1E2F6,"WANCHO DIGIT SIX"},
+{0x1E2F3,"WANCHO DIGIT THREE"},
+{0x1E2F2,"WANCHO DIGIT TWO"},
+{0x1E2F0,"WANCHO DIGIT ZERO"},
+{0x1E2C1,"WANCHO LETTER A"},
+{0x1E2C0,"WANCHO LETTER AA"},
+{0x1E2E8,"WANCHO LETTER AAN"},
+{0x1E2E3,"WANCHO LETTER AANG"},
+{0x1E2E4,"WANCHO LETTER ANG"},
+{0x1E2D6,"WANCHO LETTER AU"},
+{0x1E2C2,"WANCHO LETTER BA"},
+{0x1E2C3,"WANCHO LETTER CA"},
+{0x1E2C4,"WANCHO LETTER DA"},
+{0x1E2DB,"WANCHO LETTER E"},
+{0x1E2E7,"WANCHO LETTER EN"},
+{0x1E2CD,"WANCHO LETTER FA"},
+{0x1E2C5,"WANCHO LETTER GA"},
+{0x1E2DA,"WANCHO LETTER HA"},
+{0x1E2DC,"WANCHO LETTER I"},
+{0x1E2E5,"WANCHO LETTER ING"},
+{0x1E2D0,"WANCHO LETTER JA"},
+{0x1E2D4,"WANCHO LETTER KA"},
+{0x1E2D9,"WANCHO LETTER KHA"},
+{0x1E2C8,"WANCHO LETTER LA"},
+{0x1E2DF,"WANCHO LETTER LLHA"},
+{0x1E2D8,"WANCHO LETTER MA"},
+{0x1E2C9,"WANCHO LETTER NA"},
+{0x1E2DD,"WANCHO LETTER NGA"},
+{0x1E2E9,"WANCHO LETTER NYA"},
+{0x1E2D5,"WANCHO LETTER O"},
+{0x1E2E6,"WANCHO LETTER ON"},
+{0x1E2E2,"WANCHO LETTER ONG"},
+{0x1E2CA,"WANCHO LETTER PA"},
+{0x1E2C7,"WANCHO LETTER PHA"},
+{0x1E2D7,"WANCHO LETTER RA"},
+{0x1E2CE,"WANCHO LETTER SA"},
+{0x1E2CF,"WANCHO LETTER SHA"},
+{0x1E2CB,"WANCHO LETTER TA"},
+{0x1E2CC,"WANCHO LETTER THA"},
+{0x1E2E1,"WANCHO LETTER TRA"},
+{0x1E2E0,"WANCHO LETTER TSA"},
+{0x1E2DE,"WANCHO LETTER U"},
+{0x1E2EA,"WANCHO LETTER UEN"},
+{0x1E2D3,"WANCHO LETTER VA"},
+{0x1E2D2,"WANCHO LETTER WA"},
+{0x1E2C6,"WANCHO LETTER YA"},
+{0x1E2EB,"WANCHO LETTER YIH"},
+{0x1E2D1,"WANCHO LETTER ZA"},
+{0x1E2FF,"WANCHO NGUN SIGN"},
+{0x1E2EE,"WANCHO TONE KOI"},
+{0x1E2EF,"WANCHO TONE KOINI"},
+{0x1E2EC,"WANCHO TONE TUP"},
+{0x1E2ED,"WANCHO TONE TUPNI"},
 {0x1F318,"WANING CRESCENT MOON SYMBOL"},
 {0x1F316,"WANING GIBBOUS MOON SYMBOL"},
 {0x118A1,"WARANG CITI CAPITAL LETTER A"},
@@ -30685,11 +31203,38 @@
 {0x1F8AD,"WHITE ARROW SHAFT WIDTH TWO THIRDS"},
 {0x25E6,"WHITE BULLET"},
 {0x2657,"WHITE CHESS BISHOP"},
+{0x1FA0C,"WHITE CHESS BISHOP ROTATED NINETY DEGREES"},
+{0x1FA36,"WHITE CHESS BISHOP ROTATED TWO HUNDRED SEVENTY DEGREES"},
+{0x1FA48,"WHITE CHESS EQUIHOPPER"},
+{0x1FA4B,"WHITE CHESS EQUIHOPPER ROTATED NINETY DEGREES"},
 {0x2654,"WHITE CHESS KING"},
+{0x1FA09,"WHITE CHESS KING ROTATED NINETY DEGREES"},
+{0x1FA33,"WHITE CHESS KING ROTATED TWO HUNDRED SEVENTY DEGREES"},
 {0x2658,"WHITE CHESS KNIGHT"},
+{0x1FA06,"WHITE CHESS KNIGHT ROTATED FORTY-FIVE DEGREES"},
+{0x1FA0D,"WHITE CHESS KNIGHT ROTATED NINETY DEGREES"},
+{0x1FA1B,"WHITE CHESS KNIGHT ROTATED ONE HUNDRED THIRTY-FIVE DEGREES"},
+{0x1FA45,"WHITE CHESS KNIGHT ROTATED THREE HUNDRED FIFTEEN DEGREES"},
+{0x1FA37,"WHITE CHESS KNIGHT ROTATED TWO HUNDRED SEVENTY DEGREES"},
+{0x1FA30,"WHITE CHESS KNIGHT ROTATED TWO HUNDRED TWENTY-FIVE DEGREES"},
+{0x1FA50,"WHITE CHESS KNIGHT-BISHOP"},
+{0x1FA4E,"WHITE CHESS KNIGHT-QUEEN"},
+{0x1FA4F,"WHITE CHESS KNIGHT-ROOK"},
 {0x2659,"WHITE CHESS PAWN"},
+{0x1FA0E,"WHITE CHESS PAWN ROTATED NINETY DEGREES"},
+{0x1FA38,"WHITE CHESS PAWN ROTATED TWO HUNDRED SEVENTY DEGREES"},
 {0x2655,"WHITE CHESS QUEEN"},
+{0x1FA0A,"WHITE CHESS QUEEN ROTATED NINETY DEGREES"},
+{0x1FA34,"WHITE CHESS QUEEN ROTATED TWO HUNDRED SEVENTY DEGREES"},
 {0x2656,"WHITE CHESS ROOK"},
+{0x1FA0B,"WHITE CHESS ROOK ROTATED NINETY DEGREES"},
+{0x1FA35,"WHITE CHESS ROOK ROTATED TWO HUNDRED SEVENTY DEGREES"},
+{0x1FA21,"WHITE CHESS TURNED BISHOP"},
+{0x1FA1E,"WHITE CHESS TURNED KING"},
+{0x1FA22,"WHITE CHESS TURNED KNIGHT"},
+{0x1FA23,"WHITE CHESS TURNED PAWN"},
+{0x1FA1F,"WHITE CHESS TURNED QUEEN"},
+{0x1FA20,"WHITE CHESS TURNED ROOK"},
 {0x25CB,"WHITE CIRCLE"},
 {0x1F78A,"WHITE CIRCLE CONTAINING BLACK SMALL CIRCLE"},
 {0x2686,"WHITE CIRCLE WITH DOT RIGHT"},
@@ -30726,6 +31271,7 @@
 {0x2727,"WHITE FOUR POINTED STAR"},
 {0x2639,"WHITE FROWNING FACE"},
 {0x1F5AB,"WHITE HARD SHELL FLOPPY DISK"},
+{0x1F90D,"WHITE HEART"},
 {0x2661,"WHITE HEART SUIT"},
 {0x2705,"WHITE HEAVY CHECK MARK"},
 {0x2B21,"WHITE HEXAGON"},
@@ -30882,6 +31428,7 @@
 {0x1FA61,"XIANGQI RED MANDARIN"},
 {0x1FA66,"XIANGQI RED SOLDIER"},
 {0x22BB,"XOR"},
+{0x1F971,"YAWNING FACE"},
 {0x1F49B,"YELLOW HEART"},
 {0x00A5,"YEN SIGN"},
 {0xA49B,"YI RADICAL BBUT"},
@@ -32105,6 +32652,7 @@
 {0xA2E7,"YI SYLLABLE ZZYT"},
 {0xA2E8,"YI SYLLABLE ZZYX"},
 {0x262F,"YIN YANG"},
+{0x1FA80,"YO-YO"},
 {0x22FF,"Z NOTATION BAG MEMBERSHIP"},
 {0x2A64,"Z NOTATION DOMAIN ANTIRESTRICTION"},
 {0x2989,"Z NOTATION LEFT BINDING BRACKET"},

Modified: trunk/Build/source/libs/teckit/TECkit-src/source/ulong_chartraits.h
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/source/ulong_chartraits.h	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/source/ulong_chartraits.h	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,5 +1,4 @@
-#ifndef __ulong_chartraits_h__
-#define __ulong_chartraits_h__
+#pragma once
 
 #include <iostream>
 #include <string>
@@ -59,7 +58,7 @@
       { 
         const char_type* __p = __s; 
         while (*__p) ++__p; 
-        return (__p - __s); 
+        return static_cast<size_t>(__p - __s);
       }
 
       static const char_type* 
@@ -72,11 +71,11 @@
 
       static char_type* 
       move(char_type* __s1, const char_type* __s2, size_t __n)
-      { return (char_type*) memmove(__s1, __s2, __n * sizeof(char_type)); }
+      { return static_cast<char_type*>(memmove(__s1, __s2, __n * sizeof(char_type))); }
 
       static char_type* 
       copy(char_type* __s1, const char_type* __s2, size_t __n)
-      { return (char_type*) memcpy(__s1, __s2, __n * sizeof(char_type)); }
+      { return static_cast<char_type*>(memcpy(__s1, __s2, __n * sizeof(char_type))); }
 
       static char_type* 
       assign(char_type* __s, size_t __n, char_type __a)
@@ -98,7 +97,7 @@
       { return __c1 == __c2; }
 
       static int_type 
-      eof() { return static_cast<int_type>(-1); }
+      eof() { return int_type(-1); }
 
       static int_type 
       not_eof(const int_type& __c)
@@ -105,5 +104,3 @@
       { return eq_int_type(__c, eof()) ? int_type(0) : __c; }
     };
 }
-
-#endif

Modified: trunk/Build/source/libs/teckit/TECkit-src/test/NormalizationTest.txt
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/test/NormalizationTest.txt	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/test/NormalizationTest.txt	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,6 +1,6 @@
-# NormalizationTest-11.0.0.txt
-# Date: 2018-02-19, 18:33:08 GMT
-# © 2018 Unicode®, Inc.
+# NormalizationTest-12.0.0.txt
+# Date: 2019-01-22, 08:18:33 GMT
+# © 2019 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
 #
@@ -16363,6 +16363,7 @@
 1F14F;1F14F;1F14F;0057 0043;0057 0043; # (🅏; 🅏; 🅏; WC; WC; ) SQUARED WC
 1F16A;1F16A;1F16A;004D 0043;004D 0043; # (🅪; 🅪; 🅪; MC; MC; ) RAISED MC SIGN
 1F16B;1F16B;1F16B;004D 0044;004D 0044; # (🅫; 🅫; 🅫; MD; MD; ) RAISED MD SIGN
+1F16C;1F16C;1F16C;004D 0052;004D 0052; # (🅬; 🅬; 🅬; MR; MR; ) RAISED MR SIGN
 1F190;1F190;1F190;0044 004A;0044 004A; # (🆐; 🆐; 🆐; DJ; DJ; ) SQUARE DJ
 1F200;1F200;1F200;307B 304B;307B 304B; # (🈀; 🈀; 🈀; ほか; ほか; ) SQUARE HIRAGANA HOKA
 1F201;1F201;1F201;30B3 30B3;30B3 30B3; # (🈁; 🈁; 🈁; ココ; ココ; ) SQUARED KATAKANA KOKO
@@ -17685,6 +17686,8 @@
 0061 0EB8 0EC8 0EB8 0E48 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062;0061 0E48 0EB8 0EB8 0EC8 0062; # (a◌ຸ◌່◌ຸ◌่b; a◌่◌ຸ◌ຸ◌່b; a◌่◌ຸ◌ຸ◌່b; a◌่◌ຸ◌ຸ◌່b; a◌่◌ຸ◌ຸ◌່b; ) LATIN SMALL LETTER A, LAO VOWEL SIGN U, LAO TONE MAI EK, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, LATIN SMALL LETTER B
 0061 0EC8 0EB8 0E48 0EB9 0062;0061 0E48 0EB8 0EB9 0EC8 0062;0061 0E48 0EB8 0EB9 0EC8 0062;0061 0E48 0EB8 0EB9 0EC8 0062;0061 0E48 0EB8 0EB9 0EC8 0062; # (a◌່◌ຸ◌่◌ູb; a◌่◌ຸ◌ູ◌່b; a◌่◌ຸ◌ູ◌່b; a◌่◌ຸ◌ູ◌່b; a◌่◌ຸ◌ູ◌່b; ) LATIN SMALL LETTER A, LAO TONE MAI EK, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, LAO VOWEL SIGN UU, LATIN SMALL LETTER B
 0061 0EB9 0EC8 0EB8 0E48 0062;0061 0E48 0EB9 0EB8 0EC8 0062;0061 0E48 0EB9 0EB8 0EC8 0062;0061 0E48 0EB9 0EB8 0EC8 0062;0061 0E48 0EB9 0EB8 0EC8 0062; # (a◌ູ◌່◌ຸ◌่b; a◌่◌ູ◌ຸ◌່b; a◌่◌ູ◌ຸ◌່b; a◌่◌ູ◌ຸ◌່b; a◌่◌ູ◌ຸ◌່b; ) LATIN SMALL LETTER A, LAO VOWEL SIGN UU, LAO TONE MAI EK, LAO VOWEL SIGN U, THAI CHARACTER MAI EK, LATIN SMALL LETTER B
+0061 05B0 094D 3099 0EBA 0062;0061 3099 094D 0EBA 05B0 0062;0061 3099 094D 0EBA 05B0 0062;0061 3099 094D 0EBA 05B0 0062;0061 3099 094D 0EBA 05B0 0062; # (a◌ְ◌्◌゙◌຺b; a◌゙◌्◌຺◌ְb; a◌゙◌्◌຺◌ְb; a◌゙◌्◌຺◌ְb; a◌゙◌्◌຺◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LAO SIGN PALI VIRAMA, LATIN SMALL LETTER B
+0061 0EBA 05B0 094D 3099 0062;0061 3099 0EBA 094D 05B0 0062;0061 3099 0EBA 094D 05B0 0062;0061 3099 0EBA 094D 05B0 0062;0061 3099 0EBA 094D 05B0 0062; # (a◌຺◌ְ◌्◌゙b; a◌゙◌຺◌्◌ְb; a◌゙◌຺◌्◌ְb; a◌゙◌຺◌्◌ְb; a◌゙◌຺◌्◌ְb; ) LATIN SMALL LETTER A, LAO SIGN PALI VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 0061 0F71 0EC8 0EB8 0EC8 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062; # (a◌ཱ◌່◌ຸ◌່b; a◌ຸ◌່◌່◌ཱb; a◌ຸ◌່◌່◌ཱb; a◌ຸ◌່◌່◌ཱb; a◌ຸ◌່◌່◌ཱb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LAO TONE MAI EK, LATIN SMALL LETTER B
 0061 0EC8 0F71 0EC8 0EB8 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062;0061 0EB8 0EC8 0EC8 0F71 0062; # (a◌່◌ཱ◌່◌ຸb; a◌ຸ◌່◌່◌ཱb; a◌ຸ◌່◌່◌ཱb; a◌ຸ◌່◌່◌ཱb; a◌ຸ◌່◌່◌ཱb; ) LATIN SMALL LETTER A, LAO TONE MAI EK, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LATIN SMALL LETTER B
 0061 0F71 0EC8 0EB8 0EC9 0062;0061 0EB8 0EC8 0EC9 0F71 0062;0061 0EB8 0EC8 0EC9 0F71 0062;0061 0EB8 0EC8 0EC9 0F71 0062;0061 0EB8 0EC8 0EC9 0F71 0062; # (a◌ཱ◌່◌ຸ◌້b; a◌ຸ◌່◌້◌ཱb; a◌ຸ◌່◌້◌ཱb; a◌ຸ◌່◌້◌ཱb; a◌ຸ◌່◌້◌ཱb; ) LATIN SMALL LETTER A, TIBETAN VOWEL SIGN AA, LAO TONE MAI EK, LAO VOWEL SIGN U, LAO TONE MAI THO, LATIN SMALL LETTER B
@@ -18453,6 +18456,8 @@
 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; # (a◌𑠹◌ְ◌्◌゙b; a◌゙◌𑠹◌्◌ְb; a◌゙◌𑠹◌्◌ְb; a◌゙◌𑠹◌्◌ְb; a◌゙◌𑠹◌्◌ְb; ) LATIN SMALL LETTER A, DOGRA SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 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; # (a◌゙◌़◌̴◌𑠺b; a◌̴◌़◌𑠺◌゙b; a◌̴◌़◌𑠺◌゙b; a◌̴◌़◌𑠺◌゙b; a◌̴◌़◌𑠺◌゙b; ) LATIN SMALL LETTER A, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, DOGRA SIGN NUKTA, LATIN SMALL LETTER B
 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; # (a◌𑠺◌゙◌़◌̴b; a◌̴◌𑠺◌़◌゙b; a◌̴◌𑠺◌़◌゙b; a◌̴◌𑠺◌़◌゙b; a◌̴◌𑠺◌़◌゙b; ) LATIN SMALL LETTER A, DOGRA SIGN NUKTA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, DEVANAGARI SIGN NUKTA, COMBINING TILDE OVERLAY, LATIN SMALL LETTER B
+0061 05B0 094D 3099 119E0 0062;0061 3099 094D 119E0 05B0 0062;0061 3099 094D 119E0 05B0 0062;0061 3099 094D 119E0 05B0 0062;0061 3099 094D 119E0 05B0 0062; # (a◌ְ◌्◌゙◌𑧠b; a◌゙◌्◌𑧠◌ְb; a◌゙◌्◌𑧠◌ְb; a◌゙◌्◌𑧠◌ְb; a◌゙◌्◌𑧠◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, NANDINAGARI SIGN VIRAMA, LATIN SMALL LETTER B
+0061 119E0 05B0 094D 3099 0062;0061 3099 119E0 094D 05B0 0062;0061 3099 119E0 094D 05B0 0062;0061 3099 119E0 094D 05B0 0062;0061 3099 119E0 094D 05B0 0062; # (a◌𑧠◌ְ◌्◌゙b; a◌゙◌𑧠◌्◌ְb; a◌゙◌𑧠◌्◌ְb; a◌゙◌𑧠◌्◌ְb; a◌゙◌𑧠◌्◌ְb; ) LATIN SMALL LETTER A, NANDINAGARI SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 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; # (a◌ְ◌्◌゙◌𑨴b; a◌゙◌्◌𑨴◌ְb; a◌゙◌्◌𑨴◌ְb; a◌゙◌्◌𑨴◌ְb; a◌゙◌्◌𑨴◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, ZANABAZAR SQUARE SIGN VIRAMA, LATIN SMALL LETTER B
 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; # (a◌𑨴◌ְ◌्◌゙b; a◌゙◌𑨴◌्◌ְb; a◌゙◌𑨴◌्◌ְb; a◌゙◌𑨴◌्◌ְb; a◌゙◌𑨴◌्◌ְb; ) LATIN SMALL LETTER A, ZANABAZAR SQUARE SIGN VIRAMA, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, LATIN SMALL LETTER B
 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; # (a◌ְ◌्◌゙◌𑩇b; a◌゙◌्◌𑩇◌ְb; a◌゙◌्◌𑩇◌ְb; a◌゙◌्◌𑩇◌ְb; a◌゙◌्◌𑩇◌ְb; ) LATIN SMALL LETTER A, HEBREW POINT SHEVA, DEVANAGARI SIGN VIRAMA, COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK, ZANABAZAR SQUARE SUBJOINER, LATIN SMALL LETTER B
@@ -18637,6 +18642,28 @@
 0061 1E029 0315 0300 05AE 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062;0061 05AE 1E029 0300 0315 0062; # (a◌𞀩◌̕◌̀◌֮b; a◌֮◌𞀩◌̀◌̕b; a◌֮◌𞀩◌̀◌̕b; a◌֮◌𞀩◌̀◌̕b; a◌֮◌𞀩◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER IOTATED BIG YUS, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 0315 0300 05AE 1E02A 0062;00E0 05AE 1E02A 0315 0062;0061 05AE 0300 1E02A 0315 0062;00E0 05AE 1E02A 0315 0062;0061 05AE 0300 1E02A 0315 0062; # (a◌̕◌̀◌֮◌𞀪b; à◌֮◌𞀪◌̕b; a◌֮◌̀◌𞀪◌̕b; à◌֮◌𞀪◌̕b; a◌֮◌̀◌𞀪◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, COMBINING GLAGOLITIC LETTER FITA, LATIN SMALL LETTER B
 0061 1E02A 0315 0300 05AE 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062;0061 05AE 1E02A 0300 0315 0062; # (a◌𞀪◌̕◌̀◌֮b; a◌֮◌𞀪◌̀◌̕b; a◌֮◌𞀪◌̀◌̕b; a◌֮◌𞀪◌̀◌̕b; a◌֮◌𞀪◌̀◌̕b; ) LATIN SMALL LETTER A, COMBINING GLAGOLITIC LETTER FITA, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E130 0062;00E0 05AE 1E130 0315 0062;0061 05AE 0300 1E130 0315 0062;00E0 05AE 1E130 0315 0062;0061 05AE 0300 1E130 0315 0062; # (a◌̕◌̀◌֮◌𞄰b; à◌֮◌𞄰◌̕b; a◌֮◌̀◌𞄰◌̕b; à◌֮◌𞄰◌̕b; a◌֮◌̀◌𞄰◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-B, LATIN SMALL LETTER B
+0061 1E130 0315 0300 05AE 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062;0061 05AE 1E130 0300 0315 0062; # (a◌𞄰◌̕◌̀◌֮b; a◌֮◌𞄰◌̀◌̕b; a◌֮◌𞄰◌̀◌̕b; a◌֮◌𞄰◌̀◌̕b; a◌֮◌𞄰◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-B, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E131 0062;00E0 05AE 1E131 0315 0062;0061 05AE 0300 1E131 0315 0062;00E0 05AE 1E131 0315 0062;0061 05AE 0300 1E131 0315 0062; # (a◌̕◌̀◌֮◌𞄱b; à◌֮◌𞄱◌̕b; a◌֮◌̀◌𞄱◌̕b; à◌֮◌𞄱◌̕b; a◌֮◌̀◌𞄱◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-M, LATIN SMALL LETTER B
+0061 1E131 0315 0300 05AE 0062;0061 05AE 1E131 0300 0315 0062;0061 05AE 1E131 0300 0315 0062;0061 05AE 1E131 0300 0315 0062;0061 05AE 1E131 0300 0315 0062; # (a◌𞄱◌̕◌̀◌֮b; a◌֮◌𞄱◌̀◌̕b; a◌֮◌𞄱◌̀◌̕b; a◌֮◌𞄱◌̀◌̕b; a◌֮◌𞄱◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-M, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E132 0062;00E0 05AE 1E132 0315 0062;0061 05AE 0300 1E132 0315 0062;00E0 05AE 1E132 0315 0062;0061 05AE 0300 1E132 0315 0062; # (a◌̕◌̀◌֮◌𞄲b; à◌֮◌𞄲◌̕b; a◌֮◌̀◌𞄲◌̕b; à◌֮◌𞄲◌̕b; a◌֮◌̀◌𞄲◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-J, LATIN SMALL LETTER B
+0061 1E132 0315 0300 05AE 0062;0061 05AE 1E132 0300 0315 0062;0061 05AE 1E132 0300 0315 0062;0061 05AE 1E132 0300 0315 0062;0061 05AE 1E132 0300 0315 0062; # (a◌𞄲◌̕◌̀◌֮b; a◌֮◌𞄲◌̀◌̕b; a◌֮◌𞄲◌̀◌̕b; a◌֮◌𞄲◌̀◌̕b; a◌֮◌𞄲◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-J, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E133 0062;00E0 05AE 1E133 0315 0062;0061 05AE 0300 1E133 0315 0062;00E0 05AE 1E133 0315 0062;0061 05AE 0300 1E133 0315 0062; # (a◌̕◌̀◌֮◌𞄳b; à◌֮◌𞄳◌̕b; a◌֮◌̀◌𞄳◌̕b; à◌֮◌𞄳◌̕b; a◌֮◌̀◌𞄳◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-V, LATIN SMALL LETTER B
+0061 1E133 0315 0300 05AE 0062;0061 05AE 1E133 0300 0315 0062;0061 05AE 1E133 0300 0315 0062;0061 05AE 1E133 0300 0315 0062;0061 05AE 1E133 0300 0315 0062; # (a◌𞄳◌̕◌̀◌֮b; a◌֮◌𞄳◌̀◌̕b; a◌֮◌𞄳◌̀◌̕b; a◌֮◌𞄳◌̀◌̕b; a◌֮◌𞄳◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-V, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E134 0062;00E0 05AE 1E134 0315 0062;0061 05AE 0300 1E134 0315 0062;00E0 05AE 1E134 0315 0062;0061 05AE 0300 1E134 0315 0062; # (a◌̕◌̀◌֮◌𞄴b; à◌֮◌𞄴◌̕b; a◌֮◌̀◌𞄴◌̕b; à◌֮◌𞄴◌̕b; a◌֮◌̀◌𞄴◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-S, LATIN SMALL LETTER B
+0061 1E134 0315 0300 05AE 0062;0061 05AE 1E134 0300 0315 0062;0061 05AE 1E134 0300 0315 0062;0061 05AE 1E134 0300 0315 0062;0061 05AE 1E134 0300 0315 0062; # (a◌𞄴◌̕◌̀◌֮b; a◌֮◌𞄴◌̀◌̕b; a◌֮◌𞄴◌̀◌̕b; a◌֮◌𞄴◌̀◌̕b; a◌֮◌𞄴◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-S, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E135 0062;00E0 05AE 1E135 0315 0062;0061 05AE 0300 1E135 0315 0062;00E0 05AE 1E135 0315 0062;0061 05AE 0300 1E135 0315 0062; # (a◌̕◌̀◌֮◌𞄵b; à◌֮◌𞄵◌̕b; a◌֮◌̀◌𞄵◌̕b; à◌֮◌𞄵◌̕b; a◌֮◌̀◌𞄵◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-G, LATIN SMALL LETTER B
+0061 1E135 0315 0300 05AE 0062;0061 05AE 1E135 0300 0315 0062;0061 05AE 1E135 0300 0315 0062;0061 05AE 1E135 0300 0315 0062;0061 05AE 1E135 0300 0315 0062; # (a◌𞄵◌̕◌̀◌֮b; a◌֮◌𞄵◌̀◌̕b; a◌֮◌𞄵◌̀◌̕b; a◌֮◌𞄵◌̀◌̕b; a◌֮◌𞄵◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-G, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E136 0062;00E0 05AE 1E136 0315 0062;0061 05AE 0300 1E136 0315 0062;00E0 05AE 1E136 0315 0062;0061 05AE 0300 1E136 0315 0062; # (a◌̕◌̀◌֮◌𞄶b; à◌֮◌𞄶◌̕b; a◌֮◌̀◌𞄶◌̕b; à◌֮◌𞄶◌̕b; a◌֮◌̀◌𞄶◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, NYIAKENG PUACHUE HMONG TONE-D, LATIN SMALL LETTER B
+0061 1E136 0315 0300 05AE 0062;0061 05AE 1E136 0300 0315 0062;0061 05AE 1E136 0300 0315 0062;0061 05AE 1E136 0300 0315 0062;0061 05AE 1E136 0300 0315 0062; # (a◌𞄶◌̕◌̀◌֮b; a◌֮◌𞄶◌̀◌̕b; a◌֮◌𞄶◌̀◌̕b; a◌֮◌𞄶◌̀◌̕b; a◌֮◌𞄶◌̀◌̕b; ) LATIN SMALL LETTER A, NYIAKENG PUACHUE HMONG TONE-D, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E2EC 0062;00E0 05AE 1E2EC 0315 0062;0061 05AE 0300 1E2EC 0315 0062;00E0 05AE 1E2EC 0315 0062;0061 05AE 0300 1E2EC 0315 0062; # (a◌̕◌̀◌֮◌𞋬b; à◌֮◌𞋬◌̕b; a◌֮◌̀◌𞋬◌̕b; à◌֮◌𞋬◌̕b; a◌֮◌̀◌𞋬◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE TUP, LATIN SMALL LETTER B
+0061 1E2EC 0315 0300 05AE 0062;0061 05AE 1E2EC 0300 0315 0062;0061 05AE 1E2EC 0300 0315 0062;0061 05AE 1E2EC 0300 0315 0062;0061 05AE 1E2EC 0300 0315 0062; # (a◌𞋬◌̕◌̀◌֮b; a◌֮◌𞋬◌̀◌̕b; a◌֮◌𞋬◌̀◌̕b; a◌֮◌𞋬◌̀◌̕b; a◌֮◌𞋬◌̀◌̕b; ) LATIN SMALL LETTER A, WANCHO TONE TUP, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E2ED 0062;00E0 05AE 1E2ED 0315 0062;0061 05AE 0300 1E2ED 0315 0062;00E0 05AE 1E2ED 0315 0062;0061 05AE 0300 1E2ED 0315 0062; # (a◌̕◌̀◌֮◌𞋭b; à◌֮◌𞋭◌̕b; a◌֮◌̀◌𞋭◌̕b; à◌֮◌𞋭◌̕b; a◌֮◌̀◌𞋭◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE TUPNI, LATIN SMALL LETTER B
+0061 1E2ED 0315 0300 05AE 0062;0061 05AE 1E2ED 0300 0315 0062;0061 05AE 1E2ED 0300 0315 0062;0061 05AE 1E2ED 0300 0315 0062;0061 05AE 1E2ED 0300 0315 0062; # (a◌𞋭◌̕◌̀◌֮b; a◌֮◌𞋭◌̀◌̕b; a◌֮◌𞋭◌̀◌̕b; a◌֮◌𞋭◌̀◌̕b; a◌֮◌𞋭◌̀◌̕b; ) LATIN SMALL LETTER A, WANCHO TONE TUPNI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E2EE 0062;00E0 05AE 1E2EE 0315 0062;0061 05AE 0300 1E2EE 0315 0062;00E0 05AE 1E2EE 0315 0062;0061 05AE 0300 1E2EE 0315 0062; # (a◌̕◌̀◌֮◌𞋮b; à◌֮◌𞋮◌̕b; a◌֮◌̀◌𞋮◌̕b; à◌֮◌𞋮◌̕b; a◌֮◌̀◌𞋮◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE KOI, LATIN SMALL LETTER B
+0061 1E2EE 0315 0300 05AE 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062;0061 05AE 1E2EE 0300 0315 0062; # (a◌𞋮◌̕◌̀◌֮b; a◌֮◌𞋮◌̀◌̕b; a◌֮◌𞋮◌̀◌̕b; a◌֮◌𞋮◌̀◌̕b; a◌֮◌𞋮◌̀◌̕b; ) LATIN SMALL LETTER A, WANCHO TONE KOI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
+0061 0315 0300 05AE 1E2EF 0062;00E0 05AE 1E2EF 0315 0062;0061 05AE 0300 1E2EF 0315 0062;00E0 05AE 1E2EF 0315 0062;0061 05AE 0300 1E2EF 0315 0062; # (a◌̕◌̀◌֮◌𞋯b; à◌֮◌𞋯◌̕b; a◌֮◌̀◌𞋯◌̕b; à◌֮◌𞋯◌̕b; a◌֮◌̀◌𞋯◌̕b; ) LATIN SMALL LETTER A, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, WANCHO TONE KOINI, LATIN SMALL LETTER B
+0061 1E2EF 0315 0300 05AE 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062;0061 05AE 1E2EF 0300 0315 0062; # (a◌𞋯◌̕◌̀◌֮b; a◌֮◌𞋯◌̀◌̕b; a◌֮◌𞋯◌̀◌̕b; a◌֮◌𞋯◌̀◌̕b; a◌֮◌𞋯◌̀◌̕b; ) LATIN SMALL LETTER A, WANCHO TONE KOINI, COMBINING COMMA ABOVE RIGHT, COMBINING GRAVE ACCENT, HEBREW ACCENT ZINOR, LATIN SMALL LETTER B
 0061 059A 0316 302A 1E8D0 0062;0061 302A 0316 1E8D0 059A 0062;0061 302A 0316 1E8D0 059A 0062;0061 302A 0316 1E8D0 059A 0062;0061 302A 0316 1E8D0 059A 0062; # (a◌֚◌̖◌〪◌𞣐b; a◌〪◌̖◌𞣐◌֚b; a◌〪◌̖◌𞣐◌֚b; a◌〪◌̖◌𞣐◌֚b; a◌〪◌̖◌𞣐◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, MENDE KIKAKUI COMBINING NUMBER TEENS, LATIN SMALL LETTER B
 0061 1E8D0 059A 0316 302A 0062;0061 302A 1E8D0 0316 059A 0062;0061 302A 1E8D0 0316 059A 0062;0061 302A 1E8D0 0316 059A 0062;0061 302A 1E8D0 0316 059A 0062; # (a◌𞣐◌֚◌̖◌〪b; a◌〪◌𞣐◌̖◌֚b; a◌〪◌𞣐◌̖◌֚b; a◌〪◌𞣐◌̖◌֚b; a◌〪◌𞣐◌̖◌֚b; ) LATIN SMALL LETTER A, MENDE KIKAKUI COMBINING NUMBER TEENS, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, LATIN SMALL LETTER B
 0061 059A 0316 302A 1E8D1 0062;0061 302A 0316 1E8D1 059A 0062;0061 302A 0316 1E8D1 059A 0062;0061 302A 0316 1E8D1 059A 0062;0061 302A 0316 1E8D1 059A 0062; # (a◌֚◌̖◌〪◌𞣑b; a◌〪◌̖◌𞣑◌֚b; a◌〪◌̖◌𞣑◌֚b; a◌〪◌̖◌𞣑◌֚b; a◌〪◌̖◌𞣑◌֚b; ) LATIN SMALL LETTER A, HEBREW ACCENT YETIV, COMBINING GRAVE ACCENT BELOW, IDEOGRAPHIC LEVEL TONE MARK, MENDE KIKAKUI COMBINING NUMBER TENS, LATIN SMALL LETTER B

Modified: trunk/Build/source/libs/teckit/TECkit-src/test/dotests.pl
===================================================================
--- trunk/Build/source/libs/teckit/TECkit-src/test/dotests.pl	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TECkit-src/test/dotests.pl	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,4 +1,4 @@
-#!/usr/bin/perl
+#!/usr/bin/env perl
 
 use strict;
 use warnings;

Modified: trunk/Build/source/libs/teckit/TLpatches/ChangeLog
===================================================================
--- trunk/Build/source/libs/teckit/TLpatches/ChangeLog	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TLpatches/ChangeLog	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,11 +1,19 @@
-2018-07-24  Akira Kakuto  <kakuto at .fuk.kindai.ac.jp>
+2019-05-03  Akira Kakuto  <kakuto at w32tex.org>
 
+	Imported TECkit-2.5.9 source tree (teckit) from
+	https://github.com/silnrsi/teckit/archive/2.5.9.tar.gz.
+	patch-02-warning, patch-03-warnings,patch-05-static, and
+	patch patch-06-dont-build-sfconv: Adapted.
+	patch-04-pragmas: Removed.
+
+2018-07-24  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
+
 	Imported TECkit-2.5.8 source tree (teckit) from
 	https://github.com/silnrsi/teckit/archive/2.5.8.tar.gz.
 	patch-02-warning, patch-03-warnings, patch-04-pragmas,
 	patch-05-static, and patch patch-06-dont-build-sfconv: Adapted.
 
-2017-06-27  Akira Kakuto  <kakuto at .fuk.kindai.ac.jp>
+2017-06-27  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	Imported TECkit-2.5.7 source tree (teckit) from
 	https://github.com/silnrsi/teckit/archive/2.5.7.tar.gz.
@@ -17,7 +25,7 @@
 	Remove SFconv directory, contains non-free ConvertUTF.{c,h}
 	Add patch patch-06-dont-build-sfconv to not build sfconv.
 
-2016-12-30  Akira Kakuto  <kakuto at .fuk.kindai.ac.jp>
+2016-12-30  Akira Kakuto  <kakuto at fuk.kindai.ac.jp>
 
 	Imported TECkit-2.5.6 source tree (teckit) from
 	https://github.com/silnrsi/teckit/archive/2.5.6.tar.gz.

Modified: trunk/Build/source/libs/teckit/TLpatches/TL-Changes
===================================================================
--- trunk/Build/source/libs/teckit/TLpatches/TL-Changes	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TLpatches/TL-Changes	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,5 +1,5 @@
-Changes applied to the TECkit-2.5.8/ tree obtained from:
-	https://github.com/silnrsi/teckit/archive/2.5.8.tar.gz.
+Changes applied to the TECkit-2.5.9/ tree obtained from:
+	https://github.com/silnrsi/teckit/archive/2.5.9.tar.gz.
 
 Removed execute permissions from:
 	installed-top.pc.in

Modified: trunk/Build/source/libs/teckit/TLpatches/patch-02-warning
===================================================================
--- trunk/Build/source/libs/teckit/TLpatches/patch-02-warning	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TLpatches/patch-02-warning	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,9 +1,9 @@
 	Avoid compiler warning.
 
-diff -ur teckit-2.5.8/source/Compiler.h teckit-src/source/Compiler.h
---- teckit-2.5.8/source/Compiler.h	Tue Dec 05 07:20:20 2017
-+++ teckit-src/source/Compiler.h	Tue Jul 24 07:21:23 2018
-@@ -230,7 +230,7 @@
+diff -ur teckit-2.5.9/source/Compiler.h teckit-src/source/Compiler.h
+--- teckit-2.5.9/source/Compiler.h	Tue Mar 19 00:23:12 2019
++++ teckit-src/source/Compiler.h	Tue Mar 19 07:02:47 2019
+@@ -229,7 +229,7 @@
  		vector<UInt32>		byteClassLines;
  		vector<UInt32>		uniClassLines;
  

Modified: trunk/Build/source/libs/teckit/TLpatches/patch-03-warnings
===================================================================
--- trunk/Build/source/libs/teckit/TLpatches/patch-03-warnings	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TLpatches/patch-03-warnings	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,9 +1,9 @@
 	Avoid more compiler warnings.
 
-diff -ur teckit-2.5.8/source/Compiler.cpp teckit-src/source/Compiler.cpp
---- teckit-2.5.8/source/Compiler.cpp	Tue Dec 05 07:20:20 2017
-+++ teckit-src/source/Compiler.cpp	Tue Jul 24 07:23:53 2018
-@@ -189,14 +189,14 @@
+diff -ur teckit-2.5.9/source/Compiler.cpp teckit-src/source/Compiler.cpp
+--- teckit-2.5.9/source/Compiler.cpp	Tue Mar 19 00:23:12 2019
++++ teckit-src/source/Compiler.cpp	Tue Mar 19 07:06:23 2019
+@@ -189,7 +189,7 @@
  		free(table);
  }
  
@@ -12,63 +12,11 @@
  WINAPI
  TECkit_GetUnicodeName(UInt32 usv)
  {
- 	const CharName	*c = &gUnicodeNames[0];
- 	while (c->name != 0)
- 		if (c->usv == usv)
--			return (char*)c->name;
-+			return c->name;
- 		else
- 			++c;
- 	return NULL;
-@@ -2133,7 +2133,7 @@
- 		cout << " at line " << line << endl;
- 	}
- 	else
--		(*errorFunction)(errFuncUserData, (char*)msg, (char*)s, line);
-+		(*errorFunction)(errFuncUserData, msg, s, line);
- 	errorState = true;
- 	++errorCount;
- }
 
-diff -ur teckit-2.5.8/source/Engine.cpp teckit-src/source/Engine.cpp
---- teckit-2.5.8/source/Engine.cpp	Tue Dec 05 07:20:20 2017
-+++ teckit-src/source/Engine.cpp	Tue Jul 24 07:39:17 2018
-@@ -1093,7 +1075,7 @@
- 			if (matchElems == 0 && allowInsertion == false)
- 				continue;
- 			patternLength = matchElems + READ(rule->postLength);
--			pattern = (MatchElem*)(rule + 1);	// point past the defined struct for the rule header
-+			pattern = (const MatchElem*)(rule + 1);	// point past the defined struct for the rule header
- 			direction = 1;
- 			infoLimit = matchElems;
- 
-@@ -2194,7 +2168,7 @@
- 				status = kStatus_BadMappingVersion;
- 			else {
- 				const Byte*	namePtr;
--				if (getNamePtrFromTable((Byte*)fh, nameID, namePtr, *nameLength)) {
-+				if (getNamePtrFromTable((const Byte*)fh, nameID, namePtr, *nameLength)) {
- 					UInt16	copyBytes = *nameLength < bufferSize ? *nameLength : bufferSize;
- 					if (copyBytes > 0)
- 						memcpy(nameBuffer, namePtr, copyBytes);
-
-diff -ur teckit-2.5.8/source/Engine.h teckit-src/source/Engine.h
---- teckit-2.5.8/source/Engine.h	Tue Dec 05 07:20:20 2017
-+++ teckit-src/source/Engine.h	Tue Jul 24 07:29:14 2018
-@@ -117,7 +117,7 @@
- 
- 	UInt32				match(int index, int repeats, int textLoc);
- 								// returns 0 for no match, 1 for match, or kNeedMoreInput/kInvalidChar
--	MatchElem*			pattern;
-+	const MatchElem*			pattern;
- 	int					patternLength;
- 	int					direction;
- 	MatchInfo			info[256];
-
-diff -ur teckit-2.5.8/source/Public-headers/TECkit_Compiler.h teckit-src/source/Public-headers/TECkit_Compiler.h
---- teckit-2.5.8/source/Public-headers/TECkit_Compiler.h	Tue Dec 05 07:20:20 2017
-+++ teckit-src/source/Public-headers/TECkit_Compiler.h	Tue Jul 24 07:41:00 2018
-@@ -56,7 +59,7 @@
+diff -ur teckit-2.5.9/source/Public-headers/TECkit_Compiler.h teckit-src/source/Public-headers/TECkit_Compiler.h
+--- teckit-2.5.9/source/Public-headers/TECkit_Compiler.h	Tue Mar 19 00:23:12 2019
++++ teckit-src/source/Public-headers/TECkit_Compiler.h	Tue Mar 19 07:31:10 2019
+@@ -55,7 +58,7 @@
  #define kCompilerOpts_Compress	0x00000010	/* generate compressed mapping table */
  #define kCompilerOpts_XML		0x00000020	/* instead of a compiled binary table, generate an XML representation of the mapping */
  
@@ -77,7 +25,7 @@
  
  TECkit_Status
  WINAPI EXPORTED
-@@ -75,7 +78,7 @@
+@@ -74,7 +77,7 @@
  TECkit_GetCompilerVersion();
  
  /* new APIs for looking up Unicode names (as NUL-terminated C strings) */
@@ -87,10 +35,9 @@
  TECkit_GetUnicodeName(UInt32 usv);
  	/* returns the Unicode name of usv, if available, else NULL */
 
-
-diff -ur teckit-2.5.8/source/Sample-tools/TECkit_Compile.cpp teckit-src/source/Sample-tools/TECkit_Compile.cpp
---- teckit-2.5.8/source/Sample-tools/TECkit_Compile.cpp	Tue Dec 05 07:20:20 2017
-+++ teckit-src/source/Sample-tools/TECkit_Compile.cpp	Tue Jul 24 07:34:18 2018
+diff -ur teckit-2.5.9/source/Sample-tools/TECkit_Compile.cpp teckit-src/source/Sample-tools/TECkit_Compile.cpp
+--- teckit-2.5.9/source/Sample-tools/TECkit_Compile.cpp	Tue Mar 19 00:23:12 2019
++++ teckit-src/source/Sample-tools/TECkit_Compile.cpp	Tue Mar 19 07:25:19 2019
 @@ -24,13 +24,13 @@
  #endif
  

Deleted: trunk/Build/source/libs/teckit/TLpatches/patch-04-pragmas
===================================================================
--- trunk/Build/source/libs/teckit/TLpatches/patch-04-pragmas	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TLpatches/patch-04-pragmas	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,61 +0,0 @@
-	Remove the '#pragma's, they seem to cause problems for MSVC
-	and are certainly not needed otherwise.
-
-diff -ur teckit-2.5.8/source/Engine.cpp teckit-src/source/Engine.cpp
---- teckit-2.5.8/source/Engine.cpp	Tue Dec 05 07:20:20 2017
-+++ teckit-src/source/Engine.cpp	Tue Jul 24 07:39:17 2018
-@@ -102,10 +96,6 @@
- #endif
- }
- 
--#ifndef __GNUC__
--#pragma mark --- class Stage ---
--#endif
--
- Stage::Stage()
- 	: oBuffer(0)
- 	, oBufSize(0)
-@@ -127,10 +117,6 @@
- 	return 0;
- }
- 
--#ifndef __GNUC__
--#pragma mark --- class Normalizer ---
--#endif
--
- #include "NormalizationData.c"
- 
- Normalizer::Normalizer(bool compose)
-@@ -400,10 +386,6 @@
- 	return c;
- }
- 
--#ifndef __GNUC__
--#pragma mark --- class Pass ---
--#endif
--
- Pass::Pass(const TableHeader* inTable, Converter* cnv)
- 	: converter(cnv)
- 	, tableHeader(inTable)
-@@ -1288,10 +1270,6 @@
- 	return 0;
- }
- 
--#ifndef __GNUC__
--#pragma mark --- class Converter ---
--#endif
--
- Converter::Converter(const Byte* inTable, UInt32 inTableSize, bool inForward,
- 						UInt16 inForm, UInt16 outForm)
- 	: table(0)
-@@ -1942,10 +1920,6 @@
- 	return true;
- }
- 
--#ifndef __GNUC__
--#pragma mark --- Public "C" API functions ---
--#endif
--
- TECkit_Status
- WINAPI
- TECkit_CreateConverter(

Modified: trunk/Build/source/libs/teckit/TLpatches/patch-05-static
===================================================================
--- trunk/Build/source/libs/teckit/TLpatches/patch-05-static	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TLpatches/patch-05-static	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,9 +1,9 @@
 	For TeX Live we build a static library and not a Dll.
 
 
-diff -ur teckit-2.5.8/source/Engine.cpp teckit-src/source/Engine.cpp
---- teckit-2.5.8/source/Engine.cpp	Tue Dec 05 07:20:20 2017
-+++ teckit-src/source/Engine.cpp	Tue Jul 24 07:39:17 2018
+diff -ur teckit-2.5.9/source/Engine.cpp teckit-src/source/Engine.cpp
+--- teckit-2.5.9/source/Engine.cpp	Tue Mar 19 00:23:12 2019
++++ teckit-src/source/Engine.cpp	Tue Mar 19 07:29:37 2019
 @@ -51,12 +51,6 @@
  #	define NOSERVICE
  #	define NOMCX
@@ -18,10 +18,10 @@
  
  #include "Engine.h"
 
-diff -ur teckit-2.5.8/source/Public-headers/TECkit_Compiler.h teckit-src/source/Public-headers/TECkit_Compiler.h
---- teckit-2.5.8/source/Public-headers/TECkit_Compiler.h	Tue Dec 05 07:20:20 2017
-+++ teckit-src/source/Public-headers/TECkit_Compiler.h	Tue Jul 24 07:41:00 2018
-@@ -30,6 +30,9 @@
+diff -ur teckit-2.5.9/source/Public-headers/TECkit_Compiler.h teckit-src/source/Public-headers/TECkit_Compiler.h
+--- teckit-2.5.9/source/Public-headers/TECkit_Compiler.h	Tue Mar 19 00:23:12 2019
++++ teckit-src/source/Public-headers/TECkit_Compiler.h	Tue Mar 19 07:31:10 2019
+@@ -29,6 +29,9 @@
  #ifdef _WIN32
  /* MS compiler has predefined _WIN32, so assume Windows target  */
  #include <windows.h>	// apparently just using windef.h fails on VC++6
@@ -32,10 +32,10 @@
  /* not the MS compiler, so try Metrowerks' platform macros */
  #ifndef __APPLE__
 
-diff -ur teckit-2.5.8/source/Public-headers/TECkit_Engine.h teckit-src/source/Public-headers/TECkit_Engine.h
---- teckit-2.5.8/source/Public-headers/TECkit_Engine.h	Tue Dec 05 07:20:20 2017
-+++ teckit-src/source/Public-headers/TECkit_Engine.h	Tue Jul 24 07:42:14 2018
-@@ -80,6 +80,9 @@
+diff -ur teckit-2.5.9/source/Public-headers/TECkit_Engine.h teckit-src/source/Public-headers/TECkit_Engine.h
+--- teckit-2.5.9/source/Public-headers/TECkit_Engine.h	Tue Mar 19 00:23:12 2019
++++ teckit-src/source/Public-headers/TECkit_Engine.h	Tue Mar 19 07:32:08 2019
+@@ -79,6 +79,9 @@
  #ifdef _WIN32
  /* MS compiler has predefined _WIN32, so assume Windows target  */
  #include <windows.h>

Modified: trunk/Build/source/libs/teckit/TLpatches/patch-06-dont-build-sfconv
===================================================================
--- trunk/Build/source/libs/teckit/TLpatches/patch-06-dont-build-sfconv	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/TLpatches/patch-06-dont-build-sfconv	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,6 +1,6 @@
-diff -ur teckit-2.5.8/bin/Makefile.am teckit-src/bin/Makefile.am
---- teckit-2.5.8/bin/Makefile.am	Tue Dec 05 07:20:20 2017
-+++ teckit-src/bin/Makefile.am	Tue Jul 24 07:44:12 2018
+diff -ur teckit-2.5.9/bin/Makefile.am teckit-src/bin/Makefile.am
+--- teckit-2.5.9/bin/Makefile.am	Tue Mar 19 00:23:12 2019
++++ teckit-src/bin/Makefile.am	Tue Mar 19 07:33:51 2019
 @@ -1,6 +1,6 @@
  AUTOMAKE_OPTIONS = -Wno-portability
  
@@ -8,3 +8,4 @@
 +bin_PROGRAMS = teckit_compile txtconv
  
  AM_CPPFLAGS  = -I$(top_srcdir)/source/Public-headers
+ 

Modified: trunk/Build/source/libs/teckit/configure
===================================================================
--- trunk/Build/source/libs/teckit/configure	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/configure	2019-05-03 04:30:21 UTC (rev 50961)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for TECkit (TeX Live) 2.5.8.
+# Generated by GNU Autoconf 2.69 for TECkit (TeX Live) 2.5.9.
 #
 # Report bugs to <tex-k at tug.org>.
 #
@@ -580,8 +580,8 @@
 # Identity of this package.
 PACKAGE_NAME='TECkit (TeX Live)'
 PACKAGE_TARNAME='teckit--tex-live-'
-PACKAGE_VERSION='2.5.8'
-PACKAGE_STRING='TECkit (TeX Live) 2.5.8'
+PACKAGE_VERSION='2.5.9'
+PACKAGE_STRING='TECkit (TeX Live) 2.5.9'
 PACKAGE_BUGREPORT='tex-k at tug.org'
 PACKAGE_URL=''
 
@@ -1306,7 +1306,7 @@
   # 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 TECkit (TeX Live) 2.5.8 to adapt to many kinds of systems.
+\`configure' configures TECkit (TeX Live) 2.5.9 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1377,7 +1377,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of TECkit (TeX Live) 2.5.8:";;
+     short | recursive ) echo "Configuration of TECkit (TeX Live) 2.5.9:";;
    esac
   cat <<\_ACEOF
 
@@ -1486,7 +1486,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-TECkit (TeX Live) configure 2.5.8
+TECkit (TeX Live) configure 2.5.9
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2109,7 +2109,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by TECkit (TeX Live) $as_me 2.5.8, which was
+It was created by TECkit (TeX Live) $as_me 2.5.9, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -4033,7 +4033,7 @@
 
 # Define the identity of the package.
  PACKAGE='teckit--tex-live-'
- VERSION='2.5.8'
+ VERSION='2.5.9'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -7252,7 +7252,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by TECkit (TeX Live) $as_me 2.5.8, which was
+This file was extended by TECkit (TeX Live) $as_me 2.5.9, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -7318,7 +7318,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-TECkit (TeX Live) config.status 2.5.8
+TECkit (TeX Live) config.status 2.5.9
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 

Modified: trunk/Build/source/libs/teckit/version.ac
===================================================================
--- trunk/Build/source/libs/teckit/version.ac	2019-05-03 04:05:07 UTC (rev 50960)
+++ trunk/Build/source/libs/teckit/version.ac	2019-05-03 04:30:21 UTC (rev 50961)
@@ -8,4 +8,4 @@
 dnl --------------------------------------------------------
 dnl
 dnl  m4-include this file to define the current TECkit version
-m4_define([TECkit_version], [2.5.8])
+m4_define([TECkit_version], [2.5.9])



More information about the tex-live-commits mailing list