1// Copyright 2014 PDFium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6
7#include <algorithm>
8
9#include "xfa/src/foxitlib.h"
10#include "xfa/src/fxfa/src/common/xfa_common.h"
11#include "xfa_fontmgr.h"
12#include "xfa_ffdoc.h"
13#include "xfa_ffConfigAcc.h"
14#include "xfa_ffapp.h"
15#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
16static const XFA_FONTINFO g_XFAFontsMap[] = {
17    {0x01d5d33e, L"SimSun", L"Arial", 0, 936},
18    {0x01e4f102, L"YouYuan", L"Arial", 1, 936},
19    {0x030549dc, L"LiSu", L"Arial", 1, 936},
20    {0x032edd44, L"Simhei", L"Arial", 1, 936},
21    {0x03eac6fc, L"PoorRichard-Regular", L"Arial", 2, 1252},
22    {0x03ed90e6, L"Nina", L"Arial", 0, 1252},
23    {0x077b56b3, L"KingsoftPhoneticPlain", L"Arial", 0, 1252},
24    {0x078ed524, L"MicrosoftSansSerif", L"Arial", 0, 1252},
25    {0x089b18a9, L"Arial", L"Arial", 0, 1252},
26    {0x0b2cad72, L"MonotypeCorsiva", L"Arial", 8, 1252},
27    {0x0bb003e7, L"Kartika", L"Arial", 2, 1252},
28    {0x0bb469df, L"VinerHandITC", L"Arial", 8, 1252},
29    {0x0bc1a851, L"SegoeUI", L"Arial", 0, 1252},
30    {0x0c112ebd, L"KozukaGothicPro-VIM", L"Arial", 0, 1252},
31    {0x0cfcb9c1, L"AdobeThai", L"Kokila,Arial Narrow", 0, 847},
32    {0x0e7de0f9, L"Playbill", L"Arial", 0, 1252},
33    {0x0eff47c3, L"STHupo", L"Arial", 0, 936},
34    {0x107ad374, L"Constantia", L"Arial", 2, 1252},
35    {0x12194c2d, L"KunstlerScript", L"Arial", 8, 1252},
36    {0x135ef6a1, L"MinionProSmBd",
37     L"Bell MT,Corbel,Times New Roman,Cambria,Berlin Sans FB", 0, 1252},
38    {0x158c4049, L"Garamond", L"Arial", 2, 1252},
39    {0x160ecb24, L"STZhongsong", L"Arial", 0, 936},
40    {0x161ed07e, L"MSGothic", L"Arial", 1, 1252},
41    {0x171d1ed1, L"SnapITC-Regular", L"Arial", 0, 1252},
42    {0x18d1188f, L"Cambria", L"Arial", 2, 1252},
43    {0x18eaf350, L"ArialUnicodeMS", L"Arial", 0, 936},
44    {0x1a92d115, L"MingLiU", L"Arial", 1, 1252},
45    {0x1cc217c6, L"TrebuchetMS", L"Arial", 0, 1252},
46    {0x1d649596, L"BasemicTimes", L"Arial", 0, 1252},
47    {0x1e34ee60, L"BellMT", L"Arial", 2, 1252},
48    {0x1eb36945, L"CooperBlack", L"Arial", 2, 1252},
49    {0x1ef7787d, L"BatangChe", L"Arial", 1, 1252},
50    {0x20b3bd3a, L"BrushScriptMT", L"Arial", 8, 1252},
51    {0x220877aa, L"Candara", L"Arial", 0, 1252},
52    {0x22135007, L"FreestyleScript-Regular", L"Arial", 8, 1252},
53    {0x251059c3, L"Chiller", L"Arial", 0, 1252},
54    {0x25bed6dd, L"MSReferenceSansSerif", L"Arial", 0, 1252},
55    {0x28154c81, L"Parchment-Regular", L"Arial", 8, 1252},
56    {0x29711eb9, L"STLiti", L"Arial", 0, 936},
57    {0x2b1993b4, L"Basemic", L"Arial", 0, 1252},
58    {0x2b316339, L"NiagaraSolid-Reg", L"Arial", 0, 1252},
59    {0x2c147529, L"FootlightMTLight", L"Arial", 0, 1252},
60    {0x2c198928, L"HarlowSolid", L"Arial", 0, 1252},
61    {0x2c6ac6b2, L"LucidaBright", L"Arial", 2, 1252},
62    {0x2c9f38e2, L"KozukaMinchoPro-VIR", L"Arial", 0, 1252},
63    {0x2d5a47b0, L"STCaiyun", L"Arial", 0, 936},
64    {0x2def26bf, L"BernardMT-Condensed", L"Arial", 0, 1252},
65    {0x2fd8930b, L"KozukaMinchoPr6NR", L"Arial", 0, 1252},
66    {0x3115525a, L"FangSong_GB2312", L"Arial", 0, 1252},
67    {0x31327817, L"MyriadPro",
68     L"Calibri,Corbel,Candara,Cambria Math,Franklin Gothic Medium,Arial "
69     L"Narrow,Times New Roman",
70     0, 1252},
71    {0x32244975, L"Helvetica", L"Arial", 0, 1252},
72    {0x32ac995c, L"Terminal", L"Arial", 0, 1252},
73    {0x338d648a, L"NiagaraEngraved-Reg", L"Arial", 0, 1252},
74    {0x33bb65f2, L"Sylfaen", L"Arial", 2, 1252},
75    {0x3402c30e, L"MSPMincho", L"Arial", 2, 1252},
76    {0x3412bf31, L"SimSun-PUA", L"Arial", 0, 936},
77    {0x36eb39b9, L"BerlinSansFB", L"Arial", 0, 1252},
78    {0x36f42055, L"UniversATT", L"Microsoft Sans Serif", 0, 1252},
79    {0x3864c4f6, L"HighTowerText", L"Arial", 2, 1252},
80    {0x3a257d03, L"FangSong_GB2312", L"Arial", 0, 1252},
81    {0x3cdae668, L"FreestyleScript", L"Arial", 8, 1252},
82    {0x3d55aed7, L"Jokerman", L"Arial", 0, 1252},
83    {0x3d5b4385, L"PMingLiU", L"Arial", 2, 1252},
84    {0x3d9b7669, L"EstrangeloEdessa", L"Arial", 0, 1252},
85    {0x3e532d74, L"FranklinGothicMedium", L"Arial", 0, 1252},
86    {0x3e6aa32d, L"NSimSun", L"Arial", 1, 936},
87    {0x3f6c36a8, L"Gautami", L"Arial", 0, 1252},
88    {0x3ff32662, L"Chiller-Regular", L"Arial", 0, 1252},
89    {0x409de312, L"ModernNo.20", L"Arial", 2, 1252},
90    {0x41443c5e, L"Georgia", L"Arial", 2, 1252},
91    {0x4160ade5, L"BellGothicStdBlack",
92     L"Arial,Arial Unicode MS,Book Antiqua,Dotum,Georgia", 0, 1252},
93    {0x421976c4, L"Modern-Regular", L"Arial", 2, 1252},
94    {0x422a7252, L"Stencil", L"Arial", 0, 1252},
95    {0x42c8554f, L"Fixedsys", L"Arial", 0, 1252},
96    {0x435cb41d, L"Roman", L"Arial", 0, 1252},
97    {0x47882383, L"CourierNew", L"Arial", 1, 1252},
98    {0x480a2338, L"BerlinSansFBDemi", L"Arial", 0, 1252},
99    {0x480bf7a4, L"CourierStd", L"Courier New,Verdana", 0, 1252},
100    {0x481ad6ed, L"VladimirScript", L"Arial", 8, 1252},
101    {0x4911577a, L"YouYuan", L"Arial", 1, 936},
102    {0x4a788d72, L"STXingkai", L"Arial", 0, 936},
103    {0x4bf88566, L"SegoeCondensed", L"Arial", 0, 1252},
104    {0x4ccf51a4, L"BerlinSansFB-Reg", L"Arial", 0, 1252},
105    {0x4ea967ce, L"GulimChe", L"Arial", 1, 1252},
106    {0x4f68bd79, L"LetterGothicStd", L"Courier New,Verdana", 0, 1252},
107    {0x51a0d0e6, L"KozukaGothicPr6NM", L"Arial", 0, 1252},
108    {0x531b3dea, L"BasemicSymbol", L"Arial", 0, 1252},
109    {0x5333fd39, L"CalifornianFB-Reg", L"Arial", 2, 1252},
110    {0x53561a54, L"FZYTK--GBK1-0", L"Arial", 0, 936},
111    {0x55e0dde6, L"LucidaSansTypewriter", L"Arial", 0, 1252},
112    {0x574d4d3d, L"AdobeArabic", L"Arial Narrow", 0, 1252},
113    {0x5792e759, L"STKaiti", L"Arial", 0, 936},
114    {0x5921978e, L"LucidaSansUnicode", L"Arial", 0, 1252},
115    {0x594e2da4, L"Vrinda", L"Arial", 0, 1252},
116    {0x59baa9a2, L"KaiTi_GB2312", L"Arial", 0, 1252},
117    {0x5cfedf4f, L"BaskOldFace", L"Arial", 0, 1252},
118    {0x5f97921c, L"AdobeMyungjoStdM",
119     L"Batang,Bookman Old Style,Consolas,STZhongsong", 0, 936},
120    {0x5fefbfad, L"Batang", L"Arial", 2, 1252},
121    {0x605342b9, L"DotumChe", L"Arial", 1, 1252},
122    {0x608c5f9a, L"KaiTi_GB2312", L"Arial", 0, 936},
123    {0x61efd0d1, L"MaturaMTScriptCapitals", L"Arial", 0, 1252},
124    {0x626608a9, L"MVBoli", L"Arial", 0, 1252},
125    {0x630501a3, L"SmallFonts", L"Arial", 0, 1252},
126    {0x65d0e2a9, L"FZYTK--GBK1-0", L"Arial", 0, 936},
127    {0x669f29e1, L"FZSTK--GBK1-0", L"Arial", 0, 936},
128    {0x673a9e5f, L"Tunga", L"Arial", 0, 1252},
129    {0x691aa4ce, L"NiagaraSolid", L"Arial", 0, 1252},
130    {0x696259b7, L"Corbel", L"Arial", 0, 1252},
131    {0x696ee9be, L"STXihei", L"Arial", 0, 936},
132    {0x6c59cf69, L"Dotum", L"Arial", 0, 1252},
133    {0x707fa561, L"Gungsuh", L"Arial", 2, 1252},
134    {0x71416bb2, L"ZWAdobeF", L"Arial", 0, 1252},
135    {0x71b41801, L"Verdana", L"Arial", 0, 1252},
136    {0x73f25e4c, L"PalatinoLinotype", L"Arial", 0, 1252},
137    {0x73f4d19f, L"NiagaraEngraved", L"Arial", 0, 1252},
138    {0x74001694, L"MyriadProBlack", L"Book Antiqua,Constantia,Dotum,Georgia", 0,
139     1252},
140    {0x74b14d8f, L"Haettenschweiler", L"Arial", 0, 1252},
141    {0x74cb44ee, L"NSimSun", L"Arial", 1, 936},
142    {0x76b4d7ff, L"Shruti", L"Arial", 0, 1252},
143    {0x788b3533, L"Webdings", L"Arial", 6, 42},
144    {0x797dde99, L"MSSerif", L"Arial", 0, 1252},
145    {0x7a0f9e9e, L"MSMincho", L"Arial", 1, 1252},
146    {0x7b439caf, L"OldEnglishTextMT", L"Arial", 0, 1252},
147    {0x8213a433, L"LucidaSans-Typewriter", L"Arial", 0, 1252},
148    {0x82fec929, L"AdobeSongStdL",
149     L"Centaur,Calibri,STSong,Bell MT,Garamond,Times New Roman", 0, 936},
150    {0x83581825, L"Modern", L"Arial", 0, 1252},
151    {0x835a2823, L"Algerian", L"Arial", 0, 1252},
152    {0x83dab9f5, L"Script", L"Arial", 0, 1252},
153    {0x847b56da, L"Tahoma", L"Arial", 0, 1252},
154    {0x8a783cb2, L"SimSun-PUA", L"Arial", 0, 1252},
155    {0x8b5cac0e, L"Onyx", L"Arial", 0, 1252},
156    {0x8c6a499e, L"Gulim", L"Arial", 0, 1252},
157    {0x8e0af790, L"JuiceITC", L"Arial", 0, 1252},
158    {0x8e8d43b2, L"Centaur", L"Arial", 2, 1252},
159    {0x8ee4dcca, L"BookshelfSymbol7", L"Arial", 0, 1252},
160    {0x90794800, L"BellGothicStdLight", L"Bell MT,Calibri,Times New Roman", 0,
161     1252},
162    {0x909b516a, L"Century", L"Arial", 2, 1252},
163    {0x92ae370d, L"MSOutlook", L"Arial", 4, 42},
164    {0x93c9fbf1, L"LucidaFax", L"Arial", 2, 1252},
165    {0x9565085e, L"BookAntiqua", L"Arial", 2, 1252},
166    {0x9856d95d, L"AdobeMingStdL", L"Arial,Arial Unicode MS,Cambria,BatangChe",
167     0, 949},
168    {0x9bbadd6b, L"ColonnaMT", L"Arial", 0, 1252},
169    {0x9cbd16a4, L"ShowcardGothic-Reg", L"Arial", 0, 1252},
170    {0x9d73008e, L"MSSansSerif", L"Arial", 0, 1252},
171    {0xa0607db1, L"GungsuhChe", L"Arial", 1, 1252},
172    {0xa0bcf6a1, L"LatinWide", L"Arial", 2, 1252},
173    {0xa1429b36, L"Symbol", L"Arial", 6, 42},
174    {0xa1fa5abc, L"Wingdings2", L"Arial", 6, 42},
175    {0xa1fa5abd, L"Wingdings3", L"Arial", 6, 42},
176    {0xa427bad4, L"InformalRoman-Regular", L"Arial", 8, 1252},
177    {0xa8b92ece, L"FZSTK--GBK1-0", L"Arial", 0, 936},
178    {0xa8d83ece, L"CalifornianFB", L"Arial", 2, 1252},
179    {0xaa3e082c, L"Kingsoft-Phonetic", L"Arial", 0, 1252},
180    {0xaa6bcabe, L"HarlowSolidItalic", L"Arial", 0, 1252},
181    {0xade5337c, L"MSUIGothic", L"Arial", 0, 1252},
182    {0xb08dd941, L"WideLatin", L"Arial", 2, 1252},
183    {0xb207f05d, L"PoorRichard", L"Arial", 2, 1252},
184    {0xb3bc492f, L"JuiceITC-Regular", L"Arial", 0, 1252},
185    {0xb5545399, L"Marlett", L"Arial", 4, 42},
186    {0xb5dd1ebb, L"BritannicBold", L"Arial", 0, 1252},
187    {0xb699c1c5, L"LucidaCalligraphy-Italic", L"Arial", 0, 1252},
188    {0xb725d629, L"TimesNewRoman", L"Arial", 2, 1252},
189    {0xb7eaebeb, L"AdobeHeitiStdR", L"Batang,Century,Dotum", 0, 936},
190    {0xbd29c486, L"BerlinSansFBDemi-Bold", L"Arial", 0, 1252},
191    {0xbe8a8db4, L"BookshelfSymbolSeven", L"Arial", 0, 1252},
192    {0xc16c0118, L"AdobeHebrew", L"Bell MT,Berlin Sans FB,Calibri", 0, 1252},
193    {0xc318b0af, L"MyriadProLight", L"Calibri,STFangsong,Times New Roman", 0,
194     1252},
195    {0xc65e5659, L"CambriaMath", L"Arial", 2, 1252},
196    {0xc75c8f05, L"LucidaConsole", L"Arial", 1, 1252},
197    {0xca7c35d6, L"Calibri", L"Arial", 0, 1252},
198    {0xcb053f53, L"MicrosoftYaHei", L"Arial", 0, 936},
199    {0xcb7190f9, L"Magneto-Bold", L"Arial", 0, 1252},
200    {0xcca00cc5, L"System", L"Arial", 0, 1252},
201    {0xccad6f76, L"Jokerman-Regular", L"Arial", 0, 1252},
202    {0xccc5818c, L"EuroSign", L"Arial", 0, 1252},
203    {0xcf3d7234, L"LucidaHandwriting-Italic", L"Arial", 0, 1252},
204    {0xcf7b8fdb, L"MinionPro",
205     L"Bell MT,Corbel,Times New Roman,Cambria,Berlin Sans FB", 0, 1252},
206    {0xcfe5755f, L"Simhei", L"Arial", 1, 936},
207    {0xd011f4ee, L"MSPGothic", L"Arial", 0, 1252},
208    {0xd060e7ef, L"Vivaldi", L"Arial", 8, 1252},
209    {0xd07edec1, L"FranklinGothic-Medium", L"Arial", 0, 1252},
210    {0xd107243f, L"SimSun", L"Arial", 0, 936},
211    {0xd1881562, L"ArialNarrow", L"Arial Narrow", 0, 1252},
212    {0xd22b7dce, L"BodoniMTPosterCompressed", L"Arial", 0, 1252},
213    {0xd22bfa60, L"ComicSansMS", L"Arial", 8, 1252},
214    {0xd3bd0e35, L"Bauhaus93", L"Arial", 0, 1252},
215    {0xd429ee7a, L"STFangsong", L"Arial", 0, 936},
216    {0xd6679c12, L"BernardMTCondensed", L"Arial", 0, 1252},
217    {0xd8e8a027, L"LucidaSans", L"Arial", 0, 1252},
218    {0xd9fe7761, L"HighTowerText-Reg", L"Arial", 2, 1252},
219    {0xda7e551e, L"STSong", L"Arial", 0, 936},
220    {0xdaa6842d, L"STZhongsong", L"Arial", 0, 936},
221    {0xdaaab93f, L"STFangsong", L"Arial", 0, 936},
222    {0xdaeb0713, L"STSong", L"Arial", 0, 936},
223    {0xdafedbef, L"STCaiyun", L"Arial", 0, 936},
224    {0xdb00a3d9, L"Broadway", L"Arial", 0, 1252},
225    {0xdb1f5ad4, L"STXinwei", L"Arial", 0, 936},
226    {0xdb326e7f, L"STKaiti", L"Arial", 0, 936},
227    {0xdb69595a, L"STHupo", L"Arial", 0, 936},
228    {0xdba0082c, L"STXihei", L"Arial", 0, 936},
229    {0xdbd0ab18, L"STXingkai", L"Arial", 0, 936},
230    {0xdc1a7db1, L"STLiti", L"Arial", 0, 936},
231    {0xdc33075f, L"KristenITC-Regular", L"Arial", 8, 1252},
232    {0xdcc7009c, L"Harrington", L"Arial", 0, 1252},
233    {0xdd712466, L"ArialBlack", L"Arial", 0, 1252},
234    {0xdde87b3e, L"Impact", L"Arial", 0, 1252},
235    {0xdf69fb32, L"SnapITC", L"Arial", 0, 1252},
236    {0xdf8b25e8, L"CenturyGothic", L"Arial", 0, 1252},
237    {0xe0f705c0, L"KristenITC", L"Arial", 8, 1252},
238    {0xe1427573, L"Raavi", L"Arial", 0, 1252},
239    {0xe2cea0cb, L"Magneto", L"Arial", 0, 1252},
240    {0xe36a9e17, L"Ravie", L"Arial", 0, 1252},
241    {0xe433f8e2, L"Parchment", L"Arial", 8, 1252},
242    {0xe43dff4a, L"Wingdings", L"Arial", 4, 42},
243    {0xe4e2c405, L"MTExtra", L"Arial", 6, 42},
244    {0xe618cc35, L"InformalRoman", L"Arial", 8, 1252},
245    {0xe6c27ffc, L"Mistral", L"Arial", 8, 1252},
246    {0xe7ebf4b9, L"Courier", L"Courier New", 0, 1252},
247    {0xe8bc4a9d, L"MSReferenceSpecialty", L"Arial", 0, 1252},
248    {0xe90fb013, L"TempusSansITC", L"Arial", 0, 1252},
249    {0xec637b42, L"Consolas", L"Verdana", 1, 1252},
250    {0xed3a683b, L"STXinwei", L"Arial", 0, 936},
251    {0xef264cd1, L"LucidaHandwriting", L"Arial", 0, 1252},
252    {0xf086bca2, L"BaskervilleOldFace", L"Arial", 0, 1252},
253    {0xf1028030, L"Mangal", L"Arial", 2, 1252},
254    {0xf1da7eb9, L"ShowcardGothic", L"Arial", 0, 1252},
255    {0xf210f06a, L"ArialMT", L"Arial", 0, 1252},
256    {0xf477f16a, L"Latha", L"Arial", 0, 1252},
257    {0xf616f3dd, L"LiSu", L"Arial", 1, 936},
258    {0xfa479aa6, L"MicrosoftYaHei", L"Arial", 0, 936},
259    {0xfcd19697, L"BookmanOldStyle", L"Arial", 0, 1252},
260    {0xfe209a82, L"LucidaCalligraphy", L"Arial", 0, 1252},
261    {0xfef135f8, L"AdobeHeitiStd-Regular", L"Batang,Century,Dotum", 0, 936},
262};
263#elif _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_
264static const XFA_FONTINFO g_XFAFontsMap[] = {
265    {0x01d5d33e, L"SimSun",
266     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR "
267     L"PL UMing TW MBE",
268     0, 936},
269    {0x01e4f102, L"YouYuan",
270     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR "
271     L"PL UMing TW MBE",
272     1, 936},
273    {0x030549dc, L"LiSu",
274     L"WenQuanYi Zen Hei,WenQuanYi Zen Hei Sharp,WenQuanYi Zen Hei "
275     L"Mono,WenQuanYi Micro Hei",
276     1, 936},
277    {0x032edd44, L"Simhei",
278     L"WenQuanYi Zen Hei,WenQuanYi Zen Hei Sharp,WenQuanYi Zen Hei "
279     L"Mono,WenQuanYi Micro Hei",
280     1, 936},
281    {0x03eac6fc, L"PoorRichard-Regular", L"Droid Sans Japanese,FreeSerif", 2,
282     1252},
283    {0x03ed90e6, L"Nina", L"FreeSerif", 0, 1252},
284    {0x077b56b3, L"KingsoftPhoneticPlain",
285     L"Tibetan Machine Uni,LKLUG,Samyak Gujarati,Droid Sans Thai,Droid Sans "
286     L"Armenian,Untitled1,utkal,Lohit Oriya",
287     0, 1252},
288    {0x078ed524, L"MicrosoftSansSerif",
289     L"Droid Sans Japanese,FreeSerif,WenQuanYi Micro Hei", 0, 1252},
290    {0x089b18a9, L"Arial",
291     L"Droid Sans Japanese,DejaVu Sans Condensed,FreeSerif,WenQuanYi Micro Hei",
292     0, 1252},
293    {0x0b2cad72, L"MonotypeCorsiva", L"Droid Sans Japanese,FreeSerif", 8, 1252},
294    {0x0bb003e7, L"Kartika",
295     L"FreeSans,Liberation Sans,Liberation Sans Narrow,Nimbus Sans "
296     L"L,Garuda,FreeSerif,WenQuanYi Micro Hei",
297     2, 1252},
298    {0x0bb469df, L"VinerHandITC",
299     L"Droid Sans Japanese,Ubuntu,Liberation Sans,Liberation Serif", 8, 1252},
300    {0x0bc1a851, L"SegoeUI", L"Droid Sans Japanese,DejaVu Sans", 0, 1252},
301    {0x0c112ebd, L"KozukaGothicPro-VIM", L"FreeSerif", 0, 1252},
302    {0x0cfcb9c1, L"AdobeThai", L"Droid Sans Japanese,Waree", 0, 847},
303    {0x0e7de0f9, L"Playbill",
304     L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid "
305     L"Sans Ethiopic,Droid Sans Japanese,FreeSerif",
306     0, 1252},
307    {0x0eff47c3, L"STHupo", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
308     936},
309    {0x107ad374, L"Constantia",
310     L"Droid Sans Japanese,FreeSerif,WenQuanYi Micro Hei,Ubuntu", 2, 1252},
311    {0x12194c2d, L"KunstlerScript", L"Droid Sans Japanese,Liberation Serif", 8,
312     1252},
313    {0x135ef6a1, L"MinionProSmBd", L"Liberation Serif", 0, 1252},
314    {0x158c4049, L"Garamond",
315     L"Droid Sans Japanese,Liberation Serif,Ubuntu,FreeSerif", 2, 1252},
316    {0x160ecb24, L"STZhongsong",
317     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
318     L"Sharp,WenQuanYi Micro Hei",
319     0, 936},
320    {0x161ed07e, L"MSGothic",
321     L"WenQuanYi Micro Hei Mono,WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,AR PL "
322     L"UMing CN,AR PL UMing HK,AR PL UMing TW",
323     1, 1252},
324    {0x171d1ed1, L"SnapITC-Regular",
325     L"Liberation Sans Narrow,Ubuntu Condensed,Nimbus Sans L,DejaVu Sans", 0,
326     1252},
327    {0x18d1188f, L"Cambria", L"Droid Sans Japanese,FreeSerif,FreeMono", 2,
328     1252},
329    {0x18eaf350, L"ArialUnicodeMS",
330     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
331     L"Sharp,WenQuanYi Micro Hei",
332     0, 936},
333    {0x1a92d115, L"MingLiU",
334     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
335     L"Sharp,WenQuanYi Micro Hei",
336     1, 1252},
337    {0x1cc217c6, L"TrebuchetMS",
338     L"Droid Sans Japanese,Liberation Serif,FreeSerif,Ubuntu", 0, 1252},
339    {0x1d649596, L"BasemicTimes",
340     L"Liberation Serif,Times New Roman,Droid Sans Japanese,FreeSerif,Ubuntu",
341     0, 1252},
342    {0x1e34ee60, L"BellMT",
343     L"KacstQurn,Droid Sans Japanese,Ubuntu,Liberation Serif", 2, 1252},
344    {0x1eb36945, L"CooperBlack",
345     L"KacstQurn,Droid Sans Japanese,FreeMono,Liberation Mono, WenQuanYi Micro "
346     L"Hei Mono",
347     2, 1252},
348    {0x1ef7787d, L"BatangChe",
349     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing "
350     L"TW,WenQuanYi Zen Hei,WenQuanYi Micro Hei",
351     1, 1252},
352    {0x20b3bd3a, L"BrushScriptMT",
353     L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,Droid Sans "
354     L"Japanese,URW Chancery L,Liberation Sans",
355     8, 1252},
356    {0x220877aa, L"Candara", L"Droid Sans Japanese,DejaVu Sans", 0, 1252},
357    {0x22135007, L"FreestyleScript-Regular",
358     L"KacstQurn,Droid Sans Japanese,Liberation Sans", 8, 1252},
359    {0x251059c3, L"Chiller",
360     L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,Droid Sans "
361     L"Japanese,Liberation Sans",
362     0, 1252},
363    {0x25bed6dd, L"MSReferenceSansSerif",
364     L"DejaVu Sans Condensed,Ubuntu Condensed,Droid Sans Japanese,AR PL UKai "
365     L"HK",
366     0, 1252},
367    {0x28154c81, L"Parchment-Regular", L"Droid Sans Japanese,Liberation Sans",
368     8, 1252},
369    {0x29711eb9, L"STLiti", L"AR PL UKai HK", 0, 936},
370    {0x2b1993b4, L"Basemic",
371     L"Liberation Serif,Droid Sans Japanese,Liberation Sans", 0, 1252},
372    {0x2b316339, L"NiagaraSolid-Reg", L"Droid Sans Japanese,Liberation Sans", 0,
373     1252},
374    {0x2c147529, L"FootlightMTLight",
375     L"KacstQurn,Droid Sans Japanese,Liberation Sans", 0, 1252},
376    {0x2c198928, L"HarlowSolid",
377     L"KacstQurn,Droid Sans Japanese,Liberation Sans", 0, 1252},
378    {0x2c6ac6b2, L"LucidaBright",
379     L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid "
380     L"Sans Japanese,Liberation Sans",
381     2, 1252},
382    {0x2c9f38e2, L"KozukaMinchoPro-VIR", L"DejaVu Sans", 0, 1252},
383    {0x2d5a47b0, L"STCaiyun", L"AR PL UKai HK", 0, 936},
384    {0x2def26bf, L"BernardMT-Condensed",
385     L"KacstQurn,Droid Sans Japanese,DejaVu Serif", 0, 1252},
386    {0x2fd8930b, L"KozukaMinchoPr6NR", L"DejaVu Serif", 0, 1252},
387    {0x3115525a, L"FangSong_GB2312",
388     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
389     L"Sharp,WenQuanYi Micro Hei",
390     0, 1252},
391    {0x31327817, L"MyriadPro",
392     L"Ubuntu Condensed,Droid Sans Japanese, FreeSerif", 0, 1252},
393    {0x32244975, L"Helvetica",
394     L"Ubuntu,DejaVu Sans Condensed,Liberation Sans,Liberation Sans "
395     L"Narrow,Nimbus Sans L",
396     0, 1252},
397    {0x32ac995c, L"Terminal", L"DejaVu Serif", 0, 1252},
398    {0x338d648a, L"NiagaraEngraved-Reg", L"Droid Sans Japanese,DejaVu Serif", 0,
399     1252},
400    {0x33bb65f2, L"Sylfaen", L"Droid Sans Japanese,DejaVu Sans", 2, 1252},
401    {0x3402c30e, L"MSPMincho",
402     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW", 2,
403     1252},
404    {0x3412bf31, L"SimSun-PUA",
405     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing CN,AR PL UMing HK", 0,
406     936},
407    {0x36eb39b9, L"BerlinSansFB",
408     L"Droid Sans Japanese,Liberation Serif,Ubuntu,FreeSerif", 0, 1252},
409    {0x36f42055, L"UniversATT", L"Microsoft Sans Serif", 0, 1252},
410    {0x3864c4f6, L"HighTowerText", L"Droid Sans Japanese,DejaVu Serif", 2,
411     1252},
412    {0x3a257d03, L"FangSong_GB2312",
413     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei", 0, 1252},
414    {0x3c7d1d07, L"Garamond3LTStd",
415     L"Droid Sans Japanese,Ubuntu Condensed,DejaVu Sans Condensed,Liberation "
416     L"Serif,Ubuntu,FreeSerif",
417     2, 1252},
418    {0x3cdae668, L"FreestyleScript",
419     L"KacstQurn,Droid Sans Japanese,DejaVu Sans", 8, 1252},
420    {0x3d55aed7, L"Jokerman", L"Droid Sans Japanese,DejaVu Sans", 0, 1252},
421    {0x3d5b4385, L"PMingLiU",
422     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
423     L"Sharp,WenQuanYi Micro Hei",
424     2, 1252},
425    {0x3d9b7669, L"EstrangeloEdessa", L"Droid Sans Japanese,DejaVu Sans", 0,
426     1252},
427    {0x3e532d74, L"FranklinGothicMedium", L"Droid Sans Japanese,Ubuntu", 0,
428     1252},
429    {0x3e6aa32d, L"NSimSun",
430     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
431     L"Sharp,WenQuanYi Micro Hei",
432     1, 936},
433    {0x3f6c36a8, L"Gautami",
434     L"Droid Arabic Naskh,Droid Sans Ethiopic, mry_KacstQurn,Droid Sans "
435     L"Japanese,FreeSans",
436     0, 1252},
437    {0x3ff32662, L"Chiller-Regular",
438     L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,FreeSans", 0, 1252},
439    {0x409de312, L"ModernNo.20",
440     L"KacstQurn,Droid Sans Japanese,Nimbus Sans L,Nimbus Sans L,FreeSans", 2,
441     1252},
442    {0x41443c5e, L"Georgia", L"Droid Sans Japanese,FreeSans", 2, 1252},
443    {0x4160ade5, L"BellGothicStdBlack", L"FreeSans", 0, 1252},
444    {0x421976c4, L"Modern-Regular", L"FreeSans", 2, 1252},
445    {0x422a7252, L"Stencil", L"Droid Sans Japanese,FreeSans,Liberation Sans", 0,
446     1252},
447    {0x42c8554f, L"Fixedsys", L"FreeSerif", 0, 1252},
448    {0x435cb41d, L"Roman", L"FreeSerif", 0, 1252},
449    {0x47882383, L"CourierNew",
450     L"FreeMono,WenQuanYi Micro Hei Mono,AR PL UKai CN,AR PL UKai HK,AR PL "
451     L"UKai TW,AR PL UKai TW MBE,DejaVu Sans",
452     1, 1252},
453    {0x480a2338, L"BerlinSansFBDemi", L"Droid Sans Japanese,Liberation Serif",
454     0, 1252},
455    {0x480bf7a4, L"CourierStd", L"DejaVu Sans", 0, 1252},
456    {0x481ad6ed, L"VladimirScript", L"Droid Sans Japanese,DejaVu Serif", 8,
457     1252},
458    {0x4911577a, L"YouYuan",
459     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW", 1,
460     936},
461    {0x4a788d72, L"STXingkai", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
462     936},
463    {0x4bf88566, L"SegoeCondensed", L"FreeSerif", 0, 1252},
464    {0x4ccf51a4, L"BerlinSansFB-Reg", L"Droid Sans Japanese,Liberation Serif",
465     0, 1252},
466    {0x4ea967ce, L"GulimChe",
467     L"WenQuanYi Zen Hei Mono,AR PL UKai CN,AR PL UKai HK,AR PL UKai TW,AR PL "
468     L"UKai TW MBE",
469     1, 1252},
470    {0x4f68bd79, L"LetterGothicStd",
471     L"FreeMono,Liberation Mono,Andale Mono,WenQuanYi Micro Hei Mono", 0, 1252},
472    {0x51a0d0e6, L"KozukaGothicPr6NM", L"FreeSerif", 0, 1252},
473    {0x531b3dea, L"BasemicSymbol", L"FreeSerif", 0, 1252},
474    {0x5333fd39, L"CalifornianFB-Reg",
475     L"Droid Sans Japanese,URW Chancery L,FreeSerif", 2, 1252},
476    {0x53561a54, L"FZYTK--GBK1-0",
477     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
478     L"Sharp,WenQuanYi Micro Hei",
479     0, 936},
480    {0x55e0dde6, L"LucidaSansTypewriter",
481     L"Ubuntu Mono,DejaVu Sans Mono,Nimbus Mono L,Liberation Mono,Courier 10 "
482     L"Pitch,FreeMono",
483     0, 1252},
484    {0x574d4d3d, L"AdobeArabic", L"Droid Sans Japanese,DejaVu Sans", 0, 1252},
485    {0x5792e759, L"STKaiti", L"WenQuanYi Micro Hei Mono", 0, 936},
486    {0x5921978e, L"LucidaSansUnicode", L"Droid Sans Japanese,DejaVu Sans", 0,
487     1252},
488    {0x594e2da4, L"Vrinda",
489     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Arabic "
490     L"Naskh,mry_KacstQurn,Droid Sans Japanese,FreeSans,FreeSerif",
491     0, 1252},
492    {0x59baa9a2, L"KaiTi_GB2312",
493     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
494     L"Sharp,WenQuanYi Micro Hei",
495     0, 1252},
496    {0x5cfedf4f, L"BaskOldFace",
497     L"KacstQurn,Droid Sans Japanese,Ubuntu,Liberation Serif", 0, 1252},
498    {0x5e16ac91, L"TrajanPro",
499     L"Nimbus Sans L,AR PL UMing HK,AR PL UKai HK,AR PL UMing TW,AR PL UMing "
500     L"TW MBE,DejaVu Sans,DejaVu Serif",
501     0, 1252},
502    {0x5f388196, L"ITCLegacySansStdMedium",
503     L"Liberation Serif,FreeSerif,FreeSans,Ubuntu", 0, 1252},
504    {0x5f97921c, L"AdobeMyungjoStdM",
505     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
506     L"Sharp,WenQuanYi Micro Hei",
507     0, 936},
508    {0x5fefbfad, L"Batang",
509     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
510     L"Sharp,WenQuanYi Micro Hei",
511     2, 1252},
512    {0x605342b9, L"DotumChe",
513     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW", 1,
514     1252},
515    {0x608c5f9a, L"KaiTi_GB2312",
516     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
517     L"Sharp,WenQuanYi Micro Hei",
518     0, 936},
519    {0x61efd0d1, L"MaturaMTScriptCapitals",
520     L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid "
521     L"Sans Japanese,DejaVu Serif,DejaVu Sans",
522     0, 1252},
523    {0x626608a9, L"MVBoli",
524     L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid Sans "
525     L"Ethiopic,Droid Sans Japanese,DejaVu Sans",
526     0, 1252},
527    {0x630501a3, L"SmallFonts", L"DejaVu Serif", 0, 1252},
528    {0x65d0e2a9, L"FZYTK--GBK1-0",
529     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
530     L"Sharp,WenQuanYi Micro Hei",
531     0, 936},
532    {0x669f29e1, L"FZSTK--GBK1-0",
533     L"AR PL UMing CN,AR PL UKai CN, AR PL UMing HK", 0, 936},
534    {0x673a9e5f, L"Tunga",
535     L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid Sans "
536     L"Japanese,DejaVu Serif",
537     0, 1252},
538    {0x691aa4ce, L"NiagaraSolid", L"Droid Sans Japanese,DejaVu Serif", 0, 1252},
539    {0x696259b7, L"Corbel", L"Droid Sans Japanese,DejaVu Sans", 0, 1252},
540    {0x696ee9be, L"STXihei", L"WenQuanYi Micro Hei Mono", 0, 936},
541    {0x6c59cf69, L"Dotum", L"WenQuanYi Zen Hei Mono", 0, 1252},
542    {0x707fa561, L"Gungsuh", L"WenQuanYi Zen Hei Mono", 2, 1252},
543    {0x71416bb2, L"ZWAdobeF",
544     L"KacstArt,KacstBookm,KacstDecorative,KacstDigital,KacstFarsi,KacstLetter,"
545     L"KacstOffice,Dingbats,FreeSerif",
546     0, 1252},
547    {0x71b41801, L"Verdana",
548     L"DejaVu Sans Condensed,Ubuntu Condensed,Droid Sans Japanese,DejaVu Sans",
549     0, 1252},
550    {0x73f25e4c, L"PalatinoLinotype", L"Droid Sans Japanese,FreeSerif", 0,
551     1252},
552    {0x73f4d19f, L"NiagaraEngraved", L"Droid Sans Japanese,FreeSerif", 0, 1252},
553    {0x74001694, L"MyriadProBlack", L"Droid Sans Japanese,AR PL UKai HK", 0,
554     1252},
555    {0x74b14d8f, L"Haettenschweiler", L"Droid Sans Japanese,DejaVu Serif", 0,
556     1252},
557    {0x74cb44ee, L"NSimSun", L"WenQuanYi Zen Hei Mono", 1, 936},
558    {0x76b4d7ff, L"Shruti",
559     L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid Sans "
560     L"Japanese,FreeSans",
561     0, 1252},
562    {0x788b3533, L"Webdings", L"FreeSans", 6, 42},
563    {0x797dde99, L"MSSerif", L"FreeSans", 0, 1252},
564    {0x7a0f9e9e, L"MSMincho",
565     L"WenQuanYi Micro Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW",
566     1, 1252},
567    {0x7b439caf, L"OldEnglishTextMT",
568     L"Droid Sans Japanese,Liberation Sans,Ubuntu", 0, 1252},
569    {0x8213a433, L"LucidaSans-Typewriter",
570     L"Ubuntu Mono,Liberation Mono,DejaVu Sans Mono", 0, 1252},
571    {0x82fec929, L"AdobeSongStdL",
572     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
573     L"Sharp,WenQuanYi Micro Hei",
574     0, 936},
575    {0x83581825, L"Modern", L"FreeSans", 0, 1252},
576    {0x835a2823, L"Algerian",
577     L"KacstQurn,Droid Sans Japanese,FreeSans,Liberation Sans,Ubuntu", 0, 1252},
578    {0x83dab9f5, L"Script", L"FreeSans", 0, 1252},
579    {0x847b56da, L"Tahoma",
580     L"Droid Sans Japanese,DejaVu Sans Condensed,FreeSerif", 0, 1252},
581    {0x8a783cb2, L"SimSun-PUA",
582     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
583     L"Sharp,WenQuanYi Micro Hei",
584     0, 1252},
585    {0x8b5cac0e, L"Onyx", L"Droid Sans Japanese,Liberation Sans", 0, 1252},
586    {0x8c6a499e, L"Gulim",
587     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
588     L"Sharp,WenQuanYi Micro Hei",
589     0, 1252},
590    {0x8e0af790, L"JuiceITC", L"Droid Sans Japanese,Liberation Sans", 0, 1252},
591    {0x8e8d43b2, L"Centaur",
592     L"KacstQurn,Droid Sans Japanese,Khmer OS,Khmer OS System", 2, 1252},
593    {0x8ee4dcca, L"BookshelfSymbol7", L"Liberation Sans", 0, 1252},
594    {0x90794800, L"BellGothicStdLight", L"Liberation Sans", 0, 1252},
595    {0x909b516a, L"Century",
596     L"Droid Sans Japanese,Liberation Sans,Liberation Mono,Liberation Serif", 2,
597     1252},
598    {0x92ae370d, L"MSOutlook", L"Liberation Sans", 4, 42},
599    {0x93c9fbf1, L"LucidaFax",
600     L"KacstQurn,Droid Arabic Naskh,Droid Sans "
601     L"Ethiopic,mry_KacstQurn,Liberation Sans",
602     2, 1252},
603    {0x9565085e, L"BookAntiqua",
604     L"Droid Sans Japanese,Liberation Sans,Liberation Serif", 2, 1252},
605    {0x9856d95d, L"AdobeMingStdL", L"AR PL UMing HK", 0, 949},
606    {0x9bbadd6b, L"ColonnaMT",
607     L"KacstQurn,Droid Sans Japanese,Khmer OS,Khmer OS System", 0, 1252},
608    {0x9cbd16a4, L"ShowcardGothic-Reg",
609     L"Droid Sans Japanese,Liberation Sans,Ubuntu", 0, 1252},
610    {0x9d73008e, L"MSSansSerif", L"FreeSerif", 0, 1252},
611    {0xa0607db1, L"GungsuhChe",
612     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
613     L"Sharp,WenQuanYi Micro Hei",
614     1, 1252},
615    {0xa0bcf6a1, L"LatinWide", L"FreeSerif", 2, 1252},
616    {0xa1429b36, L"Symbol", L"FreeSerif", 6, 42},
617    {0xa1fa5abc, L"Wingdings2", L"FreeSerif", 6, 42},
618    {0xa1fa5abd, L"Wingdings3", L"FreeSerif", 6, 42},
619    {0xa427bad4, L"InformalRoman-Regular",
620     L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid Sans "
621     L"Japanese,FreeSerif",
622     8, 1252},
623    {0xa8b92ece, L"FZSTK--GBK1-0", L"AR PL UMing CN", 0, 936},
624    {0xa8d83ece, L"CalifornianFB", L"Droid Sans Japanese,FreeSerif", 2, 1252},
625    {0xaa3e082c, L"Kingsoft-Phonetic",
626     L"Tibetan Machine Uni,LKLUG,Samyak Gujarati,Droid Sans "
627     L"Thai,utkal,Kedage,Mallige,AR PL UKai CN",
628     0, 1252},
629    {0xaa6bcabe, L"HarlowSolidItalic",
630     L"KacstQurn,Droid Sans Japanese,Liberation Serif", 0, 1252},
631    {0xade5337c, L"MSUIGothic",
632     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
633     L"Sharp,WenQuanYi Micro Hei",
634     0, 1252},
635    {0xb08dd941, L"WideLatin",
636     L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid "
637     L"Sans Japanese,Liberation Serif",
638     2, 1252},
639    {0xb12765e0, L"ITCLegacySansStdBook",
640     L"AR PL UMing HK,AR PL UKai HK,FreeSerif,Ubuntu,FreeSans", 0, 1252},
641    {0xb207f05d, L"PoorRichard", L"Droid Sans Japanese,Liberation Serif", 2,
642     1252},
643    {0xb3bc492f, L"JuiceITC-Regular", L"Droid Sans Japanese,Liberation Serif",
644     0, 1252},
645    {0xb5545399, L"Marlett", L"Liberation Serif", 4, 42},
646    {0xb5dd1ebb, L"BritannicBold",
647     L"KacstQurn,Droid Arabic Naskh,Droid Sans "
648     L"Ethiopic,mry_KacstQurn,Liberation Serif",
649     0, 1252},
650    {0xb699c1c5, L"LucidaCalligraphy-Italic",
651     L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid "
652     L"Sans Japanese,DejaVu Serif",
653     0, 1252},
654    {0xb725d629, L"TimesNewRoman", L"Droid Sans Japanese,Liberation Sans", 2,
655     1252},
656    {0xb7eaebeb, L"AdobeHeitiStdR",
657     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
658     L"Sharp,WenQuanYi Micro Hei",
659     0, 936},
660    {0xbd29c486, L"BerlinSansFBDemi-Bold", L"Droid Sans Japanese,DejaVu Serif",
661     0, 1252},
662    {0xbe8a8db4, L"BookshelfSymbolSeven", L"DejaVu Sans", 0, 1252},
663    {0xc16c0118, L"AdobeHebrew", L"Droid Sans Japanese,Ubuntu,Liberation Serif",
664     0, 1252},
665    {0xc318b0af, L"MyriadProLight",
666     L"Droid Sans Japanese,AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
667     1252},
668    {0xc65e5659, L"CambriaMath", L"Droid Sans Japanese,FreeSerif,FreeMono", 2,
669     1252},
670    {0xc75c8f05, L"LucidaConsole",
671     L"Liberation Mono,DejaVu Sans Mono,FreeMono,WenQuanYi Micro Hei Mono", 1,
672     1252},
673    {0xca7c35d6, L"Calibri", L"Droid Sans Japanese,DejaVu Sans", 0, 1252},
674    {0xcb053f53, L"MicrosoftYaHei",
675     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
676     L"Sharp,WenQuanYi Micro Hei",
677     0, 936},
678    {0xcb7190f9, L"Magneto-Bold",
679     L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid Sans "
680     L"Japanese,DejaVu Serif",
681     0, 1252},
682    {0xcca00cc5, L"System", L"DejaVu Sans", 0, 1252},
683    {0xccad6f76, L"Jokerman-Regular", L"Droid Sans Japanese,DejaVu Sans", 0,
684     1252},
685    {0xccc5818c, L"EuroSign", L"DejaVu Serif", 0, 1252},
686    {0xcf3d7234, L"LucidaHandwriting-Italic",
687     L"Liberation Sans Narrow,Ubuntu Condensed,Nimbus Sans L,DejaVu Serif", 0,
688     1252},
689    {0xcf7b8fdb, L"MinionPro", L"DejaVu Sans", 0, 1252},
690    {0xcfe5755f, L"Simhei",
691     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
692     L"Sharp,WenQuanYi Micro Hei",
693     1, 936},
694    {0xd011f4ee, L"MSPGothic",
695     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW", 0,
696     1252},
697    {0xd060e7ef, L"Vivaldi",
698     L"KacstQurn,Droid Sans Japanese,Liberation Sans,Ubuntu", 8, 1252},
699    {0xd07edec1, L"FranklinGothic-Medium", L"Droid Sans Japanese,Ubuntu", 0,
700     1252},
701    {0xd107243f, L"SimSun", L"WenQuanYi Zen Hei Mono", 0, 936},
702    {0xd1881562, L"ArialNarrow",
703     L"Liberation Sans Narrow,Droid Sans Japanese,FreeSerif", 0, 1252},
704    {0xd22b7dce, L"BodoniMTPosterCompressed",
705     L"Droid Sans Japanese,DejaVu Serif", 0, 1252},
706    {0xd22bfa60, L"ComicSansMS",
707     L"Droid Sans Japanese,FreeMono,Liberation Mono", 8, 1252},
708    {0xd3bd0e35, L"Bauhaus93",
709     L"KacstQurn,Droid Sans Japanese,Liberation Sans,Ubuntu", 0, 1252},
710    {0xd429ee7a, L"STFangsong", L"WenQuanYi Micro Hei Mono", 0, 936},
711    {0xd6679c12, L"BernardMTCondensed",
712     L"KacstQurn,Droid Sans Japanese,Nimbus Sans L,URW Chancery "
713     L"L,KacstOne,Liberation Sans",
714     0, 1252},
715    {0xd8e8a027, L"LucidaSans",
716     L"Liberation Sans Narrow,Nimbus Sans L,KacstQurn,Droid Arabic Naskh,Droid "
717     L"Sans Ethiopic,DejaVu Serif Condensed,Liberation Mono,Ubuntu",
718     0, 1252},
719    {0xd9fe7761, L"HighTowerText-Reg",
720     L"Droid Sans Japanese,Ubuntu,Liberation Serif", 2, 1252},
721    {0xda7e551e, L"STSong", L"WenQuanYi Micro Hei Mono", 0, 936},
722    {0xdaa6842d, L"STZhongsong",
723     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
724     L"Sharp,WenQuanYi Micro Hei",
725     0, 936},
726    {0xdaaab93f, L"STFangsong",
727     L"WenQuanYi Micro Hei Mono,WenQuanYi Zen Hei Mono,WenQuanYi Zen "
728     L"Hei,WenQuanYi Zen Hei Sharp",
729     0, 936},
730    {0xdaeb0713, L"STSong",
731     L"WenQuanYi Micro Hei Mono,WenQuanYi Zen Hei Mono,WenQuanYi Zen "
732     L"Hei,WenQuanYi Zen Hei Sharp",
733     0, 936},
734    {0xdafedbef, L"STCaiyun", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
735     936},
736    {0xdb00a3d9, L"Broadway",
737     L"KacstQurn,Droid Sans Japanese,DejaVu Sans,FreeMono,Liberation Mono", 0,
738     1252},
739    {0xdb1f5ad4, L"STXinwei", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
740     936},
741    {0xdb326e7f, L"STKaiti",
742     L"WenQuanYi Micro Hei Mono,WenQuanYi Zen Hei Mono,WenQuanYi Zen "
743     L"Hei,WenQuanYi Zen Hei Sharp",
744     0, 936},
745    {0xdb69595a, L"STHupo",
746     L"WenQuanYi Micro Hei Mono,WenQuanYi Zen Hei Mono,WenQuanYi Zen "
747     L"Hei,WenQuanYi Zen Hei Sharp",
748     0, 936},
749    {0xdba0082c, L"STXihei",
750     L" WenQuanYi Micro Hei Mono,WenQuanYi Zen Hei Mono,WenQuanYi Zen "
751     L"Hei,WenQuanYi Zen Hei Sharp",
752     0, 936},
753    {0xdbd0ab18, L"STXingkai", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
754     936},
755    {0xdc1a7db1, L"STLiti", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
756     936},
757    {0xdc33075f, L"KristenITC-Regular",
758     L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,DejaVu Sans "
759     L"Condensed,Ubuntu,Liberation Sans",
760     8, 1252},
761    {0xdcc7009c, L"Harrington",
762     L"KacstQurn,Droid Sans Japanese,Liberation Serif,FreeSerif,Ubuntu", 0,
763     1252},
764    {0xdd712466, L"ArialBlack",
765     L"Droid Sans Japanese,DejaVu Sans,DejaVu Serif,FreeMono", 0, 1252},
766    {0xdde87b3e, L"Impact", L"Droid Sans Japanese,DejaVu Serif", 0, 1252},
767    {0xdf69fb32, L"SnapITC",
768     L"Liberation Sans Narrow,Ubuntu Condensed,DejaVu Sans,DejaVu "
769     L"Serif,FreeMono",
770     0, 1252},
771    {0xdf8b25e8, L"CenturyGothic",
772     L"Droid Sans Japanese,Liberation Mono,Liberation Sans,Liberation Serif", 0,
773     1252},
774    {0xe0f705c0, L"KristenITC",
775     L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,DejaVu Sans "
776     L"Condensed,Ubuntu,Liberation Sans",
777     8, 1252},
778    {0xe1427573, L"Raavi",
779     L"Droid Arabic Naskh,Droid Sans "
780     L"Ethiopic,mry_KacstQurn,FreeSerif,Liberation Serif,Khmer OS",
781     0, 1252},
782    {0xe2cea0cb, L"Magneto",
783     L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,DejaVu "
784     L"Serif,DejaVu Serif Condensed,DejaVu Sans",
785     0, 1252},
786    {0xe36a9e17, L"Ravie",
787     L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,DejaVu "
788     L"Serif,DejaVu Sans,FreeMono",
789     0, 1252},
790    {0xe433f8e2, L"Parchment", L"Droid Sans Japanese,DejaVu Serif", 8, 1252},
791    {0xe43dff4a, L"Wingdings", L"DejaVu Serif", 4, 42},
792    {0xe4e2c405, L"MTExtra", L"DejaVu Serif", 6, 42},
793    {0xe618cc35, L"InformalRoman",
794     L"Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid Sans "
795     L"Japanese,Nimbus Sans L,DejaVu Sans Condensed,Ubuntu,Liberation Sans",
796     8, 1252},
797    {0xe6c27ffc, L"Mistral", L"Droid Sans Japanese,DejaVu Serif", 8, 1252},
798    {0xe7ebf4b9, L"Courier", L"DejaVu Sans,DejaVu Sans Condensed,FreeSerif", 0,
799     1252},
800    {0xe8bc4a9d, L"MSReferenceSpecialty", L"DejaVu Serif", 0, 1252},
801    {0xe90fb013, L"TempusSansITC",
802     L"Droid Sans Japanese,Ubuntu,Liberation Serif,FreeSerif", 0, 1252},
803    {0xec637b42, L"Consolas",
804     L"DejaVu Sans Condensed,AR PL UKai CN,AR PL UKai HK,AR PL UKai "
805     L"TW,FreeSerif,FreeSans",
806     1, 1252},
807    {0xed3a683b, L"STXinwei", L"AR PL UKai HK,AR PL UMing HK,AR PL UKai CN", 0,
808     936},
809    {0xef264cd1, L"LucidaHandwriting",
810     L"Liberation Sans Narrow,Ubuntu Condensed,Nimbus Sans "
811     L"L,KacstQurn,Liberation Mono",
812     0, 1252},
813    {0xf086bca2, L"BaskervilleOldFace",
814     L"KacstQurn,Droid Sans Japanese,Liberation Serif,Ubuntu,FreeSerif", 0,
815     1252},
816    {0xf1028030, L"Mangal",
817     L"FreeSans,TSCu_Paranar,Garuda,Liberation Sans,Liberation Sans "
818     L"Narrow,Nimbus Sans L",
819     2, 1252},
820    {0xf1da7eb9, L"ShowcardGothic",
821     L"Droid Sans Japanese,DejaVu Serif Condensed,DejaVu Sans "
822     L"Condensed,Liberation Sans,Ubuntu",
823     0, 1252},
824    {0xf210f06a, L"ArialMT",
825     L"Liberation Sans,Liberation Sans Narrow,FreeSans,Nimbus Sans L,Khmer OS "
826     L"System,Khmer OS",
827     0, 1252},
828    {0xf477f16a, L"Latha",
829     L"Liberation Sans Narrow,Nimbus Sans L,Droid Arabic "
830     L"Naskh,mry_KacstQurn,FreeSerif,Nimbus Sans L",
831     0, 1252},
832    {0xf616f3dd, L"LiSu",
833     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR "
834     L"PL UMing TW MBE",
835     1, 936},
836    {0xfa479aa6, L"MicrosoftYaHei",
837     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
838     L"Sharp,WenQuanYi Micro Hei",
839     0, 936},
840    {0xfcd19697, L"BookmanOldStyle",
841     L"Droid Sans Japanese,Liberation Mono,Liberation Sans,Liberation Serif", 0,
842     1252},
843    {0xfe209a82, L"LucidaCalligraphy",
844     L"KacstQurn,Droid Arabic Naskh,Droid Sans Ethiopic,mry_KacstQurn,Droid "
845     L"Sans Japanese,DejaVu Serif,DejaVu Sans,FreeMono",
846     0, 1252},
847    {0xfef135f8, L"AdobeHeitiStd-Regular",
848     L"WenQuanYi Zen Hei Mono,WenQuanYi Zen Hei,WenQuanYi Zen Hei "
849     L"Sharp,WenQuanYi Micro Hei",
850     0, 936},
851};
852#elif _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
853static const XFA_FONTINFO g_XFAFontsMap[] = {
854    {0x01d5d33e, L"SimSun", L"STHeiti,Heiti TC,STFangsong", 0, 936},
855    {0x01e4f102, L"YouYuan", L"STHeiti,Heiti TC,STFangsong", 1, 936},
856    {0x030549dc, L"LiSu", L"STHeiti,Heiti TC,STFangsong", 1, 936},
857    {0x032edd44, L"Simhei", L"STHeiti,Heiti TC,STFangsong", 1, 936},
858    {0x03eac6fc, L"PoorRichard-Regular",
859     L"Noteworthy,Avenir Next Condensed,Impact", 2, 1252},
860    {0x03ed90e6, L"Nina", L"Microsoft Sans Serif", 0, 1252},
861    {0x077b56b3, L"KingsoftPhoneticPlain",
862     L"LastResort,Apple "
863     L"Chancery,STIXVariants,STIXSizeOneSym,STIXSizeOneSym,Apple Braille",
864     0, 1252},
865    {0x078ed524, L"MicrosoftSansSerif", L"Songti SC,Apple Symbols", 0, 1252},
866    {0x089b18a9, L"Arial",
867     L"Arial Unicode MS,Microsoft Sans Serif,Apple Symbols", 0, 1252},
868    {0x0b2cad72, L"MonotypeCorsiva", L"Arial Narrow,Impact", 8, 1252},
869    {0x0bb003e7, L"Kartika",
870     L"Arial Unicode MS,Microsoft Sans Serif,Arial Narrow,Damascus", 2, 1252},
871    {0x0bb469df, L"VinerHandITC", L"Comic Sans MS,Songti SC,STSong", 8, 1252},
872    {0x0bc1a851, L"SegoeUI", L"Apple Symbols", 0, 1252},
873    {0x0c112ebd, L"KozukaGothicPro-VIM", L"Microsoft Sans Serif,Apple Symbols",
874     0, 1252},
875    {0x0cfcb9c1, L"AdobeThai", L"Avenir Next Condensed Ultra Light", 0, 847},
876    {0x0e7de0f9, L"Playbill", L"STIXNonUnicode", 0, 1252},
877    {0x0eff47c3, L"STHupo", L"Kaiti SC,Songti SC,STHeiti", 0, 936},
878    {0x107ad374, L"Constantia", L"Arial Unicode MS,Palatino,Baskerville", 2,
879     1252},
880    {0x12194c2d, L"KunstlerScript",
881     L"Avenir Next Condensed Demi Bold,Arial Narrow", 8, 1252},
882    {0x135ef6a1, L"MinionProSmBd", L"Microsoft Sans Serif,Apple Symbols", 0,
883     1252},
884    {0x158c4049, L"Garamond", L"Impact,Arial Narrow", 2, 1252},
885    {0x160ecb24, L"STZhongsong", L"STFangsong,Songti SC", 0, 936},
886    {0x161ed07e, L"MSGothic",
887     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing "
888     L"TW,Microsoft Sans Serif,Apple Symbols",
889     1, 1252},
890    {0x171d1ed1, L"SnapITC-Regular", L"STHeiti,Arial Black", 0, 1252},
891    {0x18d1188f, L"Cambria", L"Arial Unicode MS", 2, 1252},
892    {0x18eaf350, L"ArialUnicodeMS", L"Microsoft Sans Serif,Apple Symbols", 0,
893     936},
894    {0x1a92d115, L"MingLiU", L"Heiti SC,STHeiti", 1, 1252},
895    {0x1cc217c6, L"TrebuchetMS", L"Damascus,Impact,Arial Narrow", 0, 1252},
896    {0x1d649596, L"BasemicTimes", L"Liberation Serif,Impact,Arial Narrow", 0,
897     1252},
898    {0x1e34ee60, L"BellMT",
899     L"Papyrus,STIXNonUnicode,Microsoft Sans Serif,Avenir Light", 2, 1252},
900    {0x1eb36945, L"CooperBlack",
901     L"Marion,STIXNonUnicode,Arial Rounded MT Bold,Lucida Grande", 2, 1252},
902    {0x1ef7787d, L"BatangChe",
903     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,,AR PL UMing HK,AR PL UMing TW,AR "
904     L"PL UMing TW MBE,Arial Unicode MS,Heiti TC",
905     1, 1252},
906    {0x20b3bd3a, L"BrushScriptMT",
907     L"STIXNonUnicode,Damascus,Arial Narrow,Avenir Next Condensed,Cochin", 8,
908     1252},
909    {0x220877aa, L"Candara", L"Cochin,Baskerville,Marion", 0, 1252},
910    {0x22135007, L"FreestyleScript-Regular",
911     L"STIXNonUnicode,Nadeem,Zapf Dingbats", 8, 1252},
912    {0x251059c3, L"Chiller",
913     L"Zapf Dingbats,Damascus,STIXNonUnicode,Papyrus,KufiStandardGK,Baghdad", 0,
914     1252},
915    {0x25bed6dd, L"MSReferenceSansSerif",
916     L"Tahoma,Apple Symbols,Apple LiGothic,Arial Unicode MS,Lucida "
917     L"Grande,Microsoft Sans Serif",
918     0, 1252},
919    {0x28154c81, L"Parchment-Regular", L"Microsoft Sans Serif,Apple Symbols", 8,
920     1252},
921    {0x29711eb9, L"STLiti", L"Kaiti SC,Songti SC", 0, 936},
922    {0x2b1993b4, L"Basemic", L"Impact,Arial Narrow", 0, 1252},
923    {0x2b316339, L"NiagaraSolid-Reg", L"Microsoft Sans Serif,Apple Symbols", 0,
924     1252},
925    {0x2c147529, L"FootlightMTLight",
926     L"STIXNonUnicode,Avenir Next Condensed Heavy,PT Sans,Noteworthy", 0, 1252},
927    {0x2c198928, L"HarlowSolid",
928     L"Avenir Medium,Avenir Next Medium,Arial Unicode MS", 0, 1252},
929    {0x2c6ac6b2, L"LucidaBright",
930     L"PT Sans Narrow,Papyrus,Damascus,STIXNonUnicode,Arial Rounded MT "
931     L"Bold,Comic Sans MS,Avenir Next",
932     2, 1252},
933    {0x2c9f38e2, L"KozukaMinchoPro-VIR", L"Microsoft Sans Serif,Apple Symbols",
934     0, 1252},
935    {0x2d5a47b0, L"STCaiyun", L"Kaiti SC,Songti SC", 0, 936},
936    {0x2def26bf, L"BernardMT-Condensed",
937     L"Impact,Avenir Next Condensed Demi Bold,American Typewriter", 0, 1252},
938    {0x2fd8930b, L"KozukaMinchoPr6NR", L"Microsoft Sans Serif,Apple Symbols", 0,
939     1252},
940    {0x3115525a, L"FangSong_GB2312", L"Hiragino Sans GB,STHeiti", 0, 1252},
941    {0x31327817, L"MyriadPro", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
942    {0x32244975, L"Helvetica",
943     L"Arial Narrow,Arial Unicode MS,Damascus,STIXNonUnicode", 0, 1252},
944    {0x32ac995c, L"Terminal", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
945    {0x338d648a, L"NiagaraEngraved-Reg", L"Microsoft Sans Serif,Apple Symbols",
946     0, 1252},
947    {0x33bb65f2, L"Sylfaen", L"Arial Unicode MS,Marion", 2, 1252},
948    {0x3402c30e, L"MSPMincho", L"Arial Unicode MS,Apple SD Gothic Neo", 2,
949     1252},
950    {0x3412bf31, L"SimSun-PUA", L"STHeiti,Heiti TC,STFangsong", 0, 936},
951    {0x36eb39b9, L"BerlinSansFB", L"American Typewriter,Impact", 0, 1252},
952    {0x36f42055, L"UniversATT", L"Microsoft Sans Serif", 0, 1252},
953    {0x3864c4f6, L"HighTowerText", L"STIXGeneral,.Helvetica Neue Desk UI", 2,
954     1252},
955    {0x3a257d03, L"FangSong_GB2312", L"Hiragino Sans GB,STHeiti", 0, 1252},
956    {0x3cdae668, L"FreestyleScript", L"Nadeem,Zapf Dingbats,STIXNonUnicode", 8,
957     1252},
958    {0x3d55aed7, L"Jokerman",
959     L"Papyrus,Lucida Grande,Heiti TC,American Typewriter", 0, 1252},
960    {0x3d5b4385, L"PMingLiU", L"Heiti SC,STHeiti", 2, 1252},
961    {0x3d9b7669, L"EstrangeloEdessa", L"American Typewriter,Marion", 0, 1252},
962    {0x3e532d74, L"FranklinGothicMedium", L"Impact,Arial Narrow", 0, 1252},
963    {0x3e6aa32d, L"NSimSun", L"STHeiti,STFangsong", 1, 936},
964    {0x3f6c36a8, L"Gautami",
965     L"Damascus,STIXNonUnicode,STIXGeneral,American Typewriter", 0, 1252},
966    {0x3ff32662, L"Chiller-Regular", L"Papyrus,KufiStandardGK,Baghdad", 0,
967     1252},
968    {0x409de312, L"ModernNo.20", L"Avenir Next Condensed,Impact", 2, 1252},
969    {0x41443c5e, L"Georgia", L".Helvetica Neue Desk UI,Arial Unicode MS", 2,
970     1252},
971    {0x4160ade5, L"BellGothicStdBlack", L"Microsoft Sans Serif,Apple Symbols",
972     0, 1252},
973    {0x421976c4, L"Modern-Regular", L"Impact", 2, 1252},
974    {0x422a7252, L"Stencil", L"STIXNonUnicode,Songti SC,Georgia,Baskerville", 0,
975     1252},
976    {0x42c8554f, L"Fixedsys", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
977    {0x435cb41d, L"Roman", L"Arial Narrow", 0, 1252},
978    {0x47882383, L"CourierNew", L"PCMyungjo,Osaka,Arial Unicode MS,Songti SC",
979     1, 1252},
980    {0x480a2338, L"BerlinSansFBDemi",
981     L"STIXNonUnicode,American Typewriter,Avenir Next Condensed Heavy", 0,
982     1252},
983    {0x480bf7a4, L"CourierStd", L"Courier New", 0, 1252},
984    {0x481ad6ed, L"VladimirScript",
985     L"STIXNonUnicode,Avenir Next Condensed,Impact", 8, 1252},
986    {0x4911577a, L"YouYuan", L"STHeiti,Heiti TC", 1, 936},
987    {0x4a788d72, L"STXingkai", L"Kaiti SC,Songti SC", 0, 936},
988    {0x4bf88566, L"SegoeCondensed", L"Microsoft Sans Serif,Apple Symbols", 0,
989     1252},
990    {0x4ccf51a4, L"BerlinSansFB-Reg",
991     L"STIXNonUnicode,American Typewriter,Impact", 0, 1252},
992    {0x4ea967ce, L"GulimChe", L"Arial Unicode MS,Heiti TC,STFangsong", 1, 1252},
993    {0x4f68bd79, L"LetterGothicStd",
994     L"Courier New,Andale Mono,Ayuthaya,PCMyungjo,Osaka", 0, 1252},
995    {0x51a0d0e6, L"KozukaGothicPr6NM", L"Microsoft Sans Serif,Apple Symbols", 0,
996     1252},
997    {0x531b3dea, L"BasemicSymbol", L"Microsoft Sans Serif,Apple Symbols", 0,
998     1252},
999    {0x5333fd39, L"CalifornianFB-Reg",
1000     L"American Typewriter,Avenir Next Condensed,Impact", 2, 1252},
1001    {0x53561a54, L"FZYTK--GBK1-0", L"STFangsong,Songti SC,STSong", 0, 936},
1002    {0x55e0dde6, L"LucidaSansTypewriter", L"Menlo,Courier New,Andale Mono", 0,
1003     1252},
1004    {0x574d4d3d, L"AdobeArabic", L"Arial Narrow", 0, 1252},
1005    {0x5792e759, L"STKaiti", L"Songti SC,Arial Unicode MS", 0, 936},
1006    {0x5921978e, L"LucidaSansUnicode", L"Lucida Grande,Arial Unicode MS,Menlo",
1007     0, 1252},
1008    {0x594e2da4, L"Vrinda", L"Geeza Pro,Damascus,STIXGeneral,Gill Sans", 0,
1009     1252},
1010    {0x59baa9a2, L"KaiTi_GB2312", L"Hiragino Sans GB,STHeiti", 0, 1252},
1011    {0x5cfedf4f, L"BaskOldFace",
1012     L"Avenir Next Condensed Heavy,PT Sans,Avenir Next Condensed", 0, 1252},
1013    {0x5e16ac91, L"TrajanPro", L"Arial Narrow,PT Sans Narrow,Damascus", 0,
1014     1252},
1015    {0x5f97921c, L"AdobeMyungjoStdM",
1016     L"AppleMyungjo,AppleGothic,Arial Unicode MS", 0, 936},
1017    {0x5fefbfad, L"Batang", L"Arial Unicode MS,Songti SC", 2, 1252},
1018    {0x605342b9, L"DotumChe", L"Arial Unicode MS,Heiti TC", 1, 1252},
1019    {0x608c5f9a, L"KaiTi_GB2312", L"Hiragino Sans GB,STHeiti,Heiti TC", 0, 936},
1020    {0x61efd0d1, L"MaturaMTScriptCapitals",
1021     L"Kokonor,Damascus,STIXNonUnicode,STHeiti,Arial Black,Avenir Next Heavy",
1022     0, 1252},
1023    {0x626608a9, L"MVBoli",
1024     L"Apple Braille,Geeza Pro,Microsoft Sans Serif,Apple Symbols", 0, 1252},
1025    {0x630501a3, L"SmallFonts", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1026    {0x65d0e2a9, L"FZYTK--GBK1-0", L"STFangsong,Songti SC,STSong", 0, 936},
1027    {0x669f29e1, L"FZSTK--GBK1-0", L"STHeiti,Heiti TC", 0, 936},
1028    {0x673a9e5f, L"Tunga",
1029     L"Damascus,STIXNonUnicode,Avenir Next Condensed,Avenir Next Condensed "
1030     L"Ultra Light,Futura",
1031     0, 1252},
1032    {0x691aa4ce, L"NiagaraSolid", L"Microsoft Sans Serif,Apple Symbols", 0,
1033     1252},
1034    {0x696259b7, L"Corbel", L"Cochin,Baskerville,Marion", 0, 1252},
1035    {0x696ee9be, L"STXihei", L"STHeiti,Heiti TC,Songti SC,Arial Unicode MS", 0,
1036     936},
1037    {0x6c59cf69, L"Dotum", L"Arial Unicode MS,Songti SC", 0, 1252},
1038    {0x707fa561, L"Gungsuh", L"Arial Unicode MS,Heiti TC", 2, 1252},
1039    {0x71416bb2, L"ZWAdobeF",
1040     L"STIXSizeFourSym,STIXSizeThreeSym,STIXSizeTwoSym,STIXSizeOneSym", 0,
1041     1252},
1042    {0x71b41801, L"Verdana",
1043     L"Tahoma,Marion,Apple Symbols,.Helvetica Neue Desk UI,Lucida "
1044     L"Grande,Courier New",
1045     0, 1252},
1046    {0x73f25e4c, L"PalatinoLinotype", L"Palatino,Arial Unicode MS", 0, 1252},
1047    {0x73f4d19f, L"NiagaraEngraved", L"Microsoft Sans Serif,Apple Symbols", 0,
1048     1252},
1049    {0x74001694, L"MyriadProBlack", L"Palatino,Baskerville,Marion,Cochin", 0,
1050     1252},
1051    {0x74b14d8f, L"Haettenschweiler", L"Microsoft Sans Serif,Apple Symbols", 0,
1052     1252},
1053    {0x74cb44ee, L"NSimSun", L"STHeiti,Heiti TC,STFangsong", 1, 936},
1054    {0x76b4d7ff, L"Shruti",
1055     L"Damascus,STIXNonUnicode,Arial Unicode MS,American Typewriter", 0, 1252},
1056    {0x788b3533, L"Webdings", L"Microsoft Sans Serif,Apple Symbols", 6, 42},
1057    {0x797dde99, L"MSSerif", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1058    {0x7a0f9e9e, L"MSMincho",
1059     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR "
1060     L"PL UMing TW MBE,Arial Unicode MS,Apple SD Gothic Neo",
1061     1, 1252},
1062    {0x7b439caf, L"OldEnglishTextMT",
1063     L"STIXNonUnicode,Arial Unicode MS,Baskerville,Avenir Next Medium", 0,
1064     1252},
1065    {0x8213a433, L"LucidaSans-Typewriter",
1066     L"Comic Sans MS,Avenir Next,Arial Rounded MT Bold", 0, 1252},
1067    {0x82fec929, L"AdobeSongStdL", L"Heiti TC,STHeiti", 0, 936},
1068    {0x83581825, L"Modern", L"Avenir Next Condensed,Impact", 0, 1252},
1069    {0x835a2823, L"Algerian",
1070     L"STIXNonUnicode,Baskerville,Avenir Next Medium,American Typewriter", 0,
1071     1252},
1072    {0x83dab9f5, L"Script", L"Arial Narrow", 0, 1252},
1073    {0x847b56da, L"Tahoma", L"Songti SC,Apple Symbols", 0, 1252},
1074    {0x8a783cb2, L"SimSun-PUA", L"STHeiti,Heiti TC,STFangsong", 0, 1252},
1075    {0x8b5cac0e, L"Onyx", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1076    {0x8c6a499e, L"Gulim", L"Arial Unicode MS,Songti SC", 0, 1252},
1077    {0x8e0af790, L"JuiceITC", L"Nadeem,Al Bayan", 0, 1252},
1078    {0x8e8d43b2, L"Centaur", L"Avenir Next Condensed,Noteworthy,Impact", 2,
1079     1252},
1080    {0x8ee4dcca, L"BookshelfSymbol7", L"Microsoft Sans Serif,Apple Symbols", 0,
1081     1252},
1082    {0x90794800, L"BellGothicStdLight", L"Microsoft Sans Serif,Apple Symbols",
1083     0, 1252},
1084    {0x909b516a, L"Century", L"Damascus,Andale Mono,Songti SC,Arial Unicode MS",
1085     2, 1252},
1086    {0x92ae370d, L"MSOutlook", L"Microsoft Sans Serif,Apple Symbols", 4, 42},
1087    {0x93c9fbf1, L"LucidaFax",
1088     L"PT Sans Narrow,Papyrus,Kokonor,Geeza Pro,Arial Rounded MT Bold,Lucida "
1089     L"Grande,Futura",
1090     2, 1252},
1091    {0x9565085e, L"BookAntiqua", L"Palatino,Microsoft Sans Serif,Apple Symbols",
1092     2, 1252},
1093    {0x9856d95d, L"AdobeMingStdL", L"AHiragino Sans GB,Heiti TC,STHeiti", 0,
1094     949},
1095    {0x9bbadd6b, L"ColonnaMT", L"Noteworthy,Avenir Next Condensed,Impact", 0,
1096     1252},
1097    {0x9cbd16a4, L"ShowcardGothic-Reg",
1098     L"Arial Unicode MS,Georgia,American Typewriter", 0, 1252},
1099    {0x9d73008e, L"MSSansSerif", L"Songti SC,Apple Symbols", 0, 1252},
1100    {0xa0607db1, L"GungsuhChe",
1101     L"WenQuanYi Zen Hei Mono,AR PL UMing CN,AR PL UMing HK,AR PL UMing TW,AR "
1102     L"PL UMing TW MBE,Arial Unicode MS,Heiti TC,STFangsong",
1103     1, 1252},
1104    {0xa0bcf6a1, L"LatinWide", L"Zapfino,Arial Black,STHeiti", 2, 1252},
1105    {0xa1429b36, L"Symbol", L"Microsoft Sans Serif,Apple Symbols", 6, 42},
1106    {0xa1fa5abc, L"Wingdings2", L"Microsoft Sans Serif,Apple Symbols", 6, 42},
1107    {0xa1fa5abd, L"Wingdings3", L"Microsoft Sans Serif,Apple Symbols", 6, 42},
1108    {0xa427bad4, L"InformalRoman-Regular",
1109     L"STIXNonUnicode,Arial Narrow,Avenir Next Condensed Demi Bold", 8, 1252},
1110    {0xa8b92ece, L"FZSTK--GBK1-0", L"STHeiti,Heiti TC,STFangsong", 0, 936},
1111    {0xa8d83ece, L"CalifornianFB",
1112     L"American Typewriter,Avenir Next Condensed,Impact", 2, 1252},
1113    {0xaa3e082c, L"Kingsoft-Phonetic",
1114     L"STIXVariants,STIXSizeOneSym,Apple Braille", 0, 1252},
1115    {0xaa6bcabe, L"HarlowSolidItalic",
1116     L"STIXNonUnicode,Avenir Medium,Avenir Next Medium,Arial Unicode MS", 0,
1117     1252},
1118    {0xade5337c, L"MSUIGothic", L"Arial Unicode MS,Apple SD Gothic Neo", 0,
1119     1252},
1120    {0xb08dd941, L"WideLatin",
1121     L"Marion,Papyrus,Nanum Pen Script,Zapf Dingbats,Damascus,Zapfino,Arial "
1122     L"Black,STHeiti",
1123     2, 1252},
1124    {0xb12765e0, L"ITCLegacySansStdBook",
1125     L"LastResort,.Helvetica Neue Desk UI,Arial Unicode MS,Palatino", 0, 1252},
1126    {0xb207f05d, L"PoorRichard", L"Noteworthy,Avenir Next Condensed,Impact", 2,
1127     1252},
1128    {0xb3bc492f, L"JuiceITC-Regular", L"Nadeem,Al Bayan,STIXNonUnicode", 0,
1129     1252},
1130    {0xb5545399, L"Marlett", L"Microsoft Sans Serif,Apple Symbols", 4, 42},
1131    {0xb5dd1ebb, L"BritannicBold",
1132     L"Damascus,STIXNonUnicode,Avenir Next Condensed Heavy,PT Sans", 0, 1252},
1133    {0xb699c1c5, L"LucidaCalligraphy-Italic", L"STHeiti,Arial Black", 0, 1252},
1134    {0xb725d629, L"TimesNewRoman", L"Microsoft Sans Serif,Apple Symbols", 2,
1135     1252},
1136    {0xb7eaebeb, L"AdobeHeitiStdR", L"Heiti TC,STHeiti", 0, 936},
1137    {0xbd29c486, L"BerlinSansFBDemi-Bold",
1138     L"American Typewriter,Avenir Next Condensed Heavy", 0, 1252},
1139    {0xbe8a8db4, L"BookshelfSymbolSeven", L"Microsoft Sans Serif,Apple Symbols",
1140     0, 1252},
1141    {0xc16c0118, L"AdobeHebrew",
1142     L".Helvetica Neue Desk UI,Palatino,American Typewriter", 0, 1252},
1143    {0xc318b0af, L"MyriadProLight", L"Palatino,Baskerville,Marion", 0, 1252},
1144    {0xc65e5659, L"CambriaMath", L"Arial Unicode MS", 2, 1252},
1145    {0xc75c8f05, L"LucidaConsole", L"Courier New,Menlo,Andale Mono", 1, 1252},
1146    {0xca7c35d6, L"Calibri", L"Apple Symbols,HeadLineA", 0, 1252},
1147    {0xcb053f53, L"MicrosoftYaHei", L"Arial Unicode MS", 0, 936},
1148    {0xcb7190f9, L"Magneto-Bold", L"Lucida Grande", 0, 1252},
1149    {0xcca00cc5, L"System", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1150    {0xccad6f76, L"Jokerman-Regular", L"Lucida Grande", 0, 1252},
1151    {0xccc5818c, L"EuroSign", L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1152    {0xcf3d7234, L"LucidaHandwriting-Italic",
1153     L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1154    {0xcf7b8fdb, L"MinionPro",
1155     L"Bell MT,Corbel,Times New Roman,Cambria,Berlin Sans FB", 0, 1252},
1156    {0xcfe5755f, L"Simhei", L"STHeiti,Heiti TC,STFangsong", 1, 936},
1157    {0xd011f4ee, L"MSPGothic", L"Arial Unicode MS,Apple SD Gothic Neo", 0,
1158     1252},
1159    {0xd060e7ef, L"Vivaldi",
1160     L"STIXNonUnicode,Arial Unicode MS,Avenir Medium,Avenir Next Medium", 8,
1161     1252},
1162    {0xd07edec1, L"FranklinGothic-Medium", L"Impact,Arial Narrow", 0, 1252},
1163    {0xd107243f, L"SimSun", L"STHeiti,Heiti TC,STFangsong", 0, 936},
1164    {0xd1881562, L"ArialNarrow", L"PT Sans Narrow,Apple Symbols", 0, 1252},
1165    {0xd22b7dce, L"BodoniMTPosterCompressed",
1166     L"Microsoft Sans Serif,Apple Symbols", 0, 1252},
1167    {0xd22bfa60, L"ComicSansMS",
1168     L"Damascus,Georgia,.Helvetica Neue Desk UI,Lucida Grande,Arial Unicode MS",
1169     8, 1252},
1170    {0xd3bd0e35, L"Bauhaus93",
1171     L"STIXNonUnicode,Arial Unicode MS,Avenir Next,Avenir", 0, 1252},
1172    {0xd429ee7a, L"STFangsong", L"Songti SC,Arial Unicode MS", 0, 936},
1173    {0xd6679c12, L"BernardMTCondensed",
1174     L"Impact,Avenir Next Condensed Demi Bold", 0, 1252},
1175    {0xd8e8a027, L"LucidaSans",
1176     L"Arial Narrow,Khmer MN,Kokonor,Damascus,Microsoft Sans Serif,Apple "
1177     L"Symbols",
1178     0, 1252},
1179    {0xd9fe7761, L"HighTowerText-Reg",
1180     L"STIXGeneral,.Helvetica Neue Desk UI,Trebuchet MS", 2, 1252},
1181    {0xda7e551e, L"STSong", L"Arial Unicode MS", 0, 936},
1182    {0xdaa6842d, L"STZhongsong", L"STFangsong,Songti SC,STSong", 0, 936},
1183    {0xdaaab93f, L"STFangsong", L"Songti SC,Arial Unicode MS", 0, 936},
1184    {0xdaeb0713, L"STSong", L"Songti SC,Arial Unicode MS", 0, 936},
1185    {0xdafedbef, L"STCaiyun", L"Kaiti SC,Songti SC,STHeiti", 0, 936},
1186    {0xdb00a3d9, L"Broadway",
1187     L"Papyrus,STIXNonUnicode,Arial Black,Avenir Next Heavy,Heiti TC", 0, 1252},
1188    {0xdb1f5ad4, L"STXinwei", L"Kaiti SC,Songti SC,STHeiti", 0, 936},
1189    {0xdb326e7f, L"STKaiti", L"Songti SC,Arial Unicode MS", 0, 936},
1190    {0xdb69595a, L"STHupo", L"Kaiti SC,Songti SC,STHeiti", 0, 936},
1191    {0xdba0082c, L"STXihei", L"Songti SC,Arial Unicode MS", 0, 936},
1192    {0xdbd0ab18, L"STXingkai", L"Kaiti SC,Songti SC", 0, 936},
1193    {0xdc1a7db1, L"STLiti", L"Kaiti SC,Songti SC", 0, 936},
1194    {0xdc33075f, L"KristenITC-Regular",
1195     L"STIXNonUnicode,Damascus,Songti SC,STSong", 8, 1252},
1196    {0xdcc7009c, L"Harrington",
1197     L"STIXNonUnicode,Avenir Next Condensed Heavy,Noteworthy", 0, 1252},
1198    {0xdd712466, L"ArialBlack", L"Geeza Pro,Damascus,Songti SC,STSong", 0,
1199     1252},
1200    {0xdde87b3e, L"Impact", L"Arial Narrow,Marion", 0, 1252},
1201    {0xdf69fb32, L"SnapITC",
1202     L"Arial Narrow,PT Sans Narrow,Marion,STHeiti,Arial Black", 0, 1252},
1203    {0xdf8b25e8, L"CenturyGothic",
1204     L"Damascus,Andale Mono,Songti SC,Arial Unicode MS", 0, 1252},
1205    {0xe0f705c0, L"KristenITC", L"Songti SC,STSong", 8, 1252},
1206    {0xe1427573, L"Raavi",
1207     L"Damascus,STIXNonUnicode,Marion,Papyrus,Avenir Next Condensed "
1208     L"Heavy,American Typewriter",
1209     0, 1252},
1210    {0xe2cea0cb, L"Magneto",
1211     L"STIXNonUnicode,Damascus,Geeza Pro,Lucida Grande,Georgia,Heiti TC", 0,
1212     1252},
1213    {0xe36a9e17, L"Ravie", L"STHeiti,Arial Black", 0, 1252},
1214    {0xe433f8e2, L"Parchment", L"Microsoft Sans Serif,Apple Symbols", 8, 1252},
1215    {0xe43dff4a, L"Wingdings", L"Microsoft Sans Serif,Apple Symbols", 4, 42},
1216    {0xe4e2c405, L"MTExtra", L"Microsoft Sans Serif,Apple Symbols", 6, 42},
1217    {0xe618cc35, L"InformalRoman", L"Arial Narrow", 8, 1252},
1218    {0xe6c27ffc, L"Mistral", L"Apple Symbols", 8, 1252},
1219    {0xe7ebf4b9, L"Courier", L"Courier New", 0, 1252},
1220    {0xe8bc4a9d, L"MSReferenceSpecialty", L"Microsoft Sans Serif,Apple Symbols",
1221     0, 1252},
1222    {0xe90fb013, L"TempusSansITC",
1223     L"STIXNonUnicode,Microsoft Sans Serif,Avenir Light", 0, 1252},
1224    {0xec637b42, L"Consolas",
1225     L"AR PL UKai CN,AR PL UKai HK,AR PL UKai TW,AR PL UKai TW MBE,AR PL UMing "
1226     L"CN,AR PL UMing HK,Microsoft Sans Serif,Tahoma",
1227     1, 1252},
1228    {0xed3a683b, L"STXinwei", L"Kaiti SC,Songti SC,", 0, 936},
1229    {0xef264cd1, L"LucidaHandwriting",
1230     L"Arial Narrow,Avenir Next Condensed Demi Bold,Avenir Next "
1231     L"Condensed,Avenir Next Condensed Medium,STHeiti,Arial Black",
1232     0, 1252},
1233    {0xf086bca2, L"BaskervilleOldFace",
1234     L"STIXNonUnicode,Avenir Next Condensed Heavy,PT Sans", 0, 1252},
1235    {0xf1028030, L"Mangal",
1236     L"Arial Unicode MS,Microsoft Sans Serif,Arial Narrow,Tahoma", 2, 1252},
1237    {0xf1da7eb9, L"ShowcardGothic",
1238     L"Papyrus,Arial Unicode MS,Georgia,American Typewriter", 0, 1252},
1239    {0xf210f06a, L"ArialMT",
1240     L"Arial Unicode MS,Arial Narrow,STIXNonUnicode,Damascus,Avenir Next "
1241     L"Condensed Demi Bold,Avenir Next Condensed Medium,Avenir Next Condensed",
1242     0, 1252},
1243    {0xf477f16a, L"Latha",
1244     L"Arial Narrow,Damascus,STIXNonUnicode,American Typewriter", 0, 1252},
1245    {0xf616f3dd, L"LiSu", L"STHeiti,Heiti TC,STFangsong", 1, 936},
1246    {0xfa479aa6, L"MicrosoftYaHei", L"Arial Unicode MS", 0, 936},
1247    {0xfcd19697, L"BookmanOldStyle",
1248     L"Geeza Pro,Damascus,Andale Mono,Songti SC,Arial Unicode MS", 0, 1252},
1249    {0xfe209a82, L"LucidaCalligraphy",
1250     L"Kokonor,Damascus,STIXNonUnicode,STHeiti,Arial Black", 0, 1252},
1251    {0xfef135f8, L"AdobeHeitiStd-Regular", L"Heiti TC,STHeiti", 0, 936},
1252};
1253#elif _FXM_PLATFORM_ == _FXM_PLATFORM_ANDROID_
1254static const XFA_FONTINFO g_XFAFontsMap[] = {
1255    {0x01d5d33e, L"SimSun", L"Droid Sans Fallback", 0, 936},
1256    {0x01e4f102, L"YouYuan", L"Droid Sans Fallback", 1, 936},
1257    {0x030549dc, L"LiSu", L"Droid Sans Fallback", 1, 936},
1258    {0x032edd44, L"Simhei", L"Droid Sans Fallback", 1, 936},
1259    {0x03eac6fc, L"PoorRichard-Regular",
1260     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback,Droid Arabic "
1261     L"Naskh,Droid Sans Ethiopic",
1262     2, 1252},
1263    {0x03ed90e6, L"Nina",
1264     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1265    {0x077b56b3, L"KingsoftPhoneticPlain",
1266     L"Droid Sans Thai,Droid Sans Armenian,Droid Arabic Naskh,Droid Sans "
1267     L"Ethiopic,Droid Sans Fallback",
1268     0, 1252},
1269    {0x078ed524, L"MicrosoftSansSerif", L"Droid Sans Fallback", 0, 1252},
1270    {0x089b18a9, L"Arial", L"Droid Sans Fallback", 0, 1252},
1271    {0x0b2cad72, L"MonotypeCorsiva",
1272     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1273    {0x0bb003e7, L"Kartika",
1274     L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1275     L"Mono",
1276     2, 1252},
1277    {0x0bb469df, L"VinerHandITC",
1278     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1279    {0x0bc1a851, L"SegoeUI", L"Droid Sans Fallback", 0, 1252},
1280    {0x0c112ebd, L"KozukaGothicPro-VIM",
1281     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1282    {0x0cfcb9c1, L"AdobeThai",
1283     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 847},
1284    {0x0e7de0f9, L"Playbill",
1285     L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1286     L"Mono",
1287     0, 1252},
1288    {0x0eff47c3, L"STHupo", L"Droid Sans Fallback", 0, 936},
1289    {0x107ad374, L"Constantia",
1290     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1291    {0x12194c2d, L"KunstlerScript",
1292     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1293    {0x135ef6a1, L"MinionProSmBd",
1294     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1295    {0x158c4049, L"Garamond",
1296     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1297    {0x160ecb24, L"STZhongsong", L"Droid Sans Fallback", 0, 936},
1298    {0x161ed07e, L"MSGothic", L"Droid Sans Fallback", 1, 1252},
1299    {0x171d1ed1, L"SnapITC-Regular",
1300     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1301    {0x18d1188f, L"Cambria", L"Droid Sans Fallback", 2, 1252},
1302    {0x18eaf350, L"ArialUnicodeMS", L"Droid Sans Fallback", 0, 936},
1303    {0x1a92d115, L"MingLiU", L"Droid Sans Fallback", 1, 1252},
1304    {0x1cc217c6, L"TrebuchetMS",
1305     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1306    {0x1d649596, L"BasemicTimes",
1307     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1308    {0x1e34ee60, L"BellMT",
1309     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1310    {0x1eb36945, L"CooperBlack",
1311     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1312    {0x1ef7787d, L"BatangChe", L"Droid Sans Fallback", 1, 1252},
1313    {0x20b3bd3a, L"BrushScriptMT", L"Droid Arabic Naskh,Droid Sans Ethiopic", 8,
1314     1252},
1315    {0x220877aa, L"Candara",
1316     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1317    {0x22135007, L"FreestyleScript-Regular",
1318     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1319    {0x251059c3, L"Chiller",
1320     L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif", 0, 1252},
1321    {0x25bed6dd, L"MSReferenceSansSerif", L"Droid Sans Fallback", 0, 1252},
1322    {0x28154c81, L"Parchment-Regular",
1323     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1324    {0x29711eb9, L"STLiti", L"Droid Sans Fallback", 0, 936},
1325    {0x2b1993b4, L"Basemic",
1326     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1327    {0x2b316339, L"NiagaraSolid-Reg",
1328     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1329    {0x2c147529, L"FootlightMTLight",
1330     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1331    {0x2c198928, L"HarlowSolid",
1332     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1333    {0x2c6ac6b2, L"LucidaBright",
1334     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto", 2, 1252},
1335    {0x2c9f38e2, L"KozukaMinchoPro-VIR",
1336     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1337    {0x2d5a47b0, L"STCaiyun", L"Droid Sans Fallback", 0, 936},
1338    {0x2def26bf, L"BernardMT-Condensed",
1339     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1340    {0x2fd8930b, L"KozukaMinchoPr6NR",
1341     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1342    {0x3115525a, L"FangSong_GB2312", L"Droid Sans Fallback", 0, 1252},
1343    {0x31327817, L"MyriadPro",
1344     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1345    {0x32244975, L"Helvetica",
1346     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto", 0, 1252},
1347    {0x32ac995c, L"Terminal",
1348     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1349    {0x338d648a, L"NiagaraEngraved-Reg",
1350     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1351    {0x33bb65f2, L"Sylfaen",
1352     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1353    {0x3402c30e, L"MSPMincho", L"Droid Sans Fallback", 2, 1252},
1354    {0x3412bf31, L"SimSun-PUA", L"Droid Sans Fallback", 0, 936},
1355    {0x36eb39b9, L"BerlinSansFB",
1356     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1357    {0x36f42055, L"UniversATT", L"Microsoft Sans Serif", 0, 1252},
1358    {0x3864c4f6, L"HighTowerText",
1359     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1360    {0x3a257d03, L"FangSong_GB2312", L"Droid Sans Fallback", 0, 1252},
1361    {0x3cdae668, L"FreestyleScript",
1362     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1363    {0x3d55aed7, L"Jokerman",
1364     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1365    {0x3d5b4385, L"PMingLiU", L"Droid Sans Fallback", 2, 1252},
1366    {0x3d9b7669, L"EstrangeloEdessa",
1367     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1368    {0x3e532d74, L"FranklinGothicMedium",
1369     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1370    {0x3e6aa32d, L"NSimSun", L"Droid Sans Fallback", 1, 936},
1371    {0x3f6c36a8, L"Gautami",
1372     L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1373     L"Mono,Droid Sans Fallback",
1374     0, 1252},
1375    {0x3ff32662, L"Chiller-Regular",
1376     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1377    {0x409de312, L"ModernNo.20",
1378     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1379    {0x41443c5e, L"Georgia",
1380     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1381    {0x4160ade5, L"BellGothicStdBlack",
1382     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1383    {0x421976c4, L"Modern-Regular",
1384     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1385    {0x422a7252, L"Stencil",
1386     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1387    {0x42c8554f, L"Fixedsys",
1388     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1389    {0x435cb41d, L"Roman",
1390     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1391    {0x47882383, L"CourierNew", L"Droid Sans Fallback", 1, 1252},
1392    {0x480a2338, L"BerlinSansFBDemi",
1393     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1394    {0x480bf7a4, L"CourierStd", L"Droid Sans Fallback", 0, 1252},
1395    {0x481ad6ed, L"VladimirScript",
1396     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1397    {0x4911577a, L"YouYuan", L"Droid Sans Fallback", 1, 936},
1398    {0x4a788d72, L"STXingkai", L"Droid Sans Fallback", 0, 936},
1399    {0x4bf88566, L"SegoeCondensed",
1400     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1401    {0x4ccf51a4, L"BerlinSansFB-Reg",
1402     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1403    {0x4ea967ce, L"GulimChe", L"Droid Sans Fallback", 1, 1252},
1404    {0x4f68bd79, L"LetterGothicStd",
1405     L"Droid Sans Mono,Droid Arabic Naskh,Droid Sans Ethiopic,Droid Sans "
1406     L"Mono,Droid Serif,Droid Sans Fallback",
1407     0, 1252},
1408    {0x51a0d0e6, L"KozukaGothicPr6NM",
1409     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1410    {0x531b3dea, L"BasemicSymbol",
1411     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1412    {0x5333fd39, L"CalifornianFB-Reg",
1413     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1414    {0x53561a54, L"FZYTK--GBK1-0", L"Droid Sans Fallback", 0, 936},
1415    {0x55e0dde6, L"LucidaSansTypewriter",
1416     L"Droid Sans Mono,Droid Arabic Naskh,Droid Sans Ethiopic", 0, 1252},
1417    {0x574d4d3d, L"AdobeArabic",
1418     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1419    {0x5792e759, L"STKaiti", L"Droid Sans Fallback", 0, 936},
1420    {0x5921978e, L"LucidaSansUnicode", L"Droid Sans Fallback", 0, 1252},
1421    {0x594e2da4, L"Vrinda",
1422     L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1423     L"Mono",
1424     0, 1252},
1425    {0x59baa9a2, L"KaiTi_GB2312", L"Droid Sans Fallback", 0, 1252},
1426    {0x5cfedf4f, L"BaskOldFace",
1427     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1428    {0x5f97921c, L"AdobeMyungjoStdM", L"Droid Sans Fallback", 0, 936},
1429    {0x5fefbfad, L"Batang", L"Droid Sans Fallback", 2, 1252},
1430    {0x605342b9, L"DotumChe", L"Droid Sans Fallback", 1, 1252},
1431    {0x608c5f9a, L"KaiTi_GB2312", L"Droid Sans Fallback", 0, 936},
1432    {0x61efd0d1, L"MaturaMTScriptCapitals",
1433     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1434     L"Mono",
1435     0, 1252},
1436    {0x626608a9, L"MVBoli",
1437     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1438     L"Mono",
1439     0, 1252},
1440    {0x630501a3, L"SmallFonts",
1441     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1442    {0x65d0e2a9, L"FZYTK--GBK1-0", L"Droid Sans Fallback", 0, 936},
1443    {0x669f29e1, L"FZSTK--GBK1-0", L"Droid Sans Fallback", 0, 936},
1444    {0x673a9e5f, L"Tunga",
1445     L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1446     L"Mono,Droid Sans Fallback",
1447     0, 1252},
1448    {0x691aa4ce, L"NiagaraSolid",
1449     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1450    {0x696259b7, L"Corbel",
1451     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1452    {0x696ee9be, L"STXihei", L"Droid Sans Fallback", 0, 936},
1453    {0x6c59cf69, L"Dotum", L"Droid Sans Fallback", 0, 1252},
1454    {0x707fa561, L"Gungsuh", L"Droid Sans Fallback", 2, 1252},
1455    {0x71416bb2, L"ZWAdobeF",
1456     L"Droid Arabic Naskh,Droid Sans Armenian,Droid Sans Ethiopic,Droid Sans "
1457     L"Georgian,Droid Sans Hebrew,Droid Sans Thai",
1458     0, 1252},
1459    {0x71b41801, L"Verdana",
1460     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1461    {0x73f25e4c, L"PalatinoLinotype", L"Droid Sans Fallback", 0, 1252},
1462    {0x73f4d19f, L"NiagaraEngraved",
1463     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1464    {0x74001694, L"MyriadProBlack", L"Book Antiqua,Constantia,Dotum,Georgia", 0,
1465     1252},
1466    {0x74b14d8f, L"Haettenschweiler",
1467     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1468    {0x74cb44ee, L"NSimSun", L"Droid Sans Fallback", 1, 936},
1469    {0x76b4d7ff, L"Shruti",
1470     L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1471     L"Mono",
1472     0, 1252},
1473    {0x788b3533, L"Webdings",
1474     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 6, 42},
1475    {0x797dde99, L"MSSerif",
1476     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1477    {0x7a0f9e9e, L"MSMincho", L"Droid Sans Fallback", 1, 1252},
1478    {0x7b439caf, L"OldEnglishTextMT",
1479     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1480    {0x8213a433, L"LucidaSans-Typewriter",
1481     L"Droid Sans Mono,Droid Serif,Roboto,Droid Sans Fallback", 0, 1252},
1482    {0x82fec929, L"AdobeSongStdL", L"Droid Sans Fallback", 0, 936},
1483    {0x83581825, L"Modern",
1484     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1485    {0x835a2823, L"Algerian",
1486     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1487    {0x83dab9f5, L"Script",
1488     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1489    {0x847b56da, L"Tahoma", L"Droid Sans Fallback", 0, 1252},
1490    {0x8a783cb2, L"SimSun-PUA", L"Droid Sans Fallback", 0, 1252},
1491    {0x8b5cac0e, L"Onyx",
1492     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1493    {0x8c6a499e, L"Gulim", L"Droid Sans Fallback", 0, 1252},
1494    {0x8e0af790, L"JuiceITC",
1495     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1496    {0x8e8d43b2, L"Centaur",
1497     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1498    {0x8ee4dcca, L"BookshelfSymbol7",
1499     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1500    {0x90794800, L"BellGothicStdLight",
1501     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1502    {0x909b516a, L"Century",
1503     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1504    {0x92ae370d, L"MSOutlook",
1505     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 4, 42},
1506    {0x93c9fbf1, L"LucidaFax",
1507     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1508     L"Mono",
1509     2, 1252},
1510    {0x9565085e, L"BookAntiqua",
1511     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1512    {0x9856d95d, L"AdobeMingStdL", L"Droid Sans Fallback", 0, 949},
1513    {0x9bbadd6b, L"ColonnaMT",
1514     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1515    {0x9cbd16a4, L"ShowcardGothic-Reg",
1516     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallbac", 0, 1252},
1517    {0x9d73008e, L"MSSansSerif",
1518     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1519    {0xa0607db1, L"GungsuhChe", L"Droid Sans Fallback", 1, 1252},
1520    {0xa0bcf6a1, L"LatinWide",
1521     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1522    {0xa1429b36, L"Symbol",
1523     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 6, 42},
1524    {0xa1fa5abc, L"Wingdings2",
1525     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 6, 42},
1526    {0xa1fa5abd, L"Wingdings3",
1527     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 6, 42},
1528    {0xa427bad4, L"InformalRoman-Regular",
1529     L"Droid Arabic Naskh,Droid Sans Ethiopic", 8, 1252},
1530    {0xa8b92ece, L"FZSTK--GBK1-0", L"Droid Sans Fallback", 0, 936},
1531    {0xa8d83ece, L"CalifornianFB",
1532     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1533    {0xaa3e082c, L"Kingsoft-Phonetic",
1534     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1535    {0xaa6bcabe, L"HarlowSolidItalic",
1536     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1537    {0xade5337c, L"MSUIGothic",
1538     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1539    {0xb08dd941, L"WideLatin",
1540     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1541     L"Mono",
1542     2, 1252},
1543    {0xb207f05d, L"PoorRichard",
1544     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1545    {0xb3bc492f, L"JuiceITC-Regular",
1546     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1547    {0xb5545399, L"Marlett",
1548     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 4, 42},
1549    {0xb5dd1ebb, L"BritannicBold", L"Droid Arabic Naskh,Droid Sans Ethiopic", 0,
1550     1252},
1551    {0xb699c1c5, L"LucidaCalligraphy-Italic",
1552     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1553    {0xb725d629, L"TimesNewRoman", L"Droid Sans Fallback", 2, 1252},
1554    {0xb7eaebeb, L"AdobeHeitiStdR", L"Droid Sans Fallback", 0, 936},
1555    {0xbd29c486, L"BerlinSansFBDemi-Bold",
1556     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1557    {0xbe8a8db4, L"BookshelfSymbolSeven",
1558     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1559    {0xc16c0118, L"AdobeHebrew",
1560     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback,Droid Arabic "
1561     L"Naskh,Droid Sans Ethiopic",
1562     0, 1252},
1563    {0xc318b0af, L"MyriadProLight",
1564     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1565    {0xc65e5659, L"CambriaMath", L"Droid Sans Fallback", 2, 1252},
1566    {0xc75c8f05, L"LucidaConsole",
1567     L"Droid Sans Mono,Droid Serif,Roboto,Droid Sans Fallback", 1, 1252},
1568    {0xca7c35d6, L"Calibri", L"Droid Sans Fallback", 0, 1252},
1569    {0xcb053f53, L"MicrosoftYaHei", L"Droid Sans Fallback", 0, 936},
1570    {0xcb7190f9, L"Magneto-Bold",
1571     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1572    {0xcca00cc5, L"System",
1573     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1574    {0xccad6f76, L"Jokerman-Regular",
1575     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1576    {0xccc5818c, L"EuroSign",
1577     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1578    {0xcf3d7234, L"LucidaHandwriting-Italic",
1579     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1580    {0xcf7b8fdb, L"MinionPro",
1581     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1582    {0xcfe5755f, L"Simhei", L"Droid Sans Fallback", 1, 936},
1583    {0xd011f4ee, L"MSPGothic", L"Droid Sans Fallback", 0, 1252},
1584    {0xd060e7ef, L"Vivaldi",
1585     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1586    {0xd07edec1, L"FranklinGothic-Medium",
1587     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1588    {0xd107243f, L"SimSun", L"Droid Sans Fallback", 0, 936},
1589    {0xd1881562, L"ArialNarrow",
1590     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1591    {0xd22b7dce, L"BodoniMTPosterCompressed",
1592     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1593    {0xd22bfa60, L"ComicSansMS", L"Droid Serif,Roboto,Droid Sans Fallback", 8,
1594     1252},
1595    {0xd3bd0e35, L"Bauhaus93",
1596     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1597    {0xd429ee7a, L"STFangsong", L"Droid Sans Fallback", 0, 936},
1598    {0xd6679c12, L"BernardMTCondensed",
1599     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1600    {0xd8e8a027, L"LucidaSans",
1601     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto", 0, 1252},
1602    {0xd9fe7761, L"HighTowerText-Reg",
1603     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 2, 1252},
1604    {0xda7e551e, L"STSong", L"Droid Sans Fallback", 0, 936},
1605    {0xdaa6842d, L"STZhongsong", L"Droid Sans Fallback", 0, 936},
1606    {0xdaaab93f, L"STFangsong", L"Droid Sans Fallback", 0, 936},
1607    {0xdaeb0713, L"STSong",
1608     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 936},
1609    {0xdafedbef, L"STCaiyun", L"Droid Sans Fallback", 0, 936},
1610    {0xdb00a3d9, L"Broadway",
1611     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1612    {0xdb1f5ad4, L"STXinwei", L"Droid Sans Fallback", 0, 936},
1613    {0xdb326e7f, L"STKaiti", L"Droid Sans Fallback", 0, 936},
1614    {0xdb69595a, L"STHupo", L"Droid Sans Fallback", 0, 936},
1615    {0xdba0082c, L"STXihei", L"Droid Sans Fallback", 0, 936},
1616    {0xdbd0ab18, L"STXingkai", L"Droid Sans Fallback", 0, 936},
1617    {0xdc1a7db1, L"STLiti", L"Droid Sans Fallback", 0, 936},
1618    {0xdc33075f, L"KristenITC-Regular",
1619     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto", 8, 1252},
1620    {0xdcc7009c, L"Harrington",
1621     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1622    {0xdd712466, L"ArialBlack",
1623     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1624    {0xdde87b3e, L"Impact",
1625     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1626    {0xdf69fb32, L"SnapITC",
1627     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1628     L"Mono",
1629     0, 1252},
1630    {0xdf8b25e8, L"CenturyGothic",
1631     L"Droid Serif,Roboto,Droid Serif,Droid Sans Mono", 0, 1252},
1632    {0xe0f705c0, L"KristenITC",
1633     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto", 8, 1252},
1634    {0xe1427573, L"Raavi",
1635     L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1636     L"Mono",
1637     0, 1252},
1638    {0xe2cea0cb, L"Magneto",
1639     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1640     L"Mono",
1641     0, 1252},
1642    {0xe36a9e17, L"Ravie",
1643     L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1644     L"Mono",
1645     0, 1252},
1646    {0xe433f8e2, L"Parchment",
1647     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1648    {0xe43dff4a, L"Wingdings",
1649     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 4, 42},
1650    {0xe4e2c405, L"MTExtra",
1651     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 6, 42},
1652    {0xe618cc35, L"InformalRoman",
1653     L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif", 8, 1252},
1654    {0xe6c27ffc, L"Mistral",
1655     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 8, 1252},
1656    {0xe7ebf4b9, L"Courier", L"Droid Sans Fallback", 0, 1252},
1657    {0xe8bc4a9d, L"MSReferenceSpecialty",
1658     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1659    {0xe90fb013, L"TempusSansITC",
1660     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1661    {0xec637b42, L"Consolas", L"Droid Sans Fallback", 1, 1252},
1662    {0xed3a683b, L"STXinwei", L"Droid Sans Fallback", 0, 936},
1663    {0xef264cd1, L"LucidaHandwriting",
1664     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1665     L"Mono",
1666     0, 1252},
1667    {0xf086bca2, L"BaskervilleOldFace",
1668     L"Roboto,Droid Serif,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1669    {0xf1028030, L"Mangal",
1670     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1671     L"Mono",
1672     2, 1252},
1673    {0xf1da7eb9, L"ShowcardGothic",
1674     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallbac", 0, 1252},
1675    {0xf210f06a, L"ArialMT",
1676     L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif", 0, 1252},
1677    {0xf477f16a, L"Latha",
1678     L"Droid Arabic Naskh,Droid Sans Ethiopic,Roboto,Droid Serif,Droid Sans "
1679     L"Mono",
1680     0, 1252},
1681    {0xf616f3dd, L"LiSu", L"Droid Sans Fallback", 1, 936},
1682    {0xfa479aa6, L"MicrosoftYaHei", L"Droid Sans Fallback", 0, 936},
1683    {0xfcd19697, L"BookmanOldStyle",
1684     L"Droid Serif,Roboto,Droid Sans Mono,Droid Sans Fallback", 0, 1252},
1685    {0xfe209a82, L"LucidaCalligraphy",
1686     L"Droid Arabic Naskh,Droid Sans Ethiopic,Droid Serif,Roboto,Droid Sans "
1687     L"Mono",
1688     0, 1252},
1689    {0xfef135f8, L"AdobeHeitiStd-Regular", L"Droid Sans Fallback", 0, 936},
1690};
1691#endif
1692void XFA_LocalFontNameToEnglishName(const CFX_WideStringC& wsLocalName,
1693                                    CFX_WideString& wsEnglishName) {
1694  wsEnglishName = wsLocalName;
1695#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ || \
1696    _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_ ||   \
1697    _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ ||   \
1698    _FXM_PLATFORM_ == _FXM_PLATFORM_ANDROID_
1699  FX_DWORD dwLocalNameHash = FX_HashCode_String_GetW(
1700      wsLocalName.GetPtr(), wsLocalName.GetLength(), TRUE);
1701  int32_t iStart = 0;
1702  int32_t iEnd = sizeof(g_XFAFontsMap) / sizeof(XFA_FONTINFO) - 1;
1703  int32_t iMid = 0;
1704  do {
1705    iMid = (iStart + iEnd) / 2;
1706    FX_DWORD dwFontNameHash = g_XFAFontsMap[iMid].dwFontNameHash;
1707    if (dwFontNameHash == dwLocalNameHash) {
1708      wsEnglishName = g_XFAFontsMap[iMid].pPsName;
1709      break;
1710    } else if (dwFontNameHash < dwLocalNameHash) {
1711      iStart = iMid + 1;
1712    } else {
1713      iEnd = iMid - 1;
1714    }
1715  } while (iEnd >= iStart);
1716#endif
1717}
1718const XFA_FONTINFO* XFA_GetFontINFOByFontName(
1719    const CFX_WideStringC& wsFontName) {
1720#if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_ || \
1721    _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_ ||   \
1722    _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ ||   \
1723    _FXM_PLATFORM_ == _FXM_PLATFORM_ANDROID_
1724  CFX_WideString wsFontNameTemp = wsFontName;
1725  wsFontNameTemp.Remove(L' ');
1726  FX_DWORD dwCurFontNameHash =
1727      FX_HashCode_String_GetW(wsFontNameTemp, wsFontNameTemp.GetLength(), TRUE);
1728  int32_t iStart = 0;
1729  int32_t iEnd = sizeof(g_XFAFontsMap) / sizeof(XFA_FONTINFO) - 1;
1730  int32_t iMid = 0;
1731  const XFA_FONTINFO* pFontInfo = NULL;
1732  do {
1733    iMid = (iStart + iEnd) / 2;
1734    FX_DWORD dwFontNameHash = g_XFAFontsMap[iMid].dwFontNameHash;
1735    if (dwFontNameHash == dwCurFontNameHash) {
1736      pFontInfo = &g_XFAFontsMap[iMid];
1737      break;
1738    } else if (dwFontNameHash < dwCurFontNameHash) {
1739      iStart = iMid + 1;
1740    } else {
1741      iEnd = iMid - 1;
1742    }
1743  } while (iEnd >= iStart);
1744  return pFontInfo;
1745#else
1746  return NULL;
1747#endif
1748}
1749// static
1750IXFA_FontMgr* IXFA_FontMgr::CreateDefault() {
1751  return new CXFA_DefFontMgr;
1752}
1753// virtual
1754IXFA_FontMgr::~IXFA_FontMgr() {}
1755CXFA_DefFontMgr::~CXFA_DefFontMgr() {
1756  int32_t iCounts = m_CacheFonts.GetSize();
1757  for (int32_t i = 0; i < iCounts; i++) {
1758    ((IFX_Font*)m_CacheFonts[i])->Release();
1759  }
1760  m_CacheFonts.RemoveAll();
1761}
1762#define _FXFA_USEGASFONTMGR_
1763IFX_Font* CXFA_DefFontMgr::GetFont(IXFA_Doc* hDoc,
1764                                   const CFX_WideStringC& wsFontFamily,
1765                                   FX_DWORD dwFontStyles,
1766                                   FX_WORD wCodePage) {
1767  CFX_WideString wsFontName = wsFontFamily;
1768  IFX_FontMgr* pFDEFontMgr = ((CXFA_FFDoc*)hDoc)->GetApp()->GetFDEFontMgr();
1769#ifdef _FXFA_USEGASFONTMGR_
1770  const XFA_FONTINFO* pCurFont = NULL;
1771  FX_BOOL bGetFontInfo = TRUE;
1772  IFX_Font* pFont = pFDEFontMgr->LoadFont((const FX_WCHAR*)wsFontName,
1773                                          dwFontStyles, wCodePage);
1774#else
1775  const XFA_FONTINFO* pCurFont = XFA_GetFontINFOByFontName(wsFontName);
1776  FX_BOOL bGetFontInfo = FALSE;
1777  IFX_Font* pFont = IFX_Font::LoadFont(
1778      (const FX_WCHAR*)wsFontName, dwFontStyles | FX_FONTSTYLE_ExactMatch,
1779      pCurFont ? pCurFont->wCodePage : wCodePage, pFDEFontMgr);
1780#endif
1781  if (!pFont && hDoc) {
1782    if (bGetFontInfo) {
1783      pCurFont = XFA_GetFontINFOByFontName(wsFontName);
1784    }
1785    if (pCurFont != NULL && pCurFont->pReplaceFont != NULL) {
1786      FX_DWORD dwStyle = 0;
1787      if (dwFontStyles & FX_FONTSTYLE_Bold) {
1788        dwStyle |= FX_FONTSTYLE_Bold;
1789      }
1790      if (dwFontStyles & FX_FONTSTYLE_Italic) {
1791        dwStyle |= FX_FONTSTYLE_Italic;
1792      }
1793      const FX_WCHAR* pReplace = pCurFont->pReplaceFont;
1794      int32_t iLength = FXSYS_wcslen(pReplace);
1795      while (iLength > 0) {
1796        const FX_WCHAR* pNameText = pReplace;
1797        while (*pNameText != L',' && iLength > 0) {
1798          pNameText++;
1799          iLength--;
1800        }
1801        CFX_WideString wsReplace =
1802            CFX_WideString(pReplace, pNameText - pReplace);
1803#ifdef _FXFA_USEGASFONTMGR_
1804        pFont = pFDEFontMgr->LoadFont(wsReplace, dwStyle, wCodePage);
1805#else
1806        pFont = IFX_Font::LoadFont((const FX_WCHAR*)wsReplace,
1807                                   dwStyle | FX_FONTSTYLE_ExactMatch,
1808                                   pCurFont->wCodePage, pFDEFontMgr);
1809#endif
1810        if (pFont != NULL) {
1811          break;
1812        }
1813        iLength--;
1814        pNameText++;
1815        pReplace = pNameText;
1816      }
1817    }
1818  }
1819  if (pFont) {
1820    m_CacheFonts.Add(pFont);
1821  }
1822  return pFont;
1823}
1824IFX_Font* CXFA_DefFontMgr::GetDefaultFont(IXFA_Doc* hDoc,
1825                                          const CFX_WideStringC& wsFontFamily,
1826                                          FX_DWORD dwFontStyles,
1827                                          FX_WORD wCodePage) {
1828  IFX_FontMgr* pFDEFontMgr = ((CXFA_FFDoc*)hDoc)->GetApp()->GetFDEFontMgr();
1829#ifdef _FXFA_USEGASFONTMGR_
1830  IFX_Font* pFont =
1831      pFDEFontMgr->LoadFont(L"Arial Narrow", dwFontStyles, wCodePage);
1832#else
1833  const XFA_FONTINFO* pCurFont = XFA_GetFontINFOByFontName(wsFontFamily);
1834  IFX_Font* pFont =
1835      IFX_Font::LoadFont(L"Arial Narrow", dwFontStyles,
1836                         pCurFont ? pCurFont->wCodePage : 1252, pFDEFontMgr);
1837#endif
1838  if (!pFont)
1839#ifdef _FXFA_USEGASFONTMGR_
1840    pFont =
1841        pFDEFontMgr->LoadFont((const FX_WCHAR*)NULL, dwFontStyles, wCodePage);
1842#else
1843    pFont =
1844        IFX_Font::LoadFont((const FX_WCHAR*)NULL, dwFontStyles,
1845                           pCurFont ? pCurFont->wCodePage : 1252, pFDEFontMgr);
1846#endif
1847  FXSYS_assert(pFont != NULL);
1848  if (pFont) {
1849    m_CacheFonts.Add(pFont);
1850  }
1851  return pFont;
1852}
1853struct XFA_PDFFONTNAME {
1854  const FX_CHAR* lpPsName;
1855  const FX_CHAR* lpNormal;
1856  const FX_CHAR* lpBold;
1857  const FX_CHAR* lpItalic;
1858  const FX_CHAR* lpBoldItalic;
1859};
1860const XFA_PDFFONTNAME g_XFAPDFFontName[] = {
1861    {"Adobe PI Std", "AdobePIStd", "AdobePIStd", "AdobePIStd", "AdobePIStd"},
1862    {"Myriad Pro Light", "MyriadPro-Light", "MyriadPro-Semibold",
1863     "MyriadPro-LightIt", "MyriadPro-SemiboldIt"},
1864};
1865CXFA_PDFFontMgr::CXFA_PDFFontMgr(CXFA_FFDoc* pDoc) {
1866  m_pDoc = pDoc;
1867}
1868CXFA_PDFFontMgr::~CXFA_PDFFontMgr() {
1869  m_FDE2PDFFont.RemoveAll();
1870  FX_POSITION ps = m_FontArray.GetStartPosition();
1871  while (ps) {
1872    CFX_ByteString strKey;
1873    IFX_Font* pFont = NULL;
1874    m_FontArray.GetNextAssoc(ps, strKey, (void*&)pFont);
1875    if (pFont != NULL) {
1876      pFont->Release();
1877    }
1878  }
1879  m_FontArray.RemoveAll();
1880}
1881IFX_Font* CXFA_PDFFontMgr::FindFont(CFX_ByteString strPsName,
1882                                    FX_BOOL bBold,
1883                                    FX_BOOL bItalic,
1884                                    CPDF_Font** pDstPDFFont,
1885                                    FX_BOOL bStrictMatch) {
1886  CPDF_Document* pDoc = m_pDoc->GetPDFDoc();
1887  if (pDoc == NULL) {
1888    return NULL;
1889  }
1890  CPDF_Dictionary* pFontSetDict =
1891      pDoc->GetRoot()->GetDict("AcroForm")->GetDict("DR");
1892  if (!pFontSetDict) {
1893    return NULL;
1894  }
1895  pFontSetDict = (CPDF_Dictionary*)pFontSetDict->GetDict("Font");
1896  if (!pFontSetDict) {
1897    return NULL;
1898  }
1899  strPsName.Remove(' ');
1900  IFX_FontMgr* pFDEFontMgr = m_pDoc->GetApp()->GetFDEFontMgr();
1901  for (const auto& it : *pFontSetDict) {
1902    const CFX_ByteString& key = it.first;
1903    CPDF_Object* pObj = it.second;
1904    if (!PsNameMatchDRFontName(strPsName, bBold, bItalic, key, bStrictMatch)) {
1905      continue;
1906    }
1907    CPDF_Object* pDirect = pObj->GetDirect();
1908    if (pDirect == NULL || pDirect->GetType() != PDFOBJ_DICTIONARY) {
1909      return NULL;
1910    }
1911    CPDF_Dictionary* pFontDict = (CPDF_Dictionary*)pDirect;
1912    if (pFontDict->GetString("Type") != "Font") {
1913      return NULL;
1914    }
1915    CPDF_Font* pPDFFont = pDoc->LoadFont(pFontDict);
1916    if (!pPDFFont) {
1917      return NULL;
1918    }
1919    if (!pPDFFont->IsEmbedded()) {
1920      *pDstPDFFont = pPDFFont;
1921      return NULL;
1922    }
1923    return IFX_Font::LoadFont(&pPDFFont->m_Font, pFDEFontMgr);
1924  }
1925  return NULL;
1926}
1927IFX_Font* CXFA_PDFFontMgr::GetFont(const CFX_WideStringC& wsFontFamily,
1928                                   FX_DWORD dwFontStyles,
1929                                   CPDF_Font** pPDFFont,
1930                                   FX_BOOL bStrictMatch) {
1931  FX_DWORD dwHashCode =
1932      FX_HashCode_String_GetW(wsFontFamily.GetPtr(), wsFontFamily.GetLength());
1933  CFX_ByteString strKey;
1934  IFX_Font* pFont = NULL;
1935  strKey.Format("%u%u", dwHashCode, dwFontStyles);
1936  if (m_FontArray.Lookup(strKey, (void*&)pFont)) {
1937    return pFont;
1938  }
1939  CFX_ByteString bsPsName;
1940  bsPsName = CFX_ByteString::FromUnicode(wsFontFamily);
1941  FX_BOOL bBold = (dwFontStyles & FX_FONTSTYLE_Bold) == FX_FONTSTYLE_Bold;
1942  FX_BOOL bItalic = (dwFontStyles & FX_FONTSTYLE_Italic) == FX_FONTSTYLE_Italic;
1943  CFX_ByteString strFontName = PsNameToFontName(bsPsName, bBold, bItalic);
1944  pFont = FindFont(strFontName, bBold, bItalic, pPDFFont, bStrictMatch);
1945  if (pFont) {
1946    m_FontArray.SetAt(strKey, pFont);
1947  }
1948  return pFont;
1949}
1950CFX_ByteString CXFA_PDFFontMgr::PsNameToFontName(
1951    const CFX_ByteString& strPsName,
1952    FX_BOOL bBold,
1953    FX_BOOL bItalic) {
1954  int32_t nCount = sizeof(g_XFAPDFFontName) / sizeof(XFA_PDFFONTNAME);
1955  for (int32_t i = 0; i < nCount; i++) {
1956    if (strPsName == g_XFAPDFFontName[i].lpPsName) {
1957      int32_t index = 1 + ((bItalic << 1) | bBold);
1958      return *(&g_XFAPDFFontName[i].lpPsName + index);
1959    }
1960  }
1961  return strPsName;
1962}
1963FX_BOOL CXFA_PDFFontMgr::PsNameMatchDRFontName(
1964    const CFX_ByteStringC& bsPsName,
1965    FX_BOOL bBold,
1966    FX_BOOL bItalic,
1967    const CFX_ByteString& bsDRFontName,
1968    FX_BOOL bStrictMatch) {
1969  CFX_ByteString bsDRName = bsDRFontName;
1970  bsDRName.Remove('-');
1971  int32_t iPsLen = bsPsName.GetLength();
1972  int32_t nIndex = bsDRName.Find(bsPsName);
1973  if (nIndex != -1 && !bStrictMatch) {
1974    return TRUE;
1975  }
1976  if (nIndex != 0) {
1977    return FALSE;
1978  }
1979  int32_t iDifferLength = bsDRName.GetLength() - iPsLen;
1980  if (iDifferLength > 1 || (bBold || bItalic)) {
1981    int32_t iBoldIndex = bsDRName.Find("Bold");
1982    FX_BOOL bBoldFont = iBoldIndex > 0;
1983    if (bBold ^ bBoldFont) {
1984      return FALSE;
1985    }
1986    if (bBoldFont) {
1987      iDifferLength =
1988          std::min(iDifferLength - 4, bsDRName.GetLength() - iBoldIndex - 4);
1989    }
1990    FX_BOOL bItalicFont = TRUE;
1991    if (bsDRName.Find("Italic") > 0) {
1992      iDifferLength -= 6;
1993    } else if (bsDRName.Find("It") > 0) {
1994      iDifferLength -= 2;
1995    } else if (bsDRName.Find("Oblique") > 0) {
1996      iDifferLength -= 7;
1997    } else {
1998      bItalicFont = FALSE;
1999    }
2000    if (bItalic ^ bItalicFont) {
2001      return FALSE;
2002    }
2003    if (iDifferLength > 1) {
2004      CFX_ByteString bsDRTailer = bsDRName.Right(iDifferLength);
2005      if (bsDRTailer.Equal("MT") || bsDRTailer.Equal("PSMT") ||
2006          bsDRTailer.Equal("Regular") || bsDRTailer.Equal("Reg")) {
2007        return TRUE;
2008      }
2009      if (bBoldFont || bItalicFont) {
2010        return FALSE;
2011      }
2012      FX_BOOL bMatch = FALSE;
2013      switch (bsPsName.GetAt(iPsLen - 1)) {
2014        case 'L': {
2015          if (bsDRName.Right(5).Equal("Light")) {
2016            bMatch = TRUE;
2017          }
2018        } break;
2019        case 'R': {
2020          if (bsDRName.Right(7).Equal("Regular") ||
2021              bsDRName.Right(3).Equal("Reg")) {
2022            bMatch = TRUE;
2023          }
2024        } break;
2025        case 'M': {
2026          if (bsDRName.Right(5).Equal("Medium")) {
2027            bMatch = TRUE;
2028          }
2029        } break;
2030        default:
2031          break;
2032      }
2033      return bMatch;
2034    }
2035  }
2036  return TRUE;
2037}
2038FX_BOOL CXFA_PDFFontMgr::GetCharWidth(IFX_Font* pFont,
2039                                      FX_WCHAR wUnicode,
2040                                      int32_t& iWidth,
2041                                      FX_BOOL bCharCode) {
2042  if (wUnicode != 0x20 || bCharCode) {
2043    return FALSE;
2044  }
2045  CPDF_Font* pPDFFont = (CPDF_Font*)m_FDE2PDFFont.GetValueAt(pFont);
2046  if (!pPDFFont) {
2047    return FALSE;
2048  }
2049  wUnicode = (FX_WCHAR)pPDFFont->CharCodeFromUnicode(wUnicode);
2050  iWidth = pPDFFont->GetCharWidthF(wUnicode);
2051  return TRUE;
2052}
2053CXFA_FontMgr::CXFA_FontMgr() : m_pDefFontMgr(NULL) {}
2054CXFA_FontMgr::~CXFA_FontMgr() {
2055  DelAllMgrMap();
2056}
2057IFX_Font* CXFA_FontMgr::GetFont(IXFA_Doc* hDoc,
2058                                const CFX_WideStringC& wsFontFamily,
2059                                FX_DWORD dwFontStyles,
2060                                FX_WORD wCodePage) {
2061  FX_DWORD dwHash = FX_HashCode_String_GetW(wsFontFamily.GetPtr(),
2062                                            wsFontFamily.GetLength(), FALSE);
2063  CFX_ByteString bsKey;
2064  bsKey.Format("%u%u%u", dwHash, dwFontStyles, wCodePage);
2065  IFX_Font* pFont = NULL;
2066  if (m_FontArray.Lookup(bsKey, (void*&)pFont)) {
2067    return pFont;
2068  }
2069  CFX_WideString wsEnglishName;
2070  XFA_LocalFontNameToEnglishName(wsFontFamily, wsEnglishName);
2071  CXFA_PDFFontMgr* pMgr = (CXFA_PDFFontMgr*)m_PDFFontMgrArray.GetValueAt(hDoc);
2072  CPDF_Font* pPDFFont = NULL;
2073  if (pMgr != NULL) {
2074    pFont = pMgr->GetFont(wsEnglishName, dwFontStyles, &pPDFFont);
2075    if (pFont) {
2076      return pFont;
2077    }
2078  }
2079  if (pFont == NULL && m_pDefFontMgr != NULL) {
2080    pFont = m_pDefFontMgr->GetFont(hDoc, wsFontFamily, dwFontStyles, wCodePage);
2081  }
2082  if (pFont == NULL && pMgr != NULL) {
2083    pPDFFont = NULL;
2084    pFont = pMgr->GetFont(wsEnglishName, dwFontStyles, &pPDFFont, FALSE);
2085    if (pFont) {
2086      return pFont;
2087    }
2088  }
2089  if (pFont == NULL && m_pDefFontMgr != NULL) {
2090    pFont = m_pDefFontMgr->GetDefaultFont(hDoc, wsFontFamily, dwFontStyles,
2091                                          wCodePage);
2092  }
2093  FXSYS_assert(pFont != NULL);
2094  if (pFont) {
2095    if (pPDFFont) {
2096      pMgr->m_FDE2PDFFont.SetAt(pFont, pPDFFont);
2097      pFont->SetFontProvider(pMgr);
2098    }
2099    m_FontArray.SetAt(bsKey, pFont);
2100  }
2101  return pFont;
2102}
2103void CXFA_FontMgr::LoadDocFonts(IXFA_Doc* hDoc) {
2104  if (!m_PDFFontMgrArray.GetValueAt(hDoc)) {
2105    m_PDFFontMgrArray.SetAt(hDoc, new CXFA_PDFFontMgr((CXFA_FFDoc*)hDoc));
2106  }
2107}
2108void CXFA_FontMgr::ReleaseDocFonts(IXFA_Doc* hDoc) {
2109  CXFA_PDFFontMgr* pMgr = NULL;
2110  if (m_PDFFontMgrArray.Lookup(hDoc, (void*&)pMgr)) {
2111    if (pMgr != NULL) {
2112      delete pMgr;
2113    }
2114    m_PDFFontMgrArray.RemoveKey(hDoc);
2115  }
2116}
2117void CXFA_FontMgr::DelAllMgrMap() {
2118  FX_POSITION ps = m_PDFFontMgrArray.GetStartPosition();
2119  while (ps) {
2120    IXFA_Doc* hDoc = NULL;
2121    CXFA_PDFFontMgr* pMgr = NULL;
2122    m_PDFFontMgrArray.GetNextAssoc(ps, (void*&)hDoc, (void*&)pMgr);
2123    if (pMgr != NULL) {
2124      delete pMgr;
2125    }
2126  }
2127  m_PDFFontMgrArray.RemoveAll();
2128  m_FontArray.RemoveAll();
2129}
2130void CXFA_FontMgr::SetDefFontMgr(IXFA_FontMgr* pFontMgr) {
2131  m_pDefFontMgr = pFontMgr;
2132}
2133