PageRenderTime 59ms CodeModel.GetById 22ms RepoModel.GetById 0ms app.codeStats 0ms

/run/dumb32.conf

https://bitbucket.org/lcirvin/cse465-project
Config | 1434 lines | 1419 code | 15 blank | 0 comment | 0 complexity | 21aac4b00cc2b1e7bcce93a0af39920b MD5 | raw file
Possible License(s): BSD-3-Clause

Large files files are truncated, but you can click here to view the full file

  1. # This software is Copyright (c) 2012 magnum, and it is hereby
  2. # released to the general public under the following terms:
  3. # Redistribution and use in source and binary forms, with or without
  4. # modification, are permitted.
  5. #
  6. # Generic implementation of "dumb" exhaustive search of FULL Unicode and
  7. # an arbitrary charset. Default is to try *all* allocated characters (there's
  8. # 109070 of them). Even if a fast format can exhaust two characters in one
  9. # hour, three characters would take 12 years...
  10. #
  11. # The output is UTF-8, so for 16-bit formats you need to give --enc=utf8
  12. [List.External:Dumb32]
  13. int maxlength; // Maximum password length to try
  14. int last; // Last character position, zero-based
  15. int lastid; // Character index in the last position
  16. int id[0x7f]; // Current character indices for other positions
  17. int charset[0x20000], c0; // Characters
  18. int utf32[0x7F]; // Word in UTF32
  19. void init()
  20. {
  21. int minlength;
  22. int i, c;
  23. minlength = 1; // Initial password length to try, must be at least 1
  24. maxlength = 2; // Must be at least same as minlength
  25. /*
  26. * This defines the character set. This is auto-generated from UnicodeData.txt
  27. * and we skip control characters.
  28. */
  29. i = 0;
  30. c = 0x20; // from SPACE
  31. while (c < 0x7f) // ..to TILDE
  32. charset[i++] = c++;
  33. c = 0xa0; // from NO-BREAK SPACE
  34. while (c < 0x378) // ..to GREEK SMALL LETTER PAMPHYLIAN DIGAMMA
  35. charset[i++] = c++;
  36. c = 0x37a; // from GREEK YPOGEGRAMMENI
  37. while (c < 0x37f) // ..to GREEK QUESTION MARK
  38. charset[i++] = c++;
  39. c = 0x384; // from GREEK TONOS
  40. while (c < 0x38b) // ..to GREEK CAPITAL LETTER IOTA WITH TONOS
  41. charset[i++] = c++;
  42. c = 0x38e; // from GREEK CAPITAL LETTER UPSILON WITH TONOS
  43. while (c < 0x3a2) // ..to GREEK CAPITAL LETTER RHO
  44. charset[i++] = c++;
  45. c = 0x3a3; // from GREEK CAPITAL LETTER SIGMA
  46. while (c < 0x528) // ..to CYRILLIC SMALL LETTER SHHA WITH DESCENDER
  47. charset[i++] = c++;
  48. c = 0x531; // from ARMENIAN CAPITAL LETTER AYB
  49. while (c < 0x557) // ..to ARMENIAN CAPITAL LETTER FEH
  50. charset[i++] = c++;
  51. c = 0x559; // from ARMENIAN MODIFIER LETTER LEFT HALF RING
  52. while (c < 0x560) // ..to ARMENIAN ABBREVIATION MARK
  53. charset[i++] = c++;
  54. c = 0x561; // from ARMENIAN SMALL LETTER AYB
  55. while (c < 0x588) // ..to ARMENIAN SMALL LIGATURE ECH YIWN
  56. charset[i++] = c++;
  57. charset[i++] = 0x589; // ARMENIAN FULL STOP
  58. charset[i++] = 0x58a; // ARMENIAN HYPHEN
  59. c = 0x591; // from HEBREW ACCENT ETNAHTA
  60. while (c < 0x5c8) // ..to HEBREW POINT QAMATS QATAN
  61. charset[i++] = c++;
  62. c = 0x5d0; // from HEBREW LETTER ALEF
  63. while (c < 0x5eb) // ..to HEBREW LETTER TAV
  64. charset[i++] = c++;
  65. c = 0x5f0; // from HEBREW LIGATURE YIDDISH DOUBLE VAV
  66. while (c < 0x5f5) // ..to HEBREW PUNCTUATION GERSHAYIM
  67. charset[i++] = c++;
  68. c = 0x600; // from ARABIC NUMBER SIGN
  69. while (c < 0x604) // ..to ARABIC SIGN SAFHA
  70. charset[i++] = c++;
  71. c = 0x606; // from ARABIC-INDIC CUBE ROOT
  72. while (c < 0x61c) // ..to ARABIC SEMICOLON
  73. charset[i++] = c++;
  74. c = 0x61e; // from ARABIC TRIPLE DOT PUNCTUATION MARK
  75. while (c < 0x70e) // ..to SYRIAC HARKLEAN ASTERISCUS
  76. charset[i++] = c++;
  77. c = 0x70f; // from SYRIAC ABBREVIATION MARK
  78. while (c < 0x74b) // ..to SYRIAC BARREKH
  79. charset[i++] = c++;
  80. c = 0x74d; // from SYRIAC LETTER SOGDIAN ZHAIN
  81. while (c < 0x7b2) // ..to THAANA LETTER NAA
  82. charset[i++] = c++;
  83. c = 0x7c0; // from NKO DIGIT ZERO
  84. while (c < 0x7fb) // ..to NKO LAJANYALAN
  85. charset[i++] = c++;
  86. c = 0x800; // from SAMARITAN LETTER ALAF
  87. while (c < 0x82e) // ..to SAMARITAN MARK NEQUDAA
  88. charset[i++] = c++;
  89. c = 0x830; // from SAMARITAN PUNCTUATION NEQUDAA
  90. while (c < 0x83f) // ..to SAMARITAN PUNCTUATION ANNAAU
  91. charset[i++] = c++;
  92. c = 0x840; // from MANDAIC LETTER HALQA
  93. while (c < 0x85c) // ..to MANDAIC GEMINATION MARK
  94. charset[i++] = c++;
  95. c = 0x900; // from DEVANAGARI SIGN INVERTED CANDRABINDU
  96. while (c < 0x978) // ..to DEVANAGARI LETTER UUE
  97. charset[i++] = c++;
  98. c = 0x979; // from DEVANAGARI LETTER ZHA
  99. while (c < 0x980) // ..to DEVANAGARI LETTER BBA
  100. charset[i++] = c++;
  101. charset[i++] = 0x981; // BENGALI SIGN CANDRABINDU
  102. charset[i++] = 0x983; // BENGALI SIGN VISARGA
  103. c = 0x985; // from BENGALI LETTER A
  104. while (c < 0x98d) // ..to BENGALI LETTER VOCALIC L
  105. charset[i++] = c++;
  106. charset[i++] = 0x98f; // BENGALI LETTER E
  107. charset[i++] = 0x990; // BENGALI LETTER AI
  108. c = 0x993; // from BENGALI LETTER O
  109. while (c < 0x9a9) // ..to BENGALI LETTER NA
  110. charset[i++] = c++;
  111. c = 0x9aa; // from BENGALI LETTER PA
  112. while (c < 0x9b1) // ..to BENGALI LETTER RA
  113. charset[i++] = c++;
  114. c = 0x9b6; // from BENGALI LETTER SHA
  115. while (c < 0x9ba) // ..to BENGALI LETTER HA
  116. charset[i++] = c++;
  117. c = 0x9bc; // from BENGALI SIGN NUKTA
  118. while (c < 0x9c5) // ..to BENGALI VOWEL SIGN VOCALIC RR
  119. charset[i++] = c++;
  120. charset[i++] = 0x9c7; // BENGALI VOWEL SIGN E
  121. charset[i++] = 0x9c8; // BENGALI VOWEL SIGN AI
  122. c = 0x9cb; // from BENGALI VOWEL SIGN O
  123. while (c < 0x9cf) // ..to BENGALI LETTER KHANDA TA
  124. charset[i++] = c++;
  125. charset[i++] = 0x9dc; // BENGALI LETTER RRA
  126. charset[i++] = 0x9dd; // BENGALI LETTER RHA
  127. c = 0x9df; // from BENGALI LETTER YYA
  128. while (c < 0x9e4) // ..to BENGALI VOWEL SIGN VOCALIC LL
  129. charset[i++] = c++;
  130. c = 0x9e6; // from BENGALI DIGIT ZERO
  131. while (c < 0x9fc) // ..to BENGALI GANDA MARK
  132. charset[i++] = c++;
  133. charset[i++] = 0xa01; // GURMUKHI SIGN ADAK BINDI
  134. charset[i++] = 0xa03; // GURMUKHI SIGN VISARGA
  135. c = 0xa05; // from GURMUKHI LETTER A
  136. while (c < 0xa0b) // ..to GURMUKHI LETTER UU
  137. charset[i++] = c++;
  138. charset[i++] = 0xa0f; // GURMUKHI LETTER EE
  139. charset[i++] = 0xa10; // GURMUKHI LETTER AI
  140. c = 0xa13; // from GURMUKHI LETTER OO
  141. while (c < 0xa29) // ..to GURMUKHI LETTER NA
  142. charset[i++] = c++;
  143. c = 0xa2a; // from GURMUKHI LETTER PA
  144. while (c < 0xa31) // ..to GURMUKHI LETTER RA
  145. charset[i++] = c++;
  146. charset[i++] = 0xa32; // GURMUKHI LETTER LA
  147. charset[i++] = 0xa33; // GURMUKHI LETTER LLA
  148. charset[i++] = 0xa35; // GURMUKHI LETTER VA
  149. charset[i++] = 0xa36; // GURMUKHI LETTER SHA
  150. charset[i++] = 0xa38; // GURMUKHI LETTER SA
  151. charset[i++] = 0xa39; // GURMUKHI LETTER HA
  152. c = 0xa3e; // from GURMUKHI VOWEL SIGN AA
  153. while (c < 0xa43) // ..to GURMUKHI VOWEL SIGN UU
  154. charset[i++] = c++;
  155. charset[i++] = 0xa47; // GURMUKHI VOWEL SIGN EE
  156. charset[i++] = 0xa48; // GURMUKHI VOWEL SIGN AI
  157. charset[i++] = 0xa4b; // GURMUKHI VOWEL SIGN OO
  158. charset[i++] = 0xa4d; // GURMUKHI SIGN VIRAMA
  159. c = 0xa59; // from GURMUKHI LETTER KHHA
  160. while (c < 0xa5d) // ..to GURMUKHI LETTER RRA
  161. charset[i++] = c++;
  162. c = 0xa66; // from GURMUKHI DIGIT ZERO
  163. while (c < 0xa76) // ..to GURMUKHI SIGN YAKASH
  164. charset[i++] = c++;
  165. charset[i++] = 0xa81; // GUJARATI SIGN CANDRABINDU
  166. charset[i++] = 0xa83; // GUJARATI SIGN VISARGA
  167. c = 0xa85; // from GUJARATI LETTER A
  168. while (c < 0xa8e) // ..to GUJARATI VOWEL CANDRA E
  169. charset[i++] = c++;
  170. charset[i++] = 0xa8f; // GUJARATI LETTER E
  171. charset[i++] = 0xa91; // GUJARATI VOWEL CANDRA O
  172. c = 0xa93; // from GUJARATI LETTER O
  173. while (c < 0xaa9) // ..to GUJARATI LETTER NA
  174. charset[i++] = c++;
  175. c = 0xaaa; // from GUJARATI LETTER PA
  176. while (c < 0xab1) // ..to GUJARATI LETTER RA
  177. charset[i++] = c++;
  178. charset[i++] = 0xab2; // GUJARATI LETTER LA
  179. charset[i++] = 0xab3; // GUJARATI LETTER LLA
  180. c = 0xab5; // from GUJARATI LETTER VA
  181. while (c < 0xaba) // ..to GUJARATI LETTER HA
  182. charset[i++] = c++;
  183. c = 0xabc; // from GUJARATI SIGN NUKTA
  184. while (c < 0xac6) // ..to GUJARATI VOWEL SIGN CANDRA E
  185. charset[i++] = c++;
  186. charset[i++] = 0xac7; // GUJARATI VOWEL SIGN E
  187. charset[i++] = 0xac9; // GUJARATI VOWEL SIGN CANDRA O
  188. charset[i++] = 0xacb; // GUJARATI VOWEL SIGN O
  189. charset[i++] = 0xacd; // GUJARATI SIGN VIRAMA
  190. c = 0xae0; // from GUJARATI LETTER VOCALIC RR
  191. while (c < 0xae4) // ..to GUJARATI VOWEL SIGN VOCALIC LL
  192. charset[i++] = c++;
  193. c = 0xae6; // from GUJARATI DIGIT ZERO
  194. while (c < 0xaf0) // ..to GUJARATI DIGIT NINE
  195. charset[i++] = c++;
  196. charset[i++] = 0xb01; // ORIYA SIGN CANDRABINDU
  197. charset[i++] = 0xb03; // ORIYA SIGN VISARGA
  198. c = 0xb05; // from ORIYA LETTER A
  199. while (c < 0xb0d) // ..to ORIYA LETTER VOCALIC L
  200. charset[i++] = c++;
  201. charset[i++] = 0xb0f; // ORIYA LETTER E
  202. charset[i++] = 0xb10; // ORIYA LETTER AI
  203. c = 0xb13; // from ORIYA LETTER O
  204. while (c < 0xb29) // ..to ORIYA LETTER NA
  205. charset[i++] = c++;
  206. c = 0xb2a; // from ORIYA LETTER PA
  207. while (c < 0xb31) // ..to ORIYA LETTER RA
  208. charset[i++] = c++;
  209. charset[i++] = 0xb32; // ORIYA LETTER LA
  210. charset[i++] = 0xb33; // ORIYA LETTER LLA
  211. c = 0xb35; // from ORIYA LETTER VA
  212. while (c < 0xb3a) // ..to ORIYA LETTER HA
  213. charset[i++] = c++;
  214. c = 0xb3c; // from ORIYA SIGN NUKTA
  215. while (c < 0xb45) // ..to ORIYA VOWEL SIGN VOCALIC RR
  216. charset[i++] = c++;
  217. charset[i++] = 0xb47; // ORIYA VOWEL SIGN E
  218. charset[i++] = 0xb48; // ORIYA VOWEL SIGN AI
  219. charset[i++] = 0xb4b; // ORIYA VOWEL SIGN O
  220. charset[i++] = 0xb4d; // ORIYA SIGN VIRAMA
  221. charset[i++] = 0xb56; // ORIYA AI LENGTH MARK
  222. charset[i++] = 0xb57; // ORIYA AU LENGTH MARK
  223. charset[i++] = 0xb5c; // ORIYA LETTER RRA
  224. charset[i++] = 0xb5d; // ORIYA LETTER RHA
  225. c = 0xb5f; // from ORIYA LETTER YYA
  226. while (c < 0xb64) // ..to ORIYA VOWEL SIGN VOCALIC LL
  227. charset[i++] = c++;
  228. c = 0xb66; // from ORIYA DIGIT ZERO
  229. while (c < 0xb78) // ..to ORIYA FRACTION THREE SIXTEENTHS
  230. charset[i++] = c++;
  231. charset[i++] = 0xb82; // TAMIL SIGN ANUSVARA
  232. charset[i++] = 0xb83; // TAMIL SIGN VISARGA
  233. c = 0xb85; // from TAMIL LETTER A
  234. while (c < 0xb8b) // ..to TAMIL LETTER UU
  235. charset[i++] = c++;
  236. charset[i++] = 0xb8e; // TAMIL LETTER E
  237. charset[i++] = 0xb90; // TAMIL LETTER AI
  238. c = 0xb92; // from TAMIL LETTER O
  239. while (c < 0xb96) // ..to TAMIL LETTER KA
  240. charset[i++] = c++;
  241. charset[i++] = 0xb99; // TAMIL LETTER NGA
  242. charset[i++] = 0xb9a; // TAMIL LETTER CA
  243. charset[i++] = 0xb9e; // TAMIL LETTER NYA
  244. charset[i++] = 0xb9f; // TAMIL LETTER TTA
  245. charset[i++] = 0xba3; // TAMIL LETTER NNA
  246. charset[i++] = 0xba4; // TAMIL LETTER TA
  247. charset[i++] = 0xba8; // TAMIL LETTER NA
  248. charset[i++] = 0xbaa; // TAMIL LETTER PA
  249. c = 0xbae; // from TAMIL LETTER MA
  250. while (c < 0xbba) // ..to TAMIL LETTER HA
  251. charset[i++] = c++;
  252. c = 0xbbe; // from TAMIL VOWEL SIGN AA
  253. while (c < 0xbc3) // ..to TAMIL VOWEL SIGN UU
  254. charset[i++] = c++;
  255. charset[i++] = 0xbc6; // TAMIL VOWEL SIGN E
  256. charset[i++] = 0xbc8; // TAMIL VOWEL SIGN AI
  257. c = 0xbca; // from TAMIL VOWEL SIGN O
  258. while (c < 0xbce) // ..to TAMIL SIGN VIRAMA
  259. charset[i++] = c++;
  260. c = 0xbe6; // from TAMIL DIGIT ZERO
  261. while (c < 0xbfb) // ..to TAMIL NUMBER SIGN
  262. charset[i++] = c++;
  263. charset[i++] = 0xc01; // TELUGU SIGN CANDRABINDU
  264. charset[i++] = 0xc03; // TELUGU SIGN VISARGA
  265. c = 0xc05; // from TELUGU LETTER A
  266. while (c < 0xc0d) // ..to TELUGU LETTER VOCALIC L
  267. charset[i++] = c++;
  268. charset[i++] = 0xc0e; // TELUGU LETTER E
  269. charset[i++] = 0xc10; // TELUGU LETTER AI
  270. c = 0xc12; // from TELUGU LETTER O
  271. while (c < 0xc29) // ..to TELUGU LETTER NA
  272. charset[i++] = c++;
  273. c = 0xc2a; // from TELUGU LETTER PA
  274. while (c < 0xc34) // ..to TELUGU LETTER LLA
  275. charset[i++] = c++;
  276. c = 0xc35; // from TELUGU LETTER VA
  277. while (c < 0xc3a) // ..to TELUGU LETTER HA
  278. charset[i++] = c++;
  279. c = 0xc3d; // from TELUGU SIGN AVAGRAHA
  280. while (c < 0xc45) // ..to TELUGU VOWEL SIGN VOCALIC RR
  281. charset[i++] = c++;
  282. charset[i++] = 0xc46; // TELUGU VOWEL SIGN E
  283. charset[i++] = 0xc48; // TELUGU VOWEL SIGN AI
  284. c = 0xc4a; // from TELUGU VOWEL SIGN O
  285. while (c < 0xc4e) // ..to TELUGU SIGN VIRAMA
  286. charset[i++] = c++;
  287. charset[i++] = 0xc55; // TELUGU LENGTH MARK
  288. charset[i++] = 0xc56; // TELUGU AI LENGTH MARK
  289. charset[i++] = 0xc58; // TELUGU LETTER TSA
  290. charset[i++] = 0xc59; // TELUGU LETTER DZA
  291. c = 0xc60; // from TELUGU LETTER VOCALIC RR
  292. while (c < 0xc64) // ..to TELUGU VOWEL SIGN VOCALIC LL
  293. charset[i++] = c++;
  294. c = 0xc66; // from TELUGU DIGIT ZERO
  295. while (c < 0xc70) // ..to TELUGU DIGIT NINE
  296. charset[i++] = c++;
  297. c = 0xc78; // from TELUGU FRACTION DIGIT ZERO FOR ODD POWERS OF FOUR
  298. while (c < 0xc80) // ..to TELUGU SIGN TUUMU
  299. charset[i++] = c++;
  300. charset[i++] = 0xc82; // KANNADA SIGN ANUSVARA
  301. charset[i++] = 0xc83; // KANNADA SIGN VISARGA
  302. c = 0xc85; // from KANNADA LETTER A
  303. while (c < 0xc8d) // ..to KANNADA LETTER VOCALIC L
  304. charset[i++] = c++;
  305. charset[i++] = 0xc8e; // KANNADA LETTER E
  306. charset[i++] = 0xc90; // KANNADA LETTER AI
  307. c = 0xc92; // from KANNADA LETTER O
  308. while (c < 0xca9) // ..to KANNADA LETTER NA
  309. charset[i++] = c++;
  310. c = 0xcaa; // from KANNADA LETTER PA
  311. while (c < 0xcb4) // ..to KANNADA LETTER LLA
  312. charset[i++] = c++;
  313. c = 0xcb5; // from KANNADA LETTER VA
  314. while (c < 0xcba) // ..to KANNADA LETTER HA
  315. charset[i++] = c++;
  316. c = 0xcbc; // from KANNADA SIGN NUKTA
  317. while (c < 0xcc5) // ..to KANNADA VOWEL SIGN VOCALIC RR
  318. charset[i++] = c++;
  319. charset[i++] = 0xcc6; // KANNADA VOWEL SIGN E
  320. charset[i++] = 0xcc8; // KANNADA VOWEL SIGN AI
  321. c = 0xcca; // from KANNADA VOWEL SIGN O
  322. while (c < 0xcce) // ..to KANNADA SIGN VIRAMA
  323. charset[i++] = c++;
  324. charset[i++] = 0xcd5; // KANNADA LENGTH MARK
  325. charset[i++] = 0xcd6; // KANNADA AI LENGTH MARK
  326. c = 0xce0; // from KANNADA LETTER VOCALIC RR
  327. while (c < 0xce4) // ..to KANNADA VOWEL SIGN VOCALIC LL
  328. charset[i++] = c++;
  329. c = 0xce6; // from KANNADA DIGIT ZERO
  330. while (c < 0xcf0) // ..to KANNADA DIGIT NINE
  331. charset[i++] = c++;
  332. charset[i++] = 0xcf1; // KANNADA SIGN JIHVAMULIYA
  333. charset[i++] = 0xcf2; // KANNADA SIGN UPADHMANIYA
  334. charset[i++] = 0xd02; // MALAYALAM SIGN ANUSVARA
  335. charset[i++] = 0xd03; // MALAYALAM SIGN VISARGA
  336. c = 0xd05; // from MALAYALAM LETTER A
  337. while (c < 0xd0d) // ..to MALAYALAM LETTER VOCALIC L
  338. charset[i++] = c++;
  339. charset[i++] = 0xd0e; // MALAYALAM LETTER E
  340. charset[i++] = 0xd10; // MALAYALAM LETTER AI
  341. c = 0xd12; // from MALAYALAM LETTER O
  342. while (c < 0xd3b) // ..to MALAYALAM LETTER TTTA
  343. charset[i++] = c++;
  344. c = 0xd3d; // from MALAYALAM SIGN AVAGRAHA
  345. while (c < 0xd45) // ..to MALAYALAM VOWEL SIGN VOCALIC RR
  346. charset[i++] = c++;
  347. charset[i++] = 0xd46; // MALAYALAM VOWEL SIGN E
  348. charset[i++] = 0xd48; // MALAYALAM VOWEL SIGN AI
  349. c = 0xd4a; // from MALAYALAM VOWEL SIGN O
  350. while (c < 0xd4f) // ..to MALAYALAM LETTER DOT REPH
  351. charset[i++] = c++;
  352. c = 0xd60; // from MALAYALAM LETTER VOCALIC RR
  353. while (c < 0xd64) // ..to MALAYALAM VOWEL SIGN VOCALIC LL
  354. charset[i++] = c++;
  355. c = 0xd66; // from MALAYALAM DIGIT ZERO
  356. while (c < 0xd76) // ..to MALAYALAM FRACTION THREE QUARTERS
  357. charset[i++] = c++;
  358. c = 0xd79; // from MALAYALAM DATE MARK
  359. while (c < 0xd80) // ..to MALAYALAM LETTER CHILLU K
  360. charset[i++] = c++;
  361. charset[i++] = 0xd82; // SINHALA SIGN ANUSVARAYA
  362. charset[i++] = 0xd83; // SINHALA SIGN VISARGAYA
  363. c = 0xd85; // from SINHALA LETTER AYANNA
  364. while (c < 0xd97) // ..to SINHALA LETTER AUYANNA
  365. charset[i++] = c++;
  366. c = 0xd9a; // from SINHALA LETTER ALPAPRAANA KAYANNA
  367. while (c < 0xdb2) // ..to SINHALA LETTER DANTAJA NAYANNA
  368. charset[i++] = c++;
  369. c = 0xdb3; // from SINHALA LETTER SANYAKA DAYANNA
  370. while (c < 0xdbc) // ..to SINHALA LETTER RAYANNA
  371. charset[i++] = c++;
  372. c = 0xdc0; // from SINHALA LETTER VAYANNA
  373. while (c < 0xdc7) // ..to SINHALA LETTER FAYANNA
  374. charset[i++] = c++;
  375. c = 0xdcf; // from SINHALA VOWEL SIGN AELA-PILLA
  376. while (c < 0xdd5) // ..to SINHALA VOWEL SIGN KETTI PAA-PILLA
  377. charset[i++] = c++;
  378. c = 0xdd8; // from SINHALA VOWEL SIGN GAETTA-PILLA
  379. while (c < 0xde0) // ..to SINHALA VOWEL SIGN GAYANUKITTA
  380. charset[i++] = c++;
  381. charset[i++] = 0xdf2; // SINHALA VOWEL SIGN DIGA GAETTA-PILLA
  382. charset[i++] = 0xdf4; // SINHALA PUNCTUATION KUNDDALIYA
  383. c = 0xe01; // from THAI CHARACTER KO KAI
  384. while (c < 0xe3b) // ..to THAI CHARACTER PHINTHU
  385. charset[i++] = c++;
  386. c = 0xe3f; // from THAI CURRENCY SYMBOL BAHT
  387. while (c < 0xe5c) // ..to THAI CHARACTER KHOMUT
  388. charset[i++] = c++;
  389. charset[i++] = 0xe81; // LAO LETTER KO
  390. charset[i++] = 0xe82; // LAO LETTER KHO SUNG
  391. charset[i++] = 0xe87; // LAO LETTER NGO
  392. charset[i++] = 0xe88; // LAO LETTER CO
  393. c = 0xe94; // from LAO LETTER DO
  394. while (c < 0xe98) // ..to LAO LETTER THO TAM
  395. charset[i++] = c++;
  396. c = 0xe99; // from LAO LETTER NO
  397. while (c < 0xea0) // ..to LAO LETTER FO SUNG
  398. charset[i++] = c++;
  399. charset[i++] = 0xea1; // LAO LETTER MO
  400. charset[i++] = 0xea3; // LAO LETTER LO LING
  401. charset[i++] = 0xeaa; // LAO LETTER SO SUNG
  402. charset[i++] = 0xeab; // LAO LETTER HO SUNG
  403. c = 0xead; // from LAO LETTER O
  404. while (c < 0xeba) // ..to LAO VOWEL SIGN UU
  405. charset[i++] = c++;
  406. charset[i++] = 0xebb; // LAO VOWEL SIGN MAI KON
  407. charset[i++] = 0xebd; // LAO SEMIVOWEL SIGN NYO
  408. c = 0xec0; // from LAO VOWEL SIGN E
  409. while (c < 0xec5) // ..to LAO VOWEL SIGN AI
  410. charset[i++] = c++;
  411. c = 0xec8; // from LAO TONE MAI EK
  412. while (c < 0xece) // ..to LAO NIGGAHITA
  413. charset[i++] = c++;
  414. c = 0xed0; // from LAO DIGIT ZERO
  415. while (c < 0xeda) // ..to LAO DIGIT NINE
  416. charset[i++] = c++;
  417. charset[i++] = 0xedc; // LAO HO NO
  418. charset[i++] = 0xedd; // LAO HO MO
  419. c = 0xf00; // from TIBETAN SYLLABLE OM
  420. while (c < 0xf48) // ..to TIBETAN LETTER JA
  421. charset[i++] = c++;
  422. c = 0xf49; // from TIBETAN LETTER NYA
  423. while (c < 0xf6d) // ..to TIBETAN LETTER RRA
  424. charset[i++] = c++;
  425. c = 0xf71; // from TIBETAN VOWEL SIGN AA
  426. while (c < 0xf98) // ..to TIBETAN SUBJOINED LETTER JA
  427. charset[i++] = c++;
  428. c = 0xf99; // from TIBETAN SUBJOINED LETTER NYA
  429. while (c < 0xfbd) // ..to TIBETAN SUBJOINED LETTER FIXED-FORM RA
  430. charset[i++] = c++;
  431. c = 0xfbe; // from TIBETAN KU RU KHA
  432. while (c < 0xfcd) // ..to TIBETAN SYMBOL NOR BU BZHI -KHYIL
  433. charset[i++] = c++;
  434. c = 0xfce; // from TIBETAN SIGN RDEL NAG RDEL DKAR
  435. while (c < 0xfdb) // ..to TIBETAN MARK TRAILING MCHAN RTAGS
  436. charset[i++] = c++;
  437. c = 0x1000; // from MYANMAR LETTER KA
  438. while (c < 0x10c6) // ..to GEORGIAN CAPITAL LETTER HOE
  439. charset[i++] = c++;
  440. c = 0x10d0; // from GEORGIAN LETTER AN
  441. while (c < 0x10fd) // ..to MODIFIER LETTER GEORGIAN NAR
  442. charset[i++] = c++;
  443. c = 0x1100; // from HANGUL CHOSEONG KIYEOK
  444. while (c < 0x1249) // ..to ETHIOPIC SYLLABLE QWA
  445. charset[i++] = c++;
  446. c = 0x124a; // from ETHIOPIC SYLLABLE QWI
  447. while (c < 0x124e) // ..to ETHIOPIC SYLLABLE QWE
  448. charset[i++] = c++;
  449. c = 0x1250; // from ETHIOPIC SYLLABLE QHA
  450. while (c < 0x1257) // ..to ETHIOPIC SYLLABLE QHO
  451. charset[i++] = c++;
  452. c = 0x125a; // from ETHIOPIC SYLLABLE QHWI
  453. while (c < 0x125e) // ..to ETHIOPIC SYLLABLE QHWE
  454. charset[i++] = c++;
  455. c = 0x1260; // from ETHIOPIC SYLLABLE BA
  456. while (c < 0x1289) // ..to ETHIOPIC SYLLABLE XWA
  457. charset[i++] = c++;
  458. c = 0x128a; // from ETHIOPIC SYLLABLE XWI
  459. while (c < 0x128e) // ..to ETHIOPIC SYLLABLE XWE
  460. charset[i++] = c++;
  461. c = 0x1290; // from ETHIOPIC SYLLABLE NA
  462. while (c < 0x12b1) // ..to ETHIOPIC SYLLABLE KWA
  463. charset[i++] = c++;
  464. c = 0x12b2; // from ETHIOPIC SYLLABLE KWI
  465. while (c < 0x12b6) // ..to ETHIOPIC SYLLABLE KWE
  466. charset[i++] = c++;
  467. c = 0x12b8; // from ETHIOPIC SYLLABLE KXA
  468. while (c < 0x12bf) // ..to ETHIOPIC SYLLABLE KXO
  469. charset[i++] = c++;
  470. c = 0x12c2; // from ETHIOPIC SYLLABLE KXWI
  471. while (c < 0x12c6) // ..to ETHIOPIC SYLLABLE KXWE
  472. charset[i++] = c++;
  473. c = 0x12c8; // from ETHIOPIC SYLLABLE WA
  474. while (c < 0x12d7) // ..to ETHIOPIC SYLLABLE PHARYNGEAL O
  475. charset[i++] = c++;
  476. c = 0x12d8; // from ETHIOPIC SYLLABLE ZA
  477. while (c < 0x1311) // ..to ETHIOPIC SYLLABLE GWA
  478. charset[i++] = c++;
  479. c = 0x1312; // from ETHIOPIC SYLLABLE GWI
  480. while (c < 0x1316) // ..to ETHIOPIC SYLLABLE GWE
  481. charset[i++] = c++;
  482. c = 0x1318; // from ETHIOPIC SYLLABLE GGA
  483. while (c < 0x135b) // ..to ETHIOPIC SYLLABLE FYA
  484. charset[i++] = c++;
  485. c = 0x135d; // from ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK
  486. while (c < 0x137d) // ..to ETHIOPIC NUMBER TEN THOUSAND
  487. charset[i++] = c++;
  488. c = 0x1380; // from ETHIOPIC SYLLABLE SEBATBEIT MWA
  489. while (c < 0x139a) // ..to ETHIOPIC TONAL MARK KURT
  490. charset[i++] = c++;
  491. c = 0x13a0; // from CHEROKEE LETTER A
  492. while (c < 0x13f5) // ..to CHEROKEE LETTER YV
  493. charset[i++] = c++;
  494. c = 0x1400; // from CANADIAN SYLLABICS HYPHEN
  495. while (c < 0x169d) // ..to OGHAM REVERSED FEATHER MARK
  496. charset[i++] = c++;
  497. c = 0x16a0; // from RUNIC LETTER FEHU FEOH FE F
  498. while (c < 0x16f1) // ..to RUNIC BELGTHOR SYMBOL
  499. charset[i++] = c++;
  500. c = 0x1700; // from TAGALOG LETTER A
  501. while (c < 0x170d) // ..to TAGALOG LETTER YA
  502. charset[i++] = c++;
  503. c = 0x170e; // from TAGALOG LETTER LA
  504. while (c < 0x1715) // ..to TAGALOG SIGN VIRAMA
  505. charset[i++] = c++;
  506. c = 0x1720; // from HANUNOO LETTER A
  507. while (c < 0x1737) // ..to PHILIPPINE DOUBLE PUNCTUATION
  508. charset[i++] = c++;
  509. c = 0x1740; // from BUHID LETTER A
  510. while (c < 0x1754) // ..to BUHID VOWEL SIGN U
  511. charset[i++] = c++;
  512. c = 0x1760; // from TAGBANWA LETTER A
  513. while (c < 0x176d) // ..to TAGBANWA LETTER YA
  514. charset[i++] = c++;
  515. charset[i++] = 0x176e; // TAGBANWA LETTER LA
  516. charset[i++] = 0x1770; // TAGBANWA LETTER SA
  517. charset[i++] = 0x1772; // TAGBANWA VOWEL SIGN I
  518. charset[i++] = 0x1773; // TAGBANWA VOWEL SIGN U
  519. c = 0x1780; // from KHMER LETTER KA
  520. while (c < 0x17de) // ..to KHMER SIGN ATTHACAN
  521. charset[i++] = c++;
  522. c = 0x17e0; // from KHMER DIGIT ZERO
  523. while (c < 0x17ea) // ..to KHMER DIGIT NINE
  524. charset[i++] = c++;
  525. c = 0x17f0; // from KHMER SYMBOL LEK ATTAK SON
  526. while (c < 0x17fa) // ..to KHMER SYMBOL LEK ATTAK PRAM-BUON
  527. charset[i++] = c++;
  528. c = 0x1800; // from MONGOLIAN BIRGA
  529. while (c < 0x180f) // ..to MONGOLIAN VOWEL SEPARATOR
  530. charset[i++] = c++;
  531. c = 0x1810; // from MONGOLIAN DIGIT ZERO
  532. while (c < 0x181a) // ..to MONGOLIAN DIGIT NINE
  533. charset[i++] = c++;
  534. c = 0x1820; // from MONGOLIAN LETTER A
  535. while (c < 0x1878) // ..to MONGOLIAN LETTER MANCHU ZHA
  536. charset[i++] = c++;
  537. c = 0x1880; // from MONGOLIAN LETTER ALI GALI ANUSVARA ONE
  538. while (c < 0x18ab) // ..to MONGOLIAN LETTER MANCHU ALI GALI LHA
  539. charset[i++] = c++;
  540. c = 0x18b0; // from CANADIAN SYLLABICS OY
  541. while (c < 0x18f6) // ..to CANADIAN SYLLABICS CARRIER DENTAL S
  542. charset[i++] = c++;
  543. c = 0x1900; // from LIMBU VOWEL-CARRIER LETTER
  544. while (c < 0x191d) // ..to LIMBU LETTER HA
  545. charset[i++] = c++;
  546. c = 0x1920; // from LIMBU VOWEL SIGN A
  547. while (c < 0x192c) // ..to LIMBU SUBJOINED LETTER WA
  548. charset[i++] = c++;
  549. c = 0x1930; // from LIMBU SMALL LETTER KA
  550. while (c < 0x193c) // ..to LIMBU SIGN SA-I
  551. charset[i++] = c++;
  552. c = 0x1944; // from LIMBU EXCLAMATION MARK
  553. while (c < 0x196e) // ..to TAI LE LETTER AI
  554. charset[i++] = c++;
  555. c = 0x1970; // from TAI LE LETTER TONE-2
  556. while (c < 0x1975) // ..to TAI LE LETTER TONE-6
  557. charset[i++] = c++;
  558. c = 0x1980; // from NEW TAI LUE LETTER HIGH QA
  559. while (c < 0x19ac) // ..to NEW TAI LUE LETTER LOW SUA
  560. charset[i++] = c++;
  561. c = 0x19b0; // from NEW TAI LUE VOWEL SIGN VOWEL SHORTENER
  562. while (c < 0x19ca) // ..to NEW TAI LUE TONE MARK-2
  563. charset[i++] = c++;
  564. c = 0x19d0; // from NEW TAI LUE DIGIT ZERO
  565. while (c < 0x19db) // ..to NEW TAI LUE THAM DIGIT ONE
  566. charset[i++] = c++;
  567. c = 0x19de; // from NEW TAI LUE SIGN LAE
  568. while (c < 0x1a1c) // ..to BUGINESE VOWEL SIGN AE
  569. charset[i++] = c++;
  570. c = 0x1a1e; // from BUGINESE PALLAWA
  571. while (c < 0x1a5f) // ..to TAI THAM CONSONANT SIGN SA
  572. charset[i++] = c++;
  573. c = 0x1a60; // from TAI THAM SIGN SAKOT
  574. while (c < 0x1a7d) // ..to TAI THAM SIGN KHUEN-LUE KARAN
  575. charset[i++] = c++;
  576. c = 0x1a7f; // from TAI THAM COMBINING CRYPTOGRAMMIC DOT
  577. while (c < 0x1a8a) // ..to TAI THAM HORA DIGIT NINE
  578. charset[i++] = c++;
  579. c = 0x1a90; // from TAI THAM THAM DIGIT ZERO
  580. while (c < 0x1a9a) // ..to TAI THAM THAM DIGIT NINE
  581. charset[i++] = c++;
  582. c = 0x1aa0; // from TAI THAM SIGN WIANG
  583. while (c < 0x1aae) // ..to TAI THAM SIGN CAANG
  584. charset[i++] = c++;
  585. c = 0x1b00; // from BALINESE SIGN ULU RICEM
  586. while (c < 0x1b4c) // ..to BALINESE LETTER ASYURA SASAK
  587. charset[i++] = c++;
  588. c = 0x1b50; // from BALINESE DIGIT ZERO
  589. while (c < 0x1b7d) // ..to BALINESE MUSICAL SYMBOL LEFT-HAND OPEN PING
  590. charset[i++] = c++;
  591. c = 0x1b80; // from SUNDANESE SIGN PANYECEK
  592. while (c < 0x1bab) // ..to SUNDANESE SIGN PAMAAEH
  593. charset[i++] = c++;
  594. c = 0x1bae; // from SUNDANESE LETTER KHA
  595. while (c < 0x1bba) // ..to SUNDANESE DIGIT NINE
  596. charset[i++] = c++;
  597. c = 0x1bc0; // from BATAK LETTER A
  598. while (c < 0x1bf4) // ..to BATAK PANONGONAN
  599. charset[i++] = c++;
  600. c = 0x1bfc; // from BATAK SYMBOL BINDU NA METEK
  601. while (c < 0x1c38) // ..to LEPCHA SIGN NUKTA
  602. charset[i++] = c++;
  603. c = 0x1c3b; // from LEPCHA PUNCTUATION TA-ROL
  604. while (c < 0x1c4a) // ..to LEPCHA DIGIT NINE
  605. charset[i++] = c++;
  606. c = 0x1c4d; // from LEPCHA LETTER TTA
  607. while (c < 0x1c80) // ..to OL CHIKI PUNCTUATION DOUBLE MUCAAD
  608. charset[i++] = c++;
  609. c = 0x1cd0; // from VEDIC TONE KARSHANA
  610. while (c < 0x1cf3) // ..to VEDIC SIGN ARDHAVISARGA
  611. charset[i++] = c++;
  612. c = 0x1d00; // from LATIN LETTER SMALL CAPITAL A
  613. while (c < 0x1de7) // ..to COMBINING LATIN SMALL LETTER Z
  614. charset[i++] = c++;
  615. c = 0x1dfc; // from COMBINING DOUBLE INVERTED BREVE BELOW
  616. while (c < 0x1f16) // ..to GREEK SMALL LETTER EPSILON WITH DASIA AND OXIA
  617. charset[i++] = c++;
  618. c = 0x1f18; // from GREEK CAPITAL LETTER EPSILON WITH PSILI
  619. while (c < 0x1f1e) // ..to GREEK CAPITAL LETTER EPSILON WITH DASIA AND OXIA
  620. charset[i++] = c++;
  621. c = 0x1f20; // from GREEK SMALL LETTER ETA WITH PSILI
  622. while (c < 0x1f46) // ..to GREEK SMALL LETTER OMICRON WITH DASIA AND OXIA
  623. charset[i++] = c++;
  624. c = 0x1f48; // from GREEK CAPITAL LETTER OMICRON WITH PSILI
  625. while (c < 0x1f4e) // ..to GREEK CAPITAL LETTER OMICRON WITH DASIA AND OXIA
  626. charset[i++] = c++;
  627. c = 0x1f50; // from GREEK SMALL LETTER UPSILON WITH PSILI
  628. while (c < 0x1f58) // ..to GREEK SMALL LETTER UPSILON WITH DASIA AND PERISPOMENI
  629. charset[i++] = c++;
  630. c = 0x1f5f; // from GREEK CAPITAL LETTER UPSILON WITH DASIA AND PERISPOMENI
  631. while (c < 0x1f7e) // ..to GREEK SMALL LETTER OMEGA WITH OXIA
  632. charset[i++] = c++;
  633. c = 0x1f80; // from GREEK SMALL LETTER ALPHA WITH PSILI AND YPOGEGRAMMENI
  634. while (c < 0x1fb5) // ..to GREEK SMALL LETTER ALPHA WITH OXIA AND YPOGEGRAMMENI
  635. charset[i++] = c++;
  636. c = 0x1fb6; // from GREEK SMALL LETTER ALPHA WITH PERISPOMENI
  637. while (c < 0x1fc5) // ..to GREEK SMALL LETTER ETA WITH OXIA AND YPOGEGRAMMENI
  638. charset[i++] = c++;
  639. c = 0x1fc6; // from GREEK SMALL LETTER ETA WITH PERISPOMENI
  640. while (c < 0x1fd4) // ..to GREEK SMALL LETTER IOTA WITH DIALYTIKA AND OXIA
  641. charset[i++] = c++;
  642. c = 0x1fd6; // from GREEK SMALL LETTER IOTA WITH PERISPOMENI
  643. while (c < 0x1fdc) // ..to GREEK CAPITAL LETTER IOTA WITH OXIA
  644. charset[i++] = c++;
  645. c = 0x1fdd; // from GREEK DASIA AND VARIA
  646. while (c < 0x1ff0) // ..to GREEK VARIA
  647. charset[i++] = c++;
  648. charset[i++] = 0x1ff2; // GREEK SMALL LETTER OMEGA WITH VARIA AND YPOGEGRAMMENI
  649. charset[i++] = 0x1ff4; // GREEK SMALL LETTER OMEGA WITH OXIA AND YPOGEGRAMMENI
  650. c = 0x1ff6; // from GREEK SMALL LETTER OMEGA WITH PERISPOMENI
  651. while (c < 0x1fff) // ..to GREEK DASIA
  652. charset[i++] = c++;
  653. c = 0x2000; // from EN QUAD
  654. while (c < 0x2065) // ..to INVISIBLE PLUS
  655. charset[i++] = c++;
  656. c = 0x206a; // from INHIBIT SYMMETRIC SWAPPING
  657. while (c < 0x2072) // ..to SUPERSCRIPT LATIN SMALL LETTER I
  658. charset[i++] = c++;
  659. c = 0x2074; // from SUPERSCRIPT FOUR
  660. while (c < 0x208f) // ..to SUBSCRIPT RIGHT PARENTHESIS
  661. charset[i++] = c++;
  662. c = 0x2090; // from LATIN SUBSCRIPT SMALL LETTER A
  663. while (c < 0x209d) // ..to LATIN SUBSCRIPT SMALL LETTER T
  664. charset[i++] = c++;
  665. c = 0x20a0; // from EURO-CURRENCY SIGN
  666. while (c < 0x20ba) // ..to INDIAN RUPEE SIGN
  667. charset[i++] = c++;
  668. c = 0x20d0; // from COMBINING LEFT HARPOON ABOVE
  669. while (c < 0x20f1) // ..to COMBINING ASTERISK ABOVE
  670. charset[i++] = c++;
  671. c = 0x2100; // from ACCOUNT OF
  672. while (c < 0x218a) // ..to VULGAR FRACTION ZERO THIRDS
  673. charset[i++] = c++;
  674. c = 0x2190; // from LEFTWARDS ARROW
  675. while (c < 0x23f4) // ..to HOURGLASS WITH FLOWING SAND
  676. charset[i++] = c++;
  677. c = 0x2400; // from SYMBOL FOR NULL
  678. while (c < 0x2427) // ..to SYMBOL FOR SUBSTITUTE FORM TWO
  679. charset[i++] = c++;
  680. c = 0x2440; // from OCR HOOK
  681. while (c < 0x244b) // ..to OCR DOUBLE BACKSLASH
  682. charset[i++] = c++;
  683. c = 0x2460; // from CIRCLED DIGIT ONE
  684. while (c < 0x2700) // ..to WHITE FLAG WITH HORIZONTAL MIDDLE BLACK STRIPE
  685. charset[i++] = c++;
  686. c = 0x2701; // from UPPER BLADE SCISSORS
  687. while (c < 0x27cb) // ..to VERTICAL BAR WITH HORIZONTAL STROKE
  688. charset[i++] = c++;
  689. c = 0x27ce; // from SQUARED LOGICAL AND
  690. while (c < 0x2b4d) // ..to RIGHTWARDS ARROW ABOVE REVERSE TILDE OPERATOR
  691. charset[i++] = c++;
  692. c = 0x2b50; // from WHITE MEDIUM STAR
  693. while (c < 0x2b5a) // ..to HEAVY CIRCLED SALTIRE
  694. charset[i++] = c++;
  695. c = 0x2c00; // from GLAGOLITIC CAPITAL LETTER AZU
  696. while (c < 0x2c2f) // ..to GLAGOLITIC CAPITAL LETTER LATINATE MYSLITE
  697. charset[i++] = c++;
  698. c = 0x2c30; // from GLAGOLITIC SMALL LETTER AZU
  699. while (c < 0x2c5f) // ..to GLAGOLITIC SMALL LETTER LATINATE MYSLITE
  700. charset[i++] = c++;
  701. c = 0x2c60; // from LATIN CAPITAL LETTER L WITH DOUBLE BAR
  702. while (c < 0x2cf2) // ..to COPTIC COMBINING SPIRITUS LENIS
  703. charset[i++] = c++;
  704. c = 0x2cf9; // from COPTIC OLD NUBIAN FULL STOP
  705. while (c < 0x2d26) // ..to GEORGIAN SMALL LETTER HOE
  706. charset[i++] = c++;
  707. c = 0x2d30; // from TIFINAGH LETTER YA
  708. while (c < 0x2d66) // ..to TIFINAGH LETTER YAZZ
  709. charset[i++] = c++;
  710. charset[i++] = 0x2d6f; // TIFINAGH MODIFIER LETTER LABIALIZATION MARK
  711. charset[i++] = 0x2d70; // TIFINAGH SEPARATOR MARK
  712. c = 0x2d7f; // from TIFINAGH CONSONANT JOINER
  713. while (c < 0x2d97) // ..to ETHIOPIC SYLLABLE GGWE
  714. charset[i++] = c++;
  715. c = 0x2da0; // from ETHIOPIC SYLLABLE SSA
  716. while (c < 0x2da7) // ..to ETHIOPIC SYLLABLE SSO
  717. charset[i++] = c++;
  718. c = 0x2da8; // from ETHIOPIC SYLLABLE CCA
  719. while (c < 0x2daf) // ..to ETHIOPIC SYLLABLE CCO
  720. charset[i++] = c++;
  721. c = 0x2db0; // from ETHIOPIC SYLLABLE ZZA
  722. while (c < 0x2db7) // ..to ETHIOPIC SYLLABLE ZZO
  723. charset[i++] = c++;
  724. c = 0x2db8; // from ETHIOPIC SYLLABLE CCHA
  725. while (c < 0x2dbf) // ..to ETHIOPIC SYLLABLE CCHO
  726. charset[i++] = c++;
  727. c = 0x2dc0; // from ETHIOPIC SYLLABLE QYA
  728. while (c < 0x2dc7) // ..to ETHIOPIC SYLLABLE QYO
  729. charset[i++] = c++;
  730. c = 0x2dc8; // from ETHIOPIC SYLLABLE KYA
  731. while (c < 0x2dcf) // ..to ETHIOPIC SYLLABLE KYO
  732. charset[i++] = c++;
  733. c = 0x2dd0; // from ETHIOPIC SYLLABLE XYA
  734. while (c < 0x2dd7) // ..to ETHIOPIC SYLLABLE XYO
  735. charset[i++] = c++;
  736. c = 0x2dd8; // from ETHIOPIC SYLLABLE GYA
  737. while (c < 0x2ddf) // ..to ETHIOPIC SYLLABLE GYO
  738. charset[i++] = c++;
  739. c = 0x2de0; // from COMBINING CYRILLIC LETTER BE
  740. while (c < 0x2e32) // ..to WORD SEPARATOR MIDDLE DOT
  741. charset[i++] = c++;
  742. c = 0x2e80; // from CJK RADICAL REPEAT
  743. while (c < 0x2e9a) // ..to CJK RADICAL RAP
  744. charset[i++] = c++;
  745. c = 0x2e9b; // from CJK RADICAL CHOKE
  746. while (c < 0x2ef4) // ..to CJK RADICAL C-SIMPLIFIED TURTLE
  747. charset[i++] = c++;
  748. c = 0x2f00; // from KANGXI RADICAL ONE
  749. while (c < 0x2fd6) // ..to KANGXI RADICAL FLUTE
  750. charset[i++] = c++;
  751. c = 0x2ff0; // from IDEOGRAPHIC DESCRIPTION CHARACTER LEFT TO RIGHT
  752. while (c < 0x2ffc) // ..to IDEOGRAPHIC DESCRIPTION CHARACTER OVERLAID
  753. charset[i++] = c++;
  754. c = 0x3000; // from IDEOGRAPHIC SPACE
  755. while (c < 0x3040) // ..to IDEOGRAPHIC HALF FILL SPACE
  756. charset[i++] = c++;
  757. c = 0x3041; // from HIRAGANA LETTER SMALL A
  758. while (c < 0x3097) // ..to HIRAGANA LETTER SMALL KE
  759. charset[i++] = c++;
  760. c = 0x3099; // from COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK
  761. while (c < 0x3100) // ..to KATAKANA DIGRAPH KOTO
  762. charset[i++] = c++;
  763. c = 0x3105; // from BOPOMOFO LETTER B
  764. while (c < 0x312e) // ..to BOPOMOFO LETTER IH
  765. charset[i++] = c++;
  766. c = 0x3131; // from HANGUL LETTER KIYEOK
  767. while (c < 0x318f) // ..to HANGUL LETTER ARAEAE
  768. charset[i++] = c++;
  769. c = 0x3190; // from IDEOGRAPHIC ANNOTATION LINKING MARK
  770. while (c < 0x31bb) // ..to BOPOMOFO LETTER ZY
  771. charset[i++] = c++;
  772. c = 0x31c0; // from CJK STROKE T
  773. while (c < 0x31e4) // ..to CJK STROKE Q
  774. charset[i++] = c++;
  775. c = 0x31f0; // from KATAKANA LETTER SMALL KU
  776. while (c < 0x321f) // ..to PARENTHESIZED KOREAN CHARACTER O HU
  777. charset[i++] = c++;
  778. c = 0x3220; // from PARENTHESIZED IDEOGRAPH ONE
  779. while (c < 0x32ff) // ..to CIRCLED KATAKANA WO
  780. charset[i++] = c++;
  781. c = 0x3300; // from SQUARE APAATO
  782. while (c < 0x3400) // ..to SQUARE GAL
  783. charset[i++] = c++;
  784. c = 0x3400; // from <CJK Ideograph Extension A, First>
  785. while (c < 0x4db6) // ..to <CJK Ideograph Extension A, Last>
  786. charset[i++] = c++;
  787. c = 0x4dc0; // from HEXAGRAM FOR THE CREATIVE HEAVEN
  788. while (c < 0x4e00) // ..to HEXAGRAM FOR BEFORE COMPLETION
  789. charset[i++] = c++;
  790. c = 0x4e00; // from <CJK Ideograph, First>
  791. while (c < 0x9fcc) // ..to <CJK Ideograph, Last>
  792. charset[i++] = c++;
  793. c = 0xa000; // from YI SYLLABLE IT
  794. while (c < 0xa48d) // ..to YI SYLLABLE YYR
  795. charset[i++] = c++;
  796. c = 0xa490; // from YI RADICAL QOT
  797. while (c < 0xa4c7) // ..to YI RADICAL KE
  798. charset[i++] = c++;
  799. c = 0xa4d0; // from LISU LETTER BA
  800. while (c < 0xa62c) // ..to VAI SYLLABLE NDOLE DO
  801. charset[i++] = c++;
  802. c = 0xa640; // from CYRILLIC CAPITAL LETTER ZEMLYA
  803. while (c < 0xa674) // ..to SLAVONIC ASTERISK
  804. charset[i++] = c++;
  805. c = 0xa67c; // from COMBINING CYRILLIC KAVYKA
  806. while (c < 0xa698) // ..to CYRILLIC SMALL LETTER SHWE
  807. charset[i++] = c++;
  808. c = 0xa6a0; // from BAMUM LETTER A
  809. while (c < 0xa6f8) // ..to BAMUM QUESTION MARK
  810. charset[i++] = c++;
  811. c = 0xa700; // from MODIFIER LETTER CHINESE TONE YIN PING
  812. while (c < 0xa78f) // ..to LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT
  813. charset[i++] = c++;
  814. charset[i++] = 0xa790; // LATIN CAPITAL LETTER N WITH DESCENDER
  815. charset[i++] = 0xa791; // LATIN SMALL LETTER N WITH DESCENDER
  816. c = 0xa7a0; // from LATIN CAPITAL LETTER G WITH OBLIQUE STROKE
  817. while (c < 0xa7aa) // ..to LATIN SMALL LETTER S WITH OBLIQUE STROKE
  818. charset[i++] = c++;
  819. c = 0xa7fa; // from LATIN LETTER SMALL CAPITAL TURNED M
  820. while (c < 0xa82c) // ..to SYLOTI NAGRI POETRY MARK-4
  821. charset[i++] = c++;
  822. c = 0xa830; // from NORTH INDIC FRACTION ONE QUARTER
  823. while (c < 0xa83a) // ..to NORTH INDIC QUANTITY MARK
  824. charset[i++] = c++;
  825. c = 0xa840; // from PHAGS-PA LETTER KA
  826. while (c < 0xa878) // ..to PHAGS-PA MARK DOUBLE SHAD
  827. charset[i++] = c++;
  828. c = 0xa880; // from SAURASHTRA SIGN ANUSVARA
  829. while (c < 0xa8c5) // ..to SAURASHTRA SIGN VIRAMA
  830. charset[i++] = c++;
  831. c = 0xa8ce; // from SAURASHTRA DANDA
  832. while (c < 0xa8da) // ..to SAURASHTRA DIGIT NINE
  833. charset[i++] = c++;
  834. c = 0xa8e0; // from COMBINING DEVANAGARI DIGIT ZERO
  835. while (c < 0xa8fc) // ..to DEVANAGARI HEADSTROKE
  836. charset[i++] = c++;
  837. c = 0xa900; // from KAYAH LI DIGIT ZERO
  838. while (c < 0xa954) // ..to REJANG VIRAMA
  839. charset[i++] = c++;
  840. c = 0xa95f; // from REJANG SECTION MARK
  841. while (c < 0xa97d) // ..to HANGUL CHOSEONG SSANGYEORINHIEUH
  842. charset[i++] = c++;
  843. c = 0xa980; // from JAVANESE SIGN PANYANGGA
  844. while (c < 0xa9ce) // ..to JAVANESE TURNED PADA PISELEH
  845. charset[i++] = c++;
  846. c = 0xa9cf; // from JAVANESE PANGRANGKEP
  847. while (c < 0xa9da) // ..to JAVANESE DIGIT NINE
  848. charset[i++] = c++;
  849. charset[i++] = 0xa9de; // JAVANESE PADA TIRTA TUMETES
  850. charset[i++] = 0xa9df; // JAVANESE PADA ISEN-ISEN
  851. c = 0xaa00; // from CHAM LETTER A
  852. while (c < 0xaa37) // ..to CHAM CONSONANT SIGN WA
  853. charset[i++] = c++;
  854. c = 0xaa40; // from CHAM LETTER FINAL K
  855. while (c < 0xaa4e) // ..to CHAM CONSONANT SIGN FINAL H
  856. charset[i++] = c++;
  857. c = 0xaa50; // from CHAM DIGIT ZERO
  858. while (c < 0xaa5a) // ..to CHAM DIGIT NINE
  859. charset[i++] = c++;
  860. c = 0xaa5c; // from CHAM PUNCTUATION SPIRAL
  861. while (c < 0xaa7c) // ..to MYANMAR SIGN PAO KAREN TONE
  862. charset[i++] = c++;
  863. c = 0xaa80; // from TAI VIET LETTER LOW KO
  864. while (c < 0xaac3) // ..to TAI VIET TONE MAI SONG
  865. charset[i++] = c++;
  866. c = 0xaadb; // from TAI VIET SYMBOL KON
  867. while (c < 0xaae0) // ..to TAI VIET SYMBOL KOI KOI
  868. charset[i++] = c++;
  869. c = 0xab01; // from ETHIOPIC SYLLABLE TTHU
  870. while (c < 0xab07) // ..to ETHIOPIC SYLLABLE TTHO
  871. charset[i++] = c++;
  872. c = 0xab09; // from ETHIOPIC SYLLABLE DDHU
  873. while (c < 0xab0f) // ..to ETHIOPIC SYLLABLE DDHO
  874. charset[i++] = c++;
  875. c = 0xab11; // from ETHIOPIC SYLLABLE DZU
  876. while (c < 0xab17) // ..to ETHIOPIC SYLLABLE DZO
  877. charset[i++] = c++;
  878. c = 0xab20; // from ETHIOPIC SYLLABLE CCHHA
  879. while (c < 0xab27) // ..to ETHIOPIC SYLLABLE CCHHO
  880. charset[i++] = c++;
  881. c = 0xab28; // from ETHIOPIC SYLLABLE BBA
  882. while (c < 0xab2f) // ..to ETHIOPIC SYLLABLE BBO
  883. charset[i++] = c++;
  884. c = 0xabc0; // from MEETEI MAYEK LETTER KOK
  885. while (c < 0xabee) // ..to MEETEI MAYEK APUN IYEK
  886. charset[i++] = c++;
  887. c = 0xabf0; // from MEETEI MAYEK DIGIT ZERO
  888. while (c < 0xabfa) // ..to MEETEI MAYEK DIGIT NINE
  889. charset[i++] = c++;
  890. c = 0xac00; // from <Hangul Syllable, First>
  891. while (c < 0xd7a4) // ..to <Hangul Syllable, Last>
  892. charset[i++] = c++;
  893. c = 0xd7b0; // from HANGUL JUNGSEONG O-YEO
  894. while (c < 0xd7c7) // ..to HANGUL JUNGSEONG ARAEA-E
  895. charset[i++] = c++;
  896. c = 0xd7cb; // from HANGUL JONGSEONG NIEUN-RIEUL
  897. while (c < 0xd7fc) // ..to HANGUL JONGSEONG PHIEUPH-THIEUTH
  898. charset[i++] = c++;
  899. c = 0xf900; // from CJK COMPATIBILITY IDEOGRAPH-F900
  900. while (c < 0xfa2e) // ..to CJK COMPATIBILITY IDEOGRAPH-FA2D
  901. charset[i++] = c++;
  902. c = 0xfa30; // from CJK COMPATIBILITY IDEOGRAPH-FA30
  903. while (c < 0xfa6e) // ..to CJK COMPATIBILITY IDEOGRAPH-FA6D
  904. charset[i++] = c++;
  905. c = 0xfa70; // from CJK COMPATIBILITY IDEOGRAPH-FA70
  906. while (c < 0xfada) // ..to CJK COMPATIBILITY IDEOGRAPH-FAD9
  907. charset[i++] = c++;
  908. c = 0xfb00; // from LATIN SMALL LIGATURE FF
  909. while (c < 0xfb07) // ..to LATIN SMALL LIGATURE ST
  910. charset[i++] = c++;
  911. c = 0xfb13; // from ARMENIAN SMALL LIGATURE MEN NOW
  912. while (c < 0xfb18) // ..to ARMENIAN SMALL LIGATURE MEN XEH
  913. charset[i++] = c++;
  914. c = 0xfb1d; // from HEBREW LETTER YOD WITH HIRIQ
  915. while (c < 0xfb37) // ..to HEBREW LETTER ZAYIN WITH DAGESH
  916. charset[i++] = c++;
  917. c = 0xfb38; // from HEBREW LETTER TET WITH DAGESH
  918. while (c < 0xfb3d) // ..to HEBREW LETTER LAMED WITH DAGESH
  919. charset[i++] = c++;
  920. charset[i++] = 0xfb40; // HEBREW LETTER NUN WITH DAGESH
  921. charset[i++] = 0xfb41; // HEBREW LETTER SAMEKH WITH DAGESH
  922. charset[i++] = 0xfb43; // HEBREW LETTER FINAL PE WITH DAGESH
  923. charset[i++] = 0xfb44; // HEBREW LETTER PE WITH DAGESH
  924. c = 0xfb46; // from HEBREW LETTER TSADI WITH DAGESH
  925. while (c < 0xfbc2) // ..to ARABIC SYMBOL SMALL TAH BELOW
  926. charset[i++] = c++;
  927. c = 0xfbd3; // from ARABIC LETTER NG ISOLATED FORM
  928. while (c < 0xfd40) // ..to ORNATE RIGHT PARENTHESIS
  929. charset[i++] = c++;
  930. c = 0xfd50; // from ARABIC LIGATURE TEH WITH JEEM WITH MEEM INITIAL FORM
  931. while (c < 0xfd90) // ..to ARABIC LIGATURE MEEM WITH KHAH WITH MEEM INITIAL FORM
  932. charset[i++] = c++;
  933. c = 0xfd92; // from ARABIC LIGATURE MEEM WITH JEEM WITH KHAH INITIAL FORM
  934. while (c < 0xfdc8) // ..to ARABIC LIGATURE NOON WITH JEEM WITH YEH FINAL FORM
  935. charset[i++] = c++;
  936. c = 0xfdf0; // from ARABIC LIGATURE SALLA USED AS KORANIC STOP SIGN ISOLATED FORM
  937. while (c < 0xfdfe) // ..to ARABIC LIGATURE BISMILLAH AR-RAHMAN AR-RAHEEM
  938. charset[i++] = c++;
  939. c = 0xfe00; // from VARIATION SELECTOR-1
  940. while (c < 0xfe1a) // ..to PRESENTATION FORM FOR VERTICAL HORIZONTAL ELLIPSIS
  941. charset[i++] = c++;
  942. c = 0xfe20; // from COMBINING LIGATURE LEFT HALF
  943. while (c < 0xfe27) // ..to COMBINING CONJOINING MACRON
  944. charset[i++] = c++;
  945. c = 0xfe30; // from PRESENTATION FORM FOR VERTICAL TWO DOT LEADER
  946. while (c < 0xfe53) // ..to SMALL FULL STOP
  947. charset[i++] = c++;
  948. c = 0xfe54; // from SMALL SEMICOLON
  949. while (c < 0xfe67) // ..to SMALL EQUALS SIGN
  950. charset[i++] = c++;
  951. c = 0xfe68; // from SMALL REVERSE SOLIDUS
  952. while (c < 0xfe6c) // ..to SMALL COMMERCIAL AT
  953. charset[i++] = c++;
  954. c = 0xfe70; // from ARABIC FATHATAN ISOLATED FORM
  955. while (c < 0xfe75) // ..to ARABIC KASRATAN ISOLATED FORM
  956. charset[i++] = c++;
  957. c = 0xfe76; // from ARABIC FATHA ISOLATED FORM
  958. while (c < 0xfefd) // ..to ARABIC LIGATURE LAM WITH ALEF FINAL FORM
  959. charset[i++] = c++;
  960. c = 0xff01; // from FULLWIDTH EXCLAMATION MARK
  961. while (c < 0xffbf) // ..to HALFWIDTH HANGUL LETTER HIEUH
  962. charset[i++] = c++;
  963. c = 0xffc2; // from HALFWIDTH HANGUL LETTER A
  964. while (c < 0xffc8) // ..to HALFWIDTH HANGUL LETTER E
  965. charset[i++] = c++;
  966. c = 0xffca; // from HALFWIDTH HANGUL LETTER YEO
  967. while (c < 0xffd0) // ..to HALFWIDTH HANGUL LETTER OE
  968. charset[i++] = c++;
  969. c = 0xffd2; // from HALFWIDTH HANGUL LETTER YO
  970. while (c < 0xffd8) // ..to HALFWIDTH HANGUL LETTER YU
  971. charset[i++] = c++;
  972. charset[i++] = 0xffda; // HALFWIDTH HANGUL LETTER EU
  973. charset[i++] = 0xffdc; // HALFWIDTH HANGUL LETTER I
  974. c = 0xffe0; // from FULLWIDTH CENT SIGN
  975. while (c < 0xffe7) // ..to FULLWIDTH WON SIGN
  976. charset[i++] = c++;
  977. c = 0xffe8; // from HALFWIDTH FORMS LIGHT VERTICAL
  978. while (c < 0xffef) // ..to HALFWIDTH WHITE CIRCLE
  979. charset[i++] = c++;
  980. c = 0xfff9; // from INTERLINEAR ANNOTATION ANCHOR
  981. while (c < 0xfffe) // ..to REPLACEMENT CHARACTER
  982. charset[i++] = c++;
  983. c = 0x10000; // from LINEAR B SYLLABLE B008 A
  984. while (c < 0x1000c) // ..to LINEAR B SYLLABLE B046 JE
  985. charset[i++] = c++;
  986. c = 0x1000d; // from LINEAR B SYLLABLE B036 JO
  987. while (c < 0x10027) // ..to LINEAR B SYLLABLE B032 QO
  988. charset[i++] = c++;
  989. c = 0x10028; // from LINEAR B SYLLABLE B060 RA
  990. while (c < 0x1003b) // ..to LINEAR B SYLLABLE B042 WO
  991. charset[i++] = c++;
  992. charset[i++] = 0x1003c; // LINEAR B SYLLABLE B017 ZA
  993. charset[i++] = 0x1003d; // LINEAR B SYLLABLE B074 ZE
  994. c = 0x1003f; // from LINEAR B SYLLABLE B020 ZO
  995. while (c < 0x1004e) // ..to LINEAR B SYLLABLE B091 TWO
  996. charset[i++] = c++;
  997. c = 0x10050; // from LINEAR B SYMBOL B018
  998. while (c < 0x1005e) // ..to LINEAR B SYMBOL B089
  999. charset[i++] = c++;
  1000. c = 0x10080; // from LINEAR B IDEOGRAM B100 MAN
  1001. while (c < 0x100fb) // ..to LINEAR B IDEOGRAM VESSEL B305
  1002. charset[i++] = c++;
  1003. charset[i++] = 0x10100; // AEGEAN WORD SEPARATOR LINE
  1004. charset[i++] = 0x10102; // AEGEAN CHECK MARK
  1005. c = 0x10107; // from AEGEAN NUMBER ONE
  1006. while (c < 0x10134) // ..to AEGEAN NUMBER NINETY THOUSAND
  1007. charset[i++] = c++;
  1008. c = 0x10137; // from AEGEAN WEIGHT BASE UNIT
  1009. while (c < 0x1018b) // ..to GREEK ZERO SIGN
  1010. charset[i++] = c++;
  1011. c = 0x10190; // from ROMAN SEXTANS SIGN
  1012. while (c < 0x1019c) // ..to ROMAN CENTURIAL SIGN
  1013. charset[i++] = c++;
  1014. c = 0x101d0; // from PHAISTOS DISC SIGN PEDESTRIAN
  1015. while (c < 0x101fe) // ..to PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
  1016. charset[i++] = c++;
  1017. c = 0x10280; // from LYCIAN LETTER A
  1018. while (c < 0x1029d) // ..to LYCIAN LETTER X
  1019. charset[i++] = c++;
  1020. c = 0x102a0; // from CARIAN LETTER A
  1021. while (c < 0x102d1) // ..to CARIAN LETTER UUU3
  1022. charset[i++] = c++;
  1023. c = 0x10300; // from OLD ITALIC LETTER A
  1024. while (c < 0x1031f) // ..to OLD ITALIC LETTER UU
  1025. charset[i++] = c++;
  1026. c = 0x10320; // from OLD ITALIC NUMERAL ONE
  1027. while (c < 0x10324) // ..to OLD ITALIC NUMERAL FIFTY
  1028. charset[i++] = c++;
  1029. c = 0x10330; // from GOTHIC LETTER AHSA
  1030. while (c < 0x1034b) // ..to GOTHIC LETTER NINE HUNDRED
  1031. charset[i++] = c++;
  1032. c = 0x10380; // from UGARITIC LETTER ALPA
  1033. while (c < 0x1039e) // ..to UGARITIC LETTER SSU
  1034. charset[i++] = c++;
  1035. c = 0x1039f; // from UGARITIC WORD DIVIDER
  1036. while (c < 0x103c4) // ..to OLD PERSIAN SIGN HA
  1037. charset[i++] = c++;
  1038. c = 0x103c8; // from OLD PERSIAN SIGN AURAMAZDAA
  1039. while (c < 0x103d6) // ..to OLD PERSIAN NUMBER HUNDRED
  1040. charset[i++] = c++;
  1041. c = 0x10400; // from DESERET CAPITAL LETTER LONG I
  1042. while (c < 0x1049e) // ..to OSMANYA LETTER OO
  1043. charset[i++] = c++;
  1044. c = 0x104a0; // from OSMANYA DIGIT ZERO
  1045. while (c < 0x104aa) // ..to OSMANYA DIGIT NINE
  1046. charset[i++] = c++;
  1047. c = 0x10800; // from CYPRIOT SYLLABLE A
  1048. while (c < 0x10806) // ..to CYPRIOT SYLLABLE JA
  1049. charset[i++] = c++;
  1050. c = 0x1080a; // from CYPRIOT SYLLABLE KA
  1051. while (c < 0x10836) // ..to CYPRIOT SYLLABLE WO
  1052. charset[i++] = c++;
  1053. charset[i++] = 0x10837; // CYPRIOT SYLLABLE XA
  1054. charset[i++] = 0x10838; // CYPRIOT SYLLABLE XE
  1055. c = 0x1083f; // from CYPRIOT SYLLABLE ZO
  1056. while (c < 0x10856) // ..to IMPERIAL ARAMAIC LETTER TAW
  1057. charset[i++] = c++;
  1058. c = 0x10857; // from IMPERIAL ARAMAIC SECTION SIGN
  1059. while (c < 0x10860) // ..to IMPERIAL ARAMAIC NUMBER TEN THOUSAND
  1060. charset[i++] = c++;
  1061. c = 0x10900; // from PHOENICIAN LETTER ALF
  1062. while (c < 0x1091c) // ..to PHOENICIAN NUMBER THREE
  1063. charset[i++] = c++;
  1064. c = 0x1091f; // from PHOENICIAN WORD SEPARATOR
  1065. while (c < 0x1093a) // ..to LYDIAN LETTER C
  1066. charset[i++] = c++;
  1067. c = 0x10a00; // from KHAROSHTHI LETTER A
  1068. while (c < 0x10a04) // ..to KHAROSHTHI VOWEL SIGN VOCALIC R
  1069. charset[i++] = c++;
  1070. charset[i++] = 0x10a05; // KHAROSHTHI VOWEL SIGN E
  1071. charset[i++] = 0x10a06; // KHAROSHTHI VOWEL SIGN O
  1072. c = 0x10a0c; // from KHAROSHTHI VOWEL LENGTH MARK
  1073. while (c < 0x10a14) // ..to KHAROSHTHI LETTER GHA
  1074. charset[i++] = c++;
  1075. charset[i++] = 0x10a15; // KHAROSHTHI LETTER CA
  1076. charset[i++] = 0x10a17; // KHAROSHTHI LETTER JA
  1077. c = 0x10a19; // from KHAROSHTHI LETTER NYA
  1078. while (c < 0x10a34) // ..to KHAROSHTHI LETTER TTTHA
  1079. charset[i++] = c++;
  1080. charset[i++] = 0x10a38; // KHAROSHTHI SIGN BAR ABOVE
  1081. charset[i++] = 0x10a3a; // KHAROSHTHI SIGN DOT BELOW
  1082. c = 0x10a3f; // from KHAROSHTHI VIRAMA
  1083. while (c < 0x10a48) // ..to KHAROSHTHI NUMBER ONE THOUSAND
  1084. charset[i++] = c++;
  1085. c = 0x10a50; // from KHAROSHTHI PUNCTUATION DOT
  1086. while (c < 0x10a59) // ..to KHAROSHTHI PUNCTUATION LINES
  1087. charset[i++] = c++;
  1088. c = 0x10a60; // from OLD SOUTH ARABIAN LETTER HE
  1089. while (c < 0x10a80) // ..to OLD SOUTH ARABIAN NUMERIC INDICATOR
  1090. charset[i++] = c++;
  1091. c = 0x10b00; // from AVESTAN LETTER A
  1092. while (c < 0x10b36) // ..to AVESTAN LETTER HE
  1093. charset[i++] = c++;
  1094. c = 0x10b39; // from AVESTAN ABBREVIATION MARK
  1095. while (c < 0x10b56) // ..to INSCRIPTIONAL PARTHIAN LETTER TAW
  1096. charset[i++] = c++;
  1097. c = 0x10b58; // from INSCRIPTIONAL PARTHIAN NUMBER ONE
  1098. while (c < 0x10b73) // ..to INSCRIPTIONAL PAHLAVI LETTER TAW
  1099. charset[i++] = c++;
  1100. c = 0x10b78; // from INSCRIPTIONAL PAHLAVI NUMBER ONE
  1101. while (c < 0x10b80) // ..to INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
  1102. charset[i++] = c++;
  1103. c = 0x10c00; // from OLD TURKIC LETTER ORKHON A
  1104. while (c < 0x10c49) // ..to OLD TURKIC LETTER ORKHON BASH
  1105. charset[i++] = c++;
  1106. c = 0x10e60; // from RUMI DIGIT ONE
  1107. while (c < 0x10e7f) // ..to RUMI FRACTION TWO THIRDS
  1108. charset[i++] = c++;
  1109. c = 0x11000; // from BRAHMI SIGN CANDRABINDU
  1110. while (c < 0x1104e) // ..to BRAHMI PUNCTUATION LOTUS
  1111. charset[i++] = c++;
  1112. c = 0x11052; // from BRAHMI NUMBER ONE
  1113. while (c < 0x11070) // ..to BRAHMI DIGIT NINE
  1114. charset[i++] = c++;
  1115. c = 0x11080; // from KAITHI SIGN CANDRABINDU
  1116. while (c < 0x110c2) // ..to KAITHI DOUBLE DANDA
  1117. charset[i++] = c++;
  1118. c = 0x12000; // from CUNEIFORM SIGN A
  1119. while (c < 0x1236f) // ..to CUNEIFORM SIGN ZUM
  1120. charset[i++] = c++;
  1121. c = 0x12400; // from CUNEIFORM NUMERIC SIGN TWO ASH
  1122. while (c < 0x12463) // ..to CUNEIFORM NUMERIC SIGN OLD ASSYRIAN ONE QUARTER
  1123. charset[i++] = c++;
  1124. c = 0x12470; // from CUNEIFORM PUNCTUATION SIGN OLD ASSYRIAN WORD DIVIDER
  1125. while (c < 0x12474) // ..to CUNEIFORM PUNCTUATION SIGN DIAGONAL TRICOLON
  1126. charset[i++] = c++;
  1127. c = 0x13000; // from EGYPTIAN HIEROGLYPH A001
  1128. while (c < 0x1342f) // ..to EGYPTIAN HIEROGLYPH AA032
  1129. charset[i++] = c++;
  1130. c = 0x16800; // from BAMUM LETTER PHASE-A NGKUE MFON
  1131. while (c < 0x16a39) // ..to BAMUM LETTER PHASE-F VUEQ
  1132. charset[i++] = c++;
  1133. charset[i++] = 0x1b000; // KATAKANA LETTER ARCHAIC E
  1134. charset[i++] = 0x1b001; // HIRAGANA LETTER ARCHAIC YE
  1135. c = 0x1d000; // from BYZANTINE MUSICAL SYMBOL PSILI
  1136. while (c < 0x1d0f6) // ..to BYZANTINE MUSICAL SYMBOL GORGON NEO KATO
  1137. charset[i++] = c++;
  1138. c = 0x1d100; // from MUSICAL SYMBOL SINGLE BARLINE
  1139. while (c < 0x1d127) // ..to MUSICAL SYMBOL DRUM CLEF-2
  1140. charset[i++] = c++;
  1141. c = 0x1d129; // from MUSICAL SYMBOL MULTIPLE MEASURE REST
  1142. while (c < 0x1d1de) // ..to MUSICAL SYMBOL PES SUBPUNCTIS
  1143. charset[i++] = c++;
  1144. c = 0x1d200; // from GREEK VOCAL NOTATION SYMBOL-1
  1145. while (c < 0x1d246) // ..to GREEK MUSICAL LEIMMA
  1146. charset[i++] = c++;
  1147. c = 0x1d300; // from MONOGRAM FOR EARTH
  1148. while (c < 0x1d357) // ..to TETRAGRAM FOR FOSTERING
  1149. charset[i++] = c++;
  1150. c = 0x1d360; // from COUNTING ROD UNIT DIGIT ONE
  1151. while (c < 0x1d372) // ..to COUNTING ROD TENS DIGIT NINE
  1152. charset[i++] = c++;
  1153. c = 0x1d400; // from MATHEMATICAL BOLD CAPITAL A
  1154. while (c < 0x1d455) // ..to MATHEMATICAL ITALIC SMALL G
  1155. charset[i++] = c++;
  1156. c = 0x1d456; // from MATHEMATICAL ITALIC SMALL I
  1157. while (c < 0x1d49d) // ..to MATHEMATICAL SCRIPT CAPITAL A
  1158. charset[i++] = c++;
  1159. charset[i++] = 0x1d49e; // MATHEMATICAL SCRIPT CAPITAL C
  1160. charset[i++] = 0x1d49f; // MATHEMATICAL SCRIPT CAPITAL D
  1161. charset[i++] = 0x1d4a5; // MATHEMATICAL SCRIPT CAPITAL J
  1162. charset[i++] = 0x1d4a6; // MATHEMATICAL SCRIPT CAPITAL K
  1163. c = 0x1d4a9; // from MATHEMATICAL SCRIPT CAPITAL N
  1164. while (c < 0x1d4ad) // ..to MATHEMATICAL SCRIPT CAPITAL Q
  1165. charset[i++] = c++;
  1166. c = 0x1d4ae; // from MATHEMATICAL SCRIPT CAPITAL S
  1167. while (c < 0x1d4ba) // ..to MATHEMATICAL SCRIPT SMALL D
  1168. charset[i++] = c++;
  1169. c = 0x1d4bd; // from MATHEMATICAL SCRIPT SMALL H
  1170. while (c < 0x1d4c4) // ..to MATHEMATICAL SCRIPT SMALL N
  1171. charset[i++] = c++;
  1172. c = 0x1d4c5; // from MATHEMATICAL SCRIPT SMALL P
  1173. while (c < 0x1d506) // ..to MATHEMATICAL FRAKTUR CAPITAL B
  1174. charset[i++] = c++;
  1175. c = 0x1d507; // from MATHEMATICAL FRAKTUR CAPITAL D
  1176. while (c < 0x1d50b) // ..to MATHEMATICAL FRAKTUR CAPITAL G
  1177. charset[i++] = c++;
  1178. c = 0x1d50d; // from MATHEMATICAL FRAKTUR CAPITAL J
  1179. while (c < 0x1d515) // ..to MATHEMATICAL FRAKTUR CAPITAL Q
  1180. charset[i++] = c++;
  1181. c = 0x1d516; // from MATHEMATICAL FRAKTUR CAPITAL S
  1182. while (c < 0x1d51d) // ..to MATHEMATICAL FRAKTUR CAPITAL Y
  1183. charset[i++] = c++;
  1184. c = 0x1d51e; // from MATHEMATICAL FRAKTUR SMALL A
  1185. while (c < 0x1d53a) // ..to MATHEMATICAL DOUBLE-STRUCK CAPITAL B
  1186. charset[i++] = c++;
  1187. c = 0x1d53b; // from MATHEMATICAL DOUBLE-STRUCK CAPITAL D
  1188. while (c < 0x1d53f) // ..to MATHEMATICAL DOUBLE-STRUCK CAPITAL G
  1189. charset[i++] = c++;
  1190. c = 0x1d540; // from MATHEMATICAL DOUBLE-STRUCK CAPITAL I
  1191. while (c < 0x1d545) // ..to MATHEMATICAL DOUBLE-STRUCK CAPITAL M
  1192. charset[i++] = c++;
  1193. c = 0x1d54a; // from MATHEMATICAL DOUBLE-STRUCK CAPITAL S
  1194. while (c < 0x1d551) // ..to MATHEMATICAL DOUBLE-STRUCK CAPITAL Y
  1195. charset[i++] = c++;
  1196. c = 0x1d552; // from MATHEMATICAL DOUBLE-STRUCK SMALL A
  1197. while (c < 0x1d6a6) // ..to MATHEMATICAL ITALIC SMALL DOTLESS J
  1198. charset[i++] = c++;
  1199. c = 0x1d6a8; // from MATHEMATICAL BOLD CA…

Large files files are truncated, but you can click here to view the full file