summaryrefslogtreecommitdiffstats
path: root/intl/uconv/ucvlatin
diff options
context:
space:
mode:
Diffstat (limited to 'intl/uconv/ucvlatin')
-rw-r--r--intl/uconv/ucvlatin/8859-10.uf158
-rw-r--r--intl/uconv/ucvlatin/8859-10.ut105
-rw-r--r--intl/uconv/ucvlatin/8859-13.uf123
-rw-r--r--intl/uconv/ucvlatin/8859-13.ut80
-rw-r--r--intl/uconv/ucvlatin/8859-14.uf212
-rw-r--r--intl/uconv/ucvlatin/8859-14.ut138
-rw-r--r--intl/uconv/ucvlatin/8859-15.uf124
-rw-r--r--intl/uconv/ucvlatin/8859-15.ut88
-rw-r--r--intl/uconv/ucvlatin/8859-16.uf180
-rw-r--r--intl/uconv/ucvlatin/8859-16.ut98
-rw-r--r--intl/uconv/ucvlatin/8859-2.uf132
-rw-r--r--intl/uconv/ucvlatin/8859-2.ut80
-rw-r--r--intl/uconv/ucvlatin/8859-3.uf177
-rw-r--r--intl/uconv/ucvlatin/8859-3.ut96
-rw-r--r--intl/uconv/ucvlatin/8859-4.uf152
-rw-r--r--intl/uconv/ucvlatin/8859-4.ut96
-rw-r--r--intl/uconv/ucvlatin/8859-5.uf101
-rw-r--r--intl/uconv/ucvlatin/8859-5.ut103
-rw-r--r--intl/uconv/ucvlatin/8859-6.uf94
-rw-r--r--intl/uconv/ucvlatin/8859-6.ut87
-rw-r--r--intl/uconv/ucvlatin/8859-7.uf117
-rw-r--r--intl/uconv/ucvlatin/8859-7.ut81
-rw-r--r--intl/uconv/ucvlatin/8859-8.uf116
-rw-r--r--intl/uconv/ucvlatin/8859-8.ut113
-rw-r--r--intl/uconv/ucvlatin/cp1250.uf174
-rw-r--r--intl/uconv/ucvlatin/cp1250.ut89
-rw-r--r--intl/uconv/ucvlatin/cp1251.uf151
-rw-r--r--intl/uconv/ucvlatin/cp1251.ut81
-rw-r--r--intl/uconv/ucvlatin/cp1253.uf149
-rw-r--r--intl/uconv/ucvlatin/cp1253.ut97
-rw-r--r--intl/uconv/ucvlatin/cp1254.uf210
-rw-r--r--intl/uconv/ucvlatin/cp1254.ut132
-rw-r--r--intl/uconv/ucvlatin/cp1255.uf195
-rw-r--r--intl/uconv/ucvlatin/cp1255.ut132
-rw-r--r--intl/uconv/ucvlatin/cp1256.uf242
-rw-r--r--intl/uconv/ucvlatin/cp1256.ut124
-rw-r--r--intl/uconv/ucvlatin/cp1257.uf180
-rw-r--r--intl/uconv/ucvlatin/cp1257.ut97
-rw-r--r--intl/uconv/ucvlatin/cp1258.uf253
-rw-r--r--intl/uconv/ucvlatin/cp1258.ut130
-rw-r--r--intl/uconv/ucvlatin/cp866.uf191
-rw-r--r--intl/uconv/ucvlatin/cp866.ut97
-rw-r--r--intl/uconv/ucvlatin/cp874.uf112
-rw-r--r--intl/uconv/ucvlatin/cp874.ut102
-rw-r--r--intl/uconv/ucvlatin/koi8r.uf229
-rw-r--r--intl/uconv/ucvlatin/koi8r.ut131
-rw-r--r--intl/uconv/ucvlatin/koi8u.uf227
-rw-r--r--intl/uconv/ucvlatin/koi8u.ut104
-rw-r--r--intl/uconv/ucvlatin/macarabic.ut132
-rw-r--r--intl/uconv/ucvlatin/macce.ut88
-rw-r--r--intl/uconv/ucvlatin/maccroat.ut89
-rw-r--r--intl/uconv/ucvlatin/maccyril.uf203
-rw-r--r--intl/uconv/ucvlatin/maccyril.ut96
-rw-r--r--intl/uconv/ucvlatin/macdevanaga.ut134
-rw-r--r--intl/uconv/ucvlatin/macfarsi.ut130
-rw-r--r--intl/uconv/ucvlatin/macgreek.ut89
-rw-r--r--intl/uconv/ucvlatin/macgujarati.ut133
-rw-r--r--intl/uconv/ucvlatin/macgurmukhi.ut125
-rw-r--r--intl/uconv/ucvlatin/machebrew.ut119
-rw-r--r--intl/uconv/ucvlatin/macicela.ut89
-rw-r--r--intl/uconv/ucvlatin/macro.ut89
-rw-r--r--intl/uconv/ucvlatin/macturki.ut89
-rw-r--r--intl/uconv/ucvlatin/nsCP1250ToUnicode.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsCP1250ToUnicode.h20
-rw-r--r--intl/uconv/ucvlatin/nsCP1251ToUnicode.cpp22
-rw-r--r--intl/uconv/ucvlatin/nsCP1251ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsCP1253ToUnicode.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsCP1253ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsCP1254ToUnicode.cpp22
-rw-r--r--intl/uconv/ucvlatin/nsCP1254ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsCP1255ToUnicode.cpp22
-rw-r--r--intl/uconv/ucvlatin/nsCP1255ToUnicode.h22
-rw-r--r--intl/uconv/ucvlatin/nsCP1256ToUnicode.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsCP1256ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsCP1257ToUnicode.cpp22
-rw-r--r--intl/uconv/ucvlatin/nsCP1257ToUnicode.h24
-rw-r--r--intl/uconv/ucvlatin/nsCP1258ToUnicode.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsCP1258ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsCP866ToUnicode.cpp28
-rw-r--r--intl/uconv/ucvlatin/nsCP866ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsCP874ToUnicode.cpp22
-rw-r--r--intl/uconv/ucvlatin/nsCP874ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsISO885910ToUnicode.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsISO885910ToUnicode.h24
-rw-r--r--intl/uconv/ucvlatin/nsISO885913ToUnicode.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsISO885913ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsISO885914ToUnicode.cpp22
-rw-r--r--intl/uconv/ucvlatin/nsISO885914ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsISO885915ToUnicode.cpp22
-rw-r--r--intl/uconv/ucvlatin/nsISO885915ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsISO885916ToUnicode.cpp22
-rw-r--r--intl/uconv/ucvlatin/nsISO885916ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsISO88592ToUnicode.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsISO88592ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsISO88593ToUnicode.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsISO88593ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsISO88594ToUnicode.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsISO88594ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsISO88595ToUnicode.cpp27
-rw-r--r--intl/uconv/ucvlatin/nsISO88595ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsISO88596ToUnicode.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsISO88596ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsISO88597ToUnicode.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsISO88597ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsISO88598IToUnicode.cpp18
-rw-r--r--intl/uconv/ucvlatin/nsISO88598IToUnicode.h22
-rw-r--r--intl/uconv/ucvlatin/nsISO88598ToUnicode.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsISO88598ToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsKOI8RToUnicode.cpp27
-rw-r--r--intl/uconv/ucvlatin/nsKOI8RToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsKOI8UToUnicode.cpp26
-rw-r--r--intl/uconv/ucvlatin/nsKOI8UToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsMacArabicToUnicode.cpp26
-rw-r--r--intl/uconv/ucvlatin/nsMacArabicToUnicode.h18
-rw-r--r--intl/uconv/ucvlatin/nsMacCEToUnicode.cpp27
-rw-r--r--intl/uconv/ucvlatin/nsMacCEToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsMacCroatianToUnicode.cpp27
-rw-r--r--intl/uconv/ucvlatin/nsMacCroatianToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsMacCyrillicToUnicode.cpp27
-rw-r--r--intl/uconv/ucvlatin/nsMacCyrillicToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsMacDevanagariToUnicode.cpp26
-rw-r--r--intl/uconv/ucvlatin/nsMacDevanagariToUnicode.h18
-rw-r--r--intl/uconv/ucvlatin/nsMacFarsiToUnicode.cpp26
-rw-r--r--intl/uconv/ucvlatin/nsMacFarsiToUnicode.h18
-rw-r--r--intl/uconv/ucvlatin/nsMacGreekToUnicode.cpp27
-rw-r--r--intl/uconv/ucvlatin/nsMacGreekToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsMacGujaratiToUnicode.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsMacGujaratiToUnicode.h18
-rw-r--r--intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.cpp26
-rw-r--r--intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.h18
-rw-r--r--intl/uconv/ucvlatin/nsMacHebrewToUnicode.cpp26
-rw-r--r--intl/uconv/ucvlatin/nsMacHebrewToUnicode.h18
-rw-r--r--intl/uconv/ucvlatin/nsMacIcelandicToUnicode.cpp26
-rw-r--r--intl/uconv/ucvlatin/nsMacIcelandicToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsMacRomanianToUnicode.cpp26
-rw-r--r--intl/uconv/ucvlatin/nsMacRomanianToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsMacTurkishToUnicode.cpp26
-rw-r--r--intl/uconv/ucvlatin/nsMacTurkishToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/nsUCvLatinCID.h534
-rw-r--r--intl/uconv/ucvlatin/nsUTF16ToUnicode.cpp361
-rw-r--r--intl/uconv/ucvlatin/nsUTF16ToUnicode.h78
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1250.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1250.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1251.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1251.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1253.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1253.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1254.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1254.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1255.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1255.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1256.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1256.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1257.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1257.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1258.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP1258.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP866.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP866.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP874.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToCP874.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO885910.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO885910.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO885913.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO885913.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO885914.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO885914.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO885915.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO885915.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO885916.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO885916.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88592.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88592.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88593.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88593.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88594.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88594.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88595.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88595.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88596.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88596.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88597.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88597.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88598.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88598.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88598I.cpp18
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToISO88598I.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToKOI8R.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToKOI8R.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToKOI8U.cpp24
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToKOI8U.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToMacCyrillic.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToMacCyrillic.h21
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToUTF16.cpp115
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToUTF16.h54
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToUserDefined.cpp23
-rw-r--r--intl/uconv/ucvlatin/nsUnicodeToUserDefined.h21
-rw-r--r--intl/uconv/ucvlatin/nsUserDefinedToUnicode.cpp22
-rw-r--r--intl/uconv/ucvlatin/nsUserDefinedToUnicode.h21
-rw-r--r--intl/uconv/ucvlatin/userdefined.uf55
-rw-r--r--intl/uconv/ucvlatin/userdefined.ut55
201 files changed, 12286 insertions, 0 deletions
diff --git a/intl/uconv/ucvlatin/8859-10.uf b/intl/uconv/ucvlatin/8859-10.uf
new file mode 100644
index 000000000..36798a2bc
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-10.uf
@@ -0,0 +1,158 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 00A0
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C1
+ srcEnd = 00C6
+ destBegin = 00C1
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00DA
+ srcEnd = 00DF
+ destBegin = 00DA
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00E1
+ srcEnd = 00E6
+ destBegin = 00E1
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 00A7
+ srcEnd = 00B7
+ mappingOffset = 0000
+ Mapping =
+ 00A7 FFFD FFFD FFFD FFFD FFFD 00AD FFFD
+ FFFD 00B0 FFFD FFFD FFFD FFFD FFFD FFFD
+ 00B7
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 00C9
+ srcEnd = 00D8
+ mappingOffset = 0011
+ Mapping =
+ 00C9 FFFD 00CB FFFD 00CD 00CE 00CF 00D0
+ FFFD FFFD 00D3 00D4 00D5 00D6 FFFD 00D8
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 00E9
+ srcEnd = 014D
+ mappingOffset = 0021
+ Mapping =
+ 00E9 FFFD 00EB FFFD 00ED 00EE 00EF 00F0
+ FFFD FFFD 00F3 00F4 00F5 00F6 FFFD 00F8
+ FFFD 00FA 00FB 00FC 00FD 00FE FFFD 00C0
+ 00E0 FFFD FFFD 00A1 00B1 FFFD FFFD FFFD
+ FFFD FFFD FFFD 00C8 00E8 FFFD FFFD 00A9
+ 00B9 00A2 00B2 FFFD FFFD 00CC 00EC 00CA
+ 00EA FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 00A3 00B3 FFFD FFFD FFFD FFFD 00A5
+ 00B5 00A4 00B4 FFFD FFFD 00C7 00E7 FFFD
+ FFFD FFFD FFFD FFFD FFFD 00A6 00B6 00FF
+ FFFD FFFD 00A8 00B8 FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 00D1 00F1 FFFD FFFD
+ FFFD 00AF 00BF 00D2 00F2
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 0160
+ srcEnd = 017E
+ mappingOffset = 0086
+ Mapping =
+ 00AA 00BA FFFD FFFD FFFD FFFD 00AB 00BB
+ 00D7 00F7 00AE 00BE FFFD FFFD FFFD FFFD
+ FFFD FFFD 00D9 00F9 FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 00AC 00BC
+End of Item 0007
+
+Begin of Item 0008
+ Format 2
+ srcBegin = 2015
+ destBegin = 00BD
+End of Item 0008
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0022,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0004 */
+/* Total of Format 1 : 0x0004 */
+/* Total of Format 2 : 0x0001 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1111, 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x00A0, 0x0000,
+/* 0001 */ 0x00C1, 0x00C6, 0x00C1,
+/* 0002 */ 0x00DA, 0x00DF, 0x00DA,
+/* 0003 */ 0x00E1, 0x00E6, 0x00E1,
+/* 0004 */ 0x00A7, 0x00B7, 0x0000,
+/* 0005 */ 0x00C9, 0x00D8, 0x0011,
+/* 0006 */ 0x00E9, 0x014D, 0x0021,
+/* 0007 */ 0x0160, 0x017E, 0x0086,
+/* 0008 */ 0x2015, 0x0000, 0x00BD,
+/*-------------------------------------------------------*/
+/* Offset=0x0022 Start of MappingTable */
+
+/* 0000 */ 0x00A7, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0x00B0, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0010 */ 0x00B7, 0x00C9, 0xFFFD, 0x00CB, 0xFFFD, 0x00CD, 0x00CE, 0x00CF,
+/* 0018 */ 0x00D0, 0xFFFD, 0xFFFD, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0xFFFD,
+/* 0020 */ 0x00D8, 0x00E9, 0xFFFD, 0x00EB, 0xFFFD, 0x00ED, 0x00EE, 0x00EF,
+/* 0028 */ 0x00F0, 0xFFFD, 0xFFFD, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0xFFFD,
+/* 0030 */ 0x00F8, 0xFFFD, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0xFFFD,
+/* 0038 */ 0x00C0, 0x00E0, 0xFFFD, 0xFFFD, 0x00A1, 0x00B1, 0xFFFD, 0xFFFD,
+/* 0040 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00C8, 0x00E8, 0xFFFD, 0xFFFD,
+/* 0048 */ 0x00A9, 0x00B9, 0x00A2, 0x00B2, 0xFFFD, 0xFFFD, 0x00CC, 0x00EC,
+/* 0050 */ 0x00CA, 0x00EA, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0058 */ 0xFFFD, 0xFFFD, 0x00A3, 0x00B3, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0060 */ 0x00A5, 0x00B5, 0x00A4, 0x00B4, 0xFFFD, 0xFFFD, 0x00C7, 0x00E7,
+/* 0068 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A6, 0x00B6,
+/* 0070 */ 0x00FF, 0xFFFD, 0xFFFD, 0x00A8, 0x00B8, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0078 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D1, 0x00F1, 0xFFFD,
+/* 0080 */ 0xFFFD, 0xFFFD, 0x00AF, 0x00BF, 0x00D2, 0x00F2, 0x00AA, 0x00BA,
+/* 0088 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AB, 0x00BB, 0x00D7, 0x00F7,
+/* 0090 */ 0x00AE, 0x00BE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0098 */ 0x00D9, 0x00F9, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00A0 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00AC, 0x00BC,
+/* End of table Total Length = 0x00C7 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-10.ut b/intl/uconv/ucvlatin/8859-10.ut
new file mode 100644
index 000000000..9ca2b76a3
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-10.ut
@@ -0,0 +1,105 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 00A0
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C1
+ srcEnd = 00C6
+ destBegin = 00C1
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00DA
+ srcEnd = 00DF
+ destBegin = 00DA
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00E1
+ srcEnd = 00E6
+ destBegin = 00E1
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 00A1
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 0104 0112 0122 012A 0128 0136 00A7 013B
+ 0110 0160 0166 017D 00AD 016A 014A 00B0
+ 0105 0113 0123 012B 0129 0137 00B7 013C
+ 0111 0161 0167 017E 2015 016B 014B 0100
+ FFFD FFFD FFFD FFFD FFFD FFFD 012E 010C
+ 00C9 0118 00CB 0116 00CD 00CE 00CF 00D0
+ 0145 014C 00D3 00D4 00D5 00D6 0168 00D8
+ 0172 FFFD FFFD FFFD FFFD FFFD FFFD 0101
+ FFFD FFFD FFFD FFFD FFFD FFFD 012F 010D
+ 00E9 0119 00EB 0117 00ED 00EE 00EF 00F0
+ 0146 014D 00F3 00F4 00F5 00F6 0169 00F8
+ 0173 00FA 00FB 00FC 00FD 00FE 0138
+End of Item 0004
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0015,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0004 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x0001,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x00A0, 0x0000,
+/* 0001 */ 0x00C1, 0x00C6, 0x00C1,
+/* 0002 */ 0x00DA, 0x00DF, 0x00DA,
+/* 0003 */ 0x00E1, 0x00E6, 0x00E1,
+/* 0004 */ 0x00A1, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0015 Start of MappingTable */
+
+/* 0000 */ 0x0104, 0x0112, 0x0122, 0x012A, 0x0128, 0x0136, 0x00A7, 0x013B,
+/* 0008 */ 0x0110, 0x0160, 0x0166, 0x017D, 0x00AD, 0x016A, 0x014A, 0x00B0,
+/* 0010 */ 0x0105, 0x0113, 0x0123, 0x012B, 0x0129, 0x0137, 0x00B7, 0x013C,
+/* 0018 */ 0x0111, 0x0161, 0x0167, 0x017E, 0x2015, 0x016B, 0x014B, 0x0100,
+/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x012E, 0x010C,
+/* 0028 */ 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x00CF, 0x00D0,
+/* 0030 */ 0x0145, 0x014C, 0x00D3, 0x00D4, 0x00D5, 0x00D6, 0x0168, 0x00D8,
+/* 0038 */ 0x0172, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0101,
+/* 0040 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x012F, 0x010D,
+/* 0048 */ 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x00EF, 0x00F0,
+/* 0050 */ 0x0146, 0x014D, 0x00F3, 0x00F4, 0x00F5, 0x00F6, 0x0169, 0x00F8,
+/* 0058 */ 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x00FD, 0x00FE, 0x0138,
+/* End of table Total Length = 0x0074 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-13.uf b/intl/uconv/ucvlatin/8859-13.uf
new file mode 100644
index 000000000..bb3d43b83
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-13.uf
@@ -0,0 +1,123 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 017E
+ mappingOffset = 0000
+ Mapping =
+ 00A0 FFFD 00A2 00A3 00A4 FFFD 00A6 00A7
+ FFFD 00A9 FFFD 00AB 00AC 00AD 00AE FFFD
+ 00B0 00B1 00B2 00B3 FFFD 00B5 00B6 00B7
+ FFFD 00B9 FFFD 00BB 00BC 00BD 00BE FFFD
+ FFFD FFFD FFFD FFFD 00C4 00C5 00AF FFFD
+ FFFD 00C9 FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD 00D3 FFFD 00D5 00D6 00D7
+ 00A8 FFFD FFFD FFFD 00DC FFFD FFFD 00DF
+ FFFD FFFD FFFD FFFD 00E4 00E5 00BF FFFD
+ FFFD 00E9 FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD 00F3 FFFD 00F5 00F6 00F7
+ 00B8 FFFD FFFD FFFD 00FC FFFD FFFD FFFD
+ 00C2 00E2 FFFD FFFD 00C0 00E0 00C3 00E3
+ FFFD FFFD FFFD FFFD 00C8 00E8 FFFD FFFD
+ FFFD FFFD 00C7 00E7 FFFD FFFD 00CB 00EB
+ 00C6 00E6 FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 00CC 00EC FFFD FFFD FFFD FFFD
+ FFFD FFFD 00CE 00EE FFFD FFFD 00C1 00E1
+ FFFD FFFD FFFD FFFD FFFD FFFD 00CD 00ED
+ FFFD FFFD FFFD 00CF 00EF FFFD FFFD FFFD
+ FFFD 00D9 00F9 00D1 00F1 00D2 00F2 FFFD
+ FFFD FFFD FFFD FFFD 00D4 00F4 FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD 00AA 00BA
+ FFFD FFFD 00DA 00FA FFFD FFFD FFFD FFFD
+ 00D0 00F0 FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 00DB 00FB FFFD FFFD FFFD FFFD
+ FFFD FFFD 00D8 00F8 FFFD FFFD FFFD FFFD
+ FFFD 00CA 00EA 00DD 00FD 00DE 00FE
+End of Item 0001
+
+Begin of Item 0002
+ Format 1
+ srcBegin = 2019
+ srcEnd = 201E
+ mappingOffset = 00DF
+ Mapping =
+ 00FF FFFD FFFD 00B4 00A1 00A5
+End of Item 0002
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0003,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000E,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0001 */
+/* Total of Format 1 : 0x0002 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0110,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00A0, 0x017E, 0x0000,
+/* 0002 */ 0x2019, 0x201E, 0x00DF,
+/*-------------------------------------------------------*/
+/* Offset=0x000E Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0xFFFD, 0x00A2, 0x00A3, 0x00A4, 0xFFFD, 0x00A6, 0x00A7,
+/* 0008 */ 0xFFFD, 0x00A9, 0xFFFD, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0xFFFD,
+/* 0010 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0xFFFD, 0x00B5, 0x00B6, 0x00B7,
+/* 0018 */ 0xFFFD, 0x00B9, 0xFFFD, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0xFFFD,
+/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00C4, 0x00C5, 0x00AF, 0xFFFD,
+/* 0028 */ 0xFFFD, 0x00C9, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00D3, 0xFFFD, 0x00D5, 0x00D6, 0x00D7,
+/* 0038 */ 0x00A8, 0xFFFD, 0xFFFD, 0xFFFD, 0x00DC, 0xFFFD, 0xFFFD, 0x00DF,
+/* 0040 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00E4, 0x00E5, 0x00BF, 0xFFFD,
+/* 0048 */ 0xFFFD, 0x00E9, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0050 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00F3, 0xFFFD, 0x00F5, 0x00F6, 0x00F7,
+/* 0058 */ 0x00B8, 0xFFFD, 0xFFFD, 0xFFFD, 0x00FC, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0060 */ 0x00C2, 0x00E2, 0xFFFD, 0xFFFD, 0x00C0, 0x00E0, 0x00C3, 0x00E3,
+/* 0068 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00C8, 0x00E8, 0xFFFD, 0xFFFD,
+/* 0070 */ 0xFFFD, 0xFFFD, 0x00C7, 0x00E7, 0xFFFD, 0xFFFD, 0x00CB, 0x00EB,
+/* 0078 */ 0x00C6, 0x00E6, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0080 */ 0xFFFD, 0xFFFD, 0x00CC, 0x00EC, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0088 */ 0xFFFD, 0xFFFD, 0x00CE, 0x00EE, 0xFFFD, 0xFFFD, 0x00C1, 0x00E1,
+/* 0090 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00CD, 0x00ED,
+/* 0098 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00CF, 0x00EF, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00A0 */ 0xFFFD, 0x00D9, 0x00F9, 0x00D1, 0x00F1, 0x00D2, 0x00F2, 0xFFFD,
+/* 00A8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D4, 0x00F4, 0xFFFD, 0xFFFD,
+/* 00B0 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AA, 0x00BA,
+/* 00B8 */ 0xFFFD, 0xFFFD, 0x00DA, 0x00FA, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00C0 */ 0x00D0, 0x00F0, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00C8 */ 0xFFFD, 0xFFFD, 0x00DB, 0x00FB, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00D0 */ 0xFFFD, 0xFFFD, 0x00D8, 0x00F8, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00D8 */ 0xFFFD, 0x00CA, 0x00EA, 0x00DD, 0x00FD, 0x00DE, 0x00FE, 0x00FF,
+/* 00E0 */ 0xFFFD, 0xFFFD, 0x00B4, 0x00A1, 0x00A5,
+/* End of table Total Length = 0x00F3 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-13.ut b/intl/uconv/ucvlatin/8859-13.ut
new file mode 100644
index 000000000..101352b90
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-13.ut
@@ -0,0 +1,80 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 00A0 201D 00A2 00A3 00A4 201E 00A6 00A7
+ 00D8 00A9 0156 00AB 00AC 00AD 00AE 00C6
+ 00B0 00B1 00B2 00B3 201C 00B5 00B6 00B7
+ 00F8 00B9 0157 00BB 00BC 00BD 00BE 00E6
+ 0104 012E 0100 0106 00C4 00C5 0118 0112
+ 010C 00C9 0179 0116 0122 0136 012A 013B
+ 0160 0143 0145 00D3 014C 00D5 00D6 00D7
+ 0172 0141 015A 016A 00DC 017B 017D 00DF
+ 0105 012F 0101 0107 00E4 00E5 0119 0113
+ 010D 00E9 017A 0117 0123 0137 012B 013C
+ 0161 0144 0146 00F3 014D 00F5 00F6 00F7
+ 0173 0142 015B 016B 00FC 017C 017E 2019
+End of Item 0001
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0001 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0010,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00A0, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x000B Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0x201D, 0x00A2, 0x00A3, 0x00A4, 0x201E, 0x00A6, 0x00A7,
+/* 0008 */ 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6,
+/* 0010 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x201C, 0x00B5, 0x00B6, 0x00B7,
+/* 0018 */ 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6,
+/* 0020 */ 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112,
+/* 0028 */ 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B,
+/* 0030 */ 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7,
+/* 0038 */ 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF,
+/* 0040 */ 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113,
+/* 0048 */ 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C,
+/* 0050 */ 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7,
+/* 0058 */ 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x2019,
+/* End of table Total Length = 0x006B * 2 */
diff --git a/intl/uconv/ucvlatin/8859-14.uf b/intl/uconv/ucvlatin/8859-14.uf
new file mode 100644
index 000000000..57c961c7e
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-14.uf
@@ -0,0 +1,212 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C0
+ srcEnd = 00CF
+ destBegin = 00C0
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00D1
+ srcEnd = 00D6
+ destBegin = 00D1
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00D8
+ srcEnd = 00DD
+ destBegin = 00D8
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00DF
+ srcEnd = 00EF
+ destBegin = 00DF
+End of Item 0004
+
+Begin of Item 0005
+ Format 0
+ srcBegin = 00F1
+ srcEnd = 00F6
+ destBegin = 00F1
+End of Item 0005
+
+Begin of Item 0006
+ Format 0
+ srcBegin = 00F8
+ srcEnd = 00FD
+ destBegin = 00F8
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00B6
+ mappingOffset = 0000
+ Mapping =
+ 00A0 FFFD FFFD 00A3 FFFD FFFD FFFD 00A7
+ FFFD 00A9 FFFD FFFD FFFD 00AD 00AE FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD 00B6
+End of Item 0007
+
+Begin of Item 0008
+ Format 1
+ srcBegin = 00FF
+ srcEnd = 010B
+ mappingOffset = 0017
+ Mapping =
+ 00FF FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD 00A4 00A5
+End of Item 0008
+
+Begin of Item 0009
+ Format 1
+ srcBegin = 0120
+ srcEnd = 0121
+ mappingOffset = 0024
+ Mapping =
+ 00B2 00B3
+End of Item 0009
+
+Begin of Item 000A
+ Format 1
+ srcBegin = 0174
+ srcEnd = 0178
+ mappingOffset = 0026
+ Mapping =
+ 00D0 00F0 00DE 00FE 00AF
+End of Item 000A
+
+Begin of Item 000B
+ Format 1
+ srcBegin = 1E02
+ srcEnd = 1E0B
+ mappingOffset = 002B
+ Mapping =
+ 00A1 00A2 FFFD FFFD FFFD FFFD FFFD FFFD
+ 00A6 00AB
+End of Item 000B
+
+Begin of Item 000C
+ Format 1
+ srcBegin = 1E1E
+ srcEnd = 1E1F
+ mappingOffset = 0035
+ Mapping =
+ 00B0 00B1
+End of Item 000C
+
+Begin of Item 000D
+ Format 1
+ srcBegin = 1E40
+ srcEnd = 1E41
+ mappingOffset = 0037
+ Mapping =
+ 00B4 00B5
+End of Item 000D
+
+Begin of Item 000E
+ Format 1
+ srcBegin = 1E56
+ srcEnd = 1E6B
+ mappingOffset = 0039
+ Mapping =
+ 00B7 00B9 FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 00BB 00BF FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 00D7 00F7
+End of Item 000E
+
+Begin of Item 000F
+ Format 1
+ srcBegin = 1E80
+ srcEnd = 1E85
+ mappingOffset = 004F
+ Mapping =
+ 00A8 00B8 00AA 00BA 00BD 00BE
+End of Item 000F
+
+Begin of Item 0010
+ Format 1
+ srcBegin = 1EF2
+ srcEnd = 1EF3
+ mappingOffset = 0055
+ Mapping =
+ 00AC 00BC
+End of Item 0010
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0011,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x003C,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0007 */
+/* Total of Format 1 : 0x000A */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1000, 0x1111, 0x1111, 0x0001,
+/*-------------------------------------------------------*/
+/* Offset=0x0009 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00C0, 0x00CF, 0x00C0,
+/* 0002 */ 0x00D1, 0x00D6, 0x00D1,
+/* 0003 */ 0x00D8, 0x00DD, 0x00D8,
+/* 0004 */ 0x00DF, 0x00EF, 0x00DF,
+/* 0005 */ 0x00F1, 0x00F6, 0x00F1,
+/* 0006 */ 0x00F8, 0x00FD, 0x00F8,
+/* 0007 */ 0x00A0, 0x00B6, 0x0000,
+/* 0008 */ 0x00FF, 0x010B, 0x0017,
+/* 0009 */ 0x0120, 0x0121, 0x0024,
+/* 000A */ 0x0174, 0x0178, 0x0026,
+/* 000B */ 0x1E02, 0x1E0B, 0x002B,
+/* 000C */ 0x1E1E, 0x1E1F, 0x0035,
+/* 000D */ 0x1E40, 0x1E41, 0x0037,
+/* 000E */ 0x1E56, 0x1E6B, 0x0039,
+/* 000F */ 0x1E80, 0x1E85, 0x004F,
+/* 0010 */ 0x1EF2, 0x1EF3, 0x0055,
+/*-------------------------------------------------------*/
+/* Offset=0x003C Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0xFFFD, 0xFFFD, 0x00A3, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A7,
+/* 0008 */ 0xFFFD, 0x00A9, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AD, 0x00AE, 0xFFFD,
+/* 0010 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00B6, 0x00FF,
+/* 0018 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0020 */ 0xFFFD, 0xFFFD, 0x00A4, 0x00A5, 0x00B2, 0x00B3, 0x00D0, 0x00F0,
+/* 0028 */ 0x00DE, 0x00FE, 0x00AF, 0x00A1, 0x00A2, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00A6, 0x00AB, 0x00B0, 0x00B1, 0x00B4,
+/* 0038 */ 0x00B5, 0x00B7, 0x00B9, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0040 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00BB, 0x00BF, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0048 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D7, 0x00F7, 0x00A8,
+/* 0050 */ 0x00B8, 0x00AA, 0x00BA, 0x00BD, 0x00BE, 0x00AC, 0x00BC,
+/* End of table Total Length = 0x0093 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-14.ut b/intl/uconv/ucvlatin/8859-14.ut
new file mode 100644
index 000000000..8262ae9ea
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-14.ut
@@ -0,0 +1,138 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C0
+ srcEnd = 00CF
+ destBegin = 00C0
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00D1
+ srcEnd = 00D6
+ destBegin = 00D1
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00D8
+ srcEnd = 00DD
+ destBegin = 00D8
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00DF
+ srcEnd = 00EF
+ destBegin = 00DF
+End of Item 0004
+
+Begin of Item 0005
+ Format 0
+ srcBegin = 00F1
+ srcEnd = 00F6
+ destBegin = 00F1
+End of Item 0005
+
+Begin of Item 0006
+ Format 0
+ srcBegin = 00F8
+ srcEnd = 00FD
+ destBegin = 00F8
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00BF
+ mappingOffset = 0000
+ Mapping =
+ 00A0 1E02 1E03 00A3 010A 010B 1E0A 00A7
+ 1E80 00A9 1E82 1E0B 1EF2 00AD 00AE 0178
+ 1E1E 1E1F 0120 0121 1E40 1E41 00B6 1E56
+ 1E81 1E57 1E83 1E60 1EF3 1E84 1E85 1E61
+End of Item 0007
+
+Begin of Item 0008
+ Format 1
+ srcBegin = 00D0
+ srcEnd = 00DE
+ mappingOffset = 0020
+ Mapping =
+ 0174 FFFD FFFD FFFD FFFD FFFD FFFD 1E6A
+ FFFD FFFD FFFD FFFD FFFD FFFD 0176
+End of Item 0008
+
+Begin of Item 0009
+ Format 1
+ srcBegin = 00F0
+ srcEnd = 00FF
+ mappingOffset = 002F
+ Mapping =
+ 0175 FFFD FFFD FFFD FFFD FFFD FFFD 1E6B
+ FFFD FFFD FFFD FFFD FFFD FFFD 0177 00FF
+End of Item 0009
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x000A,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0025,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0007 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1000, 0x0011,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00C0, 0x00CF, 0x00C0,
+/* 0002 */ 0x00D1, 0x00D6, 0x00D1,
+/* 0003 */ 0x00D8, 0x00DD, 0x00D8,
+/* 0004 */ 0x00DF, 0x00EF, 0x00DF,
+/* 0005 */ 0x00F1, 0x00F6, 0x00F1,
+/* 0006 */ 0x00F8, 0x00FD, 0x00F8,
+/* 0007 */ 0x00A0, 0x00BF, 0x0000,
+/* 0008 */ 0x00D0, 0x00DE, 0x0020,
+/* 0009 */ 0x00F0, 0x00FF, 0x002F,
+/*-------------------------------------------------------*/
+/* Offset=0x0025 Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0x1E02, 0x1E03, 0x00A3, 0x010A, 0x010B, 0x1E0A, 0x00A7,
+/* 0008 */ 0x1E80, 0x00A9, 0x1E82, 0x1E0B, 0x1EF2, 0x00AD, 0x00AE, 0x0178,
+/* 0010 */ 0x1E1E, 0x1E1F, 0x0120, 0x0121, 0x1E40, 0x1E41, 0x00B6, 0x1E56,
+/* 0018 */ 0x1E81, 0x1E57, 0x1E83, 0x1E60, 0x1EF3, 0x1E84, 0x1E85, 0x1E61,
+/* 0020 */ 0x0174, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x1E6A,
+/* 0028 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0176, 0x0175,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x1E6B, 0xFFFD,
+/* 0038 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0177, 0x00FF,
+/* End of table Total Length = 0x0064 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-15.uf b/intl/uconv/ucvlatin/8859-15.uf
new file mode 100644
index 000000000..fcb1901e1
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-15.uf
@@ -0,0 +1,124 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A9
+ srcEnd = 00B3
+ destBegin = 00A9
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00BF
+ srcEnd = 00FF
+ destBegin = 00BF
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00A7
+ mappingOffset = 0000
+ Mapping =
+ 00A0 00A1 00A2 00A3 FFFD 00A5 FFFD 00A7
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 00B5
+ srcEnd = 00BB
+ mappingOffset = 0008
+ Mapping =
+ 00B5 00B6 00B7 FFFD 00B9 00BA 00BB
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0152
+ srcEnd = 0153
+ mappingOffset = 000F
+ Mapping =
+ 00BC 00BD
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 0160
+ srcEnd = 0161
+ mappingOffset = 0011
+ Mapping =
+ 00A6 00A8
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 0178
+ srcEnd = 017E
+ mappingOffset = 0013
+ Mapping =
+ 00BE FFFD FFFD FFFD FFFD 00B4 00B8
+End of Item 0007
+
+Begin of Item 0008
+ Format 2
+ srcBegin = 20AC
+ destBegin = 00A4
+End of Item 0008
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0022,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0005 */
+/* Total of Format 2 : 0x0001 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x1111, 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00A9, 0x00B3, 0x00A9,
+/* 0002 */ 0x00BF, 0x00FF, 0x00BF,
+/* 0003 */ 0x00A0, 0x00A7, 0x0000,
+/* 0004 */ 0x00B5, 0x00BB, 0x0008,
+/* 0005 */ 0x0152, 0x0153, 0x000F,
+/* 0006 */ 0x0160, 0x0161, 0x0011,
+/* 0007 */ 0x0178, 0x017E, 0x0013,
+/* 0008 */ 0x20AC, 0x0000, 0x00A4,
+/*-------------------------------------------------------*/
+/* Offset=0x0022 Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0xFFFD, 0x00A5, 0xFFFD, 0x00A7,
+/* 0008 */ 0x00B5, 0x00B6, 0x00B7, 0xFFFD, 0x00B9, 0x00BA, 0x00BB, 0x00BC,
+/* 0010 */ 0x00BD, 0x00A6, 0x00A8, 0x00BE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0018 */ 0x00B4, 0x00B8,
+/* End of table Total Length = 0x003C * 2 */
diff --git a/intl/uconv/ucvlatin/8859-15.ut b/intl/uconv/ucvlatin/8859-15.ut
new file mode 100644
index 000000000..87b9e6002
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-15.ut
@@ -0,0 +1,88 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A9
+ srcEnd = 00B3
+ destBegin = 00A9
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00BF
+ srcEnd = 00FF
+ destBegin = 00BF
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00A8
+ mappingOffset = 0000
+ Mapping =
+ 00A0 00A1 00A2 00A3 20AC 00A5 0160 00A7
+ 0161
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 00B4
+ srcEnd = 00BE
+ mappingOffset = 0009
+ Mapping =
+ 017D 00B5 00B6 00B7 017E 00B9 00BA 00BB
+ 0152 0153 0178
+End of Item 0004
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0015,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0002 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x0001,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00A9, 0x00B3, 0x00A9,
+/* 0002 */ 0x00BF, 0x00FF, 0x00BF,
+/* 0003 */ 0x00A0, 0x00A8, 0x0000,
+/* 0004 */ 0x00B4, 0x00BE, 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0015 Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0x00A1, 0x00A2, 0x00A3, 0x20AC, 0x00A5, 0x0160, 0x00A7,
+/* 0008 */ 0x0161, 0x017D, 0x00B5, 0x00B6, 0x00B7, 0x017E, 0x00B9, 0x00BA,
+/* 0010 */ 0x00BB, 0x0152, 0x0153, 0x0178,
+/* End of table Total Length = 0x0029 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-16.uf b/intl/uconv/ucvlatin/8859-16.uf
new file mode 100644
index 000000000..eb358be51
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-16.uf
@@ -0,0 +1,180 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 00A0
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C6
+ srcEnd = 00CF
+ destBegin = 00C6
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00E6
+ srcEnd = 00EF
+ destBegin = 00E6
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A7
+ srcEnd = 00C4
+ mappingOffset = 0000
+ Mapping =
+ 00A7 FFFD 00A9 FFFD 00AB FFFD 00AD FFFD
+ FFFD 00B0 00B1 FFFD FFFD FFFD FFFD 00B6
+ 00B7 FFFD FFFD FFFD 00BB FFFD FFFD FFFD
+ FFFD 00C0 00C1 00C2 FFFD 00C4
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 00D2
+ srcEnd = 00E4
+ mappingOffset = 001E
+ Mapping =
+ 00D2 00D3 00D4 FFFD 00D6 FFFD FFFD 00D9
+ 00DA 00DB 00DC FFFD FFFD 00DF 00E0 00E1
+ 00E2 FFFD 00E4
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 00F2
+ srcEnd = 0119
+ mappingOffset = 0031
+ Mapping =
+ 00F2 00F3 00F4 FFFD 00F6 FFFD FFFD 00F9
+ 00FA 00FB 00FC FFFD FFFD 00FF FFFD FFFD
+ 00C3 00E3 00A1 00A2 00C5 00E5 FFFD FFFD
+ FFFD FFFD 00B2 00B9 FFFD FFFD 00D0 00F0
+ FFFD FFFD FFFD FFFD FFFD FFFD 00DD 00FD
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 0141
+ srcEnd = 0144
+ mappingOffset = 0059
+ Mapping =
+ 00A3 00B3 00D1 00F1
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 0150
+ srcEnd = 0161
+ mappingOffset = 005D
+ Mapping =
+ 00D5 00F5 00BC 00BD FFFD FFFD FFFD FFFD
+ FFFD FFFD 00D7 00F7 FFFD FFFD FFFD FFFD
+ 00A6 00A8
+End of Item 0007
+
+Begin of Item 0008
+ Format 1
+ srcBegin = 0170
+ srcEnd = 017E
+ mappingOffset = 006F
+ Mapping =
+ 00D8 00F8 FFFD FFFD FFFD FFFD FFFD FFFD
+ 00BE 00AC 00AE 00AF 00BF 00B4 00B8
+End of Item 0008
+
+Begin of Item 0009
+ Format 1
+ srcBegin = 0218
+ srcEnd = 021B
+ mappingOffset = 007E
+ Mapping =
+ 00AA 00BA 00DE 00FE
+End of Item 0009
+
+Begin of Item 000A
+ Format 1
+ srcBegin = 201D
+ srcEnd = 201E
+ mappingOffset = 0082
+ Mapping =
+ 00B5 00A5
+End of Item 000A
+
+Begin of Item 000B
+ Format 2
+ srcBegin = 20AC
+ destBegin = 00A4
+End of Item 000B
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x000C,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x002C,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0008 */
+/* Total of Format 2 : 0x0001 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x1111, 0x2111, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0008 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x00A0, 0x0000,
+/* 0001 */ 0x00C6, 0x00CF, 0x00C6,
+/* 0002 */ 0x00E6, 0x00EF, 0x00E6,
+/* 0003 */ 0x00A7, 0x00C4, 0x0000,
+/* 0004 */ 0x00D2, 0x00E4, 0x001E,
+/* 0005 */ 0x00F2, 0x0119, 0x0031,
+/* 0006 */ 0x0141, 0x0144, 0x0059,
+/* 0007 */ 0x0150, 0x0161, 0x005D,
+/* 0008 */ 0x0170, 0x017E, 0x006F,
+/* 0009 */ 0x0218, 0x021B, 0x007E,
+/* 000A */ 0x201D, 0x201E, 0x0082,
+/* 000B */ 0x20AC, 0x0000, 0x00A4,
+/*-------------------------------------------------------*/
+/* Offset=0x002C Start of MappingTable */
+
+/* 0000 */ 0x00A7, 0xFFFD, 0x00A9, 0xFFFD, 0x00AB, 0xFFFD, 0x00AD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0x00B0, 0x00B1, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00B6,
+/* 0010 */ 0x00B7, 0xFFFD, 0xFFFD, 0xFFFD, 0x00BB, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0018 */ 0xFFFD, 0x00C0, 0x00C1, 0x00C2, 0xFFFD, 0x00C4, 0x00D2, 0x00D3,
+/* 0020 */ 0x00D4, 0xFFFD, 0x00D6, 0xFFFD, 0xFFFD, 0x00D9, 0x00DA, 0x00DB,
+/* 0028 */ 0x00DC, 0xFFFD, 0xFFFD, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0xFFFD,
+/* 0030 */ 0x00E4, 0x00F2, 0x00F3, 0x00F4, 0xFFFD, 0x00F6, 0xFFFD, 0xFFFD,
+/* 0038 */ 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0xFFFD, 0xFFFD, 0x00FF, 0xFFFD,
+/* 0040 */ 0xFFFD, 0x00C3, 0x00E3, 0x00A1, 0x00A2, 0x00C5, 0x00E5, 0xFFFD,
+/* 0048 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00B2, 0x00B9, 0xFFFD, 0xFFFD, 0x00D0,
+/* 0050 */ 0x00F0, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00DD,
+/* 0058 */ 0x00FD, 0x00A3, 0x00B3, 0x00D1, 0x00F1, 0x00D5, 0x00F5, 0x00BC,
+/* 0060 */ 0x00BD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D7,
+/* 0068 */ 0x00F7, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A6, 0x00A8, 0x00D8,
+/* 0070 */ 0x00F8, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00BE,
+/* 0078 */ 0x00AC, 0x00AE, 0x00AF, 0x00BF, 0x00B4, 0x00B8, 0x00AA, 0x00BA,
+/* 0080 */ 0x00DE, 0x00FE, 0x00B5, 0x00A5,
+/* End of table Total Length = 0x00B0 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-16.ut b/intl/uconv/ucvlatin/8859-16.ut
new file mode 100644
index 000000000..889ac15b1
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-16.ut
@@ -0,0 +1,98 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 00A0
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C6
+ srcEnd = 00CF
+ destBegin = 00C6
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00E6
+ srcEnd = 00EF
+ destBegin = 00E6
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A1
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 0104 0105 0141 20AC 201E 0160 00A7 0161
+ 00A9 0218 00AB 0179 00AD 017A 017B 00B0
+ 00B1 010C 0142 017D 201D 00B6 00B7 017E
+ 010D 0219 00BB 0152 0153 0178 017C 00C0
+ 00C1 00C2 0102 00C4 0106 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 0110
+ 0143 00D2 00D3 00D4 0150 00D6 015A 0170
+ 00D9 00DA 00DB 00DC 0118 021A 00DF 00E0
+ 00E1 00E2 0103 00E4 0107 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 0111
+ 0144 00F2 00F3 00F4 0151 00F6 015B 0171
+ 00F9 00FA 00FB 00FC 0119 021B 00FF
+End of Item 0003
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0012,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x00A0, 0x0000,
+/* 0001 */ 0x00C6, 0x00CF, 0x00C6,
+/* 0002 */ 0x00E6, 0x00EF, 0x00E6,
+/* 0003 */ 0x00A1, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0012 Start of MappingTable */
+
+/* 0000 */ 0x0104, 0x0105, 0x0141, 0x20AC, 0x201E, 0x0160, 0x00A7, 0x0161,
+/* 0008 */ 0x00A9, 0x0218, 0x00AB, 0x0179, 0x00AD, 0x017A, 0x017B, 0x00B0,
+/* 0010 */ 0x00B1, 0x010C, 0x0142, 0x017D, 0x201D, 0x00B6, 0x00B7, 0x017E,
+/* 0018 */ 0x010D, 0x0219, 0x00BB, 0x0152, 0x0153, 0x0178, 0x017C, 0x00C0,
+/* 0020 */ 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0106, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0028 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0110,
+/* 0030 */ 0x0143, 0x00D2, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x015A, 0x0170,
+/* 0038 */ 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x0118, 0x021A, 0x00DF, 0x00E0,
+/* 0040 */ 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x0107, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0048 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0111,
+/* 0050 */ 0x0144, 0x00F2, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x015B, 0x0171,
+/* 0058 */ 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x0119, 0x021B, 0x00FF,
+/* End of table Total Length = 0x0071 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-2.uf b/intl/uconv/ucvlatin/8859-2.uf
new file mode 100644
index 000000000..46c0f9303
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-2.uf
@@ -0,0 +1,132 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 011B
+ mappingOffset = 0000
+ Mapping =
+ 00A0 FFFD FFFD FFFD 00A4 FFFD FFFD 00A7
+ 00A8 FFFD FFFD FFFD FFFD 00AD FFFD FFFD
+ 00B0 FFFD FFFD FFFD 00B4 FFFD FFFD FFFD
+ 00B8 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 00C1 00C2 FFFD 00C4 FFFD FFFD 00C7
+ FFFD 00C9 FFFD 00CB FFFD 00CD 00CE FFFD
+ FFFD FFFD FFFD 00D3 00D4 FFFD 00D6 00D7
+ FFFD FFFD 00DA FFFD 00DC 00DD FFFD 00DF
+ FFFD 00E1 00E2 FFFD 00E4 FFFD FFFD 00E7
+ FFFD 00E9 FFFD 00EB FFFD 00ED 00EE FFFD
+ FFFD FFFD FFFD 00F3 00F4 FFFD 00F6 00F7
+ FFFD FFFD 00FA FFFD 00FC 00FD FFFD FFFD
+ FFFD FFFD 00C3 00E3 00A1 00B1 00C6 00E6
+ FFFD FFFD FFFD FFFD 00C8 00E8 00CF 00EF
+ 00D0 00F0 FFFD FFFD FFFD FFFD FFFD FFFD
+ 00CA 00EA 00CC 00EC
+End of Item 0001
+
+Begin of Item 0002
+ Format 1
+ srcBegin = 0139
+ srcEnd = 017E
+ mappingOffset = 007C
+ Mapping =
+ 00C5 00E5 FFFD FFFD 00A5 00B5 FFFD FFFD
+ 00A3 00B3 00D1 00F1 FFFD FFFD 00D2 00F2
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 00D5
+ 00F5 FFFD FFFD 00C0 00E0 FFFD FFFD 00D8
+ 00F8 00A6 00B6 FFFD FFFD 00AA 00BA 00A9
+ 00B9 00DE 00FE 00AB 00BB FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 00D9 00F9 00DB
+ 00FB FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ 00AC 00BC 00AF 00BF 00AE 00BE
+End of Item 0002
+
+Begin of Item 0003
+ Format 2
+ srcBegin = 02C7
+ destBegin = 00B7
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 02D8
+ srcEnd = 02DD
+ mappingOffset = 00C2
+ Mapping =
+ 00A2 00FF FFFD 00B2 FFFD 00BD
+End of Item 0004
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0015,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0001 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0001 */
+/* Total of Format 3 : 0x0000 */
+
+0x2110, 0x0001,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00A0, 0x011B, 0x0000,
+/* 0002 */ 0x0139, 0x017E, 0x007C,
+/* 0003 */ 0x02C7, 0x0000, 0x00B7,
+/* 0004 */ 0x02D8, 0x02DD, 0x00C2,
+/*-------------------------------------------------------*/
+/* Offset=0x0015 Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A4, 0xFFFD, 0xFFFD, 0x00A7,
+/* 0008 */ 0x00A8, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AD, 0xFFFD, 0xFFFD,
+/* 0010 */ 0x00B0, 0xFFFD, 0xFFFD, 0xFFFD, 0x00B4, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0018 */ 0x00B8, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0020 */ 0xFFFD, 0x00C1, 0x00C2, 0xFFFD, 0x00C4, 0xFFFD, 0xFFFD, 0x00C7,
+/* 0028 */ 0xFFFD, 0x00C9, 0xFFFD, 0x00CB, 0xFFFD, 0x00CD, 0x00CE, 0xFFFD,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00D3, 0x00D4, 0xFFFD, 0x00D6, 0x00D7,
+/* 0038 */ 0xFFFD, 0xFFFD, 0x00DA, 0xFFFD, 0x00DC, 0x00DD, 0xFFFD, 0x00DF,
+/* 0040 */ 0xFFFD, 0x00E1, 0x00E2, 0xFFFD, 0x00E4, 0xFFFD, 0xFFFD, 0x00E7,
+/* 0048 */ 0xFFFD, 0x00E9, 0xFFFD, 0x00EB, 0xFFFD, 0x00ED, 0x00EE, 0xFFFD,
+/* 0050 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00F3, 0x00F4, 0xFFFD, 0x00F6, 0x00F7,
+/* 0058 */ 0xFFFD, 0xFFFD, 0x00FA, 0xFFFD, 0x00FC, 0x00FD, 0xFFFD, 0xFFFD,
+/* 0060 */ 0xFFFD, 0xFFFD, 0x00C3, 0x00E3, 0x00A1, 0x00B1, 0x00C6, 0x00E6,
+/* 0068 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00C8, 0x00E8, 0x00CF, 0x00EF,
+/* 0070 */ 0x00D0, 0x00F0, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0078 */ 0x00CA, 0x00EA, 0x00CC, 0x00EC, 0x00C5, 0x00E5, 0xFFFD, 0xFFFD,
+/* 0080 */ 0x00A5, 0x00B5, 0xFFFD, 0xFFFD, 0x00A3, 0x00B3, 0x00D1, 0x00F1,
+/* 0088 */ 0xFFFD, 0xFFFD, 0x00D2, 0x00F2, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0090 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00D5, 0x00F5, 0xFFFD, 0xFFFD, 0x00C0,
+/* 0098 */ 0x00E0, 0xFFFD, 0xFFFD, 0x00D8, 0x00F8, 0x00A6, 0x00B6, 0xFFFD,
+/* 00A0 */ 0xFFFD, 0x00AA, 0x00BA, 0x00A9, 0x00B9, 0x00DE, 0x00FE, 0x00AB,
+/* 00A8 */ 0x00BB, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00B0 */ 0xFFFD, 0x00D9, 0x00F9, 0x00DB, 0x00FB, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00B8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AC, 0x00BC, 0x00AF, 0x00BF,
+/* 00C0 */ 0x00AE, 0x00BE, 0x00A2, 0x00FF, 0xFFFD, 0x00B2, 0xFFFD, 0x00BD,
+/* End of table Total Length = 0x00DD * 2 */
diff --git a/intl/uconv/ucvlatin/8859-2.ut b/intl/uconv/ucvlatin/8859-2.ut
new file mode 100644
index 000000000..8acf2f6a7
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-2.ut
@@ -0,0 +1,80 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 00A0 0104 02D8 0141 00A4 013D 015A 00A7
+ 00A8 0160 015E 0164 0179 00AD 017D 017B
+ 00B0 0105 02DB 0142 00B4 013E 015B 02C7
+ 00B8 0161 015F 0165 017A 02DD 017E 017C
+ 0154 00C1 00C2 0102 00C4 0139 0106 00C7
+ 010C 00C9 0118 00CB 011A 00CD 00CE 010E
+ 0110 0143 0147 00D3 00D4 0150 00D6 00D7
+ 0158 016E 00DA 0170 00DC 00DD 0162 00DF
+ 0155 00E1 00E2 0103 00E4 013A 0107 00E7
+ 010D 00E9 0119 00EB 011B 00ED 00EE 010F
+ 0111 0144 0148 00F3 00F4 0151 00F6 00F7
+ 0159 016F 00FA 0171 00FC 00FD 0163 02D9
+End of Item 0001
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0001 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0010,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00A0, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x000B Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0x0104, 0x02D8, 0x0141, 0x00A4, 0x013D, 0x015A, 0x00A7,
+/* 0008 */ 0x00A8, 0x0160, 0x015E, 0x0164, 0x0179, 0x00AD, 0x017D, 0x017B,
+/* 0010 */ 0x00B0, 0x0105, 0x02DB, 0x0142, 0x00B4, 0x013E, 0x015B, 0x02C7,
+/* 0018 */ 0x00B8, 0x0161, 0x015F, 0x0165, 0x017A, 0x02DD, 0x017E, 0x017C,
+/* 0020 */ 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,
+/* 0028 */ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
+/* 0030 */ 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
+/* 0038 */ 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
+/* 0040 */ 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
+/* 0048 */ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
+/* 0050 */ 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
+/* 0058 */ 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9,
+/* End of table Total Length = 0x006B * 2 */
diff --git a/intl/uconv/ucvlatin/8859-3.uf b/intl/uconv/ucvlatin/8859-3.uf
new file mode 100644
index 000000000..3dcf6ed8f
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-3.uf
@@ -0,0 +1,177 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C7
+ srcEnd = 00CF
+ destBegin = 00C7
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00E7
+ srcEnd = 00EF
+ destBegin = 00E7
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00C4
+ mappingOffset = 0000
+ Mapping =
+ 00A0 FFFD FFFD 00A3 00A4 FFFD FFFD 00A7
+ 00A8 FFFD FFFD FFFD FFFD 00AD FFFD FFFD
+ 00B0 FFFD 00B2 00B3 00B4 00B5 FFFD 00B7
+ 00B8 FFFD FFFD FFFD FFFD 00BD FFFD FFFD
+ 00C0 00C1 00C2 FFFD 00C4
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 00D1
+ srcEnd = 00E4
+ mappingOffset = 0025
+ Mapping =
+ 00D1 00D2 00D3 00D4 FFFD 00D6 00D7 FFFD
+ 00D9 00DA 00DB 00DC FFFD FFFD 00DF 00E0
+ 00E1 00E2 FFFD 00E4
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 00F1
+ srcEnd = 00FC
+ mappingOffset = 0039
+ Mapping =
+ 00F1 00F2 00F3 00F4 FFFD 00F6 00F7 FFFD
+ 00F9 00FA 00FB 00FC
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 0108
+ srcEnd = 010B
+ mappingOffset = 0045
+ Mapping =
+ 00C6 00E6 00C5 00E5
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 011C
+ srcEnd = 0135
+ mappingOffset = 0049
+ Mapping =
+ 00D8 00F8 00AB 00BB 00D5 00F5 FFFD FFFD
+ 00A6 00B6 00A1 00B1 FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 00A9 00B9 FFFD FFFD
+ 00AC 00BC
+End of Item 0007
+
+Begin of Item 0008
+ Format 1
+ srcBegin = 015C
+ srcEnd = 015F
+ mappingOffset = 0063
+ Mapping =
+ 00DE 00FE 00AA 00BA
+End of Item 0008
+
+Begin of Item 0009
+ Format 1
+ srcBegin = 016C
+ srcEnd = 016D
+ mappingOffset = 0067
+ Mapping =
+ 00DD 00FD
+End of Item 0009
+
+Begin of Item 000A
+ Format 1
+ srcBegin = 017B
+ srcEnd = 017C
+ mappingOffset = 0069
+ Mapping =
+ 00AF 00BF
+End of Item 000A
+
+Begin of Item 000B
+ Format 1
+ srcBegin = 02D8
+ srcEnd = 02D9
+ mappingOffset = 006B
+ Mapping =
+ 00A2 00FF
+End of Item 000B
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x000C,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x002C,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0009 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x1111, 0x1111, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0008 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00C7, 0x00CF, 0x00C7,
+/* 0002 */ 0x00E7, 0x00EF, 0x00E7,
+/* 0003 */ 0x00A0, 0x00C4, 0x0000,
+/* 0004 */ 0x00D1, 0x00E4, 0x0025,
+/* 0005 */ 0x00F1, 0x00FC, 0x0039,
+/* 0006 */ 0x0108, 0x010B, 0x0045,
+/* 0007 */ 0x011C, 0x0135, 0x0049,
+/* 0008 */ 0x015C, 0x015F, 0x0063,
+/* 0009 */ 0x016C, 0x016D, 0x0067,
+/* 000A */ 0x017B, 0x017C, 0x0069,
+/* 000B */ 0x02D8, 0x02D9, 0x006B,
+/*-------------------------------------------------------*/
+/* Offset=0x002C Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0xFFFD, 0xFFFD, 0x00A3, 0x00A4, 0xFFFD, 0xFFFD, 0x00A7,
+/* 0008 */ 0x00A8, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AD, 0xFFFD, 0xFFFD,
+/* 0010 */ 0x00B0, 0xFFFD, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0xFFFD, 0x00B7,
+/* 0018 */ 0x00B8, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00BD, 0xFFFD, 0xFFFD,
+/* 0020 */ 0x00C0, 0x00C1, 0x00C2, 0xFFFD, 0x00C4, 0x00D1, 0x00D2, 0x00D3,
+/* 0028 */ 0x00D4, 0xFFFD, 0x00D6, 0x00D7, 0xFFFD, 0x00D9, 0x00DA, 0x00DB,
+/* 0030 */ 0x00DC, 0xFFFD, 0xFFFD, 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0xFFFD,
+/* 0038 */ 0x00E4, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0xFFFD, 0x00F6, 0x00F7,
+/* 0040 */ 0xFFFD, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x00C6, 0x00E6, 0x00C5,
+/* 0048 */ 0x00E5, 0x00D8, 0x00F8, 0x00AB, 0x00BB, 0x00D5, 0x00F5, 0xFFFD,
+/* 0050 */ 0xFFFD, 0x00A6, 0x00B6, 0x00A1, 0x00B1, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0058 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A9, 0x00B9, 0xFFFD,
+/* 0060 */ 0xFFFD, 0x00AC, 0x00BC, 0x00DE, 0x00FE, 0x00AA, 0x00BA, 0x00DD,
+/* 0068 */ 0x00FD, 0x00AF, 0x00BF, 0x00A2, 0x00FF,
+/* End of table Total Length = 0x0099 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-3.ut b/intl/uconv/ucvlatin/8859-3.ut
new file mode 100644
index 000000000..e9eac5406
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-3.ut
@@ -0,0 +1,96 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C7
+ srcEnd = 00CF
+ destBegin = 00C7
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00E7
+ srcEnd = 00EF
+ destBegin = 00E7
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 00A0 0126 02D8 00A3 00A4 FFFD 0124 00A7
+ 00A8 0130 015E 011E 0134 00AD FFFD 017B
+ 00B0 0127 00B2 00B3 00B4 00B5 0125 00B7
+ 00B8 0131 015F 011F 0135 00BD FFFD 017C
+ 00C0 00C1 00C2 FFFD 00C4 010A 0108 FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 00D1 00D2 00D3 00D4 0120 00D6 00D7
+ 011C 00D9 00DA 00DB 00DC 016C 015C 00DF
+ 00E0 00E1 00E2 FFFD 00E4 010B 0109 FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 00F1 00F2 00F3 00F4 0121 00F6 00F7
+ 011D 00F9 00FA 00FB 00FC 016D 015D 02D9
+End of Item 0003
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0012,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00C7, 0x00CF, 0x00C7,
+/* 0002 */ 0x00E7, 0x00EF, 0x00E7,
+/* 0003 */ 0x00A0, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0012 Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0x0126, 0x02D8, 0x00A3, 0x00A4, 0xFFFD, 0x0124, 0x00A7,
+/* 0008 */ 0x00A8, 0x0130, 0x015E, 0x011E, 0x0134, 0x00AD, 0xFFFD, 0x017B,
+/* 0010 */ 0x00B0, 0x0127, 0x00B2, 0x00B3, 0x00B4, 0x00B5, 0x0125, 0x00B7,
+/* 0018 */ 0x00B8, 0x0131, 0x015F, 0x011F, 0x0135, 0x00BD, 0xFFFD, 0x017C,
+/* 0020 */ 0x00C0, 0x00C1, 0x00C2, 0xFFFD, 0x00C4, 0x010A, 0x0108, 0xFFFD,
+/* 0028 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0030 */ 0xFFFD, 0x00D1, 0x00D2, 0x00D3, 0x00D4, 0x0120, 0x00D6, 0x00D7,
+/* 0038 */ 0x011C, 0x00D9, 0x00DA, 0x00DB, 0x00DC, 0x016C, 0x015C, 0x00DF,
+/* 0040 */ 0x00E0, 0x00E1, 0x00E2, 0xFFFD, 0x00E4, 0x010B, 0x0109, 0xFFFD,
+/* 0048 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0050 */ 0xFFFD, 0x00F1, 0x00F2, 0x00F3, 0x00F4, 0x0121, 0x00F6, 0x00F7,
+/* 0058 */ 0x011D, 0x00F9, 0x00FA, 0x00FB, 0x00FC, 0x016D, 0x015D, 0x02D9,
+/* End of table Total Length = 0x0072 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-4.uf b/intl/uconv/ucvlatin/8859-4.uf
new file mode 100644
index 000000000..f929b1c49
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-4.uf
@@ -0,0 +1,152 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C1
+ srcEnd = 00C6
+ destBegin = 00C1
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00E1
+ srcEnd = 00E6
+ destBegin = 00E1
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00B8
+ mappingOffset = 0000
+ Mapping =
+ 00A0 FFFD FFFD FFFD 00A4 FFFD FFFD 00A7
+ 00A8 FFFD FFFD FFFD FFFD 00AD FFFD 00AF
+ 00B0 FFFD FFFD FFFD 00B4 FFFD FFFD FFFD
+ 00B8
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 00C9
+ srcEnd = 017E
+ mappingOffset = 0019
+ Mapping =
+ 00C9 FFFD 00CB FFFD 00CD 00CE FFFD FFFD
+ FFFD FFFD FFFD 00D4 00D5 00D6 00D7 00D8
+ FFFD 00DA 00DB 00DC FFFD FFFD 00DF FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ 00E9 FFFD 00EB FFFD 00ED 00EE FFFD FFFD
+ FFFD FFFD FFFD 00F4 00F5 00F6 00F7 00F8
+ FFFD 00FA 00FB 00FC FFFD FFFD FFFD 00C0
+ 00E0 FFFD FFFD 00A1 00B1 FFFD FFFD FFFD
+ FFFD FFFD FFFD 00C8 00E8 FFFD FFFD 00D0
+ 00F0 00AA 00BA FFFD FFFD 00CC 00EC 00CA
+ 00EA FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 00AB 00BB FFFD FFFD FFFD FFFD 00A5
+ 00B5 00CF 00EF FFFD FFFD 00C7 00E7 FFFD
+ FFFD FFFD FFFD FFFD FFFD 00D3 00F3 00A2
+ FFFD FFFD 00A6 00B6 FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 00D1 00F1 FFFD FFFD
+ FFFD 00BD 00BF 00D2 00F2 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 00A3 00B3 FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 00A9
+ 00B9 FFFD FFFD FFFD FFFD 00AC 00BC 00DD
+ 00FD 00DE 00FE FFFD FFFD FFFD FFFD FFFD
+ FFFD 00D9 00F9 FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 00AE 00BE
+End of Item 0004
+
+Begin of Item 0005
+ Format 2
+ srcBegin = 02C7
+ destBegin = 00B7
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 02D9
+ srcEnd = 02DB
+ mappingOffset = 00CF
+ Mapping =
+ 00FF FFFD 00B2
+End of Item 0006
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0001 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x0121,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00C1, 0x00C6, 0x00C1,
+/* 0002 */ 0x00E1, 0x00E6, 0x00E1,
+/* 0003 */ 0x00A0, 0x00B8, 0x0000,
+/* 0004 */ 0x00C9, 0x017E, 0x0019,
+/* 0005 */ 0x02C7, 0x0000, 0x00B7,
+/* 0006 */ 0x02D9, 0x02DB, 0x00CF,
+/*-------------------------------------------------------*/
+/* Offset=0x001B Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A4, 0xFFFD, 0xFFFD, 0x00A7,
+/* 0008 */ 0x00A8, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AD, 0xFFFD, 0x00AF,
+/* 0010 */ 0x00B0, 0xFFFD, 0xFFFD, 0xFFFD, 0x00B4, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0018 */ 0x00B8, 0x00C9, 0xFFFD, 0x00CB, 0xFFFD, 0x00CD, 0x00CE, 0xFFFD,
+/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
+/* 0028 */ 0x00D8, 0xFFFD, 0x00DA, 0x00DB, 0x00DC, 0xFFFD, 0xFFFD, 0x00DF,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0038 */ 0xFFFD, 0x00E9, 0xFFFD, 0x00EB, 0xFFFD, 0x00ED, 0x00EE, 0xFFFD,
+/* 0040 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
+/* 0048 */ 0x00F8, 0xFFFD, 0x00FA, 0x00FB, 0x00FC, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0050 */ 0x00C0, 0x00E0, 0xFFFD, 0xFFFD, 0x00A1, 0x00B1, 0xFFFD, 0xFFFD,
+/* 0058 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00C8, 0x00E8, 0xFFFD, 0xFFFD,
+/* 0060 */ 0x00D0, 0x00F0, 0x00AA, 0x00BA, 0xFFFD, 0xFFFD, 0x00CC, 0x00EC,
+/* 0068 */ 0x00CA, 0x00EA, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0070 */ 0xFFFD, 0xFFFD, 0x00AB, 0x00BB, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0078 */ 0x00A5, 0x00B5, 0x00CF, 0x00EF, 0xFFFD, 0xFFFD, 0x00C7, 0x00E7,
+/* 0080 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D3, 0x00F3,
+/* 0088 */ 0x00A2, 0xFFFD, 0xFFFD, 0x00A6, 0x00B6, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0090 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D1, 0x00F1, 0xFFFD,
+/* 0098 */ 0xFFFD, 0xFFFD, 0x00BD, 0x00BF, 0x00D2, 0x00F2, 0xFFFD, 0xFFFD,
+/* 00A0 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A3, 0x00B3,
+/* 00A8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00B0 */ 0x00A9, 0x00B9, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AC, 0x00BC,
+/* 00B8 */ 0x00DD, 0x00FD, 0x00DE, 0x00FE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00C0 */ 0xFFFD, 0xFFFD, 0x00D9, 0x00F9, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00C8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AE, 0x00BE, 0x00FF,
+/* 00D0 */ 0xFFFD, 0x00B2,
+/* End of table Total Length = 0x00ED * 2 */
diff --git a/intl/uconv/ucvlatin/8859-4.ut b/intl/uconv/ucvlatin/8859-4.ut
new file mode 100644
index 000000000..1bc4a81f9
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-4.ut
@@ -0,0 +1,96 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C1
+ srcEnd = 00C6
+ destBegin = 00C1
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00E1
+ srcEnd = 00E6
+ destBegin = 00E1
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 00A0 0104 0138 0156 00A4 0128 013B 00A7
+ 00A8 0160 0112 0122 0166 00AD 017D 00AF
+ 00B0 0105 02DB 0157 00B4 0129 013C 02C7
+ 00B8 0161 0113 0123 0167 014A 017E 014B
+ 0100 FFFD FFFD FFFD FFFD FFFD FFFD 012E
+ 010C 00C9 0118 00CB 0116 00CD 00CE 012A
+ 0110 0145 014C 0136 00D4 00D5 00D6 00D7
+ 00D8 0172 00DA 00DB 00DC 0168 016A 00DF
+ 0101 FFFD FFFD FFFD FFFD FFFD FFFD 012F
+ 010D 00E9 0119 00EB 0117 00ED 00EE 012B
+ 0111 0146 014D 0137 00F4 00F5 00F6 00F7
+ 00F8 0173 00FA 00FB 00FC 0169 016B 02D9
+End of Item 0003
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0012,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00C1, 0x00C6, 0x00C1,
+/* 0002 */ 0x00E1, 0x00E6, 0x00E1,
+/* 0003 */ 0x00A0, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0012 Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0x0104, 0x0138, 0x0156, 0x00A4, 0x0128, 0x013B, 0x00A7,
+/* 0008 */ 0x00A8, 0x0160, 0x0112, 0x0122, 0x0166, 0x00AD, 0x017D, 0x00AF,
+/* 0010 */ 0x00B0, 0x0105, 0x02DB, 0x0157, 0x00B4, 0x0129, 0x013C, 0x02C7,
+/* 0018 */ 0x00B8, 0x0161, 0x0113, 0x0123, 0x0167, 0x014A, 0x017E, 0x014B,
+/* 0020 */ 0x0100, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x012E,
+/* 0028 */ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x0116, 0x00CD, 0x00CE, 0x012A,
+/* 0030 */ 0x0110, 0x0145, 0x014C, 0x0136, 0x00D4, 0x00D5, 0x00D6, 0x00D7,
+/* 0038 */ 0x00D8, 0x0172, 0x00DA, 0x00DB, 0x00DC, 0x0168, 0x016A, 0x00DF,
+/* 0040 */ 0x0101, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x012F,
+/* 0048 */ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x0117, 0x00ED, 0x00EE, 0x012B,
+/* 0050 */ 0x0111, 0x0146, 0x014D, 0x0137, 0x00F4, 0x00F5, 0x00F6, 0x00F7,
+/* 0058 */ 0x00F8, 0x0173, 0x00FA, 0x00FB, 0x00FC, 0x0169, 0x016B, 0x02D9,
+/* End of table Total Length = 0x0072 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-5.uf b/intl/uconv/ucvlatin/8859-5.uf
new file mode 100644
index 000000000..cd01f9226
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-5.uf
@@ -0,0 +1,101 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 0401
+ srcEnd = 040C
+ destBegin = 00A1
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 040E
+ srcEnd = 044F
+ destBegin = 00AE
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 0451
+ srcEnd = 045C
+ destBegin = 00F1
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00AD
+ mappingOffset = 0000
+ Mapping =
+ 00A0 FFFD FFFD FFFD FFFD FFFD FFFD 00FD
+ FFFD FFFD FFFD FFFD FFFD 00AD
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 045E
+ srcEnd = 045F
+ mappingOffset = 000E
+ Mapping =
+ 00FE 00FF
+End of Item 0005
+
+Begin of Item 0006
+ Format 2
+ srcBegin = 2116
+ destBegin = 00F0
+End of Item 0006
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0004 */
+/* Total of Format 1 : 0x0002 */
+/* Total of Format 2 : 0x0001 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x0211,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x0401, 0x040C, 0x00A1,
+/* 0002 */ 0x040E, 0x044F, 0x00AE,
+/* 0003 */ 0x0451, 0x045C, 0x00F1,
+/* 0004 */ 0x00A0, 0x00AD, 0x0000,
+/* 0005 */ 0x045E, 0x045F, 0x000E,
+/* 0006 */ 0x2116, 0x0000, 0x00F0,
+/*-------------------------------------------------------*/
+/* Offset=0x001B Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00FD,
+/* 0008 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AD, 0x00FE, 0x00FF,
+/* End of table Total Length = 0x002B * 2 */
diff --git a/intl/uconv/ucvlatin/8859-5.ut b/intl/uconv/ucvlatin/8859-5.ut
new file mode 100644
index 000000000..03b530a38
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-5.ut
@@ -0,0 +1,103 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A1
+ srcEnd = 00AC
+ destBegin = 0401
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00AE
+ srcEnd = 00EF
+ destBegin = 040E
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00F1
+ srcEnd = 00FC
+ destBegin = 0451
+End of Item 0003
+
+Begin of Item 0004
+ Format 2
+ srcBegin = 00A0
+ destBegin = 00A0
+End of Item 0004
+
+Begin of Item 0005
+ Format 2
+ srcBegin = 00AD
+ destBegin = 00AD
+End of Item 0005
+
+Begin of Item 0006
+ Format 2
+ srcBegin = 00F0
+ destBegin = 2116
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00FD
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 00A7 045E 045F
+End of Item 0007
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001F,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0004 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0003 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1222, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00A1, 0x00AC, 0x0401,
+/* 0002 */ 0x00AE, 0x00EF, 0x040E,
+/* 0003 */ 0x00F1, 0x00FC, 0x0451,
+/* 0004 */ 0x00A0, 0x0000, 0x00A0,
+/* 0005 */ 0x00AD, 0x0000, 0x00AD,
+/* 0006 */ 0x00F0, 0x0000, 0x2116,
+/* 0007 */ 0x00FD, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x001F Start of MappingTable */
+
+/* 0000 */ 0x00A7, 0x045E, 0x045F,
+/* End of table Total Length = 0x0022 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-6.uf b/intl/uconv/ucvlatin/8859-6.uf
new file mode 100644
index 000000000..76b3484f1
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-6.uf
@@ -0,0 +1,94 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 0621
+ srcEnd = 063A
+ destBegin = 00C1
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 0640
+ srcEnd = 0652
+ destBegin = 00E0
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00AD
+ mappingOffset = 0000
+ Mapping =
+ 00A0 FFFD FFFD FFFD 00A4 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 00AD
+End of Item 0003
+
+Begin of Item 0004
+ Format 2
+ srcBegin = 060C
+ destBegin = 00AC
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 061B
+ srcEnd = 061F
+ mappingOffset = 000E
+ Mapping =
+ 00BB FFFD FFFD FFFD 00BF
+End of Item 0005
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0018,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0002 */
+/* Total of Format 2 : 0x0001 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x0012,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x0621, 0x063A, 0x00C1,
+/* 0002 */ 0x0640, 0x0652, 0x00E0,
+/* 0003 */ 0x00A0, 0x00AD, 0x0000,
+/* 0004 */ 0x060C, 0x0000, 0x00AC,
+/* 0005 */ 0x061B, 0x061F, 0x000E,
+/*-------------------------------------------------------*/
+/* Offset=0x0018 Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A4, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AD, 0x00BB, 0xFFFD,
+/* 0010 */ 0xFFFD, 0xFFFD, 0x00BF,
+/* End of table Total Length = 0x002B * 2 */
diff --git a/intl/uconv/ucvlatin/8859-6.ut b/intl/uconv/ucvlatin/8859-6.ut
new file mode 100644
index 000000000..bb49da199
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-6.ut
@@ -0,0 +1,87 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C1
+ srcEnd = 00DA
+ destBegin = 0621
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00E0
+ srcEnd = 00F2
+ destBegin = 0640
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00AD
+ mappingOffset = 0000
+ Mapping =
+ 00A0 FFFD FFFD FFFD 00A4 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 060C 00AD
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 00BB
+ srcEnd = 00BF
+ mappingOffset = 000E
+ Mapping =
+ 061B FFFD FFFD FFFD 061F
+End of Item 0004
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0015,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0002 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x0001,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00C1, 0x00DA, 0x0621,
+/* 0002 */ 0x00E0, 0x00F2, 0x0640,
+/* 0003 */ 0x00A0, 0x00AD, 0x0000,
+/* 0004 */ 0x00BB, 0x00BF, 0x000E,
+/*-------------------------------------------------------*/
+/* Offset=0x0015 Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A4, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x060C, 0x00AD, 0x061B, 0xFFFD,
+/* 0010 */ 0xFFFD, 0xFFFD, 0x061F,
+/* End of table Total Length = 0x0028 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-7.uf b/intl/uconv/ucvlatin/8859-7.uf
new file mode 100644
index 000000000..f73ae6c1a
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-7.uf
@@ -0,0 +1,117 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 038E
+ srcEnd = 03A1
+ destBegin = 00BE
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 03A3
+ srcEnd = 03CE
+ destBegin = 00D3
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00BD
+ mappingOffset = 0000
+ Mapping =
+ 00A0 FFFD FFFD 00A3 FFFD FFFD 00A6 00A7
+ 00A8 00A9 FFFD 00AB 00AC 00AD FFFD FFFD
+ 00B0 00B1 00B2 00B3 FFFD FFFD FFFD 00B7
+ FFFD FFFD FFFD 00BB FFFD 00BD
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 037A
+ srcEnd = 038C
+ mappingOffset = 001E
+ Mapping =
+ 00AA FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 00B4 00B5 00B6 FFFD 00B8 00B9
+ 00BA FFFD 00BC
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 2015
+ srcEnd = 2019
+ mappingOffset = 0031
+ Mapping =
+ 00AF FFFD FFFD 00A1 00A2
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 20AC
+ srcEnd = 20AF
+ mappingOffset = 0036
+ Mapping =
+ 00A4 FFFD FFFD 00A5
+End of Item 0006
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0004 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x0111,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x038E, 0x03A1, 0x00BE,
+/* 0002 */ 0x03A3, 0x03CE, 0x00D3,
+/* 0003 */ 0x00A0, 0x00BD, 0x0000,
+/* 0004 */ 0x037A, 0x038C, 0x001E,
+/* 0005 */ 0x2015, 0x2019, 0x0031,
+/* 0006 */ 0x20AC, 0x20AF, 0x0036,
+/*-------------------------------------------------------*/
+/* Offset=0x001B Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0xFFFD, 0xFFFD, 0x00A3, 0xFFFD, 0xFFFD, 0x00A6, 0x00A7,
+/* 0008 */ 0x00A8, 0x00A9, 0xFFFD, 0x00AB, 0x00AC, 0x00AD, 0xFFFD, 0xFFFD,
+/* 0010 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0xFFFD, 0xFFFD, 0xFFFD, 0x00B7,
+/* 0018 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00BB, 0xFFFD, 0x00BD, 0x00AA, 0xFFFD,
+/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0028 */ 0x00B4, 0x00B5, 0x00B6, 0xFFFD, 0x00B8, 0x00B9, 0x00BA, 0xFFFD,
+/* 0030 */ 0x00BC, 0x00AF, 0xFFFD, 0xFFFD, 0x00A1, 0x00A2, 0x00A4, 0xFFFD,
+/* 0038 */ 0xFFFD, 0x00A5,
+/* End of table Total Length = 0x0055 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-7.ut b/intl/uconv/ucvlatin/8859-7.ut
new file mode 100644
index 000000000..8b71a3c30
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-7.ut
@@ -0,0 +1,81 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00BE
+ srcEnd = 00D1
+ destBegin = 038E
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00D3
+ srcEnd = 00FE
+ destBegin = 03A3
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00BD
+ mappingOffset = 0000
+ Mapping =
+ 00A0 2018 2019 00A3 20AC 20AF 00A6 00A7
+ 00A8 00A9 037A 00AB 00AC 00AD FFFD 2015
+ 00B0 00B1 00B2 00B3 0384 0385 0386 00B7
+ 0388 0389 038A 00BB 038C 00BD
+End of Item 0003
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0012,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00BE, 0x00D1, 0x038E,
+/* 0002 */ 0x00D3, 0x00FE, 0x03A3,
+/* 0003 */ 0x00A0, 0x00BD, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0012 Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0x2018, 0x2019, 0x00A3, 0x20AC, 0x20AF, 0x00A6, 0x00A7,
+/* 0008 */ 0x00A8, 0x00A9, 0x037A, 0x00AB, 0x00AC, 0x00AD, 0xFFFD, 0x2015,
+/* 0010 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x0385, 0x0386, 0x00B7,
+/* 0018 */ 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD,
+/* End of table Total Length = 0x0030 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-8.uf b/intl/uconv/ucvlatin/8859-8.uf
new file mode 100644
index 000000000..34b684e26
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-8.uf
@@ -0,0 +1,116 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A2
+ srcEnd = 00A9
+ destBegin = 00A2
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00AB
+ srcEnd = 00B9
+ destBegin = 00AB
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 05D0
+ srcEnd = 05EA
+ destBegin = 00E0
+End of Item 0003
+
+Begin of Item 0004
+ Format 2
+ srcBegin = 00A0
+ destBegin = 00A0
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 00BB
+ srcEnd = 00BE
+ mappingOffset = 0000
+ Mapping =
+ 00BB 00BC 00BD 00BE
+End of Item 0005
+
+Begin of Item 0006
+ Format 2
+ srcBegin = 00D7
+ destBegin = 00AA
+End of Item 0006
+
+Begin of Item 0007
+ Format 2
+ srcBegin = 00F7
+ destBegin = 00BA
+End of Item 0007
+
+Begin of Item 0008
+ Format 1
+ srcBegin = 200E
+ srcEnd = 2017
+ mappingOffset = 0004
+ Mapping =
+ 00FD 00FE FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 00DF
+End of Item 0008
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0022,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0004 */
+/* Total of Format 1 : 0x0002 */
+/* Total of Format 2 : 0x0003 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x2212, 0x0001,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00A2, 0x00A9, 0x00A2,
+/* 0002 */ 0x00AB, 0x00B9, 0x00AB,
+/* 0003 */ 0x05D0, 0x05EA, 0x00E0,
+/* 0004 */ 0x00A0, 0x0000, 0x00A0,
+/* 0005 */ 0x00BB, 0x00BE, 0x0000,
+/* 0006 */ 0x00D7, 0x0000, 0x00AA,
+/* 0007 */ 0x00F7, 0x0000, 0x00BA,
+/* 0008 */ 0x200E, 0x2017, 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0022 Start of MappingTable */
+
+/* 0000 */ 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00FD, 0x00FE, 0xFFFD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00DF,
+/* End of table Total Length = 0x0030 * 2 */
diff --git a/intl/uconv/ucvlatin/8859-8.ut b/intl/uconv/ucvlatin/8859-8.ut
new file mode 100644
index 000000000..f04230f64
--- /dev/null
+++ b/intl/uconv/ucvlatin/8859-8.ut
@@ -0,0 +1,113 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 009F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A2
+ srcEnd = 00A9
+ destBegin = 00A2
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00AB
+ srcEnd = 00B9
+ destBegin = 00AB
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00E0
+ srcEnd = 00FA
+ destBegin = 05D0
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00AA
+ mappingOffset = 0000
+ Mapping =
+ 00A0 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 00D7
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 00BA
+ srcEnd = 00BE
+ mappingOffset = 000B
+ Mapping =
+ 00F7 00BB 00BC 00BD 00BE
+End of Item 0005
+
+Begin of Item 0006
+ Format 2
+ srcBegin = 00DF
+ destBegin = 2017
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00FD
+ srcEnd = 00FE
+ mappingOffset = 0010
+ Mapping =
+ 200E 200F
+End of Item 0007
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001F,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0004 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0001 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1211, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x009F, 0x0000,
+/* 0001 */ 0x00A2, 0x00A9, 0x00A2,
+/* 0002 */ 0x00AB, 0x00B9, 0x00AB,
+/* 0003 */ 0x00E0, 0x00FA, 0x05D0,
+/* 0004 */ 0x00A0, 0x00AA, 0x0000,
+/* 0005 */ 0x00BA, 0x00BE, 0x000B,
+/* 0006 */ 0x00DF, 0x0000, 0x2017,
+/* 0007 */ 0x00FD, 0x00FE, 0x0010,
+/*-------------------------------------------------------*/
+/* Offset=0x001F Start of MappingTable */
+
+/* 0000 */ 0x00A0, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0xFFFD, 0x00D7, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE,
+/* 0010 */ 0x200E, 0x200F,
+/* End of table Total Length = 0x0031 * 2 */
diff --git a/intl/uconv/ucvlatin/cp1250.uf b/intl/uconv/ucvlatin/cp1250.uf
new file mode 100644
index 000000000..6a1fdb52f
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1250.uf
@@ -0,0 +1,174 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 1
+ srcBegin = 0081
+ srcEnd = 011B
+ mappingOffset = 0000
+ Mapping =
+ 0081 FFFD 0083 FFFD FFFD FFFD FFFD 0088
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 0090
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 0098
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 00A0
+ FFFD FFFD FFFD 00A4 FFFD 00A6 00A7 00A8
+ 00A9 FFFD 00AB 00AC 00AD 00AE FFFD 00B0
+ 00B1 FFFD FFFD 00B4 00B5 00B6 00B7 00B8
+ FFFD FFFD 00BB FFFD FFFD FFFD FFFD FFFD
+ 00C1 00C2 FFFD 00C4 FFFD FFFD 00C7 FFFD
+ 00C9 FFFD 00CB FFFD 00CD 00CE FFFD FFFD
+ FFFD FFFD 00D3 00D4 FFFD 00D6 00D7 FFFD
+ FFFD 00DA FFFD 00DC 00DD FFFD 00DF FFFD
+ 00E1 00E2 FFFD 00E4 FFFD FFFD 00E7 FFFD
+ 00E9 FFFD 00EB FFFD 00ED 00EE FFFD FFFD
+ FFFD FFFD 00F3 00F4 FFFD 00F6 00F7 FFFD
+ FFFD 00FA FFFD 00FC 00FD FFFD FFFD FFFD
+ FFFD 00C3 00E3 00A5 00B9 00C6 00E6 FFFD
+ FFFD FFFD FFFD 00C8 00E8 00CF 00EF 00D0
+ 00F0 FFFD FFFD FFFD FFFD FFFD FFFD 00CA
+ 00EA 00CC 00EC
+End of Item 0001
+
+Begin of Item 0002
+ Format 1
+ srcBegin = 0139
+ srcEnd = 017E
+ mappingOffset = 009B
+ Mapping =
+ 00C5 00E5 FFFD FFFD 00BC 00BE FFFD FFFD
+ 00A3 00B3 00D1 00F1 FFFD FFFD 00D2 00F2
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 00D5
+ 00F5 FFFD FFFD 00C0 00E0 FFFD FFFD 00D8
+ 00F8 008C 009C FFFD FFFD 00AA 00BA 008A
+ 009A 00DE 00FE 008D 009D FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 00D9 00F9 00DB
+ 00FB FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ 008F 009F 00AF 00BF 008E 009E
+End of Item 0002
+
+Begin of Item 0003
+ Format 2
+ srcBegin = 02C7
+ destBegin = 00A1
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 02D8
+ srcEnd = 02DD
+ mappingOffset = 00E1
+ Mapping =
+ 00A2 00FF FFFD 00B2 FFFD 00BD
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 2013
+ srcEnd = 203A
+ mappingOffset = 00E7
+ Mapping =
+ 0096 0097 FFFD FFFD FFFD 0091 0092 0082
+ FFFD 0093 0094 0084 FFFD 0086 0087 0095
+ FFFD FFFD FFFD 0085 FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 0089 FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD 008B 009B
+End of Item 0005
+
+Begin of Item 0006
+ Format 2
+ srcBegin = 20AC
+ destBegin = 0080
+End of Item 0006
+
+Begin of Item 0007
+ Format 2
+ srcBegin = 2122
+ destBegin = 0099
+End of Item 0007
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001F,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0001 */
+/* Total of Format 1 : 0x0004 */
+/* Total of Format 2 : 0x0003 */
+/* Total of Format 3 : 0x0000 */
+
+0x2110, 0x2211, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x0081, 0x011B, 0x0000,
+/* 0002 */ 0x0139, 0x017E, 0x009B,
+/* 0003 */ 0x02C7, 0x0000, 0x00A1,
+/* 0004 */ 0x02D8, 0x02DD, 0x00E1,
+/* 0005 */ 0x2013, 0x203A, 0x00E7,
+/* 0006 */ 0x20AC, 0x0000, 0x0080,
+/* 0007 */ 0x2122, 0x0000, 0x0099,
+/*-------------------------------------------------------*/
+/* Offset=0x001F Start of MappingTable */
+
+/* 0000 */ 0x0081, 0xFFFD, 0x0083, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0088,
+/* 0008 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0090,
+/* 0010 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0098,
+/* 0018 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A0,
+/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00A4, 0xFFFD, 0x00A6, 0x00A7, 0x00A8,
+/* 0028 */ 0x00A9, 0xFFFD, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0xFFFD, 0x00B0,
+/* 0030 */ 0x00B1, 0xFFFD, 0xFFFD, 0x00B4, 0x00B5, 0x00B6, 0x00B7, 0x00B8,
+/* 0038 */ 0xFFFD, 0xFFFD, 0x00BB, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0040 */ 0x00C1, 0x00C2, 0xFFFD, 0x00C4, 0xFFFD, 0xFFFD, 0x00C7, 0xFFFD,
+/* 0048 */ 0x00C9, 0xFFFD, 0x00CB, 0xFFFD, 0x00CD, 0x00CE, 0xFFFD, 0xFFFD,
+/* 0050 */ 0xFFFD, 0xFFFD, 0x00D3, 0x00D4, 0xFFFD, 0x00D6, 0x00D7, 0xFFFD,
+/* 0058 */ 0xFFFD, 0x00DA, 0xFFFD, 0x00DC, 0x00DD, 0xFFFD, 0x00DF, 0xFFFD,
+/* 0060 */ 0x00E1, 0x00E2, 0xFFFD, 0x00E4, 0xFFFD, 0xFFFD, 0x00E7, 0xFFFD,
+/* 0068 */ 0x00E9, 0xFFFD, 0x00EB, 0xFFFD, 0x00ED, 0x00EE, 0xFFFD, 0xFFFD,
+/* 0070 */ 0xFFFD, 0xFFFD, 0x00F3, 0x00F4, 0xFFFD, 0x00F6, 0x00F7, 0xFFFD,
+/* 0078 */ 0xFFFD, 0x00FA, 0xFFFD, 0x00FC, 0x00FD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0080 */ 0xFFFD, 0x00C3, 0x00E3, 0x00A5, 0x00B9, 0x00C6, 0x00E6, 0xFFFD,
+/* 0088 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00C8, 0x00E8, 0x00CF, 0x00EF, 0x00D0,
+/* 0090 */ 0x00F0, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00CA,
+/* 0098 */ 0x00EA, 0x00CC, 0x00EC, 0x00C5, 0x00E5, 0xFFFD, 0xFFFD, 0x00BC,
+/* 00A0 */ 0x00BE, 0xFFFD, 0xFFFD, 0x00A3, 0x00B3, 0x00D1, 0x00F1, 0xFFFD,
+/* 00A8 */ 0xFFFD, 0x00D2, 0x00F2, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00B0 */ 0xFFFD, 0xFFFD, 0x00D5, 0x00F5, 0xFFFD, 0xFFFD, 0x00C0, 0x00E0,
+/* 00B8 */ 0xFFFD, 0xFFFD, 0x00D8, 0x00F8, 0x008C, 0x009C, 0xFFFD, 0xFFFD,
+/* 00C0 */ 0x00AA, 0x00BA, 0x008A, 0x009A, 0x00DE, 0x00FE, 0x008D, 0x009D,
+/* 00C8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00D0 */ 0x00D9, 0x00F9, 0x00DB, 0x00FB, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00D8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x008F, 0x009F, 0x00AF, 0x00BF, 0x008E,
+/* 00E0 */ 0x009E, 0x00A2, 0x00FF, 0xFFFD, 0x00B2, 0xFFFD, 0x00BD, 0x0096,
+/* 00E8 */ 0x0097, 0xFFFD, 0xFFFD, 0xFFFD, 0x0091, 0x0092, 0x0082, 0xFFFD,
+/* 00F0 */ 0x0093, 0x0094, 0x0084, 0xFFFD, 0x0086, 0x0087, 0x0095, 0xFFFD,
+/* 00F8 */ 0xFFFD, 0xFFFD, 0x0085, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0100 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0089, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0108 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x008B, 0x009B,
+/* End of table Total Length = 0x012E * 2 */
diff --git a/intl/uconv/ucvlatin/cp1250.ut b/intl/uconv/ucvlatin/cp1250.ut
new file mode 100644
index 000000000..d775f1729
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1250.ut
@@ -0,0 +1,89 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 20AC 0081 201A 0083 201E 2026 2020 2021
+ 0088 2030 0160 2039 015A 0164 017D 0179
+ 0090 2018 2019 201C 201D 2022 2013 2014
+ 0098 2122 0161 203A 015B 0165 017E 017A
+ 00A0 02C7 02D8 0141 00A4 0104 00A6 00A7
+ 00A8 00A9 015E 00AB 00AC 00AD 00AE 017B
+ 00B0 00B1 02DB 0142 00B4 00B5 00B6 00B7
+ 00B8 0105 015F 00BB 013D 02DD 013E 017C
+ 0154 00C1 00C2 0102 00C4 0139 0106 00C7
+ 010C 00C9 0118 00CB 011A 00CD 00CE 010E
+ 0110 0143 0147 00D3 00D4 0150 00D6 00D7
+ 0158 016E 00DA 0170 00DC 00DD 0162 00DF
+ 0155 00E1 00E2 0103 00E4 013A 0107 00E7
+ 010D 00E9 0119 00EB 011B 00ED 00EE 010F
+ 0111 0144 0148 00F3 00F4 0151 00F6 00F7
+ 0159 016F 00FA 0171 00FC 00FD 0163 02D9
+End of Item 0001
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0001 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0010,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x0080, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x000B Start of MappingTable */
+
+/* 0000 */ 0x20AC, 0x0081, 0x201A, 0x0083, 0x201E, 0x2026, 0x2020, 0x2021,
+/* 0008 */ 0x0088, 0x2030, 0x0160, 0x2039, 0x015A, 0x0164, 0x017D, 0x0179,
+/* 0010 */ 0x0090, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
+/* 0018 */ 0x0098, 0x2122, 0x0161, 0x203A, 0x015B, 0x0165, 0x017E, 0x017A,
+/* 0020 */ 0x00A0, 0x02C7, 0x02D8, 0x0141, 0x00A4, 0x0104, 0x00A6, 0x00A7,
+/* 0028 */ 0x00A8, 0x00A9, 0x015E, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x017B,
+/* 0030 */ 0x00B0, 0x00B1, 0x02DB, 0x0142, 0x00B4, 0x00B5, 0x00B6, 0x00B7,
+/* 0038 */ 0x00B8, 0x0105, 0x015F, 0x00BB, 0x013D, 0x02DD, 0x013E, 0x017C,
+/* 0040 */ 0x0154, 0x00C1, 0x00C2, 0x0102, 0x00C4, 0x0139, 0x0106, 0x00C7,
+/* 0048 */ 0x010C, 0x00C9, 0x0118, 0x00CB, 0x011A, 0x00CD, 0x00CE, 0x010E,
+/* 0050 */ 0x0110, 0x0143, 0x0147, 0x00D3, 0x00D4, 0x0150, 0x00D6, 0x00D7,
+/* 0058 */ 0x0158, 0x016E, 0x00DA, 0x0170, 0x00DC, 0x00DD, 0x0162, 0x00DF,
+/* 0060 */ 0x0155, 0x00E1, 0x00E2, 0x0103, 0x00E4, 0x013A, 0x0107, 0x00E7,
+/* 0068 */ 0x010D, 0x00E9, 0x0119, 0x00EB, 0x011B, 0x00ED, 0x00EE, 0x010F,
+/* 0070 */ 0x0111, 0x0144, 0x0148, 0x00F3, 0x00F4, 0x0151, 0x00F6, 0x00F7,
+/* 0078 */ 0x0159, 0x016F, 0x00FA, 0x0171, 0x00FC, 0x00FD, 0x0163, 0x02D9,
+/* End of table Total Length = 0x008B * 2 */
diff --git a/intl/uconv/ucvlatin/cp1251.uf b/intl/uconv/ucvlatin/cp1251.uf
new file mode 100644
index 000000000..dc42f9b11
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1251.uf
@@ -0,0 +1,151 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 0410
+ srcEnd = 044F
+ destBegin = 00C0
+End of Item 0001
+
+Begin of Item 0002
+ Format 1
+ srcBegin = 0098
+ srcEnd = 00BB
+ mappingOffset = 0000
+ Mapping =
+ 0098 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ 00A0 FFFD FFFD FFFD 00A4 FFFD 00A6 00A7
+ FFFD 00A9 FFFD 00AB 00AC 00AD 00AE FFFD
+ 00B0 00B1 FFFD FFFD FFFD 00B5 00B6 00B7
+ FFFD FFFD FFFD 00BB
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 0401
+ srcEnd = 040F
+ mappingOffset = 0024
+ Mapping =
+ 00A8 0080 0081 00AA 00BD 00B2 00AF 00A3
+ 008A 008C 008E 008D FFFD 00A1 008F
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 0451
+ srcEnd = 045F
+ mappingOffset = 0033
+ Mapping =
+ 00B8 0090 0083 00BA 00BE 00B3 00BF 00BC
+ 009A 009C 009E 009D FFFD 00A2 009F
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0490
+ srcEnd = 0491
+ mappingOffset = 0042
+ Mapping =
+ 00A5 00B4
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 2013
+ srcEnd = 203A
+ mappingOffset = 0044
+ Mapping =
+ 0096 0097 FFFD FFFD FFFD 0091 0092 0082
+ FFFD 0093 0094 0084 FFFD 0086 0087 0095
+ FFFD FFFD FFFD 0085 FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 0089 FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD 008B 009B
+End of Item 0006
+
+Begin of Item 0007
+ Format 2
+ srcBegin = 20AC
+ destBegin = 0088
+End of Item 0007
+
+Begin of Item 0008
+ Format 2
+ srcBegin = 2116
+ destBegin = 00B9
+End of Item 0008
+
+Begin of Item 0009
+ Format 2
+ srcBegin = 2122
+ destBegin = 0099
+End of Item 0009
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x000A,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0025,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0002 */
+/* Total of Format 1 : 0x0005 */
+/* Total of Format 2 : 0x0003 */
+/* Total of Format 3 : 0x0000 */
+
+0x1100, 0x2111, 0x0022,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x0410, 0x044F, 0x00C0,
+/* 0002 */ 0x0098, 0x00BB, 0x0000,
+/* 0003 */ 0x0401, 0x040F, 0x0024,
+/* 0004 */ 0x0451, 0x045F, 0x0033,
+/* 0005 */ 0x0490, 0x0491, 0x0042,
+/* 0006 */ 0x2013, 0x203A, 0x0044,
+/* 0007 */ 0x20AC, 0x0000, 0x0088,
+/* 0008 */ 0x2116, 0x0000, 0x00B9,
+/* 0009 */ 0x2122, 0x0000, 0x0099,
+/*-------------------------------------------------------*/
+/* Offset=0x0025 Start of MappingTable */
+
+/* 0000 */ 0x0098, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0008 */ 0x00A0, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A4, 0xFFFD, 0x00A6, 0x00A7,
+/* 0010 */ 0xFFFD, 0x00A9, 0xFFFD, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0xFFFD,
+/* 0018 */ 0x00B0, 0x00B1, 0xFFFD, 0xFFFD, 0xFFFD, 0x00B5, 0x00B6, 0x00B7,
+/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00BB, 0x00A8, 0x0080, 0x0081, 0x00AA,
+/* 0028 */ 0x00BD, 0x00B2, 0x00AF, 0x00A3, 0x008A, 0x008C, 0x008E, 0x008D,
+/* 0030 */ 0xFFFD, 0x00A1, 0x008F, 0x00B8, 0x0090, 0x0083, 0x00BA, 0x00BE,
+/* 0038 */ 0x00B3, 0x00BF, 0x00BC, 0x009A, 0x009C, 0x009E, 0x009D, 0xFFFD,
+/* 0040 */ 0x00A2, 0x009F, 0x00A5, 0x00B4, 0x0096, 0x0097, 0xFFFD, 0xFFFD,
+/* 0048 */ 0xFFFD, 0x0091, 0x0092, 0x0082, 0xFFFD, 0x0093, 0x0094, 0x0084,
+/* 0050 */ 0xFFFD, 0x0086, 0x0087, 0x0095, 0xFFFD, 0xFFFD, 0xFFFD, 0x0085,
+/* 0058 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0060 */ 0xFFFD, 0x0089, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0068 */ 0xFFFD, 0xFFFD, 0x008B, 0x009B,
+/* End of table Total Length = 0x0091 * 2 */
diff --git a/intl/uconv/ucvlatin/cp1251.ut b/intl/uconv/ucvlatin/cp1251.ut
new file mode 100644
index 000000000..dbfc8c907
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1251.ut
@@ -0,0 +1,81 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C0
+ srcEnd = 00FF
+ destBegin = 0410
+End of Item 0001
+
+Begin of Item 0002
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00BF
+ mappingOffset = 0000
+ Mapping =
+ 0402 0403 201A 0453 201E 2026 2020 2021
+ 20AC 2030 0409 2039 040A 040C 040B 040F
+ 0452 2018 2019 201C 201D 2022 2013 2014
+ 0098 2122 0459 203A 045A 045C 045B 045F
+ 00A0 040E 045E 0408 00A4 0490 00A6 00A7
+ 0401 00A9 0404 00AB 00AC 00AD 00AE 0407
+ 00B0 00B1 0406 0456 0491 00B5 00B6 00B7
+ 0451 2116 0454 00BB 0458 0405 0455 0457
+End of Item 0002
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0003,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000E,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0002 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0100,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00C0, 0x00FF, 0x0410,
+/* 0002 */ 0x0080, 0x00BF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x000E Start of MappingTable */
+
+/* 0000 */ 0x0402, 0x0403, 0x201A, 0x0453, 0x201E, 0x2026, 0x2020, 0x2021,
+/* 0008 */ 0x20AC, 0x2030, 0x0409, 0x2039, 0x040A, 0x040C, 0x040B, 0x040F,
+/* 0010 */ 0x0452, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
+/* 0018 */ 0x0098, 0x2122, 0x0459, 0x203A, 0x045A, 0x045C, 0x045B, 0x045F,
+/* 0020 */ 0x00A0, 0x040E, 0x045E, 0x0408, 0x00A4, 0x0490, 0x00A6, 0x00A7,
+/* 0028 */ 0x0401, 0x00A9, 0x0404, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x0407,
+/* 0030 */ 0x00B0, 0x00B1, 0x0406, 0x0456, 0x0491, 0x00B5, 0x00B6, 0x00B7,
+/* 0038 */ 0x0451, 0x2116, 0x0454, 0x00BB, 0x0458, 0x0405, 0x0455, 0x0457,
+/* End of table Total Length = 0x004E * 2 */
diff --git a/intl/uconv/ucvlatin/cp1253.uf b/intl/uconv/ucvlatin/cp1253.uf
new file mode 100644
index 000000000..b26e0137e
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1253.uf
@@ -0,0 +1,149 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A3
+ srcEnd = 00A9
+ destBegin = 00A3
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 038E
+ srcEnd = 03A1
+ destBegin = 00BE
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 03A3
+ srcEnd = 03CE
+ destBegin = 00D3
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 0081
+ srcEnd = 00BD
+ mappingOffset = 0000
+ Mapping =
+ 0081 FFFD FFFD FFFD FFFD FFFD FFFD 0088
+ FFFD 008A FFFD 008C 008D 008E 008F 0090
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 0098
+ FFFD 009A FFFD 009C 009D 009E 009F 00A0
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 00AB 00AC 00AD 00AE FFFD 00B0
+ 00B1 00B2 00B3 FFFD 00B5 00B6 00B7 FFFD
+ FFFD FFFD 00BB FFFD 00BD
+End of Item 0004
+
+Begin of Item 0005
+ Format 2
+ srcBegin = 0192
+ destBegin = 0083
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 0384
+ srcEnd = 038C
+ mappingOffset = 003D
+ Mapping =
+ 00B4 00A1 00A2 FFFD 00B8 00B9 00BA FFFD
+ 00BC
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 2013
+ srcEnd = 203A
+ mappingOffset = 0046
+ Mapping =
+ 0096 0097 00AF FFFD FFFD 0091 0092 0082
+ FFFD 0093 0094 0084 FFFD 0086 0087 0095
+ FFFD FFFD FFFD 0085 FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 0089 FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD 008B 009B
+End of Item 0007
+
+Begin of Item 0008
+ Format 2
+ srcBegin = 20AC
+ destBegin = 0080
+End of Item 0008
+
+Begin of Item 0009
+ Format 2
+ srcBegin = 2122
+ destBegin = 0099
+End of Item 0009
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x000A,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0025,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0004 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0003 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1121, 0x0022,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00A3, 0x00A9, 0x00A3,
+/* 0002 */ 0x038E, 0x03A1, 0x00BE,
+/* 0003 */ 0x03A3, 0x03CE, 0x00D3,
+/* 0004 */ 0x0081, 0x00BD, 0x0000,
+/* 0005 */ 0x0192, 0x0000, 0x0083,
+/* 0006 */ 0x0384, 0x038C, 0x003D,
+/* 0007 */ 0x2013, 0x203A, 0x0046,
+/* 0008 */ 0x20AC, 0x0000, 0x0080,
+/* 0009 */ 0x2122, 0x0000, 0x0099,
+/*-------------------------------------------------------*/
+/* Offset=0x0025 Start of MappingTable */
+
+/* 0000 */ 0x0081, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0088,
+/* 0008 */ 0xFFFD, 0x008A, 0xFFFD, 0x008C, 0x008D, 0x008E, 0x008F, 0x0090,
+/* 0010 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0098,
+/* 0018 */ 0xFFFD, 0x009A, 0xFFFD, 0x009C, 0x009D, 0x009E, 0x009F, 0x00A0,
+/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0028 */ 0xFFFD, 0xFFFD, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0xFFFD, 0x00B0,
+/* 0030 */ 0x00B1, 0x00B2, 0x00B3, 0xFFFD, 0x00B5, 0x00B6, 0x00B7, 0xFFFD,
+/* 0038 */ 0xFFFD, 0xFFFD, 0x00BB, 0xFFFD, 0x00BD, 0x00B4, 0x00A1, 0x00A2,
+/* 0040 */ 0xFFFD, 0x00B8, 0x00B9, 0x00BA, 0xFFFD, 0x00BC, 0x0096, 0x0097,
+/* 0048 */ 0x00AF, 0xFFFD, 0xFFFD, 0x0091, 0x0092, 0x0082, 0xFFFD, 0x0093,
+/* 0050 */ 0x0094, 0x0084, 0xFFFD, 0x0086, 0x0087, 0x0095, 0xFFFD, 0xFFFD,
+/* 0058 */ 0xFFFD, 0x0085, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0060 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x0089, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0068 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x008B, 0x009B,
+/* End of table Total Length = 0x0093 * 2 */
diff --git a/intl/uconv/ucvlatin/cp1253.ut b/intl/uconv/ucvlatin/cp1253.ut
new file mode 100644
index 000000000..365fb16d1
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1253.ut
@@ -0,0 +1,97 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A3
+ srcEnd = 00A9
+ destBegin = 00A3
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00BE
+ srcEnd = 00D1
+ destBegin = 038E
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00D3
+ srcEnd = 00FE
+ destBegin = 03A3
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00BD
+ mappingOffset = 0000
+ Mapping =
+ 20AC 0081 201A 0192 201E 2026 2020 2021
+ 0088 2030 008A 2039 008C 008D 008E 008F
+ 0090 2018 2019 201C 201D 2022 2013 2014
+ 0098 2122 009A 203A 009C 009D 009E 009F
+ 00A0 0385 0386 FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD 00AB 00AC 00AD 00AE 2015
+ 00B0 00B1 00B2 00B3 0384 00B5 00B6 00B7
+ 0388 0389 038A 00BB 038C 00BD
+End of Item 0004
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0015,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0004 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x0001,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00A3, 0x00A9, 0x00A3,
+/* 0002 */ 0x00BE, 0x00D1, 0x038E,
+/* 0003 */ 0x00D3, 0x00FE, 0x03A3,
+/* 0004 */ 0x0080, 0x00BD, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0015 Start of MappingTable */
+
+/* 0000 */ 0x20AC, 0x0081, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
+/* 0008 */ 0x0088, 0x2030, 0x008A, 0x2039, 0x008C, 0x008D, 0x008E, 0x008F,
+/* 0010 */ 0x0090, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
+/* 0018 */ 0x0098, 0x2122, 0x009A, 0x203A, 0x009C, 0x009D, 0x009E, 0x009F,
+/* 0020 */ 0x00A0, 0x0385, 0x0386, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0028 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x2015,
+/* 0030 */ 0x00B0, 0x00B1, 0x00B2, 0x00B3, 0x0384, 0x00B5, 0x00B6, 0x00B7,
+/* 0038 */ 0x0388, 0x0389, 0x038A, 0x00BB, 0x038C, 0x00BD,
+/* End of table Total Length = 0x0053 * 2 */
diff --git a/intl/uconv/ucvlatin/cp1254.uf b/intl/uconv/ucvlatin/cp1254.uf
new file mode 100644
index 000000000..a26221eda
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1254.uf
@@ -0,0 +1,210 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A0
+ srcEnd = 00CF
+ destBegin = 00A0
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00D1
+ srcEnd = 00DC
+ destBegin = 00D1
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00DF
+ srcEnd = 00EF
+ destBegin = 00DF
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00F1
+ srcEnd = 00FC
+ destBegin = 00F1
+End of Item 0004
+
+Begin of Item 0005
+ Format 2
+ srcBegin = 0081
+ destBegin = 0081
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 008D
+ srcEnd = 0090
+ mappingOffset = 0000
+ Mapping =
+ 008D 008E 008F 0090
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 009D
+ srcEnd = 009E
+ mappingOffset = 0004
+ Mapping =
+ 009D 009E
+End of Item 0007
+
+Begin of Item 0008
+ Format 2
+ srcBegin = 00FF
+ destBegin = 00FF
+End of Item 0008
+
+Begin of Item 0009
+ Format 1
+ srcBegin = 011E
+ srcEnd = 011F
+ mappingOffset = 0006
+ Mapping =
+ 00D0 00F0
+End of Item 0009
+
+Begin of Item 000A
+ Format 1
+ srcBegin = 0130
+ srcEnd = 0131
+ mappingOffset = 0008
+ Mapping =
+ 00DD 00FD
+End of Item 000A
+
+Begin of Item 000B
+ Format 1
+ srcBegin = 0152
+ srcEnd = 0161
+ mappingOffset = 000A
+ Mapping =
+ 008C 009C FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 00DE 00FE 008A 009A
+End of Item 000B
+
+Begin of Item 000C
+ Format 2
+ srcBegin = 0178
+ destBegin = 009F
+End of Item 000C
+
+Begin of Item 000D
+ Format 2
+ srcBegin = 0192
+ destBegin = 0083
+End of Item 000D
+
+Begin of Item 000E
+ Format 2
+ srcBegin = 02C6
+ destBegin = 0088
+End of Item 000E
+
+Begin of Item 000F
+ Format 2
+ srcBegin = 02DC
+ destBegin = 0098
+End of Item 000F
+
+Begin of Item 0010
+ Format 1
+ srcBegin = 2013
+ srcEnd = 203A
+ mappingOffset = 001A
+ Mapping =
+ 0096 0097 FFFD FFFD FFFD 0091 0092 0082
+ FFFD 0093 0094 0084 FFFD 0086 0087 0095
+ FFFD FFFD FFFD 0085 FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 0089 FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD 008B 009B
+End of Item 0010
+
+Begin of Item 0011
+ Format 2
+ srcBegin = 20AC
+ destBegin = 0080
+End of Item 0011
+
+Begin of Item 0012
+ Format 2
+ srcBegin = 2122
+ destBegin = 0099
+End of Item 0012
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0013,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0042,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0005 */
+/* Total of Format 1 : 0x0006 */
+/* Total of Format 2 : 0x0008 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1120, 0x1112, 0x2222, 0x0221,
+/*-------------------------------------------------------*/
+/* Offset=0x0009 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00A0, 0x00CF, 0x00A0,
+/* 0002 */ 0x00D1, 0x00DC, 0x00D1,
+/* 0003 */ 0x00DF, 0x00EF, 0x00DF,
+/* 0004 */ 0x00F1, 0x00FC, 0x00F1,
+/* 0005 */ 0x0081, 0x0000, 0x0081,
+/* 0006 */ 0x008D, 0x0090, 0x0000,
+/* 0007 */ 0x009D, 0x009E, 0x0004,
+/* 0008 */ 0x00FF, 0x0000, 0x00FF,
+/* 0009 */ 0x011E, 0x011F, 0x0006,
+/* 000A */ 0x0130, 0x0131, 0x0008,
+/* 000B */ 0x0152, 0x0161, 0x000A,
+/* 000C */ 0x0178, 0x0000, 0x009F,
+/* 000D */ 0x0192, 0x0000, 0x0083,
+/* 000E */ 0x02C6, 0x0000, 0x0088,
+/* 000F */ 0x02DC, 0x0000, 0x0098,
+/* 0010 */ 0x2013, 0x203A, 0x001A,
+/* 0011 */ 0x20AC, 0x0000, 0x0080,
+/* 0012 */ 0x2122, 0x0000, 0x0099,
+/*-------------------------------------------------------*/
+/* Offset=0x0042 Start of MappingTable */
+
+/* 0000 */ 0x008D, 0x008E, 0x008F, 0x0090, 0x009D, 0x009E, 0x00D0, 0x00F0,
+/* 0008 */ 0x00DD, 0x00FD, 0x008C, 0x009C, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0010 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00DE, 0x00FE,
+/* 0018 */ 0x008A, 0x009A, 0x0096, 0x0097, 0xFFFD, 0xFFFD, 0xFFFD, 0x0091,
+/* 0020 */ 0x0092, 0x0082, 0xFFFD, 0x0093, 0x0094, 0x0084, 0xFFFD, 0x0086,
+/* 0028 */ 0x0087, 0x0095, 0xFFFD, 0xFFFD, 0xFFFD, 0x0085, 0xFFFD, 0xFFFD,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0089,
+/* 0038 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0040 */ 0x008B, 0x009B,
+/* End of table Total Length = 0x0084 * 2 */
diff --git a/intl/uconv/ucvlatin/cp1254.ut b/intl/uconv/ucvlatin/cp1254.ut
new file mode 100644
index 000000000..ba524dd79
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1254.ut
@@ -0,0 +1,132 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A0
+ srcEnd = 00CF
+ destBegin = 00A0
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00D1
+ srcEnd = 00DC
+ destBegin = 00D1
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00DF
+ srcEnd = 00EF
+ destBegin = 00DF
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00F1
+ srcEnd = 00FC
+ destBegin = 00F1
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0080
+ srcEnd = 009F
+ mappingOffset = 0000
+ Mapping =
+ 20AC 0081 201A 0192 201E 2026 2020 2021
+ 02C6 2030 0160 2039 0152 008D 008E 008F
+ 0090 2018 2019 201C 201D 2022 2013 2014
+ 02DC 2122 0161 203A 0153 009D 009E 0178
+End of Item 0005
+
+Begin of Item 0006
+ Format 2
+ srcBegin = 00D0
+ destBegin = 011E
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00DD
+ srcEnd = 00DE
+ mappingOffset = 0020
+ Mapping =
+ 0130 015E
+End of Item 0007
+
+Begin of Item 0008
+ Format 2
+ srcBegin = 00F0
+ destBegin = 011F
+End of Item 0008
+
+Begin of Item 0009
+ Format 1
+ srcBegin = 00FD
+ srcEnd = 00FF
+ mappingOffset = 0022
+ Mapping =
+ 0131 015F 00FF
+End of Item 0009
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x000A,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0025,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0005 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0002 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1210, 0x0012,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00A0, 0x00CF, 0x00A0,
+/* 0002 */ 0x00D1, 0x00DC, 0x00D1,
+/* 0003 */ 0x00DF, 0x00EF, 0x00DF,
+/* 0004 */ 0x00F1, 0x00FC, 0x00F1,
+/* 0005 */ 0x0080, 0x009F, 0x0000,
+/* 0006 */ 0x00D0, 0x0000, 0x011E,
+/* 0007 */ 0x00DD, 0x00DE, 0x0020,
+/* 0008 */ 0x00F0, 0x0000, 0x011F,
+/* 0009 */ 0x00FD, 0x00FF, 0x0022,
+/*-------------------------------------------------------*/
+/* Offset=0x0025 Start of MappingTable */
+
+/* 0000 */ 0x20AC, 0x0081, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
+/* 0008 */ 0x02C6, 0x2030, 0x0160, 0x2039, 0x0152, 0x008D, 0x008E, 0x008F,
+/* 0010 */ 0x0090, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
+/* 0018 */ 0x02DC, 0x2122, 0x0161, 0x203A, 0x0153, 0x009D, 0x009E, 0x0178,
+/* 0020 */ 0x0130, 0x015E, 0x0131, 0x015F, 0x00FF,
+/* End of table Total Length = 0x004A * 2 */
diff --git a/intl/uconv/ucvlatin/cp1255.uf b/intl/uconv/ucvlatin/cp1255.uf
new file mode 100644
index 000000000..963354719
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1255.uf
@@ -0,0 +1,195 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 009C
+ srcEnd = 00A3
+ destBegin = 009C
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00AB
+ srcEnd = 00B9
+ destBegin = 00AB
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 05B0
+ srcEnd = 05C3
+ destBegin = 00C0
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 05D0
+ srcEnd = 05EA
+ destBegin = 00E0
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0081
+ srcEnd = 00A9
+ mappingOffset = 0000
+ Mapping =
+ 0081 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 008A FFFD 008C 008D 008E 008F 0090
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 009A FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 00A5 00A6 00A7 00A8
+ 00A9
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 00BB
+ srcEnd = 00BF
+ mappingOffset = 0029
+ Mapping =
+ 00BB 00BC 00BD 00BE 00BF
+End of Item 0006
+
+Begin of Item 0007
+ Format 2
+ srcBegin = 00D7
+ destBegin = 00AA
+End of Item 0007
+
+Begin of Item 0008
+ Format 2
+ srcBegin = 00F7
+ destBegin = 00BA
+End of Item 0008
+
+Begin of Item 0009
+ Format 2
+ srcBegin = 0192
+ destBegin = 0083
+End of Item 0009
+
+Begin of Item 000A
+ Format 2
+ srcBegin = 02C6
+ destBegin = 0088
+End of Item 000A
+
+Begin of Item 000B
+ Format 2
+ srcBegin = 02DC
+ destBegin = 0098
+End of Item 000B
+
+Begin of Item 000C
+ Format 1
+ srcBegin = 05F0
+ srcEnd = 05F4
+ mappingOffset = 002E
+ Mapping =
+ 00D4 00D5 00D6 00D7 00D8
+End of Item 000C
+
+Begin of Item 000D
+ Format 1
+ srcBegin = 200E
+ srcEnd = 203A
+ mappingOffset = 0033
+ Mapping =
+ 00FD 00FE FFFD FFFD FFFD 0096 0097 FFFD
+ FFFD FFFD 0091 0092 0082 FFFD 0093 0094
+ 0084 FFFD 0086 0087 0095 FFFD FFFD FFFD
+ 0085 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 0089 FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD 008B 009B
+End of Item 000D
+
+Begin of Item 000E
+ Format 1
+ srcBegin = 20AA
+ srcEnd = 20AC
+ mappingOffset = 0060
+ Mapping =
+ 00A4 FFFD 0080
+End of Item 000E
+
+Begin of Item 000F
+ Format 2
+ srcBegin = 2122
+ destBegin = 0099
+End of Item 000F
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0010,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0039,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0005 */
+/* Total of Format 1 : 0x0005 */
+/* Total of Format 2 : 0x0006 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x2110, 0x2222, 0x2111, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0009 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x009C, 0x00A3, 0x009C,
+/* 0002 */ 0x00AB, 0x00B9, 0x00AB,
+/* 0003 */ 0x05B0, 0x05C3, 0x00C0,
+/* 0004 */ 0x05D0, 0x05EA, 0x00E0,
+/* 0005 */ 0x0081, 0x00A9, 0x0000,
+/* 0006 */ 0x00BB, 0x00BF, 0x0029,
+/* 0007 */ 0x00D7, 0x0000, 0x00AA,
+/* 0008 */ 0x00F7, 0x0000, 0x00BA,
+/* 0009 */ 0x0192, 0x0000, 0x0083,
+/* 000A */ 0x02C6, 0x0000, 0x0088,
+/* 000B */ 0x02DC, 0x0000, 0x0098,
+/* 000C */ 0x05F0, 0x05F4, 0x002E,
+/* 000D */ 0x200E, 0x203A, 0x0033,
+/* 000E */ 0x20AA, 0x20AC, 0x0060,
+/* 000F */ 0x2122, 0x0000, 0x0099,
+/*-------------------------------------------------------*/
+/* Offset=0x0039 Start of MappingTable */
+
+/* 0000 */ 0x0081, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0x008A, 0xFFFD, 0x008C, 0x008D, 0x008E, 0x008F, 0x0090,
+/* 0010 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0018 */ 0xFFFD, 0x009A, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A5, 0x00A6, 0x00A7, 0x00A8,
+/* 0028 */ 0x00A9, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00BF, 0x00D4, 0x00D5,
+/* 0030 */ 0x00D6, 0x00D7, 0x00D8, 0x00FD, 0x00FE, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0038 */ 0x0096, 0x0097, 0xFFFD, 0xFFFD, 0xFFFD, 0x0091, 0x0092, 0x0082,
+/* 0040 */ 0xFFFD, 0x0093, 0x0094, 0x0084, 0xFFFD, 0x0086, 0x0087, 0x0095,
+/* 0048 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x0085, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0050 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0089, 0xFFFD, 0xFFFD,
+/* 0058 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x008B, 0x009B,
+/* 0060 */ 0x00A4, 0xFFFD, 0x0080,
+/* End of table Total Length = 0x009C * 2 */
diff --git a/intl/uconv/ucvlatin/cp1255.ut b/intl/uconv/ucvlatin/cp1255.ut
new file mode 100644
index 000000000..d9d97198f
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1255.ut
@@ -0,0 +1,132 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 009C
+ srcEnd = 00A3
+ destBegin = 009C
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00AB
+ srcEnd = 00B9
+ destBegin = 00AB
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00C0
+ srcEnd = 00D3
+ destBegin = 05B0
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00E0
+ srcEnd = 00FA
+ destBegin = 05D0
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00AA
+ mappingOffset = 0000
+ Mapping =
+ 20AC 0081 201A 0192 201E 2026 2020 2021
+ 02C6 2030 008A 2039 008C 008D 008E 008F
+ 0090 2018 2019 201C 201D 2022 2013 2014
+ 02DC 2122 009A 203A FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 20AA 00A5 00A6 00A7
+ 00A8 00A9 00D7
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 00BA
+ srcEnd = 00BF
+ mappingOffset = 002B
+ Mapping =
+ 00F7 00BB 00BC 00BD 00BE 00BF
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00D4
+ srcEnd = 00D8
+ mappingOffset = 0031
+ Mapping =
+ 05F0 05F1 05F2 05F3 05F4
+End of Item 0007
+
+Begin of Item 0008
+ Format 1
+ srcBegin = 00FD
+ srcEnd = 00FE
+ mappingOffset = 0036
+ Mapping =
+ 200E 200F
+End of Item 0008
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0022,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0005 */
+/* Total of Format 1 : 0x0004 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1110, 0x0001,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x009C, 0x00A3, 0x009C,
+/* 0002 */ 0x00AB, 0x00B9, 0x00AB,
+/* 0003 */ 0x00C0, 0x00D3, 0x05B0,
+/* 0004 */ 0x00E0, 0x00FA, 0x05D0,
+/* 0005 */ 0x0080, 0x00AA, 0x0000,
+/* 0006 */ 0x00BA, 0x00BF, 0x002B,
+/* 0007 */ 0x00D4, 0x00D8, 0x0031,
+/* 0008 */ 0x00FD, 0x00FE, 0x0036,
+/*-------------------------------------------------------*/
+/* Offset=0x0022 Start of MappingTable */
+
+/* 0000 */ 0x20AC, 0x0081, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
+/* 0008 */ 0x02C6, 0x2030, 0x008A, 0x2039, 0x008C, 0x008D, 0x008E, 0x008F,
+/* 0010 */ 0x0090, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
+/* 0018 */ 0x02DC, 0x2122, 0x009A, 0x203A, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x20AA, 0x00A5, 0x00A6, 0x00A7,
+/* 0028 */ 0x00A8, 0x00A9, 0x00D7, 0x00F7, 0x00BB, 0x00BC, 0x00BD, 0x00BE,
+/* 0030 */ 0x00BF, 0x05F0, 0x05F1, 0x05F2, 0x05F3, 0x05F4, 0x200E, 0x200F,
+/* End of table Total Length = 0x005A * 2 */
diff --git a/intl/uconv/ucvlatin/cp1256.uf b/intl/uconv/ucvlatin/cp1256.uf
new file mode 100644
index 000000000..8ea801c99
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1256.uf
@@ -0,0 +1,242 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A2
+ srcEnd = 00A9
+ destBegin = 00A2
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00AB
+ srcEnd = 00B9
+ destBegin = 00AB
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 0621
+ srcEnd = 0636
+ destBegin = 00C1
+End of Item 0003
+
+Begin of Item 0004
+ Format 2
+ srcBegin = 00A0
+ destBegin = 00A0
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 00BB
+ srcEnd = 00BE
+ mappingOffset = 0000
+ Mapping =
+ 00BB 00BC 00BD 00BE
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 00D7
+ srcEnd = 00FC
+ mappingOffset = 0004
+ Mapping =
+ 00D7 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 00E0 FFFD 00E2 FFFD FFFD FFFD FFFD
+ 00E7 00E8 00E9 00EA 00EB FFFD FFFD 00EE
+ 00EF FFFD FFFD FFFD FFFD 00F4 FFFD FFFD
+ 00F7 FFFD 00F9 FFFD 00FB 00FC
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 0152
+ srcEnd = 0153
+ mappingOffset = 002A
+ Mapping =
+ 008C 009C
+End of Item 0007
+
+Begin of Item 0008
+ Format 2
+ srcBegin = 0192
+ destBegin = 0083
+End of Item 0008
+
+Begin of Item 0009
+ Format 2
+ srcBegin = 02C6
+ destBegin = 0088
+End of Item 0009
+
+Begin of Item 000A
+ Format 2
+ srcBegin = 060C
+ destBegin = 00A1
+End of Item 000A
+
+Begin of Item 000B
+ Format 1
+ srcBegin = 061B
+ srcEnd = 061F
+ mappingOffset = 002C
+ Mapping =
+ 00BA FFFD FFFD FFFD 00BF
+End of Item 000B
+
+Begin of Item 000C
+ Format 1
+ srcBegin = 0637
+ srcEnd = 0652
+ mappingOffset = 0031
+ Mapping =
+ 00D8 00D9 00DA 00DB FFFD FFFD FFFD FFFD
+ FFFD 00DC 00DD 00DE 00DF 00E1 00E3 00E4
+ 00E5 00E6 00EC 00ED 00F0 00F1 00F2 00F3
+ 00F5 00F6 00F8 00FA
+End of Item 000C
+
+Begin of Item 000D
+ Format 1
+ srcBegin = 0679
+ srcEnd = 0698
+ mappingOffset = 004D
+ Mapping =
+ 008A FFFD FFFD FFFD FFFD 0081 FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 008D FFFD 008F
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ 009A FFFD FFFD FFFD FFFD FFFD FFFD 008E
+End of Item 000D
+
+Begin of Item 000E
+ Format 1
+ srcBegin = 06A9
+ srcEnd = 06C1
+ mappingOffset = 006D
+ Mapping =
+ 0098 FFFD FFFD FFFD FFFD FFFD 0090 FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 009F FFFD FFFD FFFD 00AA FFFD FFFD
+ 00C0
+End of Item 000E
+
+Begin of Item 000F
+ Format 2
+ srcBegin = 06D2
+ destBegin = 00FF
+End of Item 000F
+
+Begin of Item 0010
+ Format 1
+ srcBegin = 200C
+ srcEnd = 203A
+ mappingOffset = 0086
+ Mapping =
+ 009D 009E 00FD 00FE FFFD FFFD FFFD 0096
+ 0097 FFFD FFFD FFFD 0091 0092 0082 FFFD
+ 0093 0094 0084 FFFD 0086 0087 0095 FFFD
+ FFFD FFFD 0085 FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 0089 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 008B 009B
+End of Item 0010
+
+Begin of Item 0011
+ Format 2
+ srcBegin = 20AC
+ destBegin = 0080
+End of Item 0011
+
+Begin of Item 0012
+ Format 2
+ srcBegin = 2122
+ destBegin = 0099
+End of Item 0012
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0013,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0042,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0004 */
+/* Total of Format 1 : 0x0008 */
+/* Total of Format 2 : 0x0007 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1112, 0x1222, 0x2111, 0x0221,
+/*-------------------------------------------------------*/
+/* Offset=0x0009 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00A2, 0x00A9, 0x00A2,
+/* 0002 */ 0x00AB, 0x00B9, 0x00AB,
+/* 0003 */ 0x0621, 0x0636, 0x00C1,
+/* 0004 */ 0x00A0, 0x0000, 0x00A0,
+/* 0005 */ 0x00BB, 0x00BE, 0x0000,
+/* 0006 */ 0x00D7, 0x00FC, 0x0004,
+/* 0007 */ 0x0152, 0x0153, 0x002A,
+/* 0008 */ 0x0192, 0x0000, 0x0083,
+/* 0009 */ 0x02C6, 0x0000, 0x0088,
+/* 000A */ 0x060C, 0x0000, 0x00A1,
+/* 000B */ 0x061B, 0x061F, 0x002C,
+/* 000C */ 0x0637, 0x0652, 0x0031,
+/* 000D */ 0x0679, 0x0698, 0x004D,
+/* 000E */ 0x06A9, 0x06C1, 0x006D,
+/* 000F */ 0x06D2, 0x0000, 0x00FF,
+/* 0010 */ 0x200C, 0x203A, 0x0086,
+/* 0011 */ 0x20AC, 0x0000, 0x0080,
+/* 0012 */ 0x2122, 0x0000, 0x0099,
+/*-------------------------------------------------------*/
+/* Offset=0x0042 Start of MappingTable */
+
+/* 0000 */ 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00D7, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00E0, 0xFFFD, 0x00E2,
+/* 0010 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00E7, 0x00E8, 0x00E9, 0x00EA,
+/* 0018 */ 0x00EB, 0xFFFD, 0xFFFD, 0x00EE, 0x00EF, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0020 */ 0xFFFD, 0x00F4, 0xFFFD, 0xFFFD, 0x00F7, 0xFFFD, 0x00F9, 0xFFFD,
+/* 0028 */ 0x00FB, 0x00FC, 0x008C, 0x009C, 0x00BA, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0030 */ 0x00BF, 0x00D8, 0x00D9, 0x00DA, 0x00DB, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0038 */ 0xFFFD, 0xFFFD, 0x00DC, 0x00DD, 0x00DE, 0x00DF, 0x00E1, 0x00E3,
+/* 0040 */ 0x00E4, 0x00E5, 0x00E6, 0x00EC, 0x00ED, 0x00F0, 0x00F1, 0x00F2,
+/* 0048 */ 0x00F3, 0x00F5, 0x00F6, 0x00F8, 0x00FA, 0x008A, 0xFFFD, 0xFFFD,
+/* 0050 */ 0xFFFD, 0xFFFD, 0x0081, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0058 */ 0xFFFD, 0xFFFD, 0x008D, 0xFFFD, 0x008F, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0060 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x009A, 0xFFFD, 0xFFFD,
+/* 0068 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x008E, 0x0098, 0xFFFD, 0xFFFD,
+/* 0070 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x0090, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0078 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x009F, 0xFFFD,
+/* 0080 */ 0xFFFD, 0xFFFD, 0x00AA, 0xFFFD, 0xFFFD, 0x00C0, 0x009D, 0x009E,
+/* 0088 */ 0x00FD, 0x00FE, 0xFFFD, 0xFFFD, 0xFFFD, 0x0096, 0x0097, 0xFFFD,
+/* 0090 */ 0xFFFD, 0xFFFD, 0x0091, 0x0092, 0x0082, 0xFFFD, 0x0093, 0x0094,
+/* 0098 */ 0x0084, 0xFFFD, 0x0086, 0x0087, 0x0095, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00A0 */ 0x0085, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00A8 */ 0xFFFD, 0xFFFD, 0x0089, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00B0 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x008B, 0x009B,
+/* End of table Total Length = 0x00F7 * 2 */
diff --git a/intl/uconv/ucvlatin/cp1256.ut b/intl/uconv/ucvlatin/cp1256.ut
new file mode 100644
index 000000000..512474bb8
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1256.ut
@@ -0,0 +1,124 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A2
+ srcEnd = 00A9
+ destBegin = 00A2
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00AB
+ srcEnd = 00B9
+ destBegin = 00AB
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00C1
+ srcEnd = 00D6
+ destBegin = 0621
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00AA
+ mappingOffset = 0000
+ Mapping =
+ 20AC 067E 201A 0192 201E 2026 2020 2021
+ 02C6 2030 0679 2039 0152 0686 0698 0688
+ 06AF 2018 2019 201C 201D 2022 2013 2014
+ 06A9 2122 0691 203A 0153 200C 200D 06BA
+ 00A0 060C FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 06BE
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 00BA
+ srcEnd = 00C0
+ mappingOffset = 002B
+ Mapping =
+ 061B 00BB 00BC 00BD 00BE 061F 06C1
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 00D7
+ srcEnd = 00FF
+ mappingOffset = 0032
+ Mapping =
+ 00D7 0637 0638 0639 063A 0640 0641 0642
+ 0643 00E0 0644 00E2 0645 0646 0647 0648
+ 00E7 00E8 00E9 00EA 00EB 0649 064A 00EE
+ 00EF 064B 064C 064D 064E 00F4 064F 0650
+ 00F7 0651 00F9 0652 00FB 00FC 200E 200F
+ 06D2
+End of Item 0006
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0004 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x0111,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00A2, 0x00A9, 0x00A2,
+/* 0002 */ 0x00AB, 0x00B9, 0x00AB,
+/* 0003 */ 0x00C1, 0x00D6, 0x0621,
+/* 0004 */ 0x0080, 0x00AA, 0x0000,
+/* 0005 */ 0x00BA, 0x00C0, 0x002B,
+/* 0006 */ 0x00D7, 0x00FF, 0x0032,
+/*-------------------------------------------------------*/
+/* Offset=0x001B Start of MappingTable */
+
+/* 0000 */ 0x20AC, 0x067E, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
+/* 0008 */ 0x02C6, 0x2030, 0x0679, 0x2039, 0x0152, 0x0686, 0x0698, 0x0688,
+/* 0010 */ 0x06AF, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
+/* 0018 */ 0x06A9, 0x2122, 0x0691, 0x203A, 0x0153, 0x200C, 0x200D, 0x06BA,
+/* 0020 */ 0x00A0, 0x060C, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0028 */ 0xFFFD, 0xFFFD, 0x06BE, 0x061B, 0x00BB, 0x00BC, 0x00BD, 0x00BE,
+/* 0030 */ 0x061F, 0x06C1, 0x00D7, 0x0637, 0x0638, 0x0639, 0x063A, 0x0640,
+/* 0038 */ 0x0641, 0x0642, 0x0643, 0x00E0, 0x0644, 0x00E2, 0x0645, 0x0646,
+/* 0040 */ 0x0647, 0x0648, 0x00E7, 0x00E8, 0x00E9, 0x00EA, 0x00EB, 0x0649,
+/* 0048 */ 0x064A, 0x00EE, 0x00EF, 0x064B, 0x064C, 0x064D, 0x064E, 0x00F4,
+/* 0050 */ 0x064F, 0x0650, 0x00F7, 0x0651, 0x00F9, 0x0652, 0x00FB, 0x00FC,
+/* 0058 */ 0x200E, 0x200F, 0x06D2,
+/* End of table Total Length = 0x0076 * 2 */
diff --git a/intl/uconv/ucvlatin/cp1257.uf b/intl/uconv/ucvlatin/cp1257.uf
new file mode 100644
index 000000000..09abd391b
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1257.uf
@@ -0,0 +1,180 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00B0
+ srcEnd = 00B7
+ destBegin = 00B0
+End of Item 0001
+
+Begin of Item 0002
+ Format 1
+ srcBegin = 0081
+ srcEnd = 017E
+ mappingOffset = 0000
+ Mapping =
+ 0081 FFFD 0083 FFFD FFFD FFFD FFFD 0088
+ FFFD 008A FFFD 008C FFFD FFFD FFFD 0090
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 0098
+ FFFD 009A FFFD 009C FFFD FFFD 009F 00A0
+ FFFD 00A2 00A3 00A4 FFFD 00A6 00A7 008D
+ 00A9 FFFD 00AB 00AC 00AD 00AE 009D FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 008F
+ 00B9 FFFD 00BB 00BC 00BD 00BE FFFD FFFD
+ FFFD FFFD FFFD 00C4 00C5 00AF FFFD FFFD
+ 00C9 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 00D3 FFFD 00D5 00D6 00D7 00A8
+ FFFD FFFD FFFD 00DC FFFD FFFD 00DF FFFD
+ FFFD FFFD FFFD 00E4 00E5 00BF FFFD FFFD
+ 00E9 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 00F3 FFFD 00F5 00F6 00F7 00B8
+ FFFD FFFD FFFD 00FC FFFD FFFD FFFD 00C2
+ 00E2 FFFD FFFD 00C0 00E0 00C3 00E3 FFFD
+ FFFD FFFD FFFD 00C8 00E8 FFFD FFFD FFFD
+ FFFD 00C7 00E7 FFFD FFFD 00CB 00EB 00C6
+ 00E6 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 00CC 00EC FFFD FFFD FFFD FFFD FFFD
+ FFFD 00CE 00EE FFFD FFFD 00C1 00E1 FFFD
+ FFFD FFFD FFFD FFFD FFFD 00CD 00ED FFFD
+ FFFD FFFD 00CF 00EF FFFD FFFD FFFD FFFD
+ 00D9 00F9 00D1 00F1 00D2 00F2 FFFD FFFD
+ FFFD FFFD FFFD 00D4 00F4 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 00AA 00BA FFFD
+ FFFD 00DA 00FA FFFD FFFD FFFD FFFD 00D0
+ 00F0 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 00DB 00FB FFFD FFFD FFFD FFFD FFFD
+ FFFD 00D8 00F8 FFFD FFFD FFFD FFFD FFFD
+ 00CA 00EA 00DD 00FD 00DE 00FE
+End of Item 0002
+
+Begin of Item 0003
+ Format 2
+ srcBegin = 02C7
+ destBegin = 008E
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 02D9
+ srcEnd = 02DB
+ mappingOffset = 00FE
+ Mapping =
+ 00FF FFFD 009E
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 2013
+ srcEnd = 203A
+ mappingOffset = 0101
+ Mapping =
+ 0096 0097 FFFD FFFD FFFD 0091 0092 0082
+ FFFD 0093 0094 0084 FFFD 0086 0087 0095
+ FFFD FFFD FFFD 0085 FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 0089 FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD 008B 009B
+End of Item 0005
+
+Begin of Item 0006
+ Format 2
+ srcBegin = 20AC
+ destBegin = 0080
+End of Item 0006
+
+Begin of Item 0007
+ Format 2
+ srcBegin = 2122
+ destBegin = 0099
+End of Item 0007
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001F,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0002 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0003 */
+/* Total of Format 3 : 0x0000 */
+
+0x2100, 0x2211, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00B0, 0x00B7, 0x00B0,
+/* 0002 */ 0x0081, 0x017E, 0x0000,
+/* 0003 */ 0x02C7, 0x0000, 0x008E,
+/* 0004 */ 0x02D9, 0x02DB, 0x00FE,
+/* 0005 */ 0x2013, 0x203A, 0x0101,
+/* 0006 */ 0x20AC, 0x0000, 0x0080,
+/* 0007 */ 0x2122, 0x0000, 0x0099,
+/*-------------------------------------------------------*/
+/* Offset=0x001F Start of MappingTable */
+
+/* 0000 */ 0x0081, 0xFFFD, 0x0083, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0088,
+/* 0008 */ 0xFFFD, 0x008A, 0xFFFD, 0x008C, 0xFFFD, 0xFFFD, 0xFFFD, 0x0090,
+/* 0010 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0098,
+/* 0018 */ 0xFFFD, 0x009A, 0xFFFD, 0x009C, 0xFFFD, 0xFFFD, 0x009F, 0x00A0,
+/* 0020 */ 0xFFFD, 0x00A2, 0x00A3, 0x00A4, 0xFFFD, 0x00A6, 0x00A7, 0x008D,
+/* 0028 */ 0x00A9, 0xFFFD, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x009D, 0xFFFD,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x008F,
+/* 0038 */ 0x00B9, 0xFFFD, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0xFFFD, 0xFFFD,
+/* 0040 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00C4, 0x00C5, 0x00AF, 0xFFFD, 0xFFFD,
+/* 0048 */ 0x00C9, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0050 */ 0xFFFD, 0xFFFD, 0x00D3, 0xFFFD, 0x00D5, 0x00D6, 0x00D7, 0x00A8,
+/* 0058 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00DC, 0xFFFD, 0xFFFD, 0x00DF, 0xFFFD,
+/* 0060 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00E4, 0x00E5, 0x00BF, 0xFFFD, 0xFFFD,
+/* 0068 */ 0x00E9, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0070 */ 0xFFFD, 0xFFFD, 0x00F3, 0xFFFD, 0x00F5, 0x00F6, 0x00F7, 0x00B8,
+/* 0078 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00FC, 0xFFFD, 0xFFFD, 0xFFFD, 0x00C2,
+/* 0080 */ 0x00E2, 0xFFFD, 0xFFFD, 0x00C0, 0x00E0, 0x00C3, 0x00E3, 0xFFFD,
+/* 0088 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00C8, 0x00E8, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0090 */ 0xFFFD, 0x00C7, 0x00E7, 0xFFFD, 0xFFFD, 0x00CB, 0x00EB, 0x00C6,
+/* 0098 */ 0x00E6, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00A0 */ 0xFFFD, 0x00CC, 0x00EC, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00A8 */ 0xFFFD, 0x00CE, 0x00EE, 0xFFFD, 0xFFFD, 0x00C1, 0x00E1, 0xFFFD,
+/* 00B0 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00CD, 0x00ED, 0xFFFD,
+/* 00B8 */ 0xFFFD, 0xFFFD, 0x00CF, 0x00EF, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00C0 */ 0x00D9, 0x00F9, 0x00D1, 0x00F1, 0x00D2, 0x00F2, 0xFFFD, 0xFFFD,
+/* 00C8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00D4, 0x00F4, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00D0 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00AA, 0x00BA, 0xFFFD,
+/* 00D8 */ 0xFFFD, 0x00DA, 0x00FA, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D0,
+/* 00E0 */ 0x00F0, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00E8 */ 0xFFFD, 0x00DB, 0x00FB, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00F0 */ 0xFFFD, 0x00D8, 0x00F8, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00F8 */ 0x00CA, 0x00EA, 0x00DD, 0x00FD, 0x00DE, 0x00FE, 0x00FF, 0xFFFD,
+/* 0100 */ 0x009E, 0x0096, 0x0097, 0xFFFD, 0xFFFD, 0xFFFD, 0x0091, 0x0092,
+/* 0108 */ 0x0082, 0xFFFD, 0x0093, 0x0094, 0x0084, 0xFFFD, 0x0086, 0x0087,
+/* 0110 */ 0x0095, 0xFFFD, 0xFFFD, 0xFFFD, 0x0085, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0118 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0089, 0xFFFD,
+/* 0120 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x008B,
+/* 0128 */ 0x009B,
+/* End of table Total Length = 0x0148 * 2 */
diff --git a/intl/uconv/ucvlatin/cp1257.ut b/intl/uconv/ucvlatin/cp1257.ut
new file mode 100644
index 000000000..59bc9d183
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1257.ut
@@ -0,0 +1,97 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00B0
+ srcEnd = 00B7
+ destBegin = 00B0
+End of Item 0001
+
+Begin of Item 0002
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 20AC 0081 201A 0083 201E 2026 2020 2021
+ 0088 2030 008A 2039 008C 00A8 02C7 00B8
+ 0090 2018 2019 201C 201D 2022 2013 2014
+ 0098 2122 009A 203A 009C 00AF 02DB 009F
+ 00A0 FFFD 00A2 00A3 00A4 FFFD 00A6 00A7
+ 00D8 00A9 0156 00AB 00AC 00AD 00AE 00C6
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ 00F8 00B9 0157 00BB 00BC 00BD 00BE 00E6
+ 0104 012E 0100 0106 00C4 00C5 0118 0112
+ 010C 00C9 0179 0116 0122 0136 012A 013B
+ 0160 0143 0145 00D3 014C 00D5 00D6 00D7
+ 0172 0141 015A 016A 00DC 017B 017D 00DF
+ 0105 012F 0101 0107 00E4 00E5 0119 0113
+ 010D 00E9 017A 0117 0123 0137 012B 013C
+ 0161 0144 0146 00F3 014D 00F5 00F6 00F7
+ 0173 0142 015B 016B 00FC 017C 017E 02D9
+End of Item 0002
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0003,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000E,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0002 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0100,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00B0, 0x00B7, 0x00B0,
+/* 0002 */ 0x0080, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x000E Start of MappingTable */
+
+/* 0000 */ 0x20AC, 0x0081, 0x201A, 0x0083, 0x201E, 0x2026, 0x2020, 0x2021,
+/* 0008 */ 0x0088, 0x2030, 0x008A, 0x2039, 0x008C, 0x00A8, 0x02C7, 0x00B8,
+/* 0010 */ 0x0090, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
+/* 0018 */ 0x0098, 0x2122, 0x009A, 0x203A, 0x009C, 0x00AF, 0x02DB, 0x009F,
+/* 0020 */ 0x00A0, 0xFFFD, 0x00A2, 0x00A3, 0x00A4, 0xFFFD, 0x00A6, 0x00A7,
+/* 0028 */ 0x00D8, 0x00A9, 0x0156, 0x00AB, 0x00AC, 0x00AD, 0x00AE, 0x00C6,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0038 */ 0x00F8, 0x00B9, 0x0157, 0x00BB, 0x00BC, 0x00BD, 0x00BE, 0x00E6,
+/* 0040 */ 0x0104, 0x012E, 0x0100, 0x0106, 0x00C4, 0x00C5, 0x0118, 0x0112,
+/* 0048 */ 0x010C, 0x00C9, 0x0179, 0x0116, 0x0122, 0x0136, 0x012A, 0x013B,
+/* 0050 */ 0x0160, 0x0143, 0x0145, 0x00D3, 0x014C, 0x00D5, 0x00D6, 0x00D7,
+/* 0058 */ 0x0172, 0x0141, 0x015A, 0x016A, 0x00DC, 0x017B, 0x017D, 0x00DF,
+/* 0060 */ 0x0105, 0x012F, 0x0101, 0x0107, 0x00E4, 0x00E5, 0x0119, 0x0113,
+/* 0068 */ 0x010D, 0x00E9, 0x017A, 0x0117, 0x0123, 0x0137, 0x012B, 0x013C,
+/* 0070 */ 0x0161, 0x0144, 0x0146, 0x00F3, 0x014D, 0x00F5, 0x00F6, 0x00F7,
+/* 0078 */ 0x0173, 0x0142, 0x015B, 0x016B, 0x00FC, 0x017C, 0x017E, 0x02D9,
+/* End of table Total Length = 0x008E * 2 */
diff --git a/intl/uconv/ucvlatin/cp1258.uf b/intl/uconv/ucvlatin/cp1258.uf
new file mode 100644
index 000000000..902e87755
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1258.uf
@@ -0,0 +1,253 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A0
+ srcEnd = 00C2
+ destBegin = 00A0
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00C4
+ srcEnd = 00CB
+ destBegin = 00C4
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00D6
+ srcEnd = 00DC
+ destBegin = 00D6
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00E4
+ srcEnd = 00EB
+ destBegin = 00E4
+End of Item 0004
+
+Begin of Item 0005
+ Format 0
+ srcBegin = 00F6
+ srcEnd = 00FC
+ destBegin = 00F6
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 0081
+ srcEnd = 009E
+ mappingOffset = 0000
+ Mapping =
+ 0081 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 008A FFFD FFFD 008D 008E 008F 0090
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 009A FFFD FFFD 009D 009E
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00CD
+ srcEnd = 0103
+ mappingOffset = 001E
+ Mapping =
+ 00CD 00CE 00CF FFFD 00D1 FFFD 00D3 00D4
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 00DF 00E0 00E1 00E2 FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ 00ED 00EE 00EF FFFD 00F1 FFFD 00F3 00F4
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 00FF FFFD FFFD 00C3 00E3
+End of Item 0007
+
+Begin of Item 0008
+ Format 1
+ srcBegin = 0110
+ srcEnd = 0111
+ mappingOffset = 0055
+ Mapping =
+ 00D0 00F0
+End of Item 0008
+
+Begin of Item 0009
+ Format 1
+ srcBegin = 0152
+ srcEnd = 0153
+ mappingOffset = 0057
+ Mapping =
+ 008C 009C
+End of Item 0009
+
+Begin of Item 000A
+ Format 2
+ srcBegin = 0178
+ destBegin = 009F
+End of Item 000A
+
+Begin of Item 000B
+ Format 2
+ srcBegin = 0192
+ destBegin = 0083
+End of Item 000B
+
+Begin of Item 000C
+ Format 1
+ srcBegin = 01A0
+ srcEnd = 01A1
+ mappingOffset = 0059
+ Mapping =
+ 00D5 00F5
+End of Item 000C
+
+Begin of Item 000D
+ Format 1
+ srcBegin = 01AF
+ srcEnd = 01B0
+ mappingOffset = 005B
+ Mapping =
+ 00DD 00FD
+End of Item 000D
+
+Begin of Item 000E
+ Format 2
+ srcBegin = 02C6
+ destBegin = 0088
+End of Item 000E
+
+Begin of Item 000F
+ Format 2
+ srcBegin = 02DC
+ destBegin = 0098
+End of Item 000F
+
+Begin of Item 0010
+ Format 1
+ srcBegin = 0300
+ srcEnd = 0309
+ mappingOffset = 005D
+ Mapping =
+ 00CC 00EC FFFD 00DE FFFD FFFD FFFD FFFD
+ FFFD 00D2
+End of Item 0010
+
+Begin of Item 0011
+ Format 2
+ srcBegin = 0323
+ destBegin = 00F2
+End of Item 0011
+
+Begin of Item 0012
+ Format 1
+ srcBegin = 2013
+ srcEnd = 203A
+ mappingOffset = 0067
+ Mapping =
+ 0096 0097 FFFD FFFD FFFD 0091 0092 0082
+ FFFD 0093 0094 0084 FFFD 0086 0087 0095
+ FFFD FFFD FFFD 0085 FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD 0089 FFFD FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD 008B 009B
+End of Item 0012
+
+Begin of Item 0013
+ Format 1
+ srcBegin = 20AB
+ srcEnd = 20AC
+ mappingOffset = 008F
+ Mapping =
+ 00FE 0080
+End of Item 0013
+
+Begin of Item 0014
+ Format 2
+ srcBegin = 2122
+ destBegin = 0099
+End of Item 0014
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0015,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x000A,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0049,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0006 */
+/* Total of Format 1 : 0x0009 */
+/* Total of Format 2 : 0x0006 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1100, 0x2211, 0x2211, 0x1121, 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x000A Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00A0, 0x00C2, 0x00A0,
+/* 0002 */ 0x00C4, 0x00CB, 0x00C4,
+/* 0003 */ 0x00D6, 0x00DC, 0x00D6,
+/* 0004 */ 0x00E4, 0x00EB, 0x00E4,
+/* 0005 */ 0x00F6, 0x00FC, 0x00F6,
+/* 0006 */ 0x0081, 0x009E, 0x0000,
+/* 0007 */ 0x00CD, 0x0103, 0x001E,
+/* 0008 */ 0x0110, 0x0111, 0x0055,
+/* 0009 */ 0x0152, 0x0153, 0x0057,
+/* 000A */ 0x0178, 0x0000, 0x009F,
+/* 000B */ 0x0192, 0x0000, 0x0083,
+/* 000C */ 0x01A0, 0x01A1, 0x0059,
+/* 000D */ 0x01AF, 0x01B0, 0x005B,
+/* 000E */ 0x02C6, 0x0000, 0x0088,
+/* 000F */ 0x02DC, 0x0000, 0x0098,
+/* 0010 */ 0x0300, 0x0309, 0x005D,
+/* 0011 */ 0x0323, 0x0000, 0x00F2,
+/* 0012 */ 0x2013, 0x203A, 0x0067,
+/* 0013 */ 0x20AB, 0x20AC, 0x008F,
+/* 0014 */ 0x2122, 0x0000, 0x0099,
+/*-------------------------------------------------------*/
+/* Offset=0x0049 Start of MappingTable */
+
+/* 0000 */ 0x0081, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0x008A, 0xFFFD, 0xFFFD, 0x008D, 0x008E, 0x008F, 0x0090,
+/* 0010 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0018 */ 0xFFFD, 0x009A, 0xFFFD, 0xFFFD, 0x009D, 0x009E, 0x00CD, 0x00CE,
+/* 0020 */ 0x00CF, 0xFFFD, 0x00D1, 0xFFFD, 0x00D3, 0x00D4, 0xFFFD, 0xFFFD,
+/* 0028 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0030 */ 0x00DF, 0x00E0, 0x00E1, 0x00E2, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0038 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00ED, 0x00EE,
+/* 0040 */ 0x00EF, 0xFFFD, 0x00F1, 0xFFFD, 0x00F3, 0x00F4, 0xFFFD, 0xFFFD,
+/* 0048 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0050 */ 0x00FF, 0xFFFD, 0xFFFD, 0x00C3, 0x00E3, 0x00D0, 0x00F0, 0x008C,
+/* 0058 */ 0x009C, 0x00D5, 0x00F5, 0x00DD, 0x00FD, 0x00CC, 0x00EC, 0xFFFD,
+/* 0060 */ 0x00DE, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D2, 0x0096,
+/* 0068 */ 0x0097, 0xFFFD, 0xFFFD, 0xFFFD, 0x0091, 0x0092, 0x0082, 0xFFFD,
+/* 0070 */ 0x0093, 0x0094, 0x0084, 0xFFFD, 0x0086, 0x0087, 0x0095, 0xFFFD,
+/* 0078 */ 0xFFFD, 0xFFFD, 0x0085, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0080 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0089, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0088 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x008B, 0x009B, 0x00FE,
+/* 0090 */ 0x0080,
+/* End of table Total Length = 0x00DA * 2 */
diff --git a/intl/uconv/ucvlatin/cp1258.ut b/intl/uconv/ucvlatin/cp1258.ut
new file mode 100644
index 000000000..df55a5de5
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp1258.ut
@@ -0,0 +1,130 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A0
+ srcEnd = 00C2
+ destBegin = 00A0
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00C4
+ srcEnd = 00CB
+ destBegin = 00C4
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00D6
+ srcEnd = 00DC
+ destBegin = 00D6
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00E4
+ srcEnd = 00EB
+ destBegin = 00E4
+End of Item 0004
+
+Begin of Item 0005
+ Format 0
+ srcBegin = 00F6
+ srcEnd = 00FC
+ destBegin = 00F6
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 0080
+ srcEnd = 009F
+ mappingOffset = 0000
+ Mapping =
+ 20AC 0081 201A 0192 201E 2026 2020 2021
+ 02C6 2030 008A 2039 0152 008D 008E 008F
+ 0090 2018 2019 201C 201D 2022 2013 2014
+ 02DC 2122 009A 203A 0153 009D 009E 0178
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00C3
+ srcEnd = 00FF
+ mappingOffset = 0020
+ Mapping =
+ 0102 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 0300 00CD 00CE 00CF 0110 00D1 0309
+ 00D3 00D4 01A0 FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 01AF 0303 00DF 00E0 00E1 00E2
+ 0103 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 0301 00ED 00EE 00EF 0111 00F1 0323
+ 00F3 00F4 01A1 FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 01B0 20AB 00FF
+End of Item 0007
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001F,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0006 */
+/* Total of Format 1 : 0x0002 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1100, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00A0, 0x00C2, 0x00A0,
+/* 0002 */ 0x00C4, 0x00CB, 0x00C4,
+/* 0003 */ 0x00D6, 0x00DC, 0x00D6,
+/* 0004 */ 0x00E4, 0x00EB, 0x00E4,
+/* 0005 */ 0x00F6, 0x00FC, 0x00F6,
+/* 0006 */ 0x0080, 0x009F, 0x0000,
+/* 0007 */ 0x00C3, 0x00FF, 0x0020,
+/*-------------------------------------------------------*/
+/* Offset=0x001F Start of MappingTable */
+
+/* 0000 */ 0x20AC, 0x0081, 0x201A, 0x0192, 0x201E, 0x2026, 0x2020, 0x2021,
+/* 0008 */ 0x02C6, 0x2030, 0x008A, 0x2039, 0x0152, 0x008D, 0x008E, 0x008F,
+/* 0010 */ 0x0090, 0x2018, 0x2019, 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
+/* 0018 */ 0x02DC, 0x2122, 0x009A, 0x203A, 0x0153, 0x009D, 0x009E, 0x0178,
+/* 0020 */ 0x0102, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0028 */ 0xFFFD, 0x0300, 0x00CD, 0x00CE, 0x00CF, 0x0110, 0x00D1, 0x0309,
+/* 0030 */ 0x00D3, 0x00D4, 0x01A0, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0038 */ 0xFFFD, 0xFFFD, 0x01AF, 0x0303, 0x00DF, 0x00E0, 0x00E1, 0x00E2,
+/* 0040 */ 0x0103, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0048 */ 0xFFFD, 0x0301, 0x00ED, 0x00EE, 0x00EF, 0x0111, 0x00F1, 0x0323,
+/* 0050 */ 0x00F3, 0x00F4, 0x01A1, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0058 */ 0xFFFD, 0xFFFD, 0x01B0, 0x20AB, 0x00FF,
+/* End of table Total Length = 0x007C * 2 */
diff --git a/intl/uconv/ucvlatin/cp866.uf b/intl/uconv/ucvlatin/cp866.uf
new file mode 100644
index 000000000..8cc3e2af7
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp866.uf
@@ -0,0 +1,191 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 0410
+ srcEnd = 043F
+ destBegin = 0080
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 0440
+ srcEnd = 044F
+ destBegin = 00E0
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00A4
+ mappingOffset = 0000
+ Mapping =
+ 00FF FFFD FFFD FFFD 00FD
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 00B0
+ srcEnd = 00B7
+ mappingOffset = 0005
+ Mapping =
+ 00F8 FFFD FFFD FFFD FFFD FFFD FFFD 00FA
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0401
+ srcEnd = 040E
+ mappingOffset = 000D
+ Mapping =
+ 00F0 FFFD FFFD 00F2 FFFD FFFD 00F4 FFFD
+ FFFD FFFD FFFD FFFD FFFD 00F6
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 0451
+ srcEnd = 045E
+ mappingOffset = 001B
+ Mapping =
+ 00F1 FFFD FFFD 00F3 FFFD FFFD 00F5 FFFD
+ FFFD FFFD FFFD FFFD FFFD 00F7
+End of Item 0006
+
+Begin of Item 0007
+ Format 2
+ srcBegin = 2116
+ destBegin = 00FC
+End of Item 0007
+
+Begin of Item 0008
+ Format 1
+ srcBegin = 2219
+ srcEnd = 221A
+ mappingOffset = 0029
+ Mapping =
+ 00F9 00FB
+End of Item 0008
+
+Begin of Item 0009
+ Format 1
+ srcBegin = 2500
+ srcEnd = 253C
+ mappingOffset = 002B
+ Mapping =
+ 00C4 FFFD 00B3 FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 00DA FFFD FFFD FFFD
+ 00BF FFFD FFFD FFFD 00C0 FFFD FFFD FFFD
+ 00D9 FFFD FFFD FFFD 00C3 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 00B4 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 00C2 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 00C1 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 00C5
+End of Item 0009
+
+Begin of Item 000A
+ Format 1
+ srcBegin = 2550
+ srcEnd = 256C
+ mappingOffset = 0068
+ Mapping =
+ 00CD 00BA 00D5 00D6 00C9 00B8 00B7 00BB
+ 00D4 00D3 00C8 00BE 00BD 00BC 00C6 00C7
+ 00CC 00B5 00B6 00B9 00D1 00D2 00CB 00CF
+ 00D0 00CA 00D8 00D7 00CE
+End of Item 000A
+
+Begin of Item 000B
+ Format 1
+ srcBegin = 2580
+ srcEnd = 2593
+ mappingOffset = 0085
+ Mapping =
+ 00DF FFFD FFFD FFFD 00DC FFFD FFFD FFFD
+ 00DB FFFD FFFD FFFD 00DD FFFD FFFD FFFD
+ 00DE 00B0 00B1 00B2
+End of Item 000B
+
+Begin of Item 000C
+ Format 2
+ srcBegin = 25A0
+ destBegin = 00FE
+End of Item 000C
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x000D,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x002F,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0008 */
+/* Total of Format 2 : 0x0002 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x2111, 0x1111, 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0008 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x0410, 0x043F, 0x0080,
+/* 0002 */ 0x0440, 0x044F, 0x00E0,
+/* 0003 */ 0x00A0, 0x00A4, 0x0000,
+/* 0004 */ 0x00B0, 0x00B7, 0x0005,
+/* 0005 */ 0x0401, 0x040E, 0x000D,
+/* 0006 */ 0x0451, 0x045E, 0x001B,
+/* 0007 */ 0x2116, 0x0000, 0x00FC,
+/* 0008 */ 0x2219, 0x221A, 0x0029,
+/* 0009 */ 0x2500, 0x253C, 0x002B,
+/* 000A */ 0x2550, 0x256C, 0x0068,
+/* 000B */ 0x2580, 0x2593, 0x0085,
+/* 000C */ 0x25A0, 0x0000, 0x00FE,
+/*-------------------------------------------------------*/
+/* Offset=0x002F Start of MappingTable */
+
+/* 0000 */ 0x00FF, 0xFFFD, 0xFFFD, 0xFFFD, 0x00FD, 0x00F8, 0xFFFD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00FA, 0x00F0, 0xFFFD, 0xFFFD,
+/* 0010 */ 0x00F2, 0xFFFD, 0xFFFD, 0x00F4, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0018 */ 0xFFFD, 0xFFFD, 0x00F6, 0x00F1, 0xFFFD, 0xFFFD, 0x00F3, 0xFFFD,
+/* 0020 */ 0xFFFD, 0x00F5, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0028 */ 0x00F7, 0x00F9, 0x00FB, 0x00C4, 0xFFFD, 0x00B3, 0xFFFD, 0xFFFD,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00DA,
+/* 0038 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00BF, 0xFFFD, 0xFFFD, 0xFFFD, 0x00C0,
+/* 0040 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00D9, 0xFFFD, 0xFFFD, 0xFFFD, 0x00C3,
+/* 0048 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00B4,
+/* 0050 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00C2,
+/* 0058 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00C1,
+/* 0060 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00C5,
+/* 0068 */ 0x00CD, 0x00BA, 0x00D5, 0x00D6, 0x00C9, 0x00B8, 0x00B7, 0x00BB,
+/* 0070 */ 0x00D4, 0x00D3, 0x00C8, 0x00BE, 0x00BD, 0x00BC, 0x00C6, 0x00C7,
+/* 0078 */ 0x00CC, 0x00B5, 0x00B6, 0x00B9, 0x00D1, 0x00D2, 0x00CB, 0x00CF,
+/* 0080 */ 0x00D0, 0x00CA, 0x00D8, 0x00D7, 0x00CE, 0x00DF, 0xFFFD, 0xFFFD,
+/* 0088 */ 0xFFFD, 0x00DC, 0xFFFD, 0xFFFD, 0xFFFD, 0x00DB, 0xFFFD, 0xFFFD,
+/* 0090 */ 0xFFFD, 0x00DD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00DE, 0x00B0, 0x00B1,
+/* 0098 */ 0x00B2,
+/* End of table Total Length = 0x00C8 * 2 */
diff --git a/intl/uconv/ucvlatin/cp866.ut b/intl/uconv/ucvlatin/cp866.ut
new file mode 100644
index 000000000..eb6629e8d
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp866.ut
@@ -0,0 +1,97 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 0080
+ srcEnd = 00AF
+ destBegin = 0410
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00E0
+ srcEnd = 00EF
+ destBegin = 0440
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00B0
+ srcEnd = 00DF
+ mappingOffset = 0000
+ Mapping =
+ 2591 2592 2593 2502 2524 2561 2562 2556
+ 2555 2563 2551 2557 255D 255C 255B 2510
+ 2514 2534 252C 251C 2500 253C 255E 255F
+ 255A 2554 2569 2566 2560 2550 256C 2567
+ 2568 2564 2565 2559 2558 2552 2553 256B
+ 256A 2518 250C 2588 2584 258C 2590 2580
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 00F0
+ srcEnd = 00FF
+ mappingOffset = 0030
+ Mapping =
+ 0401 0451 0404 0454 0407 0457 040E 045E
+ 00B0 2219 00B7 221A 2116 00A4 25A0 00A0
+End of Item 0004
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0015,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0002 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x0001,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x0080, 0x00AF, 0x0410,
+/* 0002 */ 0x00E0, 0x00EF, 0x0440,
+/* 0003 */ 0x00B0, 0x00DF, 0x0000,
+/* 0004 */ 0x00F0, 0x00FF, 0x0030,
+/*-------------------------------------------------------*/
+/* Offset=0x0015 Start of MappingTable */
+
+/* 0000 */ 0x2591, 0x2592, 0x2593, 0x2502, 0x2524, 0x2561, 0x2562, 0x2556,
+/* 0008 */ 0x2555, 0x2563, 0x2551, 0x2557, 0x255D, 0x255C, 0x255B, 0x2510,
+/* 0010 */ 0x2514, 0x2534, 0x252C, 0x251C, 0x2500, 0x253C, 0x255E, 0x255F,
+/* 0018 */ 0x255A, 0x2554, 0x2569, 0x2566, 0x2560, 0x2550, 0x256C, 0x2567,
+/* 0020 */ 0x2568, 0x2564, 0x2565, 0x2559, 0x2558, 0x2552, 0x2553, 0x256B,
+/* 0028 */ 0x256A, 0x2518, 0x250C, 0x2588, 0x2584, 0x258C, 0x2590, 0x2580,
+/* 0030 */ 0x0401, 0x0451, 0x0404, 0x0454, 0x0407, 0x0457, 0x040E, 0x045E,
+/* 0038 */ 0x00B0, 0x2219, 0x00B7, 0x221A, 0x2116, 0x00A4, 0x25A0, 0x00A0,
+/* End of table Total Length = 0x0055 * 2 */
diff --git a/intl/uconv/ucvlatin/cp874.uf b/intl/uconv/ucvlatin/cp874.uf
new file mode 100644
index 000000000..a8ad2078e
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp874.uf
@@ -0,0 +1,112 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 0086
+ srcEnd = 0090
+ destBegin = 0086
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 0098
+ srcEnd = 00A0
+ destBegin = 0098
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 0E01
+ srcEnd = 0E3A
+ destBegin = 00A1
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 0E3F
+ srcEnd = 0E5B
+ destBegin = 00DF
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0081
+ srcEnd = 0084
+ mappingOffset = 0000
+ Mapping =
+ 0081 0082 0083 0084
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 2013
+ srcEnd = 2026
+ mappingOffset = 0004
+ Mapping =
+ 0096 0097 FFFD FFFD FFFD 0091 0092 FFFD
+ FFFD 0093 0094 FFFD FFFD FFFD FFFD 0095
+ FFFD FFFD FFFD 0085
+End of Item 0006
+
+Begin of Item 0007
+ Format 2
+ srcBegin = 20AC
+ destBegin = 0080
+End of Item 0007
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001F,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0005 */
+/* Total of Format 1 : 0x0002 */
+/* Total of Format 2 : 0x0001 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x2110, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x0086, 0x0090, 0x0086,
+/* 0002 */ 0x0098, 0x00A0, 0x0098,
+/* 0003 */ 0x0E01, 0x0E3A, 0x00A1,
+/* 0004 */ 0x0E3F, 0x0E5B, 0x00DF,
+/* 0005 */ 0x0081, 0x0084, 0x0000,
+/* 0006 */ 0x2013, 0x2026, 0x0004,
+/* 0007 */ 0x20AC, 0x0000, 0x0080,
+/*-------------------------------------------------------*/
+/* Offset=0x001F Start of MappingTable */
+
+/* 0000 */ 0x0081, 0x0082, 0x0083, 0x0084, 0x0096, 0x0097, 0xFFFD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0x0091, 0x0092, 0xFFFD, 0xFFFD, 0x0093, 0x0094, 0xFFFD,
+/* 0010 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x0095, 0xFFFD, 0xFFFD, 0xFFFD, 0x0085,
+/* End of table Total Length = 0x0037 * 2 */
diff --git a/intl/uconv/ucvlatin/cp874.ut b/intl/uconv/ucvlatin/cp874.ut
new file mode 100644
index 000000000..2d44eb8b3
--- /dev/null
+++ b/intl/uconv/ucvlatin/cp874.ut
@@ -0,0 +1,102 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problems with this file, please file a bug
+ under the "Internationalization" component in
+ https://bugzilla.mozilla.org/enter_bug.cgi?product=Core
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 0086
+ srcEnd = 0090
+ destBegin = 0086
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 0098
+ srcEnd = 00A0
+ destBegin = 0098
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00A1
+ srcEnd = 00DA
+ destBegin = 0E01
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00DF
+ srcEnd = 00FB
+ destBegin = 0E3F
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0080
+ srcEnd = 0085
+ mappingOffset = 0000
+ Mapping =
+ 20AC 0081 0082 0083 0084 2026
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 0091
+ srcEnd = 0097
+ mappingOffset = 0006
+ Mapping =
+ 2018 2019 201C 201D 2022 2013 2014
+End of Item 0006
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0005 */
+/* Total of Format 1 : 0x0002 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x0110,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x0086, 0x0090, 0x0086,
+/* 0002 */ 0x0098, 0x00A0, 0x0098,
+/* 0003 */ 0x00A1, 0x00DA, 0x0E01,
+/* 0004 */ 0x00DF, 0x00FB, 0x0E3F,
+/* 0005 */ 0x0080, 0x0085, 0x0000,
+/* 0006 */ 0x0091, 0x0097, 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x001B Start of MappingTable */
+
+/* 0000 */ 0x20AC, 0x0081, 0x0082, 0x0083, 0x0084, 0x2026, 0x2018, 0x2019,
+/* 0008 */ 0x201C, 0x201D, 0x2022, 0x2013, 0x2014,
+/* End of table Total Length = 0x0028 * 2 */
diff --git a/intl/uconv/ucvlatin/koi8r.uf b/intl/uconv/ucvlatin/koi8r.uf
new file mode 100644
index 000000000..b908c7ae5
--- /dev/null
+++ b/intl/uconv/ucvlatin/koi8r.uf
@@ -0,0 +1,229 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 0418
+ srcEnd = 041F
+ destBegin = 00E9
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 0438
+ srcEnd = 043F
+ destBegin = 00C9
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 2553
+ srcEnd = 2561
+ destBegin = 00A4
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 2562
+ srcEnd = 256C
+ destBegin = 00B4
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00B7
+ mappingOffset = 0000
+ Mapping =
+ 009A FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 00BF FFFD FFFD FFFD FFFD FFFD FFFD
+ 009C FFFD 009D FFFD FFFD FFFD FFFD 009E
+End of Item 0005
+
+Begin of Item 0006
+ Format 2
+ srcBegin = 00F7
+ destBegin = 009F
+End of Item 0006
+
+Begin of Item 0007
+ Format 2
+ srcBegin = 0401
+ destBegin = 00B3
+End of Item 0007
+
+Begin of Item 0008
+ Format 1
+ srcBegin = 0410
+ srcEnd = 0451
+ mappingOffset = 0018
+ Mapping =
+ 00E1 00E2 00F7 00E7 00E4 00E5 00F6 00FA
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ 00F2 00F3 00F4 00F5 00E6 00E8 00E3 00FE
+ 00FB 00FD 00FF 00F9 00F8 00FC 00E0 00F1
+ 00C1 00C2 00D7 00C7 00C4 00C5 00D6 00DA
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ 00D2 00D3 00D4 00D5 00C6 00C8 00C3 00DE
+ 00DB 00DD 00DF 00D9 00D8 00DC 00C0 00D1
+ FFFD 00A3
+End of Item 0008
+
+Begin of Item 0009
+ Format 1
+ srcBegin = 2219
+ srcEnd = 221A
+ mappingOffset = 005A
+ Mapping =
+ 0095 0096
+End of Item 0009
+
+Begin of Item 000A
+ Format 2
+ srcBegin = 2248
+ destBegin = 0097
+End of Item 000A
+
+Begin of Item 000B
+ Format 1
+ srcBegin = 2264
+ srcEnd = 2265
+ mappingOffset = 005C
+ Mapping =
+ 0098 0099
+End of Item 000B
+
+Begin of Item 000C
+ Format 1
+ srcBegin = 2320
+ srcEnd = 2321
+ mappingOffset = 005E
+ Mapping =
+ 0093 009B
+End of Item 000C
+
+Begin of Item 000D
+ Format 1
+ srcBegin = 2500
+ srcEnd = 253C
+ mappingOffset = 0060
+ Mapping =
+ 0080 FFFD 0081 FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 0082 FFFD FFFD FFFD
+ 0083 FFFD FFFD FFFD 0084 FFFD FFFD FFFD
+ 0085 FFFD FFFD FFFD 0086 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 0087 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 0088 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 0089 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 008A
+End of Item 000D
+
+Begin of Item 000E
+ Format 1
+ srcBegin = 2550
+ srcEnd = 2552
+ mappingOffset = 009D
+ Mapping =
+ 00A0 00A1 00A2
+End of Item 000E
+
+Begin of Item 000F
+ Format 1
+ srcBegin = 2580
+ srcEnd = 2593
+ mappingOffset = 00A0
+ Mapping =
+ 008B FFFD FFFD FFFD 008C FFFD FFFD FFFD
+ 008D FFFD FFFD FFFD 008E FFFD FFFD FFFD
+ 008F 0090 0091 0092
+End of Item 000F
+
+Begin of Item 0010
+ Format 2
+ srcBegin = 25A0
+ destBegin = 0094
+End of Item 0010
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0011,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x003C,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0005 */
+/* Total of Format 1 : 0x0008 */
+/* Total of Format 2 : 0x0004 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x2210, 0x1211, 0x1111, 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0009 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x0418, 0x041F, 0x00E9,
+/* 0002 */ 0x0438, 0x043F, 0x00C9,
+/* 0003 */ 0x2553, 0x2561, 0x00A4,
+/* 0004 */ 0x2562, 0x256C, 0x00B4,
+/* 0005 */ 0x00A0, 0x00B7, 0x0000,
+/* 0006 */ 0x00F7, 0x0000, 0x009F,
+/* 0007 */ 0x0401, 0x0000, 0x00B3,
+/* 0008 */ 0x0410, 0x0451, 0x0018,
+/* 0009 */ 0x2219, 0x221A, 0x005A,
+/* 000A */ 0x2248, 0x0000, 0x0097,
+/* 000B */ 0x2264, 0x2265, 0x005C,
+/* 000C */ 0x2320, 0x2321, 0x005E,
+/* 000D */ 0x2500, 0x253C, 0x0060,
+/* 000E */ 0x2550, 0x2552, 0x009D,
+/* 000F */ 0x2580, 0x2593, 0x00A0,
+/* 0010 */ 0x25A0, 0x0000, 0x0094,
+/*-------------------------------------------------------*/
+/* Offset=0x003C Start of MappingTable */
+
+/* 0000 */ 0x009A, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0x00BF, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0010 */ 0x009C, 0xFFFD, 0x009D, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x009E,
+/* 0018 */ 0x00E1, 0x00E2, 0x00F7, 0x00E7, 0x00E4, 0x00E5, 0x00F6, 0x00FA,
+/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0028 */ 0x00F2, 0x00F3, 0x00F4, 0x00F5, 0x00E6, 0x00E8, 0x00E3, 0x00FE,
+/* 0030 */ 0x00FB, 0x00FD, 0x00FF, 0x00F9, 0x00F8, 0x00FC, 0x00E0, 0x00F1,
+/* 0038 */ 0x00C1, 0x00C2, 0x00D7, 0x00C7, 0x00C4, 0x00C5, 0x00D6, 0x00DA,
+/* 0040 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0048 */ 0x00D2, 0x00D3, 0x00D4, 0x00D5, 0x00C6, 0x00C8, 0x00C3, 0x00DE,
+/* 0050 */ 0x00DB, 0x00DD, 0x00DF, 0x00D9, 0x00D8, 0x00DC, 0x00C0, 0x00D1,
+/* 0058 */ 0xFFFD, 0x00A3, 0x0095, 0x0096, 0x0098, 0x0099, 0x0093, 0x009B,
+/* 0060 */ 0x0080, 0xFFFD, 0x0081, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0068 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0082, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0070 */ 0x0083, 0xFFFD, 0xFFFD, 0xFFFD, 0x0084, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0078 */ 0x0085, 0xFFFD, 0xFFFD, 0xFFFD, 0x0086, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0080 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0087, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0088 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0088, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0090 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0089, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0098 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x008A, 0x00A0, 0x00A1, 0x00A2,
+/* 00A0 */ 0x008B, 0xFFFD, 0xFFFD, 0xFFFD, 0x008C, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00A8 */ 0x008D, 0xFFFD, 0xFFFD, 0xFFFD, 0x008E, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00B0 */ 0x008F, 0x0090, 0x0091, 0x0092,
+/* End of table Total Length = 0x00F0 * 2 */
diff --git a/intl/uconv/ucvlatin/koi8r.ut b/intl/uconv/ucvlatin/koi8r.ut
new file mode 100644
index 000000000..e1b6521d0
--- /dev/null
+++ b/intl/uconv/ucvlatin/koi8r.ut
@@ -0,0 +1,131 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A4
+ srcEnd = 00B2
+ destBegin = 2553
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00B4
+ srcEnd = 00BE
+ destBegin = 2562
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00C9
+ srcEnd = 00D0
+ destBegin = 0438
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00E9
+ srcEnd = 00F0
+ destBegin = 0418
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00A3
+ mappingOffset = 0000
+ Mapping =
+ 2500 2502 250C 2510 2514 2518 251C 2524
+ 252C 2534 253C 2580 2584 2588 258C 2590
+ 2591 2592 2593 2320 25A0 2219 221A 2248
+ 2264 2265 00A0 2321 00B0 00B2 00B7 00F7
+ 2550 2551 2552 0451
+End of Item 0005
+
+Begin of Item 0006
+ Format 2
+ srcBegin = 00B3
+ destBegin = 0401
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00BF
+ srcEnd = 00FF
+ mappingOffset = 0024
+ Mapping =
+ 00A9 044E 0430 0431 0446 0434 0435 0444
+ 0433 0445 FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 044F 0440 0441 0442 0443 0436
+ 0432 044C 044B 0437 0448 044D 0449 0447
+ 044A 042E 0410 0411 0426 0414 0415 0424
+ 0413 0425 FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 042F 0420 0421 0422 0423 0416
+ 0412 042C 042B 0417 0428 042D 0429 0427
+ 042A
+End of Item 0007
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001F,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0005 */
+/* Total of Format 1 : 0x0002 */
+/* Total of Format 2 : 0x0001 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1210, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00A4, 0x00B2, 0x2553,
+/* 0002 */ 0x00B4, 0x00BE, 0x2562,
+/* 0003 */ 0x00C9, 0x00D0, 0x0438,
+/* 0004 */ 0x00E9, 0x00F0, 0x0418,
+/* 0005 */ 0x0080, 0x00A3, 0x0000,
+/* 0006 */ 0x00B3, 0x0000, 0x0401,
+/* 0007 */ 0x00BF, 0x00FF, 0x0024,
+/*-------------------------------------------------------*/
+/* Offset=0x001F Start of MappingTable */
+
+/* 0000 */ 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
+/* 0008 */ 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
+/* 0010 */ 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,
+/* 0018 */ 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
+/* 0020 */ 0x2550, 0x2551, 0x2552, 0x0451, 0x00A9, 0x044E, 0x0430, 0x0431,
+/* 0028 */ 0x0446, 0x0434, 0x0435, 0x0444, 0x0433, 0x0445, 0xFFFD, 0xFFFD,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x044F, 0x0440,
+/* 0038 */ 0x0441, 0x0442, 0x0443, 0x0436, 0x0432, 0x044C, 0x044B, 0x0437,
+/* 0040 */ 0x0448, 0x044D, 0x0449, 0x0447, 0x044A, 0x042E, 0x0410, 0x0411,
+/* 0048 */ 0x0426, 0x0414, 0x0415, 0x0424, 0x0413, 0x0425, 0xFFFD, 0xFFFD,
+/* 0050 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x042F, 0x0420,
+/* 0058 */ 0x0421, 0x0422, 0x0423, 0x0416, 0x0412, 0x042C, 0x042B, 0x0417,
+/* 0060 */ 0x0428, 0x042D, 0x0429, 0x0427, 0x042A,
+/* End of table Total Length = 0x0084 * 2 */
diff --git a/intl/uconv/ucvlatin/koi8u.uf b/intl/uconv/ucvlatin/koi8u.uf
new file mode 100644
index 000000000..757a2a233
--- /dev/null
+++ b/intl/uconv/ucvlatin/koi8u.uf
@@ -0,0 +1,227 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 0418
+ srcEnd = 041F
+ destBegin = 00E9
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 0438
+ srcEnd = 043F
+ destBegin = 00C9
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00B7
+ mappingOffset = 0000
+ Mapping =
+ 009A FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 00BF FFFD FFFD FFFD FFFD FFFD FFFD
+ 009C FFFD 009D FFFD FFFD FFFD FFFD 009E
+End of Item 0003
+
+Begin of Item 0004
+ Format 2
+ srcBegin = 00F7
+ destBegin = 009F
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0401
+ srcEnd = 0457
+ mappingOffset = 0018
+ Mapping =
+ 00B3 FFFD FFFD 00B4 FFFD 00B6 00B7 FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 00E1
+ 00E2 00F7 00E7 00E4 00E5 00F6 00FA FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 00F2
+ 00F3 00F4 00F5 00E6 00E8 00E3 00FE 00FB
+ 00FD 00FF 00F9 00F8 00FC 00E0 00F1 00C1
+ 00C2 00D7 00C7 00C4 00C5 00D6 00DA FFFD
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD 00D2
+ 00D3 00D4 00D5 00C6 00C8 00C3 00DE 00DB
+ 00DD 00DF 00D9 00D8 00DC 00C0 00D1 FFFD
+ 00A3 FFFD FFFD 00A4 FFFD 00A6 00A7
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 0490
+ srcEnd = 0491
+ mappingOffset = 006F
+ Mapping =
+ 00BD 00AD
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 2219
+ srcEnd = 221A
+ mappingOffset = 0071
+ Mapping =
+ 0095 0096
+End of Item 0007
+
+Begin of Item 0008
+ Format 2
+ srcBegin = 2248
+ destBegin = 0097
+End of Item 0008
+
+Begin of Item 0009
+ Format 1
+ srcBegin = 2264
+ srcEnd = 2265
+ mappingOffset = 0073
+ Mapping =
+ 0098 0099
+End of Item 0009
+
+Begin of Item 000A
+ Format 1
+ srcBegin = 2320
+ srcEnd = 2321
+ mappingOffset = 0075
+ Mapping =
+ 0093 009B
+End of Item 000A
+
+Begin of Item 000B
+ Format 1
+ srcBegin = 2500
+ srcEnd = 253C
+ mappingOffset = 0077
+ Mapping =
+ 0080 FFFD 0081 FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 0082 FFFD FFFD FFFD
+ 0083 FFFD FFFD FFFD 0084 FFFD FFFD FFFD
+ 0085 FFFD FFFD FFFD 0086 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 0087 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 0088 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 0089 FFFD FFFD FFFD
+ FFFD FFFD FFFD FFFD 008A
+End of Item 000B
+
+Begin of Item 000C
+ Format 1
+ srcBegin = 2550
+ srcEnd = 256C
+ mappingOffset = 00B4
+ Mapping =
+ 00A0 00A1 00A2 FFFD 00A5 FFFD FFFD 00A8
+ 00A9 00AA 00AB 00AC FFFD 00AE 00AF 00B0
+ 00B1 00B2 FFFD 00B5 FFFD FFFD 00B8 00B9
+ 00BA 00BB 00BC FFFD 00BE
+End of Item 000C
+
+Begin of Item 000D
+ Format 1
+ srcBegin = 2580
+ srcEnd = 2593
+ mappingOffset = 00D1
+ Mapping =
+ 008B FFFD FFFD FFFD 008C FFFD FFFD FFFD
+ 008D FFFD FFFD FFFD 008E FFFD FFFD FFFD
+ 008F 0090 0091 0092
+End of Item 000D
+
+Begin of Item 000E
+ Format 2
+ srcBegin = 25A0
+ destBegin = 0094
+End of Item 000E
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x000F,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0035,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0009 */
+/* Total of Format 2 : 0x0003 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x1112, 0x1112, 0x0211,
+/*-------------------------------------------------------*/
+/* Offset=0x0008 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x0418, 0x041F, 0x00E9,
+/* 0002 */ 0x0438, 0x043F, 0x00C9,
+/* 0003 */ 0x00A0, 0x00B7, 0x0000,
+/* 0004 */ 0x00F7, 0x0000, 0x009F,
+/* 0005 */ 0x0401, 0x0457, 0x0018,
+/* 0006 */ 0x0490, 0x0491, 0x006F,
+/* 0007 */ 0x2219, 0x221A, 0x0071,
+/* 0008 */ 0x2248, 0x0000, 0x0097,
+/* 0009 */ 0x2264, 0x2265, 0x0073,
+/* 000A */ 0x2320, 0x2321, 0x0075,
+/* 000B */ 0x2500, 0x253C, 0x0077,
+/* 000C */ 0x2550, 0x256C, 0x00B4,
+/* 000D */ 0x2580, 0x2593, 0x00D1,
+/* 000E */ 0x25A0, 0x0000, 0x0094,
+/*-------------------------------------------------------*/
+/* Offset=0x0035 Start of MappingTable */
+
+/* 0000 */ 0x009A, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0008 */ 0xFFFD, 0x00BF, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0010 */ 0x009C, 0xFFFD, 0x009D, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x009E,
+/* 0018 */ 0x00B3, 0xFFFD, 0xFFFD, 0x00B4, 0xFFFD, 0x00B6, 0x00B7, 0xFFFD,
+/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00E1,
+/* 0028 */ 0x00E2, 0x00F7, 0x00E7, 0x00E4, 0x00E5, 0x00F6, 0x00FA, 0xFFFD,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00F2,
+/* 0038 */ 0x00F3, 0x00F4, 0x00F5, 0x00E6, 0x00E8, 0x00E3, 0x00FE, 0x00FB,
+/* 0040 */ 0x00FD, 0x00FF, 0x00F9, 0x00F8, 0x00FC, 0x00E0, 0x00F1, 0x00C1,
+/* 0048 */ 0x00C2, 0x00D7, 0x00C7, 0x00C4, 0x00C5, 0x00D6, 0x00DA, 0xFFFD,
+/* 0050 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x00D2,
+/* 0058 */ 0x00D3, 0x00D4, 0x00D5, 0x00C6, 0x00C8, 0x00C3, 0x00DE, 0x00DB,
+/* 0060 */ 0x00DD, 0x00DF, 0x00D9, 0x00D8, 0x00DC, 0x00C0, 0x00D1, 0xFFFD,
+/* 0068 */ 0x00A3, 0xFFFD, 0xFFFD, 0x00A4, 0xFFFD, 0x00A6, 0x00A7, 0x00BD,
+/* 0070 */ 0x00AD, 0x0095, 0x0096, 0x0098, 0x0099, 0x0093, 0x009B, 0x0080,
+/* 0078 */ 0xFFFD, 0x0081, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0080 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x0082, 0xFFFD, 0xFFFD, 0xFFFD, 0x0083,
+/* 0088 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x0084, 0xFFFD, 0xFFFD, 0xFFFD, 0x0085,
+/* 0090 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x0086, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0098 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x0087, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00A0 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x0088, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00A8 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x0089, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 00B0 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x008A, 0x00A0, 0x00A1, 0x00A2, 0xFFFD,
+/* 00B8 */ 0x00A5, 0xFFFD, 0xFFFD, 0x00A8, 0x00A9, 0x00AA, 0x00AB, 0x00AC,
+/* 00C0 */ 0xFFFD, 0x00AE, 0x00AF, 0x00B0, 0x00B1, 0x00B2, 0xFFFD, 0x00B5,
+/* 00C8 */ 0xFFFD, 0xFFFD, 0x00B8, 0x00B9, 0x00BA, 0x00BB, 0x00BC, 0xFFFD,
+/* 00D0 */ 0x00BE, 0x008B, 0xFFFD, 0xFFFD, 0xFFFD, 0x008C, 0xFFFD, 0xFFFD,
+/* 00D8 */ 0xFFFD, 0x008D, 0xFFFD, 0xFFFD, 0xFFFD, 0x008E, 0xFFFD, 0xFFFD,
+/* 00E0 */ 0xFFFD, 0x008F, 0x0090, 0x0091, 0x0092,
+/* End of table Total Length = 0x011A * 2 */
diff --git a/intl/uconv/ucvlatin/koi8u.ut b/intl/uconv/ucvlatin/koi8u.ut
new file mode 100644
index 000000000..748f5374a
--- /dev/null
+++ b/intl/uconv/ucvlatin/koi8u.ut
@@ -0,0 +1,104 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00C9
+ srcEnd = 00D0
+ destBegin = 0438
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00E9
+ srcEnd = 00F0
+ destBegin = 0418
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 2500 2502 250C 2510 2514 2518 251C 2524
+ 252C 2534 253C 2580 2584 2588 258C 2590
+ 2591 2592 2593 2320 25A0 2219 221A 2248
+ 2264 2265 00A0 2321 00B0 00B2 00B7 00F7
+ 2550 2551 2552 0451 0454 2554 0456 0457
+ 2557 2558 2559 255A 255B 0491 255D 255E
+ 255F 2560 2561 0401 0404 2563 0406 0407
+ 2566 2567 2568 2569 256A 0490 256C 00A9
+ 044E 0430 0431 0446 0434 0435 0444 0433
+ 0445 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 044F 0440 0441 0442 0443 0436 0432
+ 044C 044B 0437 0448 044D 0449 0447 044A
+ 042E 0410 0411 0426 0414 0415 0424 0413
+ 0425 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD 042F 0420 0421 0422 0423 0416 0412
+ 042C 042B 0417 0428 042D 0429 0427 042A
+End of Item 0003
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0012,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00C9, 0x00D0, 0x0438,
+/* 0002 */ 0x00E9, 0x00F0, 0x0418,
+/* 0003 */ 0x0080, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0012 Start of MappingTable */
+
+/* 0000 */ 0x2500, 0x2502, 0x250C, 0x2510, 0x2514, 0x2518, 0x251C, 0x2524,
+/* 0008 */ 0x252C, 0x2534, 0x253C, 0x2580, 0x2584, 0x2588, 0x258C, 0x2590,
+/* 0010 */ 0x2591, 0x2592, 0x2593, 0x2320, 0x25A0, 0x2219, 0x221A, 0x2248,
+/* 0018 */ 0x2264, 0x2265, 0x00A0, 0x2321, 0x00B0, 0x00B2, 0x00B7, 0x00F7,
+/* 0020 */ 0x2550, 0x2551, 0x2552, 0x0451, 0x0454, 0x2554, 0x0456, 0x0457,
+/* 0028 */ 0x2557, 0x2558, 0x2559, 0x255A, 0x255B, 0x0491, 0x255D, 0x255E,
+/* 0030 */ 0x255F, 0x2560, 0x2561, 0x0401, 0x0404, 0x2563, 0x0406, 0x0407,
+/* 0038 */ 0x2566, 0x2567, 0x2568, 0x2569, 0x256A, 0x0490, 0x256C, 0x00A9,
+/* 0040 */ 0x044E, 0x0430, 0x0431, 0x0446, 0x0434, 0x0435, 0x0444, 0x0433,
+/* 0048 */ 0x0445, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0050 */ 0xFFFD, 0x044F, 0x0440, 0x0441, 0x0442, 0x0443, 0x0436, 0x0432,
+/* 0058 */ 0x044C, 0x044B, 0x0437, 0x0448, 0x044D, 0x0449, 0x0447, 0x044A,
+/* 0060 */ 0x042E, 0x0410, 0x0411, 0x0426, 0x0414, 0x0415, 0x0424, 0x0413,
+/* 0068 */ 0x0425, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0070 */ 0xFFFD, 0x042F, 0x0420, 0x0421, 0x0422, 0x0423, 0x0416, 0x0412,
+/* 0078 */ 0x042C, 0x042B, 0x0417, 0x0428, 0x042D, 0x0429, 0x0427, 0x042A,
+/* End of table Total Length = 0x0092 * 2 */
diff --git a/intl/uconv/ucvlatin/macarabic.ut b/intl/uconv/ucvlatin/macarabic.ut
new file mode 100644
index 000000000..8f8386413
--- /dev/null
+++ b/intl/uconv/ucvlatin/macarabic.ut
@@ -0,0 +1,132 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+ /*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007E
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A6
+ srcEnd = 00AB
+ destBegin = 0026
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00B0
+ srcEnd = 00B9
+ destBegin = 0660
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00C1
+ srcEnd = 00DA
+ destBegin = 0621
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00E0
+ srcEnd = 00F2
+ destBegin = 0640
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00C0
+ mappingOffset = 0000
+ Mapping =
+ 00C4 00A0 00C7 00C9 00D1 00D6 00DC 00E1
+ 00E0 00E2 00E4 06BA 00AB 00E7 00E9 00E8
+ 00EA 00EB 00ED 2026 00EE 00EF 00F1 00F3
+ 00BB 00F4 00F6 00F7 00FA 00F9 00FB 00FC
+ 0020 0021 0022 0023 0024 066A FFFD FFFD
+ FFFD FFFD FFFD FFFD 060C 002D 002E 002F
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 003A 061B 003C 003D 003E 061F
+ 274A
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 00DB
+ srcEnd = 00DF
+ mappingOffset = 0041
+ Mapping =
+ 005B 005C 005D 005E 005F
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00F3
+ srcEnd = 00FF
+ mappingOffset = 0046
+ Mapping =
+ 067E 0679 0686 06D5 06A4 06AF 0688 0691
+ 007B 007C 007D 0698 06D2
+End of Item 0007
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001F,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0005 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1110, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007E, 0x0000,
+/* 0001 */ 0x00A6, 0x00AB, 0x0026,
+/* 0002 */ 0x00B0, 0x00B9, 0x0660,
+/* 0003 */ 0x00C1, 0x00DA, 0x0621,
+/* 0004 */ 0x00E0, 0x00F2, 0x0640,
+/* 0005 */ 0x0080, 0x00C0, 0x0000,
+/* 0006 */ 0x00DB, 0x00DF, 0x0041,
+/* 0007 */ 0x00F3, 0x00FF, 0x0046,
+/*-------------------------------------------------------*/
+/* Offset=0x001F Start of MappingTable */
+
+/* 0000 */ 0x00C4, 0x00A0, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
+/* 0008 */ 0x00E0, 0x00E2, 0x00E4, 0x06BA, 0x00AB, 0x00E7, 0x00E9, 0x00E8,
+/* 0010 */ 0x00EA, 0x00EB, 0x00ED, 0x2026, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
+/* 0018 */ 0x00BB, 0x00F4, 0x00F6, 0x00F7, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
+/* 0020 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x066A, 0xFFFD, 0xFFFD,
+/* 0028 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x060C, 0x002D, 0x002E, 0x002F,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0038 */ 0xFFFD, 0xFFFD, 0x003A, 0x061B, 0x003C, 0x003D, 0x003E, 0x061F,
+/* 0040 */ 0x274A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, 0x067E, 0x0679,
+/* 0048 */ 0x0686, 0x06D5, 0x06A4, 0x06AF, 0x0688, 0x0691, 0x007B, 0x007C,
+/* 0050 */ 0x007D, 0x0698, 0x06D2,
+/* End of table Total Length = 0x0072 * 2 */
diff --git a/intl/uconv/ucvlatin/macce.ut b/intl/uconv/ucvlatin/macce.ut
new file mode 100644
index 000000000..e3210f7d7
--- /dev/null
+++ b/intl/uconv/ucvlatin/macce.ut
@@ -0,0 +1,88 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 00C4 0100 0101 00C9 0104 00D6 00DC 00E1
+ 0105 010C 00E4 010D 0106 0107 00E9 0179
+ 017A 010E 00ED 010F 0112 0113 0116 00F3
+ 0117 00F4 00F6 00F5 00FA 011A 011B 00FC
+ 2020 00B0 0118 00A3 00A7 2022 00B6 00DF
+ 00AE 00A9 2122 0119 00A8 2260 0123 012E
+ 012F 012A 2264 2265 012B 0136 2202 2211
+ 0142 013B 013C 013D 013E 0139 013A 0145
+ 0146 0143 00AC 221A 0144 0147 2206 00AB
+ 00BB 2026 00A0 0148 0150 00D5 0151 014C
+ 2013 2014 201C 201D 2018 2019 00F7 25CA
+ 014D 0154 0155 0158 2039 203A 0159 0156
+ 0157 0160 201A 201E 0161 015A 015B 00C1
+ 0164 0165 00CD 017D 017E 016A 00D3 00D4
+ 016B 016E 00DA 016F 0170 0171 0172 0173
+ 00DD 00FD 0137 017B 0141 017C 0122 02C7
+End of Item 0001
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0001 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0010,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x0080, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x000B Start of MappingTable */
+
+/* 0000 */ 0x00C4, 0x0100, 0x0101, 0x00C9, 0x0104, 0x00D6, 0x00DC, 0x00E1,
+/* 0008 */ 0x0105, 0x010C, 0x00E4, 0x010D, 0x0106, 0x0107, 0x00E9, 0x0179,
+/* 0010 */ 0x017A, 0x010E, 0x00ED, 0x010F, 0x0112, 0x0113, 0x0116, 0x00F3,
+/* 0018 */ 0x0117, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x011A, 0x011B, 0x00FC,
+/* 0020 */ 0x2020, 0x00B0, 0x0118, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF,
+/* 0028 */ 0x00AE, 0x00A9, 0x2122, 0x0119, 0x00A8, 0x2260, 0x0123, 0x012E,
+/* 0030 */ 0x012F, 0x012A, 0x2264, 0x2265, 0x012B, 0x0136, 0x2202, 0x2211,
+/* 0038 */ 0x0142, 0x013B, 0x013C, 0x013D, 0x013E, 0x0139, 0x013A, 0x0145,
+/* 0040 */ 0x0146, 0x0143, 0x00AC, 0x221A, 0x0144, 0x0147, 0x2206, 0x00AB,
+/* 0048 */ 0x00BB, 0x2026, 0x00A0, 0x0148, 0x0150, 0x00D5, 0x0151, 0x014C,
+/* 0050 */ 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
+/* 0058 */ 0x014D, 0x0154, 0x0155, 0x0158, 0x2039, 0x203A, 0x0159, 0x0156,
+/* 0060 */ 0x0157, 0x0160, 0x201A, 0x201E, 0x0161, 0x015A, 0x015B, 0x00C1,
+/* 0068 */ 0x0164, 0x0165, 0x00CD, 0x017D, 0x017E, 0x016A, 0x00D3, 0x00D4,
+/* 0070 */ 0x016B, 0x016E, 0x00DA, 0x016F, 0x0170, 0x0171, 0x0172, 0x0173,
+/* 0078 */ 0x00DD, 0x00FD, 0x0137, 0x017B, 0x0141, 0x017C, 0x0122, 0x02C7,
+/* End of table Total Length = 0x008B * 2 */
diff --git a/intl/uconv/ucvlatin/maccroat.ut b/intl/uconv/ucvlatin/maccroat.ut
new file mode 100644
index 000000000..12c59c304
--- /dev/null
+++ b/intl/uconv/ucvlatin/maccroat.ut
@@ -0,0 +1,89 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0020
+ srcEnd = 007F
+ destBegin = 0020
+End of Item 0000
+
+Begin of Item 0001
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 00C4 00C5 00C7 00C9 00D1 00D6 00DC 00E1
+ 00E0 00E2 00E4 00E3 00E5 00E7 00E9 00E8
+ 00EA 00EB 00ED 00EC 00EE 00EF 00F1 00F3
+ 00F2 00F4 00F6 00F5 00FA 00F9 00FB 00FC
+ 2020 00B0 00A2 00A3 00A7 2022 00B6 00DF
+ 00AE 0160 2122 00B4 00A8 2260 017D 00D8
+ 221E 00B1 2264 2265 2206 00B5 2202 2211
+ 220F 0161 222B 00AA 00BA 03A9 017E 00F8
+ 00BF 00A1 00AC 221A 0192 2248 0106 00AB
+ 010C 2026 00A0 00C0 00C3 00D5 0152 0153
+ 0110 2014 201C 201D 2018 2019 00F7 25CA
+ F8FF 00A9 2044 20AC 2039 203A 00C6 00BB
+ 2013 00B7 201A 201E 2030 00C2 0107 00C1
+ 010D 00C8 00CD 00CE 00CF 00CC 00D3 00D4
+ 0111 00D2 00DA 00DB 00D9 0131 02C6 02DC
+ 00AF 03C0 00CB 02DA 00B8 00CA 00E6 02C7
+End of Item 0001
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0001 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0010,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0020, 0x007F, 0x0020,
+/* 0001 */ 0x0080, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x000B Start of MappingTable */
+
+/* 0000 */ 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
+/* 0008 */ 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8,
+/* 0010 */ 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
+/* 0018 */ 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
+/* 0020 */ 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF,
+/* 0028 */ 0x00AE, 0x0160, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x017D, 0x00D8,
+/* 0030 */ 0x221E, 0x00B1, 0x2264, 0x2265, 0x2206, 0x00B5, 0x2202, 0x2211,
+/* 0038 */ 0x220F, 0x0161, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x017E, 0x00F8,
+/* 0040 */ 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x0106, 0x00AB,
+/* 0048 */ 0x010C, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153,
+/* 0050 */ 0x0110, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
+/* 0058 */ 0xF8FF, 0x00A9, 0x2044, 0x20AC, 0x2039, 0x203A, 0x00C6, 0x00BB,
+/* 0060 */ 0x2013, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x0107, 0x00C1,
+/* 0068 */ 0x010D, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
+/* 0070 */ 0x0111, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC,
+/* 0078 */ 0x00AF, 0x03C0, 0x00CB, 0x02DA, 0x00B8, 0x00CA, 0x00E6, 0x02C7,
+/* End of table Total Length = 0x008B * 2 */
diff --git a/intl/uconv/ucvlatin/maccyril.uf b/intl/uconv/ucvlatin/maccyril.uf
new file mode 100644
index 000000000..4625522aa
--- /dev/null
+++ b/intl/uconv/ucvlatin/maccyril.uf
@@ -0,0 +1,203 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0020
+ srcEnd = 007F
+ destBegin = 0020
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 0410
+ srcEnd = 042F
+ destBegin = 0080
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 0430
+ srcEnd = 044E
+ destBegin = 00E0
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00BB
+ mappingOffset = 0000
+ Mapping =
+ 00CA FFFD FFFD 00A3 FFFD FFFD FFFD 00A4
+ FFFD 00A9 FFFD 00C7 00C2 FFFD 00A8 FFFD
+ 00A1 00B1 FFFD FFFD FFFD 00B5 00A6 FFFD
+ FFFD FFFD FFFD 00C8
+End of Item 0003
+
+Begin of Item 0004
+ Format 2
+ srcBegin = 00F7
+ destBegin = 00D6
+End of Item 0004
+
+Begin of Item 0005
+ Format 2
+ srcBegin = 0192
+ destBegin = 00C4
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 0401
+ srcEnd = 040F
+ mappingOffset = 001C
+ Mapping =
+ 00DD 00AB 00AE 00B8 00C1 00A7 00BA 00B7
+ 00BC 00BE 00CB 00CD FFFD 00D8 00DA
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 044F
+ srcEnd = 045F
+ mappingOffset = 002B
+ Mapping =
+ 00DF FFFD 00DE 00AC 00AF 00B9 00CF 00B4
+ 00BB 00C0 00BD 00BF 00CC 00CE FFFD 00D9
+ 00DB
+End of Item 0007
+
+Begin of Item 0008
+ Format 1
+ srcBegin = 0490
+ srcEnd = 0491
+ mappingOffset = 003C
+ Mapping =
+ 00A2 00B6
+End of Item 0008
+
+Begin of Item 0009
+ Format 1
+ srcBegin = 2013
+ srcEnd = 2026
+ mappingOffset = 003E
+ Mapping =
+ 00D0 00D1 FFFD FFFD FFFD 00D4 00D5 FFFD
+ FFFD 00D2 00D3 00D7 FFFD 00A0 FFFD 00A5
+ FFFD FFFD FFFD 00C9
+End of Item 0009
+
+Begin of Item 000A
+ Format 2
+ srcBegin = 20AC
+ destBegin = 00FF
+End of Item 000A
+
+Begin of Item 000B
+ Format 2
+ srcBegin = 2116
+ destBegin = 00DC
+End of Item 000B
+
+Begin of Item 000C
+ Format 2
+ srcBegin = 2122
+ destBegin = 00AA
+End of Item 000C
+
+Begin of Item 000D
+ Format 2
+ srcBegin = 2206
+ destBegin = 00C6
+End of Item 000D
+
+Begin of Item 000E
+ Format 1
+ srcBegin = 221A
+ srcEnd = 221E
+ mappingOffset = 0052
+ Mapping =
+ 00C3 FFFD FFFD FFFD 00B0
+End of Item 000E
+
+Begin of Item 000F
+ Format 2
+ srcBegin = 2248
+ destBegin = 00C5
+End of Item 000F
+
+Begin of Item 0010
+ Format 1
+ srcBegin = 2260
+ srcEnd = 2265
+ mappingOffset = 0057
+ Mapping =
+ 00AD FFFD FFFD FFFD 00B2 00B3
+End of Item 0010
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0011,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x003C,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0007 */
+/* Total of Format 2 : 0x0007 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x1122, 0x2211, 0x2122, 0x0001,
+/*-------------------------------------------------------*/
+/* Offset=0x0009 Start of MapCell Array */
+/* 0000 */ 0x0020, 0x007F, 0x0020,
+/* 0001 */ 0x0410, 0x042F, 0x0080,
+/* 0002 */ 0x0430, 0x044E, 0x00E0,
+/* 0003 */ 0x00A0, 0x00BB, 0x0000,
+/* 0004 */ 0x00F7, 0x0000, 0x00D6,
+/* 0005 */ 0x0192, 0x0000, 0x00C4,
+/* 0006 */ 0x0401, 0x040F, 0x001C,
+/* 0007 */ 0x044F, 0x045F, 0x002B,
+/* 0008 */ 0x0490, 0x0491, 0x003C,
+/* 0009 */ 0x2013, 0x2026, 0x003E,
+/* 000A */ 0x20AC, 0x0000, 0x00FF,
+/* 000B */ 0x2116, 0x0000, 0x00DC,
+/* 000C */ 0x2122, 0x0000, 0x00AA,
+/* 000D */ 0x2206, 0x0000, 0x00C6,
+/* 000E */ 0x221A, 0x221E, 0x0052,
+/* 000F */ 0x2248, 0x0000, 0x00C5,
+/* 0010 */ 0x2260, 0x2265, 0x0057,
+/*-------------------------------------------------------*/
+/* Offset=0x003C Start of MappingTable */
+
+/* 0000 */ 0x00CA, 0xFFFD, 0xFFFD, 0x00A3, 0xFFFD, 0xFFFD, 0xFFFD, 0x00A4,
+/* 0008 */ 0xFFFD, 0x00A9, 0xFFFD, 0x00C7, 0x00C2, 0xFFFD, 0x00A8, 0xFFFD,
+/* 0010 */ 0x00A1, 0x00B1, 0xFFFD, 0xFFFD, 0xFFFD, 0x00B5, 0x00A6, 0xFFFD,
+/* 0018 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00C8, 0x00DD, 0x00AB, 0x00AE, 0x00B8,
+/* 0020 */ 0x00C1, 0x00A7, 0x00BA, 0x00B7, 0x00BC, 0x00BE, 0x00CB, 0x00CD,
+/* 0028 */ 0xFFFD, 0x00D8, 0x00DA, 0x00DF, 0xFFFD, 0x00DE, 0x00AC, 0x00AF,
+/* 0030 */ 0x00B9, 0x00CF, 0x00B4, 0x00BB, 0x00C0, 0x00BD, 0x00BF, 0x00CC,
+/* 0038 */ 0x00CE, 0xFFFD, 0x00D9, 0x00DB, 0x00A2, 0x00B6, 0x00D0, 0x00D1,
+/* 0040 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00D4, 0x00D5, 0xFFFD, 0xFFFD, 0x00D2,
+/* 0048 */ 0x00D3, 0x00D7, 0xFFFD, 0x00A0, 0xFFFD, 0x00A5, 0xFFFD, 0xFFFD,
+/* 0050 */ 0xFFFD, 0x00C9, 0x00C3, 0xFFFD, 0xFFFD, 0xFFFD, 0x00B0, 0x00AD,
+/* 0058 */ 0xFFFD, 0xFFFD, 0xFFFD, 0x00B2, 0x00B3,
+/* End of table Total Length = 0x0099 * 2 */
diff --git a/intl/uconv/ucvlatin/maccyril.ut b/intl/uconv/ucvlatin/maccyril.ut
new file mode 100644
index 000000000..b6fa121d2
--- /dev/null
+++ b/intl/uconv/ucvlatin/maccyril.ut
@@ -0,0 +1,96 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0020
+ srcEnd = 007F
+ destBegin = 0020
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 0080
+ srcEnd = 009F
+ destBegin = 0410
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00E0
+ srcEnd = 00FE
+ destBegin = 0430
+End of Item 0002
+
+Begin of Item 0003
+ Format 1
+ srcBegin = 00A0
+ srcEnd = 00DF
+ mappingOffset = 0000
+ Mapping =
+ 2020 00B0 0490 00A3 00A7 2022 00B6 0406
+ 00AE 00A9 2122 0402 0452 2260 0403 0453
+ 221E 00B1 2264 2265 0456 00B5 0491 0408
+ 0404 0454 0407 0457 0409 0459 040A 045A
+ 0458 0405 00AC 221A 0192 2248 2206 00AB
+ 00BB 2026 00A0 040B 045B 040C 045C 0455
+ 2013 2014 201C 201D 2018 2019 00F7 201E
+ 040E 045E 040F 045F 2116 0401 0451 044F
+End of Item 0003
+
+Begin of Item 0004
+ Format 2
+ srcBegin = 00FF
+ destBegin = 20AC
+End of Item 0004
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0015,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0003 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0001 */
+/* Total of Format 3 : 0x0000 */
+
+0x1000, 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0020, 0x007F, 0x0020,
+/* 0001 */ 0x0080, 0x009F, 0x0410,
+/* 0002 */ 0x00E0, 0x00FE, 0x0430,
+/* 0003 */ 0x00A0, 0x00DF, 0x0000,
+/* 0004 */ 0x00FF, 0x0000, 0x20AC,
+/*-------------------------------------------------------*/
+/* Offset=0x0015 Start of MappingTable */
+
+/* 0000 */ 0x2020, 0x00B0, 0x0490, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x0406,
+/* 0008 */ 0x00AE, 0x00A9, 0x2122, 0x0402, 0x0452, 0x2260, 0x0403, 0x0453,
+/* 0010 */ 0x221E, 0x00B1, 0x2264, 0x2265, 0x0456, 0x00B5, 0x0491, 0x0408,
+/* 0018 */ 0x0404, 0x0454, 0x0407, 0x0457, 0x0409, 0x0459, 0x040A, 0x045A,
+/* 0020 */ 0x0458, 0x0405, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB,
+/* 0028 */ 0x00BB, 0x2026, 0x00A0, 0x040B, 0x045B, 0x040C, 0x045C, 0x0455,
+/* 0030 */ 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x201E,
+/* 0038 */ 0x040E, 0x045E, 0x040F, 0x045F, 0x2116, 0x0401, 0x0451, 0x044F,
+/* End of table Total Length = 0x0055 * 2 */
diff --git a/intl/uconv/ucvlatin/macdevanaga.ut b/intl/uconv/ucvlatin/macdevanaga.ut
new file mode 100644
index 000000000..2e2dc6c86
--- /dev/null
+++ b/intl/uconv/ucvlatin/macdevanaga.ut
@@ -0,0 +1,134 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+ /*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A4
+ srcEnd = 00AA
+ destBegin = 0905
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00B3
+ srcEnd = 00CD
+ destBegin = 0915
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00CF
+ srcEnd = 00D8
+ destBegin = 0930
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00DA
+ srcEnd = 00DF
+ destBegin = 093E
+End of Item 0004
+
+Begin of Item 0005
+ Format 0
+ srcBegin = 00F1
+ srcEnd = 00FA
+ destBegin = 0966
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 0080
+ srcEnd = 0091
+ mappingOffset = 0000
+ Mapping =
+ 00D7 2212 2013 2014 2018 2019 2026 2022
+ 00A9 00AE 2122 FFFD FFFD FFFD FFFD FFFD
+ 0965 0970
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00A1
+ srcEnd = 00B2
+ mappingOffset = 0012
+ Mapping =
+ 0901 0902 0903 FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 090E 090F 0910 090D 0912 0913
+ 0914 0911
+End of Item 0007
+
+Begin of Item 0008
+ Format 1
+ srcBegin = 00CE
+ srcEnd = 00EA
+ mappingOffset = 0024
+ Mapping =
+ 095F FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD 200E FFFD FFFD FFFD FFFD
+ FFFD FFFD 0946 0947 0948 0945 094A 094B
+ 094C 0949 094D 093C 0964
+End of Item 0008
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0022,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0006 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1100, 0x0001,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00A4, 0x00AA, 0x0905,
+/* 0002 */ 0x00B3, 0x00CD, 0x0915,
+/* 0003 */ 0x00CF, 0x00D8, 0x0930,
+/* 0004 */ 0x00DA, 0x00DF, 0x093E,
+/* 0005 */ 0x00F1, 0x00FA, 0x0966,
+/* 0006 */ 0x0080, 0x0091, 0x0000,
+/* 0007 */ 0x00A1, 0x00B2, 0x0012,
+/* 0008 */ 0x00CE, 0x00EA, 0x0024,
+/*-------------------------------------------------------*/
+/* Offset=0x0022 Start of MappingTable */
+
+/* 0000 */ 0x00D7, 0x2212, 0x2013, 0x2014, 0x2018, 0x2019, 0x2026, 0x2022,
+/* 0008 */ 0x00A9, 0x00AE, 0x2122, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0010 */ 0x0965, 0x0970, 0x0901, 0x0902, 0x0903, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0018 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x090E, 0x090F, 0x0910, 0x090D,
+/* 0020 */ 0x0912, 0x0913, 0x0914, 0x0911, 0x095F, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0028 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x200E,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0946, 0x0947,
+/* 0038 */ 0x0948, 0x0945, 0x094A, 0x094B, 0x094C, 0x0949, 0x094D, 0x093C,
+/* 0040 */ 0x0964,
+/* End of table Total Length = 0x0063 * 2 */
diff --git a/intl/uconv/ucvlatin/macfarsi.ut b/intl/uconv/ucvlatin/macfarsi.ut
new file mode 100644
index 000000000..dfde1be23
--- /dev/null
+++ b/intl/uconv/ucvlatin/macfarsi.ut
@@ -0,0 +1,130 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+ /*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007E
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A6
+ srcEnd = 00AB
+ destBegin = 0026
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00B0
+ srcEnd = 00B9
+ destBegin = 06F0
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00C1
+ srcEnd = 00DA
+ destBegin = 0621
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00E0
+ srcEnd = 00F2
+ destBegin = 0640
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00C0
+ mappingOffset = 0000
+ Mapping =
+ 00C4 00A0 00C7 00C9 00D1 00D6 00DC 00E1
+ 00E0 00E2 00E4 06BA 00AB 00E7 00E9 00E8
+ 00EA 00EB 00ED 2026 00EE 00EF 00F1 00F3
+ 00BB 00F4 00F6 00F7 00FA 00F9 00FB 00FC
+ 0020 0021 0022 0023 0024 066A FFFD FFFD
+ FFFD FFFD FFFD FFFD 060C 002D 002E 002F
+ FFFD FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 003A 061B 003C 003D 003E 061F
+ 274A
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 00DB
+ srcEnd = 00DF
+ mappingOffset = 0041
+ Mapping =
+ 005B 005C 005D 005E 005F
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00F3
+ srcEnd = 00FF
+ mappingOffset = 0046
+ Mapping =
+ 067E 0679 0686 06D5 06A4 06AF 0688 0691
+ 007B 007C 007D 0698 06D2
+End of Item 0007
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001F,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0005 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1110, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007E, 0x0000,
+/* 0001 */ 0x00A6, 0x00AB, 0x0026,
+/* 0002 */ 0x00B0, 0x00B9, 0x06F0,
+/* 0003 */ 0x00C1, 0x00DA, 0x0621,
+/* 0004 */ 0x00E0, 0x00F2, 0x0640,
+/* 0005 */ 0x0080, 0x00C0, 0x0000,
+/* 0006 */ 0x00DB, 0x00DF, 0x0041,
+/* 0007 */ 0x00F3, 0x00FF, 0x0046,
+/*-------------------------------------------------------*/
+/* Offset=0x001F Start of MappingTable */
+
+/* 0000 */ 0x00C4, 0x00A0, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
+/* 0008 */ 0x00E0, 0x00E2, 0x00E4, 0x06BA, 0x00AB, 0x00E7, 0x00E9, 0x00E8,
+/* 0010 */ 0x00EA, 0x00EB, 0x00ED, 0x2026, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
+/* 0018 */ 0x00BB, 0x00F4, 0x00F6, 0x00F7, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
+/* 0020 */ 0x0020, 0x0021, 0x0022, 0x0023, 0x0024, 0x066A, 0xFFFD, 0xFFFD,
+/* 0028 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x060C, 0x002D, 0x002E, 0x002F,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0038 */ 0xFFFD, 0xFFFD, 0x003A, 0x061B, 0x003C, 0x003D, 0x003E, 0x061F,
+/* 0040 */ 0x274A, 0x005B, 0x005C, 0x005D, 0x005E, 0x005F, 0x067E, 0x0679,
+/* 0048 */ 0x0686, 0x06D5, 0x06A4, 0x06AF, 0x0688, 0x0691, 0x007B, 0x007C,
+/* 0050 */ 0x007D, 0x0698, 0x06D2,
+/* End of table Total Length = 0x0072 * 2 */
diff --git a/intl/uconv/ucvlatin/macgreek.ut b/intl/uconv/ucvlatin/macgreek.ut
new file mode 100644
index 000000000..7b6aa71e6
--- /dev/null
+++ b/intl/uconv/ucvlatin/macgreek.ut
@@ -0,0 +1,89 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0020
+ srcEnd = 007F
+ destBegin = 0020
+End of Item 0000
+
+Begin of Item 0001
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 00C4 00B9 00B2 00C9 00B3 00D6 00DC 0385
+ 00E0 00E2 00E4 0384 00A8 00E7 00E9 00E8
+ 00EA 00EB 00A3 2122 00EE 00EF 2022 00BD
+ 2030 00F4 00F6 00A6 20AC 00F9 00FB 00FC
+ 2020 0393 0394 0398 039B 039E 03A0 00DF
+ 00AE 00A9 03A3 03AA 00A7 2260 00B0 00B7
+ 0391 00B1 2264 2265 00A5 0392 0395 0396
+ 0397 0399 039A 039C 03A6 03AB 03A8 03A9
+ 03AC 039D 00AC 039F 03A1 2248 03A4 00AB
+ 00BB 2026 00A0 03A5 03A7 0386 0388 0153
+ 2013 2015 201C 201D 2018 2019 00F7 0389
+ 038A 038C 038E 03AD 03AE 03AF 03CC 038F
+ 03CD 03B1 03B2 03C8 03B4 03B5 03C6 03B3
+ 03B7 03B9 03BE 03BA 03BB 03BC 03BD 03BF
+ 03C0 03CE 03C1 03C3 03C4 03B8 03C9 03C2
+ 03C7 03C5 03B6 03CA 03CB 0390 03B0 00AD
+End of Item 0001
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0001 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0010,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0020, 0x007F, 0x0020,
+/* 0001 */ 0x0080, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x000B Start of MappingTable */
+
+/* 0000 */ 0x00C4, 0x00B9, 0x00B2, 0x00C9, 0x00B3, 0x00D6, 0x00DC, 0x0385,
+/* 0008 */ 0x00E0, 0x00E2, 0x00E4, 0x0384, 0x00A8, 0x00E7, 0x00E9, 0x00E8,
+/* 0010 */ 0x00EA, 0x00EB, 0x00A3, 0x2122, 0x00EE, 0x00EF, 0x2022, 0x00BD,
+/* 0018 */ 0x2030, 0x00F4, 0x00F6, 0x00A6, 0x20AC, 0x00F9, 0x00FB, 0x00FC,
+/* 0020 */ 0x2020, 0x0393, 0x0394, 0x0398, 0x039B, 0x039E, 0x03A0, 0x00DF,
+/* 0028 */ 0x00AE, 0x00A9, 0x03A3, 0x03AA, 0x00A7, 0x2260, 0x00B0, 0x00B7,
+/* 0030 */ 0x0391, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x0392, 0x0395, 0x0396,
+/* 0038 */ 0x0397, 0x0399, 0x039A, 0x039C, 0x03A6, 0x03AB, 0x03A8, 0x03A9,
+/* 0040 */ 0x03AC, 0x039D, 0x00AC, 0x039F, 0x03A1, 0x2248, 0x03A4, 0x00AB,
+/* 0048 */ 0x00BB, 0x2026, 0x00A0, 0x03A5, 0x03A7, 0x0386, 0x0388, 0x0153,
+/* 0050 */ 0x2013, 0x2015, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x0389,
+/* 0058 */ 0x038A, 0x038C, 0x038E, 0x03AD, 0x03AE, 0x03AF, 0x03CC, 0x038F,
+/* 0060 */ 0x03CD, 0x03B1, 0x03B2, 0x03C8, 0x03B4, 0x03B5, 0x03C6, 0x03B3,
+/* 0068 */ 0x03B7, 0x03B9, 0x03BE, 0x03BA, 0x03BB, 0x03BC, 0x03BD, 0x03BF,
+/* 0070 */ 0x03C0, 0x03CE, 0x03C1, 0x03C3, 0x03C4, 0x03B8, 0x03C9, 0x03C2,
+/* 0078 */ 0x03C7, 0x03C5, 0x03B6, 0x03CA, 0x03CB, 0x0390, 0x03B0, 0x00AD,
+/* End of table Total Length = 0x008B * 2 */
diff --git a/intl/uconv/ucvlatin/macgujarati.ut b/intl/uconv/ucvlatin/macgujarati.ut
new file mode 100644
index 000000000..8dd3deb9f
--- /dev/null
+++ b/intl/uconv/ucvlatin/macgujarati.ut
@@ -0,0 +1,133 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+ /*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A4
+ srcEnd = 00AA
+ destBegin = 0A85
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00B3
+ srcEnd = 00C6
+ destBegin = 0A95
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00C8
+ srcEnd = 00CD
+ destBegin = 0AAA
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00DA
+ srcEnd = 00DF
+ destBegin = 0ABE
+End of Item 0004
+
+Begin of Item 0005
+ Format 0
+ srcBegin = 00F1
+ srcEnd = 00FA
+ destBegin = 0AE6
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 0080
+ srcEnd = 0090
+ mappingOffset = 0000
+ Mapping =
+ 00D7 2212 2013 2014 2018 2019 2026 2022
+ 00A9 00AE 2122 FFFD FFFD FFFD FFFD FFFD
+ 0965
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00A1
+ srcEnd = 00B2
+ mappingOffset = 0011
+ Mapping =
+ 0A81 0A82 0A83 FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD FFFD 0A8F 0A90 0A8D FFFD 0A93
+ 0A94 0A91
+End of Item 0007
+
+Begin of Item 0008
+ Format 1
+ srcBegin = 00CF
+ srcEnd = 00EA
+ mappingOffset = 0023
+ Mapping =
+ 0AB0 FFFD 0AB2 0AB3 FFFD 0AB5 0AB6 0AB7
+ 0AB8 0AB9 200E FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 0AC7 0AC8 0AC5 FFFD 0ACB 0ACC
+ 0AC9 0ACD 0ABC 0964
+End of Item 0008
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0009,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x0022,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0006 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1100, 0x0001,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x00A4, 0x00AA, 0x0A85,
+/* 0002 */ 0x00B3, 0x00C6, 0x0A95,
+/* 0003 */ 0x00C8, 0x00CD, 0x0AAA,
+/* 0004 */ 0x00DA, 0x00DF, 0x0ABE,
+/* 0005 */ 0x00F1, 0x00FA, 0x0AE6,
+/* 0006 */ 0x0080, 0x0090, 0x0000,
+/* 0007 */ 0x00A1, 0x00B2, 0x0011,
+/* 0008 */ 0x00CF, 0x00EA, 0x0023,
+/*-------------------------------------------------------*/
+/* Offset=0x0022 Start of MappingTable */
+
+/* 0000 */ 0x00D7, 0x2212, 0x2013, 0x2014, 0x2018, 0x2019, 0x2026, 0x2022,
+/* 0008 */ 0x00A9, 0x00AE, 0x2122, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0010 */ 0x0965, 0x0A81, 0x0A82, 0x0A83, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0018 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0A8F, 0x0A90, 0x0A8D, 0xFFFD,
+/* 0020 */ 0x0A93, 0x0A94, 0x0A91, 0x0AB0, 0xFFFD, 0x0AB2, 0x0AB3, 0xFFFD,
+/* 0028 */ 0x0AB5, 0x0AB6, 0x0AB7, 0x0AB8, 0x0AB9, 0x200E, 0xFFFD, 0xFFFD,
+/* 0030 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0AC7, 0x0AC8, 0x0AC5,
+/* 0038 */ 0xFFFD, 0x0ACB, 0x0ACC, 0x0AC9, 0x0ACD, 0x0ABC, 0x0964,
+/* End of table Total Length = 0x0061 * 2 */
diff --git a/intl/uconv/ucvlatin/macgurmukhi.ut b/intl/uconv/ucvlatin/macgurmukhi.ut
new file mode 100644
index 000000000..973cbff87
--- /dev/null
+++ b/intl/uconv/ucvlatin/macgurmukhi.ut
@@ -0,0 +1,125 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+ /*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0020
+ srcEnd = 007E
+ destBegin = 0020
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A4
+ srcEnd = 00A9
+ destBegin = 0A05
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00B3
+ srcEnd = 00C6
+ destBegin = 0A15
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00C8
+ srcEnd = 00CD
+ destBegin = 0A2A
+End of Item 0003
+
+Begin of Item 0004
+ Format 0
+ srcBegin = 00F1
+ srcEnd = 00FA
+ destBegin = 0A66
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 0080
+ srcEnd = 0094
+ mappingOffset = 0000
+ Mapping =
+ 00D7 2212 2013 2014 2018 2019 2026 2022
+ 00A9 00AE 2122 FFFD FFFD FFFD FFFD FFFD
+ 0A71 0A5C 0A73 0A72 0A74
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 00A2
+ srcEnd = 00B1
+ mappingOffset = 0015
+ Mapping =
+ 0A02 FFFD FFFD FFFD FFFD FFFD FFFD FFFD
+ FFFD FFFD 0A0F 0A10 FFFD FFFD 0A13 0A14
+End of Item 0006
+
+Begin of Item 0007
+ Format 1
+ srcBegin = 00CF
+ srcEnd = 00EA
+ mappingOffset = 0025
+ Mapping =
+ 0A30 FFFD 0A32 FFFD FFFD 0A35 F860 FFFD
+ 0A38 0A39 200E 0A3E 0A3F 0A40 0A41 0A42
+ FFFD FFFD 0A47 0A48 FFFD FFFD 0A4B 0A4C
+ FFFD 0A4D 0A3C 0964
+End of Item 0007
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0008,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001F,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0005 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x1110, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0007 Start of MapCell Array */
+/* 0000 */ 0x0020, 0x007E, 0x0020,
+/* 0001 */ 0x00A4, 0x00A9, 0x0A05,
+/* 0002 */ 0x00B3, 0x00C6, 0x0A15,
+/* 0003 */ 0x00C8, 0x00CD, 0x0A2A,
+/* 0004 */ 0x00F1, 0x00FA, 0x0A66,
+/* 0005 */ 0x0080, 0x0094, 0x0000,
+/* 0006 */ 0x00A2, 0x00B1, 0x0015,
+/* 0007 */ 0x00CF, 0x00EA, 0x0025,
+/*-------------------------------------------------------*/
+/* Offset=0x001F Start of MappingTable */
+
+/* 0000 */ 0x00D7, 0x2212, 0x2013, 0x2014, 0x2018, 0x2019, 0x2026, 0x2022,
+/* 0008 */ 0x00A9, 0x00AE, 0x2122, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD,
+/* 0010 */ 0x0A71, 0x0A5C, 0x0A73, 0x0A72, 0x0A74, 0x0A02, 0xFFFD, 0xFFFD,
+/* 0018 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x0A0F,
+/* 0020 */ 0x0A10, 0xFFFD, 0xFFFD, 0x0A13, 0x0A14, 0x0A30, 0xFFFD, 0x0A32,
+/* 0028 */ 0xFFFD, 0xFFFD, 0x0A35, 0xF860, 0xFFFD, 0x0A38, 0x0A39, 0x200E,
+/* 0030 */ 0x0A3E, 0x0A3F, 0x0A40, 0x0A41, 0x0A42, 0xFFFD, 0xFFFD, 0x0A47,
+/* 0038 */ 0x0A48, 0xFFFD, 0xFFFD, 0x0A4B, 0x0A4C, 0xFFFD, 0x0A4D, 0x0A3C,
+/* 0040 */ 0x0964,
+/* End of table Total Length = 0x0060 * 2 */
diff --git a/intl/uconv/ucvlatin/machebrew.ut b/intl/uconv/ucvlatin/machebrew.ut
new file mode 100644
index 000000000..2680a31e6
--- /dev/null
+++ b/intl/uconv/ucvlatin/machebrew.ut
@@ -0,0 +1,119 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+ /*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007E
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 00A0
+ srcEnd = 00A5
+ destBegin = 0020
+End of Item 0001
+
+Begin of Item 0002
+ Format 0
+ srcBegin = 00A7
+ srcEnd = 00BF
+ destBegin = 0027
+End of Item 0002
+
+Begin of Item 0003
+ Format 0
+ srcBegin = 00E0
+ srcEnd = 00FA
+ destBegin = 05D0
+End of Item 0003
+
+Begin of Item 0004
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00A6
+ mappingOffset = 0000
+ Mapping =
+ 00C4 FB1F 00C7 00C9 00D1 00D6 00DC 00E1
+ 00E0 00E2 00E4 00E3 00E5 00E7 00E9 00E8
+ 00EA 00EB 00ED 00EC 00EE 00EF 00F1 00F3
+ 00F2 00F4 00F6 00F5 00FA 00F9 00FB 00FC
+ FFFD FFFD FFFD FFFD FFFD FFFD 20AA
+End of Item 0004
+
+Begin of Item 0005
+ Format 1
+ srcBegin = 00C1
+ srcEnd = 00DF
+ mappingOffset = 0027
+ Mapping =
+ 201E F89B F89C F89D F89E 05BC FB4B FB35
+ 2026 00A0 05B8 05B7 05B5 05B6 05B4 2013
+ 2014 201C 201D 2018 2019 FB2A FB2B 05BF
+ 05B0 05B2 05B1 05BB 05B9 FFFD 05B3
+End of Item 0005
+
+Begin of Item 0006
+ Format 1
+ srcBegin = 00FB
+ srcEnd = 00FF
+ mappingOffset = 0046
+ Mapping =
+ 007D 005D 007B 005B 007C
+End of Item 0006
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0007,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0006,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x001B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0004 */
+/* Total of Format 1 : 0x0003 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000, 0x0111,
+/*-------------------------------------------------------*/
+/* Offset=0x0006 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007E, 0x0000,
+/* 0001 */ 0x00A0, 0x00A5, 0x0020,
+/* 0002 */ 0x00A7, 0x00BF, 0x0027,
+/* 0003 */ 0x00E0, 0x00FA, 0x05D0,
+/* 0004 */ 0x0080, 0x00A6, 0x0000,
+/* 0005 */ 0x00C1, 0x00DF, 0x0027,
+/* 0006 */ 0x00FB, 0x00FF, 0x0046,
+/*-------------------------------------------------------*/
+/* Offset=0x001B Start of MappingTable */
+
+/* 0000 */ 0x00C4, 0xFB1F, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
+/* 0008 */ 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8,
+/* 0010 */ 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
+/* 0018 */ 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
+/* 0020 */ 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0xFFFD, 0x20AA, 0x201E,
+/* 0028 */ 0xF89B, 0xF89C, 0xF89D, 0xF89E, 0x05BC, 0xFB4B, 0xFB35, 0x2026,
+/* 0030 */ 0x00A0, 0x05B8, 0x05B7, 0x05B5, 0x05B6, 0x05B4, 0x2013, 0x2014,
+/* 0038 */ 0x201C, 0x201D, 0x2018, 0x2019, 0xFB2A, 0xFB2B, 0x05BF, 0x05B0,
+/* 0040 */ 0x05B2, 0x05B1, 0x05BB, 0x05B9, 0xFFFD, 0x05B3, 0x007D, 0x005D,
+/* 0048 */ 0x007B, 0x005B, 0x007C,
+/* End of table Total Length = 0x0066 * 2 */
diff --git a/intl/uconv/ucvlatin/macicela.ut b/intl/uconv/ucvlatin/macicela.ut
new file mode 100644
index 000000000..a18ae10dd
--- /dev/null
+++ b/intl/uconv/ucvlatin/macicela.ut
@@ -0,0 +1,89 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0020
+ srcEnd = 007F
+ destBegin = 0020
+End of Item 0000
+
+Begin of Item 0001
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 00C4 00C5 00C7 00C9 00D1 00D6 00DC 00E1
+ 00E0 00E2 00E4 00E3 00E5 00E7 00E9 00E8
+ 00EA 00EB 00ED 00EC 00EE 00EF 00F1 00F3
+ 00F2 00F4 00F6 00F5 00FA 00F9 00FB 00FC
+ 00DD 00B0 00A2 00A3 00A7 2022 00B6 00DF
+ 00AE 00A9 2122 00B4 00A8 2260 00C6 00D8
+ 221E 00B1 2264 2265 00A5 00B5 2202 2211
+ 220F 03C0 222B 00AA 00BA 03A9 00E6 00F8
+ 00BF 00A1 00AC 221A 0192 2248 2206 00AB
+ 00BB 2026 00A0 00C0 00C3 00D5 0152 0153
+ 2013 2014 201C 201D 2018 2019 00F7 25CA
+ 00FF 0178 2044 20AC 00D0 00F0 00DE 00FE
+ 00FD 00B7 201A 201E 2030 00C2 00CA 00C1
+ 00CB 00C8 00CD 00CE 00CF 00CC 00D3 00D4
+ F8FF 00D2 00DA 00DB 00D9 0131 02C6 02DC
+ 00AF 02D8 02D9 02DA 00B8 02DD 02DB 02C7
+End of Item 0001
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0001 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0010,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0020, 0x007F, 0x0020,
+/* 0001 */ 0x0080, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x000B Start of MappingTable */
+
+/* 0000 */ 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
+/* 0008 */ 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8,
+/* 0010 */ 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
+/* 0018 */ 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
+/* 0020 */ 0x00DD, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF,
+/* 0028 */ 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8,
+/* 0030 */ 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211,
+/* 0038 */ 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8,
+/* 0040 */ 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB,
+/* 0048 */ 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153,
+/* 0050 */ 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
+/* 0058 */ 0x00FF, 0x0178, 0x2044, 0x20AC, 0x00D0, 0x00F0, 0x00DE, 0x00FE,
+/* 0060 */ 0x00FD, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
+/* 0068 */ 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
+/* 0070 */ 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC,
+/* 0078 */ 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7,
+/* End of table Total Length = 0x008B * 2 */
diff --git a/intl/uconv/ucvlatin/macro.ut b/intl/uconv/ucvlatin/macro.ut
new file mode 100644
index 000000000..54ecd7150
--- /dev/null
+++ b/intl/uconv/ucvlatin/macro.ut
@@ -0,0 +1,89 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0020
+ srcEnd = 007F
+ destBegin = 0020
+End of Item 0000
+
+Begin of Item 0001
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 00C4 00C5 00C7 00C9 00D1 00D6 00DC 00E1
+ 00E0 00E2 00E4 00E3 00E5 00E7 00E9 00E8
+ 00EA 00EB 00ED 00EC 00EE 00EF 00F1 00F3
+ 00F2 00F4 00F6 00F5 00FA 00F9 00FB 00FC
+ 2020 00B0 00A2 00A3 00A7 2022 00B6 00DF
+ 00AE 00A9 2122 00B4 00A8 2260 0102 0218
+ 221E 00B1 2264 2265 00A5 00B5 2202 2211
+ 220F 03C0 222B 00AA 00BA 03A9 0103 0219
+ 00BF 00A1 00AC 221A 0192 2248 2206 00AB
+ 00BB 2026 00A0 00C0 00C3 00D5 0152 0153
+ 2013 2014 201C 201D 2018 2019 00F7 25CA
+ 00FF 0178 2044 20AC 2039 203A 021A 021B
+ 2021 00B7 201A 201E 2030 00C2 00CA 00C1
+ 00CB 00C8 00CD 00CE 00CF 00CC 00D3 00D4
+ F8FF 00D2 00DA 00DB 00D9 0131 02C6 02DC
+ 00AF 02D8 02D9 02DA 00B8 02DD 02DB 02C7
+End of Item 0001
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0001 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0010,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0020, 0x007F, 0x0020,
+/* 0001 */ 0x0080, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x000B Start of MappingTable */
+
+/* 0000 */ 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
+/* 0008 */ 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8,
+/* 0010 */ 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
+/* 0018 */ 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
+/* 0020 */ 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF,
+/* 0028 */ 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x0102, 0x0218,
+/* 0030 */ 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211,
+/* 0038 */ 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x0103, 0x0219,
+/* 0040 */ 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB,
+/* 0048 */ 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153,
+/* 0050 */ 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
+/* 0058 */ 0x00FF, 0x0178, 0x2044, 0x20AC, 0x2039, 0x203A, 0x021A, 0x021B,
+/* 0060 */ 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
+/* 0068 */ 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
+/* 0070 */ 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0x0131, 0x02C6, 0x02DC,
+/* 0078 */ 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7,
+/* End of table Total Length = 0x008B * 2 */
diff --git a/intl/uconv/ucvlatin/macturki.ut b/intl/uconv/ucvlatin/macturki.ut
new file mode 100644
index 000000000..656638cc1
--- /dev/null
+++ b/intl/uconv/ucvlatin/macturki.ut
@@ -0,0 +1,89 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called umaptable.
+ You can find this tool under mozilla/intl/uconv/tools/umaptable.c.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0020
+ srcEnd = 007F
+ destBegin = 0020
+End of Item 0000
+
+Begin of Item 0001
+ Format 1
+ srcBegin = 0080
+ srcEnd = 00FF
+ mappingOffset = 0000
+ Mapping =
+ 00C4 00C5 00C7 00C9 00D1 00D6 00DC 00E1
+ 00E0 00E2 00E4 00E3 00E5 00E7 00E9 00E8
+ 00EA 00EB 00ED 00EC 00EE 00EF 00F1 00F3
+ 00F2 00F4 00F6 00F5 00FA 00F9 00FB 00FC
+ 2020 00B0 00A2 00A3 00A7 2022 00B6 00DF
+ 00AE 00A9 2122 00B4 00A8 2260 00C6 00D8
+ 221E 00B1 2264 2265 00A5 00B5 2202 2211
+ 220F 03C0 222B 00AA 00BA 03A9 00E6 00F8
+ 00BF 00A1 00AC 221A 0192 2248 2206 00AB
+ 00BB 2026 00A0 00C0 00C3 00D5 0152 0153
+ 2013 2014 201C 201D 2018 2019 00F7 25CA
+ 00FF 0178 011E 011F 0130 0131 015E 015F
+ 2021 00B7 201A 201E 2030 00C2 00CA 00C1
+ 00CB 00C8 00CD 00CE 00CF 00CC 00D3 00D4
+ F8FF 00D2 00DA 00DB 00D9 F8A0 02C6 02DC
+ 00AF 02D8 02D9 02DA 00B8 02DD 02DB 02C7
+End of Item 0001
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0001 */
+/* Total of Format 1 : 0x0001 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0010,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0020, 0x007F, 0x0020,
+/* 0001 */ 0x0080, 0x00FF, 0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x000B Start of MappingTable */
+
+/* 0000 */ 0x00C4, 0x00C5, 0x00C7, 0x00C9, 0x00D1, 0x00D6, 0x00DC, 0x00E1,
+/* 0008 */ 0x00E0, 0x00E2, 0x00E4, 0x00E3, 0x00E5, 0x00E7, 0x00E9, 0x00E8,
+/* 0010 */ 0x00EA, 0x00EB, 0x00ED, 0x00EC, 0x00EE, 0x00EF, 0x00F1, 0x00F3,
+/* 0018 */ 0x00F2, 0x00F4, 0x00F6, 0x00F5, 0x00FA, 0x00F9, 0x00FB, 0x00FC,
+/* 0020 */ 0x2020, 0x00B0, 0x00A2, 0x00A3, 0x00A7, 0x2022, 0x00B6, 0x00DF,
+/* 0028 */ 0x00AE, 0x00A9, 0x2122, 0x00B4, 0x00A8, 0x2260, 0x00C6, 0x00D8,
+/* 0030 */ 0x221E, 0x00B1, 0x2264, 0x2265, 0x00A5, 0x00B5, 0x2202, 0x2211,
+/* 0038 */ 0x220F, 0x03C0, 0x222B, 0x00AA, 0x00BA, 0x03A9, 0x00E6, 0x00F8,
+/* 0040 */ 0x00BF, 0x00A1, 0x00AC, 0x221A, 0x0192, 0x2248, 0x2206, 0x00AB,
+/* 0048 */ 0x00BB, 0x2026, 0x00A0, 0x00C0, 0x00C3, 0x00D5, 0x0152, 0x0153,
+/* 0050 */ 0x2013, 0x2014, 0x201C, 0x201D, 0x2018, 0x2019, 0x00F7, 0x25CA,
+/* 0058 */ 0x00FF, 0x0178, 0x011E, 0x011F, 0x0130, 0x0131, 0x015E, 0x015F,
+/* 0060 */ 0x2021, 0x00B7, 0x201A, 0x201E, 0x2030, 0x00C2, 0x00CA, 0x00C1,
+/* 0068 */ 0x00CB, 0x00C8, 0x00CD, 0x00CE, 0x00CF, 0x00CC, 0x00D3, 0x00D4,
+/* 0070 */ 0xF8FF, 0x00D2, 0x00DA, 0x00DB, 0x00D9, 0xF8A0, 0x02C6, 0x02DC,
+/* 0078 */ 0x00AF, 0x02D8, 0x02D9, 0x02DA, 0x00B8, 0x02DD, 0x02DB, 0x02C7,
+/* End of table Total Length = 0x008B * 2 */
diff --git a/intl/uconv/ucvlatin/nsCP1250ToUnicode.cpp b/intl/uconv/ucvlatin/nsCP1250ToUnicode.cpp
new file mode 100644
index 000000000..a42c439c0
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1250ToUnicode.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsCP1250ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsCP1250ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "cp1250.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsCP1250ToUnicode.h b/intl/uconv/ucvlatin/nsCP1250ToUnicode.h
new file mode 100644
index 000000000..86fc69e29
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1250ToUnicode.h
@@ -0,0 +1,20 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsCP1250ToUnicode_h___
+#define nsCP1250ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from CP1250 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsCP1250ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+#endif /* nsCP1250ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsCP1251ToUnicode.cpp b/intl/uconv/ucvlatin/nsCP1251ToUnicode.cpp
new file mode 100644
index 000000000..1b3dcea85
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1251ToUnicode.cpp
@@ -0,0 +1,22 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsCP1251ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsCP1251ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "cp1251.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsCP1251ToUnicode.h b/intl/uconv/ucvlatin/nsCP1251ToUnicode.h
new file mode 100644
index 000000000..1c240ec33
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1251ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsCP1251ToUnicode_h___
+#define nsCP1251ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from CP1251 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsCP1251ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsCP1251ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsCP1253ToUnicode.cpp b/intl/uconv/ucvlatin/nsCP1253ToUnicode.cpp
new file mode 100644
index 000000000..c231ae991
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1253ToUnicode.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsCP1253ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsCP1253ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "cp1253.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsCP1253ToUnicode.h b/intl/uconv/ucvlatin/nsCP1253ToUnicode.h
new file mode 100644
index 000000000..69645ebe0
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1253ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsCP1253ToUnicode_h___
+#define nsCP1253ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from CP1253 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsCP1253ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsCP1253ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsCP1254ToUnicode.cpp b/intl/uconv/ucvlatin/nsCP1254ToUnicode.cpp
new file mode 100644
index 000000000..b3b70fec9
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1254ToUnicode.cpp
@@ -0,0 +1,22 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsCP1254ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsCP1254ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "cp1254.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsCP1254ToUnicode.h b/intl/uconv/ucvlatin/nsCP1254ToUnicode.h
new file mode 100644
index 000000000..d0490ffd9
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1254ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsCP1254ToUnicode_h___
+#define nsCP1254ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from CP1254 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsCP1254ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsCP1254ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsCP1255ToUnicode.cpp b/intl/uconv/ucvlatin/nsCP1255ToUnicode.cpp
new file mode 100644
index 000000000..57bac7bd0
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1255ToUnicode.cpp
@@ -0,0 +1,22 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsCP1255ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsCP1255ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "cp1255.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsCP1255ToUnicode.h b/intl/uconv/ucvlatin/nsCP1255ToUnicode.h
new file mode 100644
index 000000000..a4bee01b0
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1255ToUnicode.h
@@ -0,0 +1,22 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsCP1255ToUnicode_h___
+#define nsCP1255ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from CP1255 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+
+nsresult
+nsCP1255ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsCP1255ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsCP1256ToUnicode.cpp b/intl/uconv/ucvlatin/nsCP1256ToUnicode.cpp
new file mode 100644
index 000000000..791f93c77
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1256ToUnicode.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsCP1256ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsCP1256ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "cp1256.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsCP1256ToUnicode.h b/intl/uconv/ucvlatin/nsCP1256ToUnicode.h
new file mode 100644
index 000000000..aee6657ce
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1256ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsCP1256ToUnicode_h___
+#define nsCP1256ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from CP1256 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsCP1256ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsCP1256ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsCP1257ToUnicode.cpp b/intl/uconv/ucvlatin/nsCP1257ToUnicode.cpp
new file mode 100644
index 000000000..b2e39c6f7
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1257ToUnicode.cpp
@@ -0,0 +1,22 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsCP1257ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsCP1257ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "cp1257.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsCP1257ToUnicode.h b/intl/uconv/ucvlatin/nsCP1257ToUnicode.h
new file mode 100644
index 000000000..5028088e2
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1257ToUnicode.h
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsCP1257ToUnicode_h___
+#define nsCP1257ToUnicode_h___
+
+#include "nsISupports.h"
+
+//----------------------------------------------------------------------
+// Class nsCP1257ToUnicode [declaration]
+
+/**
+ * A character set converter from CP1257 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsCP1257ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsCP1257ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsCP1258ToUnicode.cpp b/intl/uconv/ucvlatin/nsCP1258ToUnicode.cpp
new file mode 100644
index 000000000..6338c8c98
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1258ToUnicode.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsCP1258ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsCP1258ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "cp1258.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsCP1258ToUnicode.h b/intl/uconv/ucvlatin/nsCP1258ToUnicode.h
new file mode 100644
index 000000000..9e564b3bd
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP1258ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsCP1258ToUnicode_h___
+#define nsCP1258ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from CP1258 to Unicode.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsCP1258ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsCP1258ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsCP866ToUnicode.cpp b/intl/uconv/ucvlatin/nsCP866ToUnicode.cpp
new file mode 100644
index 000000000..4d4b89948
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP866ToUnicode.cpp
@@ -0,0 +1,28 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsCP866ToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsCP866ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "cp866.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_IBM866, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
+
diff --git a/intl/uconv/ucvlatin/nsCP866ToUnicode.h b/intl/uconv/ucvlatin/nsCP866ToUnicode.h
new file mode 100644
index 000000000..48519129c
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP866ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsCP866ToUnicode_h___
+#define nsCP866ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from CP866 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsCP866ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsCP866ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsCP874ToUnicode.cpp b/intl/uconv/ucvlatin/nsCP874ToUnicode.cpp
new file mode 100644
index 000000000..1c5bea8c0
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP874ToUnicode.cpp
@@ -0,0 +1,22 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsCP874ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsCP874ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "cp874.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsCP874ToUnicode.h b/intl/uconv/ucvlatin/nsCP874ToUnicode.h
new file mode 100644
index 000000000..47c6848e0
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsCP874ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsCP874ToUnicode_h___
+#define nsCP874ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from CP874 to Unicode.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsCP874ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsCP874ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsISO885910ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO885910ToUnicode.cpp
new file mode 100644
index 000000000..b9c39e5be
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO885910ToUnicode.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsISO885910ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO885910ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "8859-10.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsISO885910ToUnicode.h b/intl/uconv/ucvlatin/nsISO885910ToUnicode.h
new file mode 100644
index 000000000..0670ac544
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO885910ToUnicode.h
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO885910ToUnicode_h___
+#define nsISO885910ToUnicode_h___
+
+#include "nsISupports.h"
+
+//----------------------------------------------------------------------
+// Class nsISO885910ToUnicode [declaration]
+
+/**
+ * A character set converter from ISO885910 to Unicode.
+ *
+ * @created 23/Nov/1998
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsISO885910ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO885910ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsISO885913ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO885913ToUnicode.cpp
new file mode 100644
index 000000000..bbe713889
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO885913ToUnicode.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsISO885913ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO885913ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "8859-13.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsISO885913ToUnicode.h b/intl/uconv/ucvlatin/nsISO885913ToUnicode.h
new file mode 100644
index 000000000..3a8a8a069
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO885913ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO885913ToUnicode_h___
+#define nsISO885913ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from ISO885913 to Unicode.
+ *
+ * @created 05/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsISO885913ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO885913ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsISO885914ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO885914ToUnicode.cpp
new file mode 100644
index 000000000..92820f853
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO885914ToUnicode.cpp
@@ -0,0 +1,22 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsISO885914ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO885914ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "8859-14.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsISO885914ToUnicode.h b/intl/uconv/ucvlatin/nsISO885914ToUnicode.h
new file mode 100644
index 000000000..d95f3b133
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO885914ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO885914ToUnicode_h___
+#define nsISO885914ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from ISO885914 to Unicode.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsISO885914ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO885914ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsISO885915ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO885915ToUnicode.cpp
new file mode 100644
index 000000000..166553df8
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO885915ToUnicode.cpp
@@ -0,0 +1,22 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsISO885915ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO885915ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "8859-15.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsISO885915ToUnicode.h b/intl/uconv/ucvlatin/nsISO885915ToUnicode.h
new file mode 100644
index 000000000..a4eeeb156
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO885915ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO885915ToUnicode_h___
+#define nsISO885915ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from ISO885915 to Unicode.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsISO885915ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO885915ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsISO885916ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO885916ToUnicode.cpp
new file mode 100644
index 000000000..3bfd39869
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO885916ToUnicode.cpp
@@ -0,0 +1,22 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsISO885916ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO885916ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "8859-16.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsISO885916ToUnicode.h b/intl/uconv/ucvlatin/nsISO885916ToUnicode.h
new file mode 100644
index 000000000..0c6fabee6
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO885916ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO885916ToUnicode_h___
+#define nsISO885916ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from ISO885916 to Unicode.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsISO885916ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO885916ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsISO88592ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO88592ToUnicode.cpp
new file mode 100644
index 000000000..c6575920d
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88592ToUnicode.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsISO88592ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO88592ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "8859-2.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsISO88592ToUnicode.h b/intl/uconv/ucvlatin/nsISO88592ToUnicode.h
new file mode 100644
index 000000000..ec93a1bbb
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88592ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO88592ToUnicode_h___
+#define nsISO88592ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from ISO88592 to Unicode.
+ *
+ * @created 05/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsISO88592ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO88592ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsISO88593ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO88593ToUnicode.cpp
new file mode 100644
index 000000000..fec72cf48
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88593ToUnicode.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsISO88593ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO88593ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "8859-3.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsISO88593ToUnicode.h b/intl/uconv/ucvlatin/nsISO88593ToUnicode.h
new file mode 100644
index 000000000..99e5f1b4a
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88593ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO88593ToUnicode_h___
+#define nsISO88593ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from ISO88593 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsISO88593ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO88593ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsISO88594ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO88594ToUnicode.cpp
new file mode 100644
index 000000000..85351156e
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88594ToUnicode.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsISO88594ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO88594ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "8859-4.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
+
diff --git a/intl/uconv/ucvlatin/nsISO88594ToUnicode.h b/intl/uconv/ucvlatin/nsISO88594ToUnicode.h
new file mode 100644
index 000000000..04626428e
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88594ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO88594ToUnicode_h___
+#define nsISO88594ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from ISO88594 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsISO88594ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO88594ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsISO88595ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO88595ToUnicode.cpp
new file mode 100644
index 000000000..23395aa4e
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88595ToUnicode.cpp
@@ -0,0 +1,27 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsISO88595ToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO88595ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "8859-5.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_ISO_8859_5, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsISO88595ToUnicode.h b/intl/uconv/ucvlatin/nsISO88595ToUnicode.h
new file mode 100644
index 000000000..a1248d987
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88595ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO88595ToUnicode_h___
+#define nsISO88595ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from ISO88595 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsISO88595ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO88595ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsISO88596ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO88596ToUnicode.cpp
new file mode 100644
index 000000000..6a5fe7159
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88596ToUnicode.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsISO88596ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO88596ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "8859-6.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsISO88596ToUnicode.h b/intl/uconv/ucvlatin/nsISO88596ToUnicode.h
new file mode 100644
index 000000000..6a004d4a0
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88596ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO88596ToUnicode_h___
+#define nsISO88596ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from ISO88596 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsISO88596ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO88596ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsISO88597ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO88597ToUnicode.cpp
new file mode 100644
index 000000000..d0de74b91
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88597ToUnicode.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsISO88597ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO88597ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "8859-7.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsISO88597ToUnicode.h b/intl/uconv/ucvlatin/nsISO88597ToUnicode.h
new file mode 100644
index 000000000..80b6ab7c7
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88597ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO88597ToUnicode_h___
+#define nsISO88597ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from ISO-8859-7 to Unicode.
+ *
+ * @created 23/Mar/1998
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsISO88597ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO88597ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsISO88598IToUnicode.cpp b/intl/uconv/ucvlatin/nsISO88598IToUnicode.cpp
new file mode 100644
index 000000000..b84e2300a
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88598IToUnicode.cpp
@@ -0,0 +1,18 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsISO88598ToUnicode.h"
+#include "nsISO88598IToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO88598IToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ return nsISO88598ToUnicodeConstructor(aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsISO88598IToUnicode.h b/intl/uconv/ucvlatin/nsISO88598IToUnicode.h
new file mode 100644
index 000000000..176de684f
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88598IToUnicode.h
@@ -0,0 +1,22 @@
+/*-*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO88598IToUnicode_h___
+#define nsISO88598IToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from ISO88598 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsISO88598IToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO88598IToUnicode_h___ */
+
diff --git a/intl/uconv/ucvlatin/nsISO88598ToUnicode.cpp b/intl/uconv/ucvlatin/nsISO88598ToUnicode.cpp
new file mode 100644
index 000000000..01edc2f82
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88598ToUnicode.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsISO88598ToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsISO88598ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "8859-8.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsISO88598ToUnicode.h b/intl/uconv/ucvlatin/nsISO88598ToUnicode.h
new file mode 100644
index 000000000..488c23870
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsISO88598ToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsISO88598ToUnicode_h___
+#define nsISO88598ToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from ISO88598 to Unicode.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsISO88598ToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsISO88598ToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsKOI8RToUnicode.cpp b/intl/uconv/ucvlatin/nsKOI8RToUnicode.cpp
new file mode 100644
index 000000000..35f77ba41
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsKOI8RToUnicode.cpp
@@ -0,0 +1,27 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsKOI8RToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsKOI8RToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "koi8r.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_KOI8R, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsKOI8RToUnicode.h b/intl/uconv/ucvlatin/nsKOI8RToUnicode.h
new file mode 100644
index 000000000..f535d8a74
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsKOI8RToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsKOI8RToUnicode_h___
+#define nsKOI8RToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from KOI8R to Unicode.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsKOI8RToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsKOI8RToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsKOI8UToUnicode.cpp b/intl/uconv/ucvlatin/nsKOI8UToUnicode.cpp
new file mode 100644
index 000000000..c5d588ad6
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsKOI8UToUnicode.cpp
@@ -0,0 +1,26 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsKOI8UToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsKOI8UToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "koi8u.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_KOI8U, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsKOI8UToUnicode.h b/intl/uconv/ucvlatin/nsKOI8UToUnicode.h
new file mode 100644
index 000000000..96cbd5a09
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsKOI8UToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsKOI8UToUnicode_h___
+#define nsKOI8UToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from KOI8U to Unicode.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsKOI8UToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsKOI8UToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacArabicToUnicode.cpp b/intl/uconv/ucvlatin/nsMacArabicToUnicode.cpp
new file mode 100644
index 000000000..1a9950df7
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacArabicToUnicode.cpp
@@ -0,0 +1,26 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacArabicToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacArabicToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "macarabic.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACARABIC, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsMacArabicToUnicode.h b/intl/uconv/ucvlatin/nsMacArabicToUnicode.h
new file mode 100644
index 000000000..04b3a7ac2
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacArabicToUnicode.h
@@ -0,0 +1,18 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacArabicToUnicode_h___
+#define nsMacArabicToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacArabic to Unicode.
+ */
+nsresult
+nsMacArabicToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacArabicToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacCEToUnicode.cpp b/intl/uconv/ucvlatin/nsMacCEToUnicode.cpp
new file mode 100644
index 000000000..458d0f53c
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacCEToUnicode.cpp
@@ -0,0 +1,27 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacCEToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacCEToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_MacCEMappingTable[] = {
+#include "macce.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACCE, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_MacCEMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsMacCEToUnicode.h b/intl/uconv/ucvlatin/nsMacCEToUnicode.h
new file mode 100644
index 000000000..31a440cb1
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacCEToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacCEToUnicode_h___
+#define nsMacCEToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacCE to Unicode.
+ *
+ * @created 05/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsMacCEToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacCEToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacCroatianToUnicode.cpp b/intl/uconv/ucvlatin/nsMacCroatianToUnicode.cpp
new file mode 100644
index 000000000..9799ac9ad
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacCroatianToUnicode.cpp
@@ -0,0 +1,27 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacCroatianToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacCroatianToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "maccroat.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACCROATIAN, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsMacCroatianToUnicode.h b/intl/uconv/ucvlatin/nsMacCroatianToUnicode.h
new file mode 100644
index 000000000..0815d0d08
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacCroatianToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacCroatianToUnicode_h___
+#define nsMacCroatianToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacCroatian to Unicode.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsMacCroatianToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacCroatianToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacCyrillicToUnicode.cpp b/intl/uconv/ucvlatin/nsMacCyrillicToUnicode.cpp
new file mode 100644
index 000000000..edbf604fd
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacCyrillicToUnicode.cpp
@@ -0,0 +1,27 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacCyrillicToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacCyrillicToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "maccyril.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACCYRILLIC, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsMacCyrillicToUnicode.h b/intl/uconv/ucvlatin/nsMacCyrillicToUnicode.h
new file mode 100644
index 000000000..4fabe82cf
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacCyrillicToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacCyrillicToUnicode_h___
+#define nsMacCyrillicToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacCyrillic to Unicode.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsMacCyrillicToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacCyrillicToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacDevanagariToUnicode.cpp b/intl/uconv/ucvlatin/nsMacDevanagariToUnicode.cpp
new file mode 100644
index 000000000..3c1cae733
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacDevanagariToUnicode.cpp
@@ -0,0 +1,26 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacDevanagariToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacDevanagariToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "macdevanaga.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACDEVANAGARI, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsMacDevanagariToUnicode.h b/intl/uconv/ucvlatin/nsMacDevanagariToUnicode.h
new file mode 100644
index 000000000..ebbbf46b3
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacDevanagariToUnicode.h
@@ -0,0 +1,18 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacDevanagariToUnicode_h___
+#define nsMacDevanagariToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacDevanagari to Unicode.
+ */
+nsresult
+nsMacDevanagariToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacDevanagariToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacFarsiToUnicode.cpp b/intl/uconv/ucvlatin/nsMacFarsiToUnicode.cpp
new file mode 100644
index 000000000..1e7e291ba
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacFarsiToUnicode.cpp
@@ -0,0 +1,26 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacFarsiToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacFarsiToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "macfarsi.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACFARSI, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsMacFarsiToUnicode.h b/intl/uconv/ucvlatin/nsMacFarsiToUnicode.h
new file mode 100644
index 000000000..0c52a2616
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacFarsiToUnicode.h
@@ -0,0 +1,18 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacFarsiToUnicode_h___
+#define nsMacFarsiToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacFarsi to Unicode.
+ */
+nsresult
+nsMacFarsiToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacFarsiToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacGreekToUnicode.cpp b/intl/uconv/ucvlatin/nsMacGreekToUnicode.cpp
new file mode 100644
index 000000000..3f90811d3
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacGreekToUnicode.cpp
@@ -0,0 +1,27 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacGreekToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacGreekToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_MacGreekMappingTable[] = {
+#include "macgreek.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACGREEK, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_MacGreekMappingTable,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsMacGreekToUnicode.h b/intl/uconv/ucvlatin/nsMacGreekToUnicode.h
new file mode 100644
index 000000000..82e823a2d
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacGreekToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacGreekToUnicode_h___
+#define nsMacGreekToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacGreek to Unicode.
+ *
+ * @created 05/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsMacGreekToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacGreekToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacGujaratiToUnicode.cpp b/intl/uconv/ucvlatin/nsMacGujaratiToUnicode.cpp
new file mode 100644
index 000000000..21b3020f5
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacGujaratiToUnicode.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacGujaratiToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacGujaratiToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "macgujarati.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACGUJARATI, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsMacGujaratiToUnicode.h b/intl/uconv/ucvlatin/nsMacGujaratiToUnicode.h
new file mode 100644
index 000000000..64a8bfcd3
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacGujaratiToUnicode.h
@@ -0,0 +1,18 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacGujaratiToUnicode_h___
+#define nsMacGujaratiToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacGujarati to Unicode.
+ */
+nsresult
+nsMacGujaratiToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacGujaratiToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.cpp b/intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.cpp
new file mode 100644
index 000000000..d6b3a88d6
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.cpp
@@ -0,0 +1,26 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacGurmukhiToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacGurmukhiToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "macgurmukhi.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACGURMUKHI, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.h b/intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.h
new file mode 100644
index 000000000..51d9918a5
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacGurmukhiToUnicode.h
@@ -0,0 +1,18 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacGurmukhiToUnicode_h___
+#define nsMacGurmukhiToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacGurmukhi to Unicode.
+ */
+nsresult
+nsMacGurmukhiToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacGurmukhiToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacHebrewToUnicode.cpp b/intl/uconv/ucvlatin/nsMacHebrewToUnicode.cpp
new file mode 100644
index 000000000..f19d82c09
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacHebrewToUnicode.cpp
@@ -0,0 +1,26 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacHebrewToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacHebrewToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "machebrew.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACHEBREW, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsMacHebrewToUnicode.h b/intl/uconv/ucvlatin/nsMacHebrewToUnicode.h
new file mode 100644
index 000000000..f356cf561
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacHebrewToUnicode.h
@@ -0,0 +1,18 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacHebrewToUnicode_h___
+#define nsMacHebrewToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacHebrew to Unicode.
+ */
+nsresult
+nsMacHebrewToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacHebrewToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacIcelandicToUnicode.cpp b/intl/uconv/ucvlatin/nsMacIcelandicToUnicode.cpp
new file mode 100644
index 000000000..00cff7509
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacIcelandicToUnicode.cpp
@@ -0,0 +1,26 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacIcelandicToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacIcelandicToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "macicela.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACICELANDIC, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsMacIcelandicToUnicode.h b/intl/uconv/ucvlatin/nsMacIcelandicToUnicode.h
new file mode 100644
index 000000000..b7ec509bd
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacIcelandicToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacIcelandicToUnicode_h___
+#define nsMacIcelandicToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacIcelandic to Unicode.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsMacIcelandicToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacIcelandicToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacRomanianToUnicode.cpp b/intl/uconv/ucvlatin/nsMacRomanianToUnicode.cpp
new file mode 100644
index 000000000..96c24dea3
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacRomanianToUnicode.cpp
@@ -0,0 +1,26 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacRomanianToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacRomanianToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "macro.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACROMANIAN, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsMacRomanianToUnicode.h b/intl/uconv/ucvlatin/nsMacRomanianToUnicode.h
new file mode 100644
index 000000000..b3cd07405
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacRomanianToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacRomanianToUnicode_h___
+#define nsMacRomanianToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacRomanian to Unicode.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsMacRomanianToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacRomanianToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsMacTurkishToUnicode.cpp b/intl/uconv/ucvlatin/nsMacTurkishToUnicode.cpp
new file mode 100644
index 000000000..86d2d1ae7
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacTurkishToUnicode.cpp
@@ -0,0 +1,26 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsMacTurkishToUnicode.h"
+#include "mozilla/Telemetry.h"
+
+using namespace mozilla;
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsMacTurkishToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_MacTurkishMappingTable[] = {
+#include "macturki.ut"
+ };
+
+ Telemetry::Accumulate(Telemetry::DECODER_INSTANTIATED_MACTURKISH, true);
+ return CreateOneByteDecoder((uMappingTable*) &g_MacTurkishMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsMacTurkishToUnicode.h b/intl/uconv/ucvlatin/nsMacTurkishToUnicode.h
new file mode 100644
index 000000000..9f2cff7f4
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsMacTurkishToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsMacTurkishToUnicode_h___
+#define nsMacTurkishToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from MacTurkish to Unicode.
+ *
+ * @created 05/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsMacTurkishToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsMacTurkishToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/nsUCvLatinCID.h b/intl/uconv/ucvlatin/nsUCvLatinCID.h
new file mode 100644
index 000000000..4c000ef51
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUCvLatinCID.h
@@ -0,0 +1,534 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUCvLatinCID_h___
+#define nsUCvLatinCID_h___
+
+#include "nsISupports.h"
+
+// Class ID for our ISO88592ToUnicode charset converter
+// {7C657D11-EC5E-11d2-8AAC-00600811A836}
+#define NS_ISO88592TOUNICODE_CID \
+ { 0x7c657d11, 0xec5e, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our ISO88593ToUnicode charset converter
+// {660D8CA0-F763-11d2-8AAD-00600811A836}
+#define NS_ISO88593TOUNICODE_CID \
+ { 0x660d8ca0, 0xf763, 0x11d2, {0x8a, 0xad, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our ISO88594ToUnicode charset converter
+// {660D8CA1-F763-11d2-8AAD-00600811A836}
+#define NS_ISO88594TOUNICODE_CID \
+ { 0x660d8ca1, 0xf763, 0x11d2, {0x8a, 0xad, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our ISO88595ToUnicode charset converter
+// {660D8CA2-F763-11d2-8AAD-00600811A836}
+#define NS_ISO88595TOUNICODE_CID \
+ { 0x660d8ca2, 0xf763, 0x11d2, {0x8a, 0xad, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our ISO88596ToUnicode charset converter
+// {660D8CA3-F763-11d2-8AAD-00600811A836}
+#define NS_ISO88596TOUNICODE_CID \
+ { 0x660d8ca3, 0xf763, 0x11d2, {0x8a, 0xad, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our ISO88596IToUnicode charset converter
+// {495ECA44-0A5C-11d4-A135-005004832142}
+#define NS_ISO88596ITOUNICODE_CID \
+ { 0x495eca44, 0xa5c, 0x11d4, {0xa1, 0x35, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42}}
+
+// Class ID for our ISO88596EToUnicode charset converter
+// {495ECA45-0A5C-11d4-A135-005004832142}
+#define NS_ISO88596ETOUNICODE_CID \
+ { 0x495eca45, 0xa5c, 0x11d4, {0xa1, 0x35, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42}}
+
+// Class ID for our ISO88597ToUnicode charset converter
+// {AF7A9951-AA48-11d2-B3AE-00805F8A6670}
+#define NS_ISO88597TOUNICODE_CID \
+ { 0xaf7a9951, 0xaa48, 0x11d2, {0xb3, 0xae, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our ISO88598ToUnicode charset converter
+// {660D8CA4-F763-11d2-8AAD-00600811A836}
+#define NS_ISO88598TOUNICODE_CID \
+ { 0x660d8ca4, 0xf763, 0x11d2, {0x8a, 0xad, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our ISO88598EToUnicode charset converter
+// {495ECA42-0A5C-11d4-A135-005004832142}
+#define NS_ISO88598ETOUNICODE_CID \
+ { 0x495eca42, 0xa5c, 0x11d4, {0xa1, 0x35, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42}}
+
+// Class ID for our ISO88598IToUnicode charset converter
+// {495ECA43-0A5C-11d4-A135-005004832142}
+#define NS_ISO88598ITOUNICODE_CID \
+ { 0x495eca43, 0xa5c, 0x11d4, {0xa1, 0x35, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42}}
+
+// Class ID for our ISO88599ToUnicode charset converter
+// {7C657D13-EC5E-11d2-8AAC-00600811A836}
+#define NS_ISO88599TOUNICODE_CID \
+ { 0x7c657d13, 0xec5e, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our ISO885914ToUnicode charset converter
+// {6394EEA1-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_ISO885914TOUNICODE_CID \
+ { 0x6394eea1, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our ISO885915ToUnicode charset converter
+// {6394EEA2-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_ISO885915TOUNICODE_CID \
+ { 0x6394eea2, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our ISO885916ToUnicode charset converter
+// {A0F827E1-8AB6-11d5-A14B-005004832142}
+#define NS_ISO885916TOUNICODE_CID \
+ { 0xa0f827e1, 0x8ab6, 0x11d5, { 0xa1, 0x4b, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42}}
+
+
+// Class ID for our CP1250ToUnicode charset converter
+// {7C657D14-EC5E-11d2-8AAC-00600811A836}
+#define NS_CP1250TOUNICODE_CID \
+ { 0x7c657d14, 0xec5e, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our CP1251ToUnicode charset converter
+// {A578E0A1-F76B-11d2-8AAD-00600811A836}
+#define NS_CP1251TOUNICODE_CID \
+ { 0xa578e0a1, 0xf76b, 0x11d2, {0x8a, 0xad, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our CP1253ToUnicode charset converter
+// {AF7A9952-AA48-11d2-B3AE-00805F8A6670}
+#define NS_CP1253TOUNICODE_CID \
+ { 0xaf7a9952, 0xaa48, 0x11d2, {0xb3, 0xae, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our CP1254ToUnicode charset converter
+// {7C657D17-EC5E-11d2-8AAC-00600811A836}
+#define NS_CP1254TOUNICODE_CID \
+ { 0x7c657d17, 0xec5e, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our CP1257ToUnicode charset converter
+// {A578E0A2-F76B-11d2-8AAD-00600811A836}
+#define NS_CP1257TOUNICODE_CID \
+ { 0xa578e0a2, 0xf76b, 0x11d2, {0x8a, 0xad, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our CP1258ToUnicode charset converter
+// {6394EEA3-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_CP1258TOUNICODE_CID \
+ { 0x6394eea3, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our CP874ToUnicode charset converter
+// {6394EEA4-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_CP874TOUNICODE_CID \
+ { 0x6394eea4, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our TIS620ToUnicode charset converter
+// {66634f68-be19-42d0-a4ca-d1c21fa059b8}
+#define NS_TIS620TOUNICODE_CID \
+ { 0x66634f68, 0xbe19, 0x42d0, {0xa4, 0xca, 0xd1, 0xc2, 0x1f, 0xa0, 0x59, 0xb8}}
+
+// Class ID for our KOI8RToUnicode charset converter
+// {6394EEA5-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_KOI8RTOUNICODE_CID \
+ { 0x6394eea5, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our KOI8UToUnicode charset converter
+// {6394EEA6-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_KOI8UTOUNICODE_CID \
+ { 0x6394eea6, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our MacCEToUnicode charset converter
+// {7B8556A2-EC79-11d2-8AAC-00600811A836}
+#define NS_MACCETOUNICODE_CID \
+ { 0x7b8556a2, 0xec79, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our MacGreekToUnicode charset converter
+// {7B8556A3-EC79-11d2-8AAC-00600811A836}
+#define NS_MACGREEKTOUNICODE_CID \
+ { 0x7b8556a3, 0xec79, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our MacTurkishToUnicode charset converter
+// {7B8556A4-EC79-11d2-8AAC-00600811A836}
+#define NS_MACTURKISHTOUNICODE_CID \
+ { 0x7b8556a4, 0xec79, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our MacCroatianToUnicode charset converter
+// {6394EEA7-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_MACCROATIANTOUNICODE_CID \
+ { 0x6394eea7, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our MacRomanianToUnicode charset converter
+// {6394EEA8-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_MACROMANIANTOUNICODE_CID \
+ { 0x6394eea8, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our MacCyrillicToUnicode charset converter
+// {6394EEA9-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_MACCYRILLICTOUNICODE_CID \
+ { 0x6394eea9, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our MacIcelandicToUnicode charset converter
+// {6394EEAB-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_MACICELANDICTOUNICODE_CID \
+ { 0x6394eeab, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our ARMSCII8ToUnicode charset converter
+// {6394EEAC-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_ARMSCII8TOUNICODE_CID \
+ { 0x6394eeac, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our TCVN5712ToUnicode charset converter
+// {6394EEAD-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_TCVN5712TOUNICODE_CID \
+ { 0x6394eead, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our VISCIIToUnicode charset converter
+// {6394EEAE-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_VISCIITOUNICODE_CID \
+ { 0x6394eeae, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our VPSToUnicode charset converter
+// {6394EEB0-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_VPSTOUNICODE_CID \
+ { 0x6394eeb0, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToISO88592 charset converter
+// {7B8556A6-EC79-11d2-8AAC-00600811A836}
+#define NS_UNICODETOISO88592_CID \
+ { 0x7b8556a6, 0xec79, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToISO88593 charset converter
+// {660D8CA5-F763-11d2-8AAD-00600811A836}
+#define NS_UNICODETOISO88593_CID \
+ { 0x660d8ca5, 0xf763, 0x11d2, {0x8a, 0xad, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToISO88594 charset converter
+// {660D8CA6-F763-11d2-8AAD-00600811A836}
+#define NS_UNICODETOISO88594_CID \
+ { 0x660d8ca6, 0xf763, 0x11d2, {0x8a, 0xad, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToISO88595 charset converter
+// {660D8CA7-F763-11d2-8AAD-00600811A836}
+#define NS_UNICODETOISO88595_CID \
+ { 0x660d8ca7, 0xf763, 0x11d2, {0x8a, 0xad, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToISO88596 charset converter
+// {660D8CA8-F763-11d2-8AAD-00600811A836}
+#define NS_UNICODETOISO88596_CID \
+ { 0x660d8ca8, 0xf763, 0x11d2, {0x8a, 0xad, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToISO88596I charset converter
+// {495ECA46-0A5C-11d4-A135-005004832142}
+#define NS_UNICODETOISO88596I_CID \
+ { 0x495eca46, 0xa5c, 0x11d4, {0xa1, 0x35, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42}}
+
+// Class ID for our UnicodeToISO88596E charset converter
+// {495ECA47-0A5C-11d4-A135-005004832142}
+#define NS_UNICODETOISO88596E_CID \
+ { 0x495eca47, 0xa5c, 0x11d4, {0xa1, 0x35, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42}}
+
+// Class ID for our UnicodeToISO88597 charset converter
+// {7B8556A8-EC79-11d2-8AAC-00600811A836}
+#define NS_UNICODETOISO88597_CID \
+ { 0x7b8556a8, 0xec79, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToISO88598 charset converter
+// {660D8CA9-F763-11d2-8AAD-00600811A836}
+#define NS_UNICODETOISO88598_CID \
+ { 0x660d8ca9, 0xf763, 0x11d2, {0x8a, 0xad, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToISO88598I charset converter
+// {495ECA48-0A5C-11d4-A135-005004832142}
+#define NS_UNICODETOISO88598I_CID \
+ { 0x495eca48, 0xa5c, 0x11d4, {0xa1, 0x35, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42}}
+
+// Class ID for our UnicodeToISO88598E charset converter
+// {495ECA49-0A5C-11d4-A135-005004832142}
+#define NS_UNICODETOISO88598E_CID \
+ { 0x495eca49, 0xa5c, 0x11d4, {0xa1, 0x35, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42}}
+
+// Class ID for our UnicodeToISO88599 charset converter
+// {7B8556A9-EC79-11d2-8AAC-00600811A836}
+#define NS_UNICODETOISO88599_CID \
+ { 0x7b8556a9, 0xec79, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToISO885914 charset converter
+// {6394EEB1-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOISO885914_CID \
+ { 0x6394eeb1, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToISO885915 charset converter
+// {6394EEB2-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOISO885915_CID \
+ { 0x6394eeb2, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToISO885916 charset converter
+// {A0F827E2-8AB6-11d5-A14B-005004832142}
+#define NS_UNICODETOISO885916_CID \
+ { 0xa0f827e2, 0x8ab6, 0x11d5, { 0xa1, 0x4b, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42}}
+
+
+// Class ID for our UnicodeToCP1250 charset converter
+// {7B8556AA-EC79-11d2-8AAC-00600811A836}
+#define NS_UNICODETOCP1250_CID \
+ { 0x7b8556aa, 0xec79, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToCP1251 charset converter
+// {A578E0A3-F76B-11d2-8AAD-00600811A836}
+#define NS_UNICODETOCP1251_CID \
+ { 0xa578e0a3, 0xf76b, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToCP1253 charset converter
+// {7B8556AD-EC79-11d2-8AAC-00600811A836}
+#define NS_UNICODETOCP1253_CID \
+ { 0x7b8556ad, 0xec79, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToCP1254 charset converter
+// {7B8556AE-EC79-11d2-8AAC-00600811A836}
+#define NS_UNICODETOCP1254_CID \
+ { 0x7b8556ae, 0xec79, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToCP1257 charset converter
+// {A578E0A4-F76B-11d2-8AAD-00600811A836}
+#define NS_UNICODETOCP1257_CID \
+ { 0xa578e0a4, 0xf76b, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToCP1258 charset converter
+// {6394EEB3-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOCP1258_CID \
+ { 0x6394eeb3, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToCP874 charset converter
+// {6394EEB4-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOCP874_CID \
+ { 0x6394eeb4, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToTIS620 charset converter
+// {c5de4da2-d667-42d2-b8c2-efdbcf3302ef}
+#define NS_UNICODETOTIS620_CID \
+ { 0xc5de4da2, 0xd667, 0x42d2, {0xb8, 0xc2, 0xef, 0xdb, 0xcf, 0x33, 0x02, 0xef}}
+
+// Class ID for our UnicodeToKOI8R charset converter
+// {6394EEB5-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOKOI8R_CID \
+ { 0x6394eeb5, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToKOI8U charset converter
+// {6394EEB6-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOKOI8U_CID \
+ { 0x6394eeb6, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToMacCE charset converter
+// {7B8556B0-EC79-11d2-8AAC-00600811A836}
+#define NS_UNICODETOMACCE_CID \
+ { 0x7b8556b0, 0xec79, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToMacGreek charset converter
+// {7B8556B1-EC79-11d2-8AAC-00600811A836}
+#define NS_UNICODETOMACGREEK_CID \
+ { 0x7b8556b1, 0xec79, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToMacTurkish charset converter
+// {7B8556B2-EC79-11d2-8AAC-00600811A836}
+#define NS_UNICODETOMACTURKISH_CID \
+ { 0x7b8556b2, 0xec79, 0x11d2, {0x8a, 0xac, 0x0, 0x60, 0x8, 0x11, 0xa8, 0x36}}
+
+// Class ID for our UnicodeToMacCroatian charset converter
+// {6394EEB7-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOMACCROATIAN_CID \
+ { 0x6394eeb7, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToMacRomanian charset converter
+// {6394EEB8-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOMACROMANIAN_CID \
+ { 0x6394eeb8, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToMacCyrillic charset converter
+// {6394EEB9-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOMACCYRILLIC_CID \
+ { 0x6394eeb9, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToMacIcelandic charset converter
+// {6394EEBB-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOMACICELANDIC_CID \
+ { 0x6394eebb, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToARMSCII8 charset converter
+// {6394EEBC-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOARMSCII8_CID \
+ { 0x6394eebc, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToTCVN5712 charset converter
+// {6394EEBD-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOTCVN5712_CID \
+ { 0x6394eebd, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToVISCII charset converter
+// {6394EEBF-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOVISCII_CID \
+ { 0x6394eebf, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToVPS charset converter
+// {6394EEC0-FC3D-11d2-B3B8-00805F8A6670}
+#define NS_UNICODETOVPS_CID \
+ { 0x6394eec0, 0xfc3d, 0x11d2, {0xb3, 0xb8, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our CP1255ToUnicode charset converter
+// {BA6151A1-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_CP1255TOUNICODE_CID \
+ { 0xba6151a1, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our CP1256ToUnicode charset converter
+// {BA6151A2-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_CP1256TOUNICODE_CID \
+ { 0xba6151a2, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToCP1255 charset converter
+// {BA6151A3-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_UNICODETOCP1255_CID \
+ { 0xba6151a3, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToCP1256 charset converter
+// {BA6151A4-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_UNICODETOCP1256_CID \
+ { 0xba6151a4, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our CP866ToUnicode charset converter
+// {BA6151A9-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_CP866TOUNICODE_CID \
+ { 0xba6151a9, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToCP866 charset converter
+// {BA6151AA-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_UNICODETOCP866_CID \
+ { 0xba6151aa, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToISO885910 charset converter
+// {BA6151AB-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_UNICODETOISO885910_CID \
+ { 0xba6151ab, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToISO885911 charset converter
+// {9c0ff6f4-deda-40e5-806c-b6cc449c21ce}
+#define NS_UNICODETOISO885911_CID \
+ { 0x9c0ff6f4, 0xdeda, 0x40e5, {0x80, 0x6c, 0xb6, 0xcc, 0x44, 0x9c, 0x21, 0xce}}
+
+// Class ID for our UnicodeToISO885913 charset converter
+// {BA6151AC-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_UNICODETOISO885913_CID \
+ { 0xba6151ac, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToUTF16BE charset converter
+// {BA6151AD-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_UNICODETOUTF16BE_CID \
+ { 0xba6151ad, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our ISO885910ToUnicode charset converter
+// {BA6151B0-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_ISO885910TOUNICODE_CID \
+ { 0xba6151b0, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our ISO885911ToUnicode charset converter
+// {776588a6-86d5-47e2-b6b3-992810078202}
+#define NS_ISO885911TOUNICODE_CID \
+ { 0x776588a6, 0x86d5, 0x47e2, {0xb6, 0xb3, 0x99, 0x28, 0x10, 0x07, 0x82, 0x02}}
+
+// Class ID for our ISO885913ToUnicode charset converter
+// {BA6151B1-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_ISO885913TOUNICODE_CID \
+ { 0xba6151b1, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UTF16BEToUnicode charset converter
+// {BA6151B2-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_UTF16BETOUNICODE_CID \
+ { 0xba6151b2, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToUTF16LE charset converter
+// {BA6151B5-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_UNICODETOUTF16LE_CID \
+ { 0xba6151b5, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UTF16ToUnicode charset converter
+// {d673255d-1184-400a-b0b5-ee9d1295bd85}
+#define NS_UTF16TOUNICODE_CID \
+ { 0xd673255d, 0x1184, 0x400a, {0xb0, 0xb5, 0xee,0x9d, 0x12, 0x95, 0xbd, 0x85}}
+
+// Class ID for our UTF16LEToUnicode charset converter
+// {BA6151B7-1DFA-11d3-B3BF-00805F8A6670}
+#define NS_UTF16LETOUNICODE_CID \
+ { 0xba6151b7, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our ISOIR111ToUnicode charset converter
+#define NS_ISOIR111TOUNICODE_CID \
+ { 0x9416bfb1, 0x1f93, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UserDefinedToUnicode charset converter
+#define NS_USERDEFINEDTOUNICODE_CID \
+ { 0x9416bfb2, 0x1f93, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToISOIR111 charset converter
+#define NS_UNICODETOISOIR111_CID \
+ { 0x9416bfb3, 0x1f93, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToUserDefined charset converter
+#define NS_UNICODETOUSERDEFINED_CID \
+ { 0x9416bfb4, 0x1f93, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our AsciiToUnicode charset converter
+#define NS_ASCIITOUNICODE_CID \
+ { 0xba6151b9, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// Class ID for our UnicodeToAscii charset converter
+#define NS_UNICODETOASCII_CID \
+ { 0xba6151ba, 0x1dfa, 0x11d3, {0xb3, 0xbf, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// {49B38F12-6193-11d3-B3C5-00805F8A6670}
+#define NS_UNICODETOUTF16_CID \
+ { 0x49b38f12, 0x6193, 0x11d3, {0xb3, 0xc5, 0x0, 0x80, 0x5f, 0x8a, 0x66, 0x70}}
+
+// {6803CAC4-1E3B-11d5-A145-005004832142}
+#define NS_MACDEVANAGARITOUNICODE_CID \
+ { 0x6803cac4, 0x1e3b, 0x11d5, { 0xa1, 0x45, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42 } }
+
+// {6803CAC5-1E3B-11d5-A145-005004832142}
+#define NS_UNICODETOMACDEVANAGARI_CID \
+ { 0x6803cac5, 0x1e3b, 0x11d5, { 0xa1, 0x45, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42 } }
+
+// {6803CAC6-1E3B-11d5-A145-005004832142}
+#define NS_MACARABICTOUNICODE_CID \
+ { 0x6803cac6, 0x1e3b, 0x11d5, { 0xa1, 0x45, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42 } }
+
+// {6803CAC7-1E3B-11d5-A145-005004832142}
+#define NS_UNICODETOMACARABIC_CID \
+ { 0x6803cac7, 0x1e3b, 0x11d5, { 0xa1, 0x45, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42 } }
+
+// {6803CAC8-1E3B-11d5-A145-005004832142}
+#define NS_MACFARSITOUNICODE_CID \
+ { 0x6803cac8, 0x1e3b, 0x11d5, { 0xa1, 0x45, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42 } }
+
+// {6803CAC9-1E3B-11d5-A145-005004832142}
+#define NS_UNICODETOMACFARSI_CID \
+ { 0x6803cac9, 0x1e3b, 0x11d5, { 0xa1, 0x45, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42 } }
+
+// {6803CACA-1E3B-11d5-A145-005004832142}
+#define NS_MACGUJARATITOUNICODE_CID \
+ { 0x6803caca, 0x1e3b, 0x11d5, { 0xa1, 0x45, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42 } }
+
+// {6803CACB-1E3B-11d5-A145-005004832142}
+#define NS_UNICODETOMACGUJARATI_CID \
+ { 0x6803cacb, 0x1e3b, 0x11d5, { 0xa1, 0x45, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42 } }
+
+// {6803CACC-1E3B-11d5-A145-005004832142}
+#define NS_MACHEBREWTOUNICODE_CID \
+ { 0x6803cacc, 0x1e3b, 0x11d5, { 0xa1, 0x45, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42 } }
+
+// {6803CACD-1E3B-11d5-A145-005004832142}
+#define NS_UNICODETOMACHEBREW_CID \
+ { 0x6803cacd, 0x1e3b, 0x11d5, { 0xa1, 0x45, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42 } }
+
+// {6803CACE-1E3B-11d5-A145-005004832142}
+#define NS_MACGURMUKHITOUNICODE_CID \
+ { 0x6803cace, 0x1e3b, 0x11d5, { 0xa1, 0x45, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42 } }
+
+// {6803CACF-1E3B-11d5-A145-005004832142}
+#define NS_UNICODETOMACGURMUKHI_CID \
+ { 0x6803cacf, 0x1e3b, 0x11d5, { 0xa1, 0x45, 0x0, 0x50, 0x4, 0x83, 0x21, 0x42 } }
+
+#endif /* nsUCvLatinCID_h___ */
diff --git a/intl/uconv/ucvlatin/nsUTF16ToUnicode.cpp b/intl/uconv/ucvlatin/nsUTF16ToUnicode.cpp
new file mode 100644
index 000000000..56c88ff3e
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUTF16ToUnicode.cpp
@@ -0,0 +1,361 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUTF16ToUnicode.h"
+#include "nsCharTraits.h"
+#include "mozilla/CheckedInt.h"
+#include "mozilla/EndianUtils.h"
+
+enum {
+ STATE_NORMAL = 0,
+ STATE_HALF_CODE_POINT = 1,
+ STATE_FIRST_CALL = 2,
+ STATE_SECOND_BYTE = STATE_FIRST_CALL | STATE_HALF_CODE_POINT,
+ STATE_ODD_SURROGATE_PAIR = 4
+};
+
+nsresult
+nsUTF16ToUnicodeBase::UTF16ConvertToUnicode(const char * aSrc,
+ int32_t * aSrcLength,
+ char16_t * aDest,
+ int32_t * aDestLength,
+ bool aSwapBytes)
+{
+ const char* src = aSrc;
+ const char* srcEnd = aSrc + *aSrcLength;
+ char16_t* dest = aDest;
+ char16_t* destEnd = aDest + *aDestLength;
+ char16_t oddHighSurrogate;
+
+ switch(mState) {
+ case STATE_FIRST_CALL:
+ NS_ASSERTION(*aSrcLength > 1, "buffer too short");
+ src+=2;
+ mState = STATE_NORMAL;
+ break;
+
+ case STATE_SECOND_BYTE:
+ NS_ASSERTION(*aSrcLength > 0, "buffer too short");
+ src++;
+ mState = STATE_NORMAL;
+ break;
+
+ case STATE_ODD_SURROGATE_PAIR:
+ if (*aDestLength < 2)
+ goto error;
+ else {
+ *dest++ = mOddHighSurrogate;
+ *dest++ = mOddLowSurrogate;
+ mOddHighSurrogate = mOddLowSurrogate = 0;
+ mState = STATE_NORMAL;
+ }
+ break;
+
+ case STATE_NORMAL:
+ case STATE_HALF_CODE_POINT:
+ default:
+ break;
+ }
+
+ oddHighSurrogate = mOddHighSurrogate;
+
+ if (src == srcEnd) {
+ *aDestLength = dest - aDest;
+ return (mState != STATE_NORMAL || oddHighSurrogate) ?
+ NS_OK_UDEC_MOREINPUT : NS_OK;
+ }
+
+ const char* srcEvenEnd;
+
+ char16_t u;
+ if (mState == STATE_HALF_CODE_POINT) {
+ if (dest == destEnd)
+ goto error;
+
+ // the 1st byte of a 16-bit code unit was stored in |mOddByte| in the
+ // previous run while the 2nd byte has to come from |*src|.
+ mState = STATE_NORMAL;
+#if MOZ_BIG_ENDIAN
+ u = (mOddByte << 8) | uint8_t(*src++); // safe, we know we have at least one byte.
+#else
+ u = (*src++ << 8) | mOddByte; // safe, we know we have at least one byte.
+#endif
+ srcEvenEnd = src + ((srcEnd - src) & ~1); // handle even number of bytes in main loop
+ goto have_codepoint;
+ } else {
+ srcEvenEnd = src + ((srcEnd - src) & ~1); // handle even number of bytes in main loop
+ }
+
+ while (src != srcEvenEnd) {
+ if (dest == destEnd)
+ goto error;
+
+#if !defined(__sparc__) && !defined(__arm__)
+ u = *(const char16_t*)src;
+#else
+ memcpy(&u, src, 2);
+#endif
+ src += 2;
+
+have_codepoint:
+ if (aSwapBytes)
+ u = u << 8 | u >> 8;
+
+ if (!IS_SURROGATE(u)) {
+ if (oddHighSurrogate) {
+ if (mErrBehavior == kOnError_Signal) {
+ goto error2;
+ }
+ *dest++ = UCS2_REPLACEMENT_CHAR;
+ if (dest == destEnd)
+ goto error;
+ oddHighSurrogate = 0;
+ }
+ *dest++ = u;
+ } else if (NS_IS_HIGH_SURROGATE(u)) {
+ if (oddHighSurrogate) {
+ if (mErrBehavior == kOnError_Signal) {
+ goto error2;
+ }
+ *dest++ = UCS2_REPLACEMENT_CHAR;
+ if (dest == destEnd)
+ goto error;
+ }
+ oddHighSurrogate = u;
+ }
+ else /* if (NS_IS_LOW_SURROGATE(u)) */ {
+ if (oddHighSurrogate && *aDestLength > 1) {
+ if (dest + 1 >= destEnd) {
+ mOddLowSurrogate = u;
+ mOddHighSurrogate = oddHighSurrogate;
+ mState = STATE_ODD_SURROGATE_PAIR;
+ goto error;
+ }
+ *dest++ = oddHighSurrogate;
+ *dest++ = u;
+ } else {
+ if (mErrBehavior == kOnError_Signal) {
+ goto error2;
+ }
+ *dest++ = UCS2_REPLACEMENT_CHAR;
+ }
+ oddHighSurrogate = 0;
+ }
+ }
+ if (src != srcEnd) {
+ // store the lead byte of a 16-bit unit for the next run.
+ mOddByte = *src++;
+ mState = STATE_HALF_CODE_POINT;
+ }
+
+ mOddHighSurrogate = oddHighSurrogate;
+
+ *aDestLength = dest - aDest;
+ *aSrcLength = src - aSrc;
+ return (mState != STATE_NORMAL || oddHighSurrogate) ?
+ NS_OK_UDEC_MOREINPUT : NS_OK;
+
+error:
+ *aDestLength = dest - aDest;
+ *aSrcLength = src - aSrc;
+ return NS_OK_UDEC_MOREOUTPUT;
+
+error2:
+ *aDestLength = dest - aDest;
+ *aSrcLength = --src - aSrc;
+ return NS_ERROR_ILLEGAL_INPUT;
+}
+
+NS_IMETHODIMP
+nsUTF16ToUnicodeBase::Reset()
+{
+ mState = STATE_FIRST_CALL;
+ mOddByte = 0;
+ mOddHighSurrogate = 0;
+ mOddLowSurrogate = 0;
+ return NS_OK;
+}
+
+NS_IMETHODIMP
+nsUTF16ToUnicodeBase::GetMaxLength(const char * aSrc, int32_t aSrcLength,
+ int32_t * aDestLength)
+{
+ mozilla::CheckedInt32 length = aSrcLength;
+
+ if (STATE_HALF_CODE_POINT & mState) {
+ length += 1;
+ }
+
+ if (!length.isValid()) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
+
+ // the left-over data of the previous run have to be taken into account.
+ *aDestLength = length.value() / 2;
+ if (mOddHighSurrogate)
+ (*aDestLength)++;
+ if (mOddLowSurrogate)
+ (*aDestLength)++;
+ return NS_OK;
+}
+
+
+NS_IMETHODIMP
+nsUTF16BEToUnicode::Convert(const char * aSrc, int32_t * aSrcLength,
+ char16_t * aDest, int32_t * aDestLength)
+{
+ switch (mState) {
+ case STATE_FIRST_CALL:
+ if (*aSrcLength < 2) {
+ if (*aSrcLength < 1) {
+ *aDestLength = 0;
+ return NS_OK;
+ }
+ if (uint8_t(*aSrc) != 0xFE) {
+ mState = STATE_NORMAL;
+ break;
+ }
+ *aDestLength = 0;
+ mState = STATE_SECOND_BYTE;
+ return NS_OK_UDEC_MOREINPUT;
+ }
+#if MOZ_LITTLE_ENDIAN
+ // on LE machines, BE BOM is 0xFFFE
+ if (0xFFFE != *((char16_t*)aSrc)) {
+ mState = STATE_NORMAL;
+ }
+#else
+ if (0xFEFF != *((char16_t*)aSrc)) {
+ mState = STATE_NORMAL;
+ }
+#endif
+ break;
+
+ case STATE_SECOND_BYTE:
+ if (*aSrcLength < 1) {
+ *aDestLength = 0;
+ return NS_OK_UDEC_MOREINPUT;
+ }
+ if (uint8_t(*aSrc) != 0xFF) {
+ mOddByte = 0xFE;
+ mState = STATE_HALF_CODE_POINT;
+ }
+ break;
+ }
+
+ return UTF16ConvertToUnicode(aSrc, aSrcLength, aDest, aDestLength,
+ bool(MOZ_LITTLE_ENDIAN));
+}
+
+NS_IMETHODIMP
+nsUTF16LEToUnicode::Convert(const char * aSrc, int32_t * aSrcLength,
+ char16_t * aDest, int32_t * aDestLength)
+{
+ switch (mState) {
+ case STATE_FIRST_CALL:
+ if (*aSrcLength < 2) {
+ if (*aSrcLength < 1) {
+ *aDestLength = 0;
+ return NS_OK;
+ }
+ if (uint8_t(*aSrc) != 0xFF) {
+ mState = STATE_NORMAL;
+ break;
+ }
+ *aDestLength = 0;
+ mState = STATE_SECOND_BYTE;
+ return NS_OK_UDEC_MOREINPUT;
+ }
+#if MOZ_BIG_ENDIAN
+ // on BE machines, LE BOM is 0xFFFE
+ if (0xFFFE != *((char16_t*)aSrc)) {
+ mState = STATE_NORMAL;
+ }
+#else
+ if (0xFEFF != *((char16_t*)aSrc)) {
+ mState = STATE_NORMAL;
+ }
+#endif
+ break;
+
+ case STATE_SECOND_BYTE:
+ if (*aSrcLength < 1) {
+ *aDestLength = 0;
+ return NS_OK_UDEC_MOREINPUT;
+ }
+ if (uint8_t(*aSrc) != 0xFE) {
+ mOddByte = 0xFF;
+ mState = STATE_HALF_CODE_POINT;
+ }
+ break;
+ }
+
+ return UTF16ConvertToUnicode(aSrc, aSrcLength, aDest, aDestLength,
+ bool(MOZ_BIG_ENDIAN));
+}
+
+NS_IMETHODIMP
+nsUTF16ToUnicode::Reset()
+{
+ mEndian = kUnknown;
+ mFoundBOM = false;
+ return nsUTF16ToUnicodeBase::Reset();
+}
+
+NS_IMETHODIMP
+nsUTF16ToUnicode::Convert(const char * aSrc, int32_t * aSrcLength,
+ char16_t * aDest, int32_t * aDestLength)
+{
+ if(STATE_FIRST_CALL == mState && *aSrcLength < 2)
+ {
+ nsresult res = (*aSrcLength == 0) ? NS_OK : NS_ERROR_ILLEGAL_INPUT;
+ *aSrcLength=0;
+ *aDestLength=0;
+ return res;
+ }
+ if(STATE_FIRST_CALL == mState) // first time called
+ {
+ // check if BOM (0xFEFF) is at the beginning, remove it if found, and
+ // set mEndian accordingly.
+ if(0xFF == uint8_t(aSrc[0]) && 0xFE == uint8_t(aSrc[1])) {
+ mEndian = kLittleEndian;
+ mFoundBOM = true;
+ }
+ else if(0xFE == uint8_t(aSrc[0]) && 0xFF == uint8_t(aSrc[1])) {
+ mEndian = kBigEndian;
+ mFoundBOM = true;
+ }
+ // BOM is not found, but we can use a simple heuristic to determine
+ // the endianness. Assume the first character is [U+0001, U+00FF].
+ // Not always valid, but it's very likely to hold for html/xml/css.
+ else if(!aSrc[0] && aSrc[1]) { // 0x00 0xhh (hh != 00)
+ mState = STATE_NORMAL;
+ mEndian = kBigEndian;
+ }
+ else if(aSrc[0] && !aSrc[1]) { // 0xhh 0x00 (hh != 00)
+ mState = STATE_NORMAL;
+ mEndian = kLittleEndian;
+ }
+ else { // Neither BOM nor 'plausible' byte patterns at the beginning.
+ // Just assume it's BE (following Unicode standard)
+ // and let the garbage show up in the browser. (security concern?)
+ // (bug 246194)
+ mState = STATE_NORMAL;
+ mEndian = kBigEndian;
+ }
+ }
+
+ nsresult rv = UTF16ConvertToUnicode(aSrc, aSrcLength, aDest, aDestLength,
+#if MOZ_BIG_ENDIAN
+ (mEndian == kLittleEndian)
+#else
+ (mEndian == kBigEndian)
+#endif
+ );
+
+ // If BOM is not found and we're to return NS_OK, signal that BOM
+ // is not found. Otherwise, return |rv| from |UTF16ConvertToUnicode|
+ return (rv == NS_OK && !mFoundBOM) ? NS_OK_UDEC_NOBOMFOUND : rv;
+}
diff --git a/intl/uconv/ucvlatin/nsUTF16ToUnicode.h b/intl/uconv/ucvlatin/nsUTF16ToUnicode.h
new file mode 100644
index 000000000..227fb412f
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUTF16ToUnicode.h
@@ -0,0 +1,78 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUTF16ToUnicode_h_
+#define nsUTF16ToUnicode_h_
+
+#include "nsISupports.h"
+#include "nsUCSupport.h"
+
+// internal base class
+class nsUTF16ToUnicodeBase : public nsBasicDecoderSupport
+{
+protected:
+ // ctor accessible only by child classes
+ nsUTF16ToUnicodeBase() { Reset();}
+
+ nsresult UTF16ConvertToUnicode(const char* aSrc,
+ int32_t* aSrcLength, char16_t* aDest,
+ int32_t* aDestLength, bool aSwapBytes);
+
+public:
+ //--------------------------------------------------------------------
+ // Subclassing of nsDecoderSupport class [declaration]
+
+ MOZ_MUST_USE NS_IMETHOD GetMaxLength(const char* aSrc,
+ int32_t aSrcLength,
+ int32_t* aDestLength) override;
+ NS_IMETHOD Reset() override;
+
+protected:
+ uint8_t mState;
+ // to store an odd byte left over between runs
+ uint8_t mOddByte;
+ // to store an odd high surrogate left over between runs
+ char16_t mOddHighSurrogate;
+ // to store an odd low surrogate left over between runs
+ char16_t mOddLowSurrogate;
+};
+
+// UTF-16 big endian
+class nsUTF16BEToUnicode : public nsUTF16ToUnicodeBase
+{
+public:
+
+ NS_IMETHOD Convert(const char* aSrc, int32_t* aSrcLength,
+ char16_t* aDest, int32_t* aDestLength);
+};
+
+// UTF-16 little endian
+class nsUTF16LEToUnicode : public nsUTF16ToUnicodeBase
+{
+public:
+
+ NS_IMETHOD Convert(const char* aSrc, int32_t* aSrcLength,
+ char16_t* aDest, int32_t* aDestLength);
+};
+
+// UTF-16 with BOM
+class nsUTF16ToUnicode : public nsUTF16ToUnicodeBase
+{
+public:
+
+ nsUTF16ToUnicode() { Reset();}
+ NS_IMETHOD Convert(const char* aSrc, int32_t* aSrcLength,
+ char16_t* aDest, int32_t* aDestLength);
+
+ NS_IMETHOD Reset();
+
+private:
+
+ enum Endian {kUnknown, kBigEndian, kLittleEndian};
+ Endian mEndian;
+ bool mFoundBOM;
+};
+
+#endif /* nsUTF16ToUnicode_h_ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1250.cpp b/intl/uconv/ucvlatin/nsUnicodeToCP1250.cpp
new file mode 100644
index 000000000..58e896ba8
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1250.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToCP1250.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToCP1250Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "cp1250.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1250.h b/intl/uconv/ucvlatin/nsUnicodeToCP1250.h
new file mode 100644
index 000000000..c0361d323
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1250.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToCP1250_h___
+#define nsUnicodeToCP1250_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to CP1250.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToCP1250Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToCP1250_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1251.cpp b/intl/uconv/ucvlatin/nsUnicodeToCP1251.cpp
new file mode 100644
index 000000000..95298cf8c
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1251.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToCP1251.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToCP1251Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "cp1251.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1251.h b/intl/uconv/ucvlatin/nsUnicodeToCP1251.h
new file mode 100644
index 000000000..261af28d7
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1251.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToCP1251_h___
+#define nsUnicodeToCP1251_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to CP1251.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToCP1251Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToCP1251_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1253.cpp b/intl/uconv/ucvlatin/nsUnicodeToCP1253.cpp
new file mode 100644
index 000000000..613eacd61
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1253.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToCP1253.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToCP1253Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "cp1253.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1253.h b/intl/uconv/ucvlatin/nsUnicodeToCP1253.h
new file mode 100644
index 000000000..f1316b7b0
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1253.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToCP1253_h___
+#define nsUnicodeToCP1253_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to CP1253.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToCP1253Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToCP1253_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1254.cpp b/intl/uconv/ucvlatin/nsUnicodeToCP1254.cpp
new file mode 100644
index 000000000..c59bf1bfc
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1254.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToCP1254.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToCP1254Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "cp1254.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1254.h b/intl/uconv/ucvlatin/nsUnicodeToCP1254.h
new file mode 100644
index 000000000..ec0aef451
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1254.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToCP1254_h___
+#define nsUnicodeToCP1254_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to CP1254.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToCP1254Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToCP1254_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1255.cpp b/intl/uconv/ucvlatin/nsUnicodeToCP1255.cpp
new file mode 100644
index 000000000..d2f9fb86c
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1255.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToCP1255.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToCP1255Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "cp1255.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1255.h b/intl/uconv/ucvlatin/nsUnicodeToCP1255.h
new file mode 100644
index 000000000..50eab1a32
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1255.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToCP1255_h___
+#define nsUnicodeToCP1255_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to CP1255.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToCP1255Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToCP1255_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1256.cpp b/intl/uconv/ucvlatin/nsUnicodeToCP1256.cpp
new file mode 100644
index 000000000..ecd9cc7cc
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1256.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToCP1256.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToCP1256Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "cp1256.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1256.h b/intl/uconv/ucvlatin/nsUnicodeToCP1256.h
new file mode 100644
index 000000000..0dca10cf7
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1256.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToCP1256_h___
+#define nsUnicodeToCP1256_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to CP1256.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToCP1256Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToCP1256_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1257.cpp b/intl/uconv/ucvlatin/nsUnicodeToCP1257.cpp
new file mode 100644
index 000000000..6deab8142
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1257.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToCP1257.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToCP1257Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "cp1257.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1257.h b/intl/uconv/ucvlatin/nsUnicodeToCP1257.h
new file mode 100644
index 000000000..a992bcb3d
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1257.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToCP1257_h___
+#define nsUnicodeToCP1257_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to CP1257.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToCP1257Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToCP1257_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1258.cpp b/intl/uconv/ucvlatin/nsUnicodeToCP1258.cpp
new file mode 100644
index 000000000..8450f9004
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1258.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToCP1258.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToCP1258Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "cp1258.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP1258.h b/intl/uconv/ucvlatin/nsUnicodeToCP1258.h
new file mode 100644
index 000000000..7ac4c0cb5
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP1258.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToCP1258_h___
+#define nsUnicodeToCP1258_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to CP1258.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsUnicodeToCP1258Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToCP1258_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP866.cpp b/intl/uconv/ucvlatin/nsUnicodeToCP866.cpp
new file mode 100644
index 000000000..1f943c505
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP866.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToCP866.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToCP866Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "cp866.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP866.h b/intl/uconv/ucvlatin/nsUnicodeToCP866.h
new file mode 100644
index 000000000..a5e388063
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP866.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToCP866_h___
+#define nsUnicodeToCP866_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to CP866.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToCP866Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToCP866_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP874.cpp b/intl/uconv/ucvlatin/nsUnicodeToCP874.cpp
new file mode 100644
index 000000000..0c20091ab
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP874.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToCP874.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToCP874Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "cp874.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsUnicodeToCP874.h b/intl/uconv/ucvlatin/nsUnicodeToCP874.h
new file mode 100644
index 000000000..e4e270a95
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToCP874.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToCP874_h___
+#define nsUnicodeToCP874_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to CP874.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsUnicodeToCP874Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToCP874_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO885910.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO885910.cpp
new file mode 100644
index 000000000..b64701922
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO885910.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToISO885910.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO885910Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "8859-10.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO885910.h b/intl/uconv/ucvlatin/nsUnicodeToISO885910.h
new file mode 100644
index 000000000..f5c47c377
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO885910.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO885910_h___
+#define nsUnicodeToISO885910_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO885910.
+ *
+ * @created 17/Feb/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToISO885910Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO885910_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO885913.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO885913.cpp
new file mode 100644
index 000000000..963375bc3
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO885913.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToISO885913.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO885913Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "8859-13.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO885913.h b/intl/uconv/ucvlatin/nsUnicodeToISO885913.h
new file mode 100644
index 000000000..4cbdcca9d
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO885913.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO885913_h___
+#define nsUnicodeToISO885913_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO885913.
+ *
+ * @created 05/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToISO885913Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO885913_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO885914.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO885914.cpp
new file mode 100644
index 000000000..b1cefbbf6
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO885914.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToISO885914.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO885914Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "8859-14.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO885914.h b/intl/uconv/ucvlatin/nsUnicodeToISO885914.h
new file mode 100644
index 000000000..a221a0d06
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO885914.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO885914_h___
+#define nsUnicodeToISO885914_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO885914.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsUnicodeToISO885914Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO885914_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO885915.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO885915.cpp
new file mode 100644
index 000000000..39e481c5e
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO885915.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToISO885915.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO885915Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "8859-15.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO885915.h b/intl/uconv/ucvlatin/nsUnicodeToISO885915.h
new file mode 100644
index 000000000..32f98e29e
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO885915.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO885915_h___
+#define nsUnicodeToISO885915_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO885915.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsUnicodeToISO885915Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO885915_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO885916.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO885916.cpp
new file mode 100644
index 000000000..b39bd1bee
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO885916.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToISO885916.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO885916Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "8859-16.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO885916.h b/intl/uconv/ucvlatin/nsUnicodeToISO885916.h
new file mode 100644
index 000000000..5f31ac12b
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO885916.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO885916_h___
+#define nsUnicodeToISO885916_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO885916.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsUnicodeToISO885916Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO885916_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88592.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO88592.cpp
new file mode 100644
index 000000000..4445400b9
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88592.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToISO88592.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO88592Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "8859-2.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88592.h b/intl/uconv/ucvlatin/nsUnicodeToISO88592.h
new file mode 100644
index 000000000..d37f25596
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88592.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO88592_h___
+#define nsUnicodeToISO88592_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO88592.
+ *
+ * @created 05/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToISO88592Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO88592_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88593.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO88593.cpp
new file mode 100644
index 000000000..3387f4b23
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88593.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToISO88593.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO88593Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "8859-3.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88593.h b/intl/uconv/ucvlatin/nsUnicodeToISO88593.h
new file mode 100644
index 000000000..d102ec007
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88593.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO88593_h___
+#define nsUnicodeToISO88593_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO88593.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToISO88593Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO88593_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88594.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO88594.cpp
new file mode 100644
index 000000000..a2851b79b
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88594.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToISO88594.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO88594Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "8859-4.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88594.h b/intl/uconv/ucvlatin/nsUnicodeToISO88594.h
new file mode 100644
index 000000000..e18b0979c
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88594.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO88594_h___
+#define nsUnicodeToISO88594_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO88594.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToISO88594Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO88594_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88595.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO88595.cpp
new file mode 100644
index 000000000..73568a64e
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88595.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToISO88595.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO88595Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "8859-5.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88595.h b/intl/uconv/ucvlatin/nsUnicodeToISO88595.h
new file mode 100644
index 000000000..a46912261
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88595.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO88595_h___
+#define nsUnicodeToISO88595_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO88595.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToISO88595Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO88595_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88596.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO88596.cpp
new file mode 100644
index 000000000..0932e5891
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88596.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToISO88596.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO88596Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "8859-6.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88596.h b/intl/uconv/ucvlatin/nsUnicodeToISO88596.h
new file mode 100644
index 000000000..c856b35c9
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88596.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO88596_h___
+#define nsUnicodeToISO88596_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO88596.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToISO88596Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO88596_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88597.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO88597.cpp
new file mode 100644
index 000000000..1f682a26c
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88597.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToISO88597.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO88597Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "8859-7.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88597.h b/intl/uconv/ucvlatin/nsUnicodeToISO88597.h
new file mode 100644
index 000000000..581f80dfe
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88597.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO88597_h___
+#define nsUnicodeToISO88597_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO88597.
+ *
+ * @created 17/Feb/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToISO88597Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO88597_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88598.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO88598.cpp
new file mode 100644
index 000000000..0949fa887
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88598.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToISO88598.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO88598Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "8859-8.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88598.h b/intl/uconv/ucvlatin/nsUnicodeToISO88598.h
new file mode 100644
index 000000000..37e0beb8d
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88598.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO88598_h___
+#define nsUnicodeToISO88598_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO88598.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToISO88598Constructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO88598_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88598I.cpp b/intl/uconv/ucvlatin/nsUnicodeToISO88598I.cpp
new file mode 100644
index 000000000..b37f34f1d
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88598I.cpp
@@ -0,0 +1,18 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUnicodeToISO88598.h"
+#include "nsUnicodeToISO88598I.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToISO88598IConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ return nsUnicodeToISO88598Constructor(aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToISO88598I.h b/intl/uconv/ucvlatin/nsUnicodeToISO88598I.h
new file mode 100644
index 000000000..b39a403c9
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToISO88598I.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToISO88598I_h___
+#define nsUnicodeToISO88598I_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to ISO88598I.
+ *
+ * @created 20/Apr/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToISO88598IConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToISO88598I_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToKOI8R.cpp b/intl/uconv/ucvlatin/nsUnicodeToKOI8R.cpp
new file mode 100644
index 000000000..fb8bc1e84
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToKOI8R.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToKOI8R.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToKOI8RConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "koi8r.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsUnicodeToKOI8R.h b/intl/uconv/ucvlatin/nsUnicodeToKOI8R.h
new file mode 100644
index 000000000..95d10c555
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToKOI8R.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToKOI8R_h___
+#define nsUnicodeToKOI8R_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to KOI8R.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsUnicodeToKOI8RConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToKOI8R_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToKOI8U.cpp b/intl/uconv/ucvlatin/nsUnicodeToKOI8U.cpp
new file mode 100644
index 000000000..904821f77
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToKOI8U.cpp
@@ -0,0 +1,24 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToKOI8U.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToKOI8UConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "koi8u.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
+
diff --git a/intl/uconv/ucvlatin/nsUnicodeToKOI8U.h b/intl/uconv/ucvlatin/nsUnicodeToKOI8U.h
new file mode 100644
index 000000000..e0fff0f90
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToKOI8U.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToKOI8U_h___
+#define nsUnicodeToKOI8U_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to KOI8U.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsUnicodeToKOI8UConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToKOI8U_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToMacCyrillic.cpp b/intl/uconv/ucvlatin/nsUnicodeToMacCyrillic.cpp
new file mode 100644
index 000000000..cd4b4c852
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToMacCyrillic.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToMacCyrillic.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToMacCyrillicConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "maccyril.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsUnicodeToMacCyrillic.h b/intl/uconv/ucvlatin/nsUnicodeToMacCyrillic.h
new file mode 100644
index 000000000..cb89124ff
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToMacCyrillic.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToMacCyrillic_h___
+#define nsUnicodeToMacCyrillic_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to MacCyrillic.
+ *
+ * @created 4/26/1999
+ * @author Frank Tang [ftang]
+ */
+nsresult
+nsUnicodeToMacCyrillicConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToMacCyrillic_h___ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToUTF16.cpp b/intl/uconv/ucvlatin/nsUnicodeToUTF16.cpp
new file mode 100644
index 000000000..607f10abb
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToUTF16.cpp
@@ -0,0 +1,115 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUnicodeToUTF16.h"
+#include "mozilla/CheckedInt.h"
+#include <string.h>
+
+NS_IMETHODIMP nsUnicodeToUTF16BE::Convert(const char16_t * aSrc, int32_t * aSrcLength,
+ char * aDest, int32_t * aDestLength)
+{
+ int32_t srcInLen = *aSrcLength;
+ int32_t destInLen = *aDestLength;
+ int32_t srcOutLen = 0;
+ int32_t destOutLen = 0;
+ int32_t copyCharLen;
+ char16_t *p = (char16_t*)aDest;
+
+ // Handle BOM if necessary
+ if (0!=mBOM) {
+ if (destInLen < 2) {
+ goto needmoreoutput;
+ }
+
+ *p++ = mBOM;
+ mBOM = 0;
+ destOutLen +=2;
+ }
+ // find out the length of copy
+
+ copyCharLen = srcInLen;
+ if (copyCharLen > (destInLen - destOutLen) / 2) {
+ copyCharLen = (destInLen - destOutLen) / 2;
+ }
+
+ // copy the data by swaping
+ CopyData((char*)p , aSrc, copyCharLen );
+
+ srcOutLen += copyCharLen;
+ destOutLen += copyCharLen * 2;
+ if (copyCharLen < srcInLen) {
+ goto needmoreoutput;
+ }
+
+ *aSrcLength = srcOutLen;
+ *aDestLength = destOutLen;
+ return NS_OK;
+
+needmoreoutput:
+ *aSrcLength = srcOutLen;
+ *aDestLength = destOutLen;
+ return NS_OK_UENC_MOREOUTPUT;
+}
+
+NS_IMETHODIMP nsUnicodeToUTF16BE::GetMaxLength(const char16_t * aSrc, int32_t aSrcLength,
+ int32_t * aDestLength)
+{
+ mozilla::CheckedInt32 length = aSrcLength;
+
+ if (0 != mBOM) {
+ length += 1;
+ }
+
+ length *= 2;
+
+ if (!length.isValid()) {
+ return NS_ERROR_OUT_OF_MEMORY;
+ }
+
+ *aDestLength = length.value();
+ return NS_OK_UENC_EXACTLENGTH;
+}
+
+NS_IMETHODIMP nsUnicodeToUTF16BE::Finish(char * aDest, int32_t * aDestLength)
+{
+ if (0 != mBOM) {
+ if (*aDestLength >= 2) {
+ *((char16_t*)aDest)= mBOM;
+ mBOM=0;
+ *aDestLength = 2;
+ return NS_OK;
+ } else {
+ *aDestLength = 0;
+ return NS_OK; // xxx should be error
+ }
+ } else {
+ *aDestLength = 0;
+ return NS_OK;
+ }
+}
+
+NS_IMETHODIMP nsUnicodeToUTF16BE::Reset()
+{
+ mBOM = 0;
+ return NS_OK;
+}
+
+NS_IMETHODIMP nsUnicodeToUTF16BE::SetOutputErrorBehavior(int32_t aBehavior,
+ nsIUnicharEncoder * aEncoder, char16_t aChar)
+{
+ return NS_OK;
+}
+
+NS_IMETHODIMP nsUnicodeToUTF16BE::CopyData(char* aDest, const char16_t* aSrc, int32_t aLen )
+{
+ mozilla::NativeEndian::copyAndSwapToBigEndian(aDest, aSrc, aLen);
+ return NS_OK;
+}
+
+NS_IMETHODIMP nsUnicodeToUTF16LE::CopyData(char* aDest, const char16_t* aSrc, int32_t aLen )
+{
+ mozilla::NativeEndian::copyAndSwapToLittleEndian(aDest, aSrc, aLen);
+ return NS_OK;
+}
diff --git a/intl/uconv/ucvlatin/nsUnicodeToUTF16.h b/intl/uconv/ucvlatin/nsUnicodeToUTF16.h
new file mode 100644
index 000000000..b024a1b42
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToUTF16.h
@@ -0,0 +1,54 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToUTF16_h_
+#define nsUnicodeToUTF16_h_
+
+#include "nsUCSupport.h"
+#include "mozilla/EndianUtils.h"
+
+class nsUnicodeToUTF16BE: public nsBasicEncoder
+{
+public:
+ nsUnicodeToUTF16BE() { mBOM = 0;}
+
+ //--------------------------------------------------------------------
+ // Interface nsIUnicodeEncoder [declaration]
+
+ NS_IMETHOD Convert(const char16_t* aSrc, int32_t* aSrcLength,
+ char* aDest, int32_t* aDestLength);
+ MOZ_MUST_USE NS_IMETHOD GetMaxLength(const char16_t* aSrc,
+ int32_t aSrcLength,
+ int32_t* aDestLength);
+ NS_IMETHOD Finish(char* aDest, int32_t* aDestLength);
+ NS_IMETHOD Reset();
+ NS_IMETHOD SetOutputErrorBehavior(int32_t aBehavior,
+ nsIUnicharEncoder* aEncoder, char16_t aChar);
+
+protected:
+ char16_t mBOM;
+ NS_IMETHOD CopyData(char* aDest, const char16_t* aSrc, int32_t aLen );
+};
+
+class nsUnicodeToUTF16LE: public nsUnicodeToUTF16BE
+{
+public:
+ nsUnicodeToUTF16LE() { mBOM = 0;}
+
+protected:
+ NS_IMETHOD CopyData(char* aDest, const char16_t* aSrc, int32_t aLen );
+};
+
+#if MOZ_LITTLE_ENDIAN
+class nsUnicodeToUTF16: public nsUnicodeToUTF16LE
+#else
+class nsUnicodeToUTF16: public nsUnicodeToUTF16BE
+#endif
+{
+public:
+ nsUnicodeToUTF16() { mBOM = 0xFEFF;}
+};
+
+#endif /* nsUnicodeToUTF16_h_ */
diff --git a/intl/uconv/ucvlatin/nsUnicodeToUserDefined.cpp b/intl/uconv/ucvlatin/nsUnicodeToUserDefined.cpp
new file mode 100644
index 000000000..68b92f07a
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToUserDefined.cpp
@@ -0,0 +1,23 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUnicodeToUserDefined.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUnicodeToUserDefinedConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_ufMappingTable[] = {
+#include "userdefined.uf"
+ };
+
+ return CreateTableEncoder(u1ByteCharset,
+ (uMappingTable*) &g_ufMappingTable, 1,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsUnicodeToUserDefined.h b/intl/uconv/ucvlatin/nsUnicodeToUserDefined.h
new file mode 100644
index 000000000..8de201afc
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUnicodeToUserDefined.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUnicodeToUserDefined_h___
+#define nsUnicodeToUserDefined_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from Unicode to UserDefined.
+ *
+ * @created 17/Feb/1999
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUnicodeToUserDefinedConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUnicodeToUserDefined_h___ */
diff --git a/intl/uconv/ucvlatin/nsUserDefinedToUnicode.cpp b/intl/uconv/ucvlatin/nsUserDefinedToUnicode.cpp
new file mode 100644
index 000000000..c1a916aef
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUserDefinedToUnicode.cpp
@@ -0,0 +1,22 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#include "nsUCConstructors.h"
+#include "nsUserDefinedToUnicode.h"
+
+//----------------------------------------------------------------------
+// Global functions and data [declaration]
+
+nsresult
+nsUserDefinedToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult)
+{
+ static const uint16_t g_utMappingTable[] = {
+#include "userdefined.ut"
+ };
+
+ return CreateOneByteDecoder((uMappingTable*) &g_utMappingTable,
+ aOuter, aIID, aResult);
+}
diff --git a/intl/uconv/ucvlatin/nsUserDefinedToUnicode.h b/intl/uconv/ucvlatin/nsUserDefinedToUnicode.h
new file mode 100644
index 000000000..a4c4294df
--- /dev/null
+++ b/intl/uconv/ucvlatin/nsUserDefinedToUnicode.h
@@ -0,0 +1,21 @@
+/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+#ifndef nsUserDefinedToUnicode_h___
+#define nsUserDefinedToUnicode_h___
+
+#include "nsISupports.h"
+
+/**
+ * A character set converter from UserDefined to Unicode.
+ *
+ * @created 23/Nov/1998
+ * @author Catalin Rotaru [CATA]
+ */
+nsresult
+nsUserDefinedToUnicodeConstructor(nsISupports *aOuter, REFNSIID aIID,
+ void **aResult);
+
+#endif /* nsUserDefinedToUnicode_h___ */
diff --git a/intl/uconv/ucvlatin/userdefined.uf b/intl/uconv/ucvlatin/userdefined.uf
new file mode 100644
index 000000000..8e5f8b90f
--- /dev/null
+++ b/intl/uconv/ucvlatin/userdefined.uf
@@ -0,0 +1,55 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = F780
+ srcEnd = F7FF
+ destBegin = 0080
+End of Item 0001
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0002 */
+/* Total of Format 1 : 0x0000 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0xF780, 0xF7FF, 0x0080,
+/*-------------------------------------------------------*/
+/* Offset=0x000B Start of MappingTable */
+
+/* End of table Total Length = 0x000B * 2 */
diff --git a/intl/uconv/ucvlatin/userdefined.ut b/intl/uconv/ucvlatin/userdefined.ut
new file mode 100644
index 000000000..6b78d09a1
--- /dev/null
+++ b/intl/uconv/ucvlatin/userdefined.ut
@@ -0,0 +1,55 @@
+/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
+/* This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+/*========================================================
+ This is a Generated file. Please don't edit it.
+
+ The tool which used to generate this file is called fromu.
+ If you have any problem of this file. Please contact
+ Netscape Client International Team or
+ ftang@netscape <Frank Tang>
+
+ Table in Debug form
+Begin of Item 0000
+ Format 0
+ srcBegin = 0000
+ srcEnd = 007F
+ destBegin = 0000
+End of Item 0000
+
+Begin of Item 0001
+ Format 0
+ srcBegin = 0080
+ srcEnd = 00FF
+ destBegin = F780
+End of Item 0001
+
+========================================================*/
+/* Offset=0x0000 ItemOfList */
+ 0x0002,
+/*-------------------------------------------------------*/
+/* Offset=0x0001 offsetToFormatArray */
+ 0x0004,
+/*-------------------------------------------------------*/
+/* Offset=0x0002 offsetToMapCellArray */
+ 0x0005,
+/*-------------------------------------------------------*/
+/* Offset=0x0003 offsetToMappingTable */
+ 0x000B,
+/*-------------------------------------------------------*/
+/* Offset=0x0004 Start of Format Array */
+/* Total of Format 0 : 0x0002 */
+/* Total of Format 1 : 0x0000 */
+/* Total of Format 2 : 0x0000 */
+/* Total of Format 3 : 0x0000 */
+
+0x0000,
+/*-------------------------------------------------------*/
+/* Offset=0x0005 Start of MapCell Array */
+/* 0000 */ 0x0000, 0x007F, 0x0000,
+/* 0001 */ 0x0080, 0x00FF, 0xF780,
+/*-------------------------------------------------------*/
+/* Offset=0x000B Start of MappingTable */
+
+/* End of table Total Length = 0x000B * 2 */