archive_string_composition.h 80 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292
  1. /*-
  2. * Copyright (c) 2011-2012 libarchive Project
  3. * All rights reserved.
  4. *
  5. * Redistribution and use in source and binary forms, with or without
  6. * modification, are permitted provided that the following conditions
  7. * are met:
  8. * 1. Redistributions of source code must retain the above copyright
  9. * notice, this list of conditions and the following disclaimer.
  10. * 2. Redistributions in binary form must reproduce the above copyright
  11. * notice, this list of conditions and the following disclaimer in the
  12. * documentation and/or other materials provided with the distribution.
  13. *
  14. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) AS IS'' AND ANY EXPRESS OR
  15. * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
  16. * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  17. * IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT,
  18. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
  19. * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  20. * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  21. * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  22. * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
  23. * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  24. *
  25. * $FreeBSD$
  26. *
  27. */
  28. /*
  29. * ATTENTION!
  30. * This file is generated by build/utils/gen_archive_string_composition_h.sh
  31. * from http://unicode.org/Public/6.0.0/ucd/UnicodeData.txt
  32. *
  33. * See also http://unicode.org/report/tr15/
  34. */
  35. #ifndef __LIBARCHIVE_BUILD
  36. #error This header is only to be used internally to libarchive.
  37. #endif
  38. #ifndef ARCHIVE_STRING_COMPOSITION_H_INCLUDED
  39. #define ARCHIVE_STRING_COMPOSITION_H_INCLUDED
  40. struct unicode_composition_table {
  41. uint32_t cp1;
  42. uint32_t cp2;
  43. uint32_t nfc;
  44. };
  45. static const struct unicode_composition_table u_composition_table[] = {
  46. { 0x0003C , 0x00338 , 0x0226E },
  47. { 0x0003D , 0x00338 , 0x02260 },
  48. { 0x0003E , 0x00338 , 0x0226F },
  49. { 0x00041 , 0x00300 , 0x000C0 },
  50. { 0x00041 , 0x00301 , 0x000C1 },
  51. { 0x00041 , 0x00302 , 0x000C2 },
  52. { 0x00041 , 0x00303 , 0x000C3 },
  53. { 0x00041 , 0x00304 , 0x00100 },
  54. { 0x00041 , 0x00306 , 0x00102 },
  55. { 0x00041 , 0x00307 , 0x00226 },
  56. { 0x00041 , 0x00308 , 0x000C4 },
  57. { 0x00041 , 0x00309 , 0x01EA2 },
  58. { 0x00041 , 0x0030A , 0x000C5 },
  59. { 0x00041 , 0x0030C , 0x001CD },
  60. { 0x00041 , 0x0030F , 0x00200 },
  61. { 0x00041 , 0x00311 , 0x00202 },
  62. { 0x00041 , 0x00323 , 0x01EA0 },
  63. { 0x00041 , 0x00325 , 0x01E00 },
  64. { 0x00041 , 0x00328 , 0x00104 },
  65. { 0x00042 , 0x00307 , 0x01E02 },
  66. { 0x00042 , 0x00323 , 0x01E04 },
  67. { 0x00042 , 0x00331 , 0x01E06 },
  68. { 0x00043 , 0x00301 , 0x00106 },
  69. { 0x00043 , 0x00302 , 0x00108 },
  70. { 0x00043 , 0x00307 , 0x0010A },
  71. { 0x00043 , 0x0030C , 0x0010C },
  72. { 0x00043 , 0x00327 , 0x000C7 },
  73. { 0x00044 , 0x00307 , 0x01E0A },
  74. { 0x00044 , 0x0030C , 0x0010E },
  75. { 0x00044 , 0x00323 , 0x01E0C },
  76. { 0x00044 , 0x00327 , 0x01E10 },
  77. { 0x00044 , 0x0032D , 0x01E12 },
  78. { 0x00044 , 0x00331 , 0x01E0E },
  79. { 0x00045 , 0x00300 , 0x000C8 },
  80. { 0x00045 , 0x00301 , 0x000C9 },
  81. { 0x00045 , 0x00302 , 0x000CA },
  82. { 0x00045 , 0x00303 , 0x01EBC },
  83. { 0x00045 , 0x00304 , 0x00112 },
  84. { 0x00045 , 0x00306 , 0x00114 },
  85. { 0x00045 , 0x00307 , 0x00116 },
  86. { 0x00045 , 0x00308 , 0x000CB },
  87. { 0x00045 , 0x00309 , 0x01EBA },
  88. { 0x00045 , 0x0030C , 0x0011A },
  89. { 0x00045 , 0x0030F , 0x00204 },
  90. { 0x00045 , 0x00311 , 0x00206 },
  91. { 0x00045 , 0x00323 , 0x01EB8 },
  92. { 0x00045 , 0x00327 , 0x00228 },
  93. { 0x00045 , 0x00328 , 0x00118 },
  94. { 0x00045 , 0x0032D , 0x01E18 },
  95. { 0x00045 , 0x00330 , 0x01E1A },
  96. { 0x00046 , 0x00307 , 0x01E1E },
  97. { 0x00047 , 0x00301 , 0x001F4 },
  98. { 0x00047 , 0x00302 , 0x0011C },
  99. { 0x00047 , 0x00304 , 0x01E20 },
  100. { 0x00047 , 0x00306 , 0x0011E },
  101. { 0x00047 , 0x00307 , 0x00120 },
  102. { 0x00047 , 0x0030C , 0x001E6 },
  103. { 0x00047 , 0x00327 , 0x00122 },
  104. { 0x00048 , 0x00302 , 0x00124 },
  105. { 0x00048 , 0x00307 , 0x01E22 },
  106. { 0x00048 , 0x00308 , 0x01E26 },
  107. { 0x00048 , 0x0030C , 0x0021E },
  108. { 0x00048 , 0x00323 , 0x01E24 },
  109. { 0x00048 , 0x00327 , 0x01E28 },
  110. { 0x00048 , 0x0032E , 0x01E2A },
  111. { 0x00049 , 0x00300 , 0x000CC },
  112. { 0x00049 , 0x00301 , 0x000CD },
  113. { 0x00049 , 0x00302 , 0x000CE },
  114. { 0x00049 , 0x00303 , 0x00128 },
  115. { 0x00049 , 0x00304 , 0x0012A },
  116. { 0x00049 , 0x00306 , 0x0012C },
  117. { 0x00049 , 0x00307 , 0x00130 },
  118. { 0x00049 , 0x00308 , 0x000CF },
  119. { 0x00049 , 0x00309 , 0x01EC8 },
  120. { 0x00049 , 0x0030C , 0x001CF },
  121. { 0x00049 , 0x0030F , 0x00208 },
  122. { 0x00049 , 0x00311 , 0x0020A },
  123. { 0x00049 , 0x00323 , 0x01ECA },
  124. { 0x00049 , 0x00328 , 0x0012E },
  125. { 0x00049 , 0x00330 , 0x01E2C },
  126. { 0x0004A , 0x00302 , 0x00134 },
  127. { 0x0004B , 0x00301 , 0x01E30 },
  128. { 0x0004B , 0x0030C , 0x001E8 },
  129. { 0x0004B , 0x00323 , 0x01E32 },
  130. { 0x0004B , 0x00327 , 0x00136 },
  131. { 0x0004B , 0x00331 , 0x01E34 },
  132. { 0x0004C , 0x00301 , 0x00139 },
  133. { 0x0004C , 0x0030C , 0x0013D },
  134. { 0x0004C , 0x00323 , 0x01E36 },
  135. { 0x0004C , 0x00327 , 0x0013B },
  136. { 0x0004C , 0x0032D , 0x01E3C },
  137. { 0x0004C , 0x00331 , 0x01E3A },
  138. { 0x0004D , 0x00301 , 0x01E3E },
  139. { 0x0004D , 0x00307 , 0x01E40 },
  140. { 0x0004D , 0x00323 , 0x01E42 },
  141. { 0x0004E , 0x00300 , 0x001F8 },
  142. { 0x0004E , 0x00301 , 0x00143 },
  143. { 0x0004E , 0x00303 , 0x000D1 },
  144. { 0x0004E , 0x00307 , 0x01E44 },
  145. { 0x0004E , 0x0030C , 0x00147 },
  146. { 0x0004E , 0x00323 , 0x01E46 },
  147. { 0x0004E , 0x00327 , 0x00145 },
  148. { 0x0004E , 0x0032D , 0x01E4A },
  149. { 0x0004E , 0x00331 , 0x01E48 },
  150. { 0x0004F , 0x00300 , 0x000D2 },
  151. { 0x0004F , 0x00301 , 0x000D3 },
  152. { 0x0004F , 0x00302 , 0x000D4 },
  153. { 0x0004F , 0x00303 , 0x000D5 },
  154. { 0x0004F , 0x00304 , 0x0014C },
  155. { 0x0004F , 0x00306 , 0x0014E },
  156. { 0x0004F , 0x00307 , 0x0022E },
  157. { 0x0004F , 0x00308 , 0x000D6 },
  158. { 0x0004F , 0x00309 , 0x01ECE },
  159. { 0x0004F , 0x0030B , 0x00150 },
  160. { 0x0004F , 0x0030C , 0x001D1 },
  161. { 0x0004F , 0x0030F , 0x0020C },
  162. { 0x0004F , 0x00311 , 0x0020E },
  163. { 0x0004F , 0x0031B , 0x001A0 },
  164. { 0x0004F , 0x00323 , 0x01ECC },
  165. { 0x0004F , 0x00328 , 0x001EA },
  166. { 0x00050 , 0x00301 , 0x01E54 },
  167. { 0x00050 , 0x00307 , 0x01E56 },
  168. { 0x00052 , 0x00301 , 0x00154 },
  169. { 0x00052 , 0x00307 , 0x01E58 },
  170. { 0x00052 , 0x0030C , 0x00158 },
  171. { 0x00052 , 0x0030F , 0x00210 },
  172. { 0x00052 , 0x00311 , 0x00212 },
  173. { 0x00052 , 0x00323 , 0x01E5A },
  174. { 0x00052 , 0x00327 , 0x00156 },
  175. { 0x00052 , 0x00331 , 0x01E5E },
  176. { 0x00053 , 0x00301 , 0x0015A },
  177. { 0x00053 , 0x00302 , 0x0015C },
  178. { 0x00053 , 0x00307 , 0x01E60 },
  179. { 0x00053 , 0x0030C , 0x00160 },
  180. { 0x00053 , 0x00323 , 0x01E62 },
  181. { 0x00053 , 0x00326 , 0x00218 },
  182. { 0x00053 , 0x00327 , 0x0015E },
  183. { 0x00054 , 0x00307 , 0x01E6A },
  184. { 0x00054 , 0x0030C , 0x00164 },
  185. { 0x00054 , 0x00323 , 0x01E6C },
  186. { 0x00054 , 0x00326 , 0x0021A },
  187. { 0x00054 , 0x00327 , 0x00162 },
  188. { 0x00054 , 0x0032D , 0x01E70 },
  189. { 0x00054 , 0x00331 , 0x01E6E },
  190. { 0x00055 , 0x00300 , 0x000D9 },
  191. { 0x00055 , 0x00301 , 0x000DA },
  192. { 0x00055 , 0x00302 , 0x000DB },
  193. { 0x00055 , 0x00303 , 0x00168 },
  194. { 0x00055 , 0x00304 , 0x0016A },
  195. { 0x00055 , 0x00306 , 0x0016C },
  196. { 0x00055 , 0x00308 , 0x000DC },
  197. { 0x00055 , 0x00309 , 0x01EE6 },
  198. { 0x00055 , 0x0030A , 0x0016E },
  199. { 0x00055 , 0x0030B , 0x00170 },
  200. { 0x00055 , 0x0030C , 0x001D3 },
  201. { 0x00055 , 0x0030F , 0x00214 },
  202. { 0x00055 , 0x00311 , 0x00216 },
  203. { 0x00055 , 0x0031B , 0x001AF },
  204. { 0x00055 , 0x00323 , 0x01EE4 },
  205. { 0x00055 , 0x00324 , 0x01E72 },
  206. { 0x00055 , 0x00328 , 0x00172 },
  207. { 0x00055 , 0x0032D , 0x01E76 },
  208. { 0x00055 , 0x00330 , 0x01E74 },
  209. { 0x00056 , 0x00303 , 0x01E7C },
  210. { 0x00056 , 0x00323 , 0x01E7E },
  211. { 0x00057 , 0x00300 , 0x01E80 },
  212. { 0x00057 , 0x00301 , 0x01E82 },
  213. { 0x00057 , 0x00302 , 0x00174 },
  214. { 0x00057 , 0x00307 , 0x01E86 },
  215. { 0x00057 , 0x00308 , 0x01E84 },
  216. { 0x00057 , 0x00323 , 0x01E88 },
  217. { 0x00058 , 0x00307 , 0x01E8A },
  218. { 0x00058 , 0x00308 , 0x01E8C },
  219. { 0x00059 , 0x00300 , 0x01EF2 },
  220. { 0x00059 , 0x00301 , 0x000DD },
  221. { 0x00059 , 0x00302 , 0x00176 },
  222. { 0x00059 , 0x00303 , 0x01EF8 },
  223. { 0x00059 , 0x00304 , 0x00232 },
  224. { 0x00059 , 0x00307 , 0x01E8E },
  225. { 0x00059 , 0x00308 , 0x00178 },
  226. { 0x00059 , 0x00309 , 0x01EF6 },
  227. { 0x00059 , 0x00323 , 0x01EF4 },
  228. { 0x0005A , 0x00301 , 0x00179 },
  229. { 0x0005A , 0x00302 , 0x01E90 },
  230. { 0x0005A , 0x00307 , 0x0017B },
  231. { 0x0005A , 0x0030C , 0x0017D },
  232. { 0x0005A , 0x00323 , 0x01E92 },
  233. { 0x0005A , 0x00331 , 0x01E94 },
  234. { 0x00061 , 0x00300 , 0x000E0 },
  235. { 0x00061 , 0x00301 , 0x000E1 },
  236. { 0x00061 , 0x00302 , 0x000E2 },
  237. { 0x00061 , 0x00303 , 0x000E3 },
  238. { 0x00061 , 0x00304 , 0x00101 },
  239. { 0x00061 , 0x00306 , 0x00103 },
  240. { 0x00061 , 0x00307 , 0x00227 },
  241. { 0x00061 , 0x00308 , 0x000E4 },
  242. { 0x00061 , 0x00309 , 0x01EA3 },
  243. { 0x00061 , 0x0030A , 0x000E5 },
  244. { 0x00061 , 0x0030C , 0x001CE },
  245. { 0x00061 , 0x0030F , 0x00201 },
  246. { 0x00061 , 0x00311 , 0x00203 },
  247. { 0x00061 , 0x00323 , 0x01EA1 },
  248. { 0x00061 , 0x00325 , 0x01E01 },
  249. { 0x00061 , 0x00328 , 0x00105 },
  250. { 0x00062 , 0x00307 , 0x01E03 },
  251. { 0x00062 , 0x00323 , 0x01E05 },
  252. { 0x00062 , 0x00331 , 0x01E07 },
  253. { 0x00063 , 0x00301 , 0x00107 },
  254. { 0x00063 , 0x00302 , 0x00109 },
  255. { 0x00063 , 0x00307 , 0x0010B },
  256. { 0x00063 , 0x0030C , 0x0010D },
  257. { 0x00063 , 0x00327 , 0x000E7 },
  258. { 0x00064 , 0x00307 , 0x01E0B },
  259. { 0x00064 , 0x0030C , 0x0010F },
  260. { 0x00064 , 0x00323 , 0x01E0D },
  261. { 0x00064 , 0x00327 , 0x01E11 },
  262. { 0x00064 , 0x0032D , 0x01E13 },
  263. { 0x00064 , 0x00331 , 0x01E0F },
  264. { 0x00065 , 0x00300 , 0x000E8 },
  265. { 0x00065 , 0x00301 , 0x000E9 },
  266. { 0x00065 , 0x00302 , 0x000EA },
  267. { 0x00065 , 0x00303 , 0x01EBD },
  268. { 0x00065 , 0x00304 , 0x00113 },
  269. { 0x00065 , 0x00306 , 0x00115 },
  270. { 0x00065 , 0x00307 , 0x00117 },
  271. { 0x00065 , 0x00308 , 0x000EB },
  272. { 0x00065 , 0x00309 , 0x01EBB },
  273. { 0x00065 , 0x0030C , 0x0011B },
  274. { 0x00065 , 0x0030F , 0x00205 },
  275. { 0x00065 , 0x00311 , 0x00207 },
  276. { 0x00065 , 0x00323 , 0x01EB9 },
  277. { 0x00065 , 0x00327 , 0x00229 },
  278. { 0x00065 , 0x00328 , 0x00119 },
  279. { 0x00065 , 0x0032D , 0x01E19 },
  280. { 0x00065 , 0x00330 , 0x01E1B },
  281. { 0x00066 , 0x00307 , 0x01E1F },
  282. { 0x00067 , 0x00301 , 0x001F5 },
  283. { 0x00067 , 0x00302 , 0x0011D },
  284. { 0x00067 , 0x00304 , 0x01E21 },
  285. { 0x00067 , 0x00306 , 0x0011F },
  286. { 0x00067 , 0x00307 , 0x00121 },
  287. { 0x00067 , 0x0030C , 0x001E7 },
  288. { 0x00067 , 0x00327 , 0x00123 },
  289. { 0x00068 , 0x00302 , 0x00125 },
  290. { 0x00068 , 0x00307 , 0x01E23 },
  291. { 0x00068 , 0x00308 , 0x01E27 },
  292. { 0x00068 , 0x0030C , 0x0021F },
  293. { 0x00068 , 0x00323 , 0x01E25 },
  294. { 0x00068 , 0x00327 , 0x01E29 },
  295. { 0x00068 , 0x0032E , 0x01E2B },
  296. { 0x00068 , 0x00331 , 0x01E96 },
  297. { 0x00069 , 0x00300 , 0x000EC },
  298. { 0x00069 , 0x00301 , 0x000ED },
  299. { 0x00069 , 0x00302 , 0x000EE },
  300. { 0x00069 , 0x00303 , 0x00129 },
  301. { 0x00069 , 0x00304 , 0x0012B },
  302. { 0x00069 , 0x00306 , 0x0012D },
  303. { 0x00069 , 0x00308 , 0x000EF },
  304. { 0x00069 , 0x00309 , 0x01EC9 },
  305. { 0x00069 , 0x0030C , 0x001D0 },
  306. { 0x00069 , 0x0030F , 0x00209 },
  307. { 0x00069 , 0x00311 , 0x0020B },
  308. { 0x00069 , 0x00323 , 0x01ECB },
  309. { 0x00069 , 0x00328 , 0x0012F },
  310. { 0x00069 , 0x00330 , 0x01E2D },
  311. { 0x0006A , 0x00302 , 0x00135 },
  312. { 0x0006A , 0x0030C , 0x001F0 },
  313. { 0x0006B , 0x00301 , 0x01E31 },
  314. { 0x0006B , 0x0030C , 0x001E9 },
  315. { 0x0006B , 0x00323 , 0x01E33 },
  316. { 0x0006B , 0x00327 , 0x00137 },
  317. { 0x0006B , 0x00331 , 0x01E35 },
  318. { 0x0006C , 0x00301 , 0x0013A },
  319. { 0x0006C , 0x0030C , 0x0013E },
  320. { 0x0006C , 0x00323 , 0x01E37 },
  321. { 0x0006C , 0x00327 , 0x0013C },
  322. { 0x0006C , 0x0032D , 0x01E3D },
  323. { 0x0006C , 0x00331 , 0x01E3B },
  324. { 0x0006D , 0x00301 , 0x01E3F },
  325. { 0x0006D , 0x00307 , 0x01E41 },
  326. { 0x0006D , 0x00323 , 0x01E43 },
  327. { 0x0006E , 0x00300 , 0x001F9 },
  328. { 0x0006E , 0x00301 , 0x00144 },
  329. { 0x0006E , 0x00303 , 0x000F1 },
  330. { 0x0006E , 0x00307 , 0x01E45 },
  331. { 0x0006E , 0x0030C , 0x00148 },
  332. { 0x0006E , 0x00323 , 0x01E47 },
  333. { 0x0006E , 0x00327 , 0x00146 },
  334. { 0x0006E , 0x0032D , 0x01E4B },
  335. { 0x0006E , 0x00331 , 0x01E49 },
  336. { 0x0006F , 0x00300 , 0x000F2 },
  337. { 0x0006F , 0x00301 , 0x000F3 },
  338. { 0x0006F , 0x00302 , 0x000F4 },
  339. { 0x0006F , 0x00303 , 0x000F5 },
  340. { 0x0006F , 0x00304 , 0x0014D },
  341. { 0x0006F , 0x00306 , 0x0014F },
  342. { 0x0006F , 0x00307 , 0x0022F },
  343. { 0x0006F , 0x00308 , 0x000F6 },
  344. { 0x0006F , 0x00309 , 0x01ECF },
  345. { 0x0006F , 0x0030B , 0x00151 },
  346. { 0x0006F , 0x0030C , 0x001D2 },
  347. { 0x0006F , 0x0030F , 0x0020D },
  348. { 0x0006F , 0x00311 , 0x0020F },
  349. { 0x0006F , 0x0031B , 0x001A1 },
  350. { 0x0006F , 0x00323 , 0x01ECD },
  351. { 0x0006F , 0x00328 , 0x001EB },
  352. { 0x00070 , 0x00301 , 0x01E55 },
  353. { 0x00070 , 0x00307 , 0x01E57 },
  354. { 0x00072 , 0x00301 , 0x00155 },
  355. { 0x00072 , 0x00307 , 0x01E59 },
  356. { 0x00072 , 0x0030C , 0x00159 },
  357. { 0x00072 , 0x0030F , 0x00211 },
  358. { 0x00072 , 0x00311 , 0x00213 },
  359. { 0x00072 , 0x00323 , 0x01E5B },
  360. { 0x00072 , 0x00327 , 0x00157 },
  361. { 0x00072 , 0x00331 , 0x01E5F },
  362. { 0x00073 , 0x00301 , 0x0015B },
  363. { 0x00073 , 0x00302 , 0x0015D },
  364. { 0x00073 , 0x00307 , 0x01E61 },
  365. { 0x00073 , 0x0030C , 0x00161 },
  366. { 0x00073 , 0x00323 , 0x01E63 },
  367. { 0x00073 , 0x00326 , 0x00219 },
  368. { 0x00073 , 0x00327 , 0x0015F },
  369. { 0x00074 , 0x00307 , 0x01E6B },
  370. { 0x00074 , 0x00308 , 0x01E97 },
  371. { 0x00074 , 0x0030C , 0x00165 },
  372. { 0x00074 , 0x00323 , 0x01E6D },
  373. { 0x00074 , 0x00326 , 0x0021B },
  374. { 0x00074 , 0x00327 , 0x00163 },
  375. { 0x00074 , 0x0032D , 0x01E71 },
  376. { 0x00074 , 0x00331 , 0x01E6F },
  377. { 0x00075 , 0x00300 , 0x000F9 },
  378. { 0x00075 , 0x00301 , 0x000FA },
  379. { 0x00075 , 0x00302 , 0x000FB },
  380. { 0x00075 , 0x00303 , 0x00169 },
  381. { 0x00075 , 0x00304 , 0x0016B },
  382. { 0x00075 , 0x00306 , 0x0016D },
  383. { 0x00075 , 0x00308 , 0x000FC },
  384. { 0x00075 , 0x00309 , 0x01EE7 },
  385. { 0x00075 , 0x0030A , 0x0016F },
  386. { 0x00075 , 0x0030B , 0x00171 },
  387. { 0x00075 , 0x0030C , 0x001D4 },
  388. { 0x00075 , 0x0030F , 0x00215 },
  389. { 0x00075 , 0x00311 , 0x00217 },
  390. { 0x00075 , 0x0031B , 0x001B0 },
  391. { 0x00075 , 0x00323 , 0x01EE5 },
  392. { 0x00075 , 0x00324 , 0x01E73 },
  393. { 0x00075 , 0x00328 , 0x00173 },
  394. { 0x00075 , 0x0032D , 0x01E77 },
  395. { 0x00075 , 0x00330 , 0x01E75 },
  396. { 0x00076 , 0x00303 , 0x01E7D },
  397. { 0x00076 , 0x00323 , 0x01E7F },
  398. { 0x00077 , 0x00300 , 0x01E81 },
  399. { 0x00077 , 0x00301 , 0x01E83 },
  400. { 0x00077 , 0x00302 , 0x00175 },
  401. { 0x00077 , 0x00307 , 0x01E87 },
  402. { 0x00077 , 0x00308 , 0x01E85 },
  403. { 0x00077 , 0x0030A , 0x01E98 },
  404. { 0x00077 , 0x00323 , 0x01E89 },
  405. { 0x00078 , 0x00307 , 0x01E8B },
  406. { 0x00078 , 0x00308 , 0x01E8D },
  407. { 0x00079 , 0x00300 , 0x01EF3 },
  408. { 0x00079 , 0x00301 , 0x000FD },
  409. { 0x00079 , 0x00302 , 0x00177 },
  410. { 0x00079 , 0x00303 , 0x01EF9 },
  411. { 0x00079 , 0x00304 , 0x00233 },
  412. { 0x00079 , 0x00307 , 0x01E8F },
  413. { 0x00079 , 0x00308 , 0x000FF },
  414. { 0x00079 , 0x00309 , 0x01EF7 },
  415. { 0x00079 , 0x0030A , 0x01E99 },
  416. { 0x00079 , 0x00323 , 0x01EF5 },
  417. { 0x0007A , 0x00301 , 0x0017A },
  418. { 0x0007A , 0x00302 , 0x01E91 },
  419. { 0x0007A , 0x00307 , 0x0017C },
  420. { 0x0007A , 0x0030C , 0x0017E },
  421. { 0x0007A , 0x00323 , 0x01E93 },
  422. { 0x0007A , 0x00331 , 0x01E95 },
  423. { 0x000A8 , 0x00300 , 0x01FED },
  424. { 0x000A8 , 0x00301 , 0x00385 },
  425. { 0x000A8 , 0x00342 , 0x01FC1 },
  426. { 0x000C2 , 0x00300 , 0x01EA6 },
  427. { 0x000C2 , 0x00301 , 0x01EA4 },
  428. { 0x000C2 , 0x00303 , 0x01EAA },
  429. { 0x000C2 , 0x00309 , 0x01EA8 },
  430. { 0x000C4 , 0x00304 , 0x001DE },
  431. { 0x000C5 , 0x00301 , 0x001FA },
  432. { 0x000C6 , 0x00301 , 0x001FC },
  433. { 0x000C6 , 0x00304 , 0x001E2 },
  434. { 0x000C7 , 0x00301 , 0x01E08 },
  435. { 0x000CA , 0x00300 , 0x01EC0 },
  436. { 0x000CA , 0x00301 , 0x01EBE },
  437. { 0x000CA , 0x00303 , 0x01EC4 },
  438. { 0x000CA , 0x00309 , 0x01EC2 },
  439. { 0x000CF , 0x00301 , 0x01E2E },
  440. { 0x000D4 , 0x00300 , 0x01ED2 },
  441. { 0x000D4 , 0x00301 , 0x01ED0 },
  442. { 0x000D4 , 0x00303 , 0x01ED6 },
  443. { 0x000D4 , 0x00309 , 0x01ED4 },
  444. { 0x000D5 , 0x00301 , 0x01E4C },
  445. { 0x000D5 , 0x00304 , 0x0022C },
  446. { 0x000D5 , 0x00308 , 0x01E4E },
  447. { 0x000D6 , 0x00304 , 0x0022A },
  448. { 0x000D8 , 0x00301 , 0x001FE },
  449. { 0x000DC , 0x00300 , 0x001DB },
  450. { 0x000DC , 0x00301 , 0x001D7 },
  451. { 0x000DC , 0x00304 , 0x001D5 },
  452. { 0x000DC , 0x0030C , 0x001D9 },
  453. { 0x000E2 , 0x00300 , 0x01EA7 },
  454. { 0x000E2 , 0x00301 , 0x01EA5 },
  455. { 0x000E2 , 0x00303 , 0x01EAB },
  456. { 0x000E2 , 0x00309 , 0x01EA9 },
  457. { 0x000E4 , 0x00304 , 0x001DF },
  458. { 0x000E5 , 0x00301 , 0x001FB },
  459. { 0x000E6 , 0x00301 , 0x001FD },
  460. { 0x000E6 , 0x00304 , 0x001E3 },
  461. { 0x000E7 , 0x00301 , 0x01E09 },
  462. { 0x000EA , 0x00300 , 0x01EC1 },
  463. { 0x000EA , 0x00301 , 0x01EBF },
  464. { 0x000EA , 0x00303 , 0x01EC5 },
  465. { 0x000EA , 0x00309 , 0x01EC3 },
  466. { 0x000EF , 0x00301 , 0x01E2F },
  467. { 0x000F4 , 0x00300 , 0x01ED3 },
  468. { 0x000F4 , 0x00301 , 0x01ED1 },
  469. { 0x000F4 , 0x00303 , 0x01ED7 },
  470. { 0x000F4 , 0x00309 , 0x01ED5 },
  471. { 0x000F5 , 0x00301 , 0x01E4D },
  472. { 0x000F5 , 0x00304 , 0x0022D },
  473. { 0x000F5 , 0x00308 , 0x01E4F },
  474. { 0x000F6 , 0x00304 , 0x0022B },
  475. { 0x000F8 , 0x00301 , 0x001FF },
  476. { 0x000FC , 0x00300 , 0x001DC },
  477. { 0x000FC , 0x00301 , 0x001D8 },
  478. { 0x000FC , 0x00304 , 0x001D6 },
  479. { 0x000FC , 0x0030C , 0x001DA },
  480. { 0x00102 , 0x00300 , 0x01EB0 },
  481. { 0x00102 , 0x00301 , 0x01EAE },
  482. { 0x00102 , 0x00303 , 0x01EB4 },
  483. { 0x00102 , 0x00309 , 0x01EB2 },
  484. { 0x00103 , 0x00300 , 0x01EB1 },
  485. { 0x00103 , 0x00301 , 0x01EAF },
  486. { 0x00103 , 0x00303 , 0x01EB5 },
  487. { 0x00103 , 0x00309 , 0x01EB3 },
  488. { 0x00112 , 0x00300 , 0x01E14 },
  489. { 0x00112 , 0x00301 , 0x01E16 },
  490. { 0x00113 , 0x00300 , 0x01E15 },
  491. { 0x00113 , 0x00301 , 0x01E17 },
  492. { 0x0014C , 0x00300 , 0x01E50 },
  493. { 0x0014C , 0x00301 , 0x01E52 },
  494. { 0x0014D , 0x00300 , 0x01E51 },
  495. { 0x0014D , 0x00301 , 0x01E53 },
  496. { 0x0015A , 0x00307 , 0x01E64 },
  497. { 0x0015B , 0x00307 , 0x01E65 },
  498. { 0x00160 , 0x00307 , 0x01E66 },
  499. { 0x00161 , 0x00307 , 0x01E67 },
  500. { 0x00168 , 0x00301 , 0x01E78 },
  501. { 0x00169 , 0x00301 , 0x01E79 },
  502. { 0x0016A , 0x00308 , 0x01E7A },
  503. { 0x0016B , 0x00308 , 0x01E7B },
  504. { 0x0017F , 0x00307 , 0x01E9B },
  505. { 0x001A0 , 0x00300 , 0x01EDC },
  506. { 0x001A0 , 0x00301 , 0x01EDA },
  507. { 0x001A0 , 0x00303 , 0x01EE0 },
  508. { 0x001A0 , 0x00309 , 0x01EDE },
  509. { 0x001A0 , 0x00323 , 0x01EE2 },
  510. { 0x001A1 , 0x00300 , 0x01EDD },
  511. { 0x001A1 , 0x00301 , 0x01EDB },
  512. { 0x001A1 , 0x00303 , 0x01EE1 },
  513. { 0x001A1 , 0x00309 , 0x01EDF },
  514. { 0x001A1 , 0x00323 , 0x01EE3 },
  515. { 0x001AF , 0x00300 , 0x01EEA },
  516. { 0x001AF , 0x00301 , 0x01EE8 },
  517. { 0x001AF , 0x00303 , 0x01EEE },
  518. { 0x001AF , 0x00309 , 0x01EEC },
  519. { 0x001AF , 0x00323 , 0x01EF0 },
  520. { 0x001B0 , 0x00300 , 0x01EEB },
  521. { 0x001B0 , 0x00301 , 0x01EE9 },
  522. { 0x001B0 , 0x00303 , 0x01EEF },
  523. { 0x001B0 , 0x00309 , 0x01EED },
  524. { 0x001B0 , 0x00323 , 0x01EF1 },
  525. { 0x001B7 , 0x0030C , 0x001EE },
  526. { 0x001EA , 0x00304 , 0x001EC },
  527. { 0x001EB , 0x00304 , 0x001ED },
  528. { 0x00226 , 0x00304 , 0x001E0 },
  529. { 0x00227 , 0x00304 , 0x001E1 },
  530. { 0x00228 , 0x00306 , 0x01E1C },
  531. { 0x00229 , 0x00306 , 0x01E1D },
  532. { 0x0022E , 0x00304 , 0x00230 },
  533. { 0x0022F , 0x00304 , 0x00231 },
  534. { 0x00292 , 0x0030C , 0x001EF },
  535. { 0x00391 , 0x00300 , 0x01FBA },
  536. { 0x00391 , 0x00301 , 0x00386 },
  537. { 0x00391 , 0x00304 , 0x01FB9 },
  538. { 0x00391 , 0x00306 , 0x01FB8 },
  539. { 0x00391 , 0x00313 , 0x01F08 },
  540. { 0x00391 , 0x00314 , 0x01F09 },
  541. { 0x00391 , 0x00345 , 0x01FBC },
  542. { 0x00395 , 0x00300 , 0x01FC8 },
  543. { 0x00395 , 0x00301 , 0x00388 },
  544. { 0x00395 , 0x00313 , 0x01F18 },
  545. { 0x00395 , 0x00314 , 0x01F19 },
  546. { 0x00397 , 0x00300 , 0x01FCA },
  547. { 0x00397 , 0x00301 , 0x00389 },
  548. { 0x00397 , 0x00313 , 0x01F28 },
  549. { 0x00397 , 0x00314 , 0x01F29 },
  550. { 0x00397 , 0x00345 , 0x01FCC },
  551. { 0x00399 , 0x00300 , 0x01FDA },
  552. { 0x00399 , 0x00301 , 0x0038A },
  553. { 0x00399 , 0x00304 , 0x01FD9 },
  554. { 0x00399 , 0x00306 , 0x01FD8 },
  555. { 0x00399 , 0x00308 , 0x003AA },
  556. { 0x00399 , 0x00313 , 0x01F38 },
  557. { 0x00399 , 0x00314 , 0x01F39 },
  558. { 0x0039F , 0x00300 , 0x01FF8 },
  559. { 0x0039F , 0x00301 , 0x0038C },
  560. { 0x0039F , 0x00313 , 0x01F48 },
  561. { 0x0039F , 0x00314 , 0x01F49 },
  562. { 0x003A1 , 0x00314 , 0x01FEC },
  563. { 0x003A5 , 0x00300 , 0x01FEA },
  564. { 0x003A5 , 0x00301 , 0x0038E },
  565. { 0x003A5 , 0x00304 , 0x01FE9 },
  566. { 0x003A5 , 0x00306 , 0x01FE8 },
  567. { 0x003A5 , 0x00308 , 0x003AB },
  568. { 0x003A5 , 0x00314 , 0x01F59 },
  569. { 0x003A9 , 0x00300 , 0x01FFA },
  570. { 0x003A9 , 0x00301 , 0x0038F },
  571. { 0x003A9 , 0x00313 , 0x01F68 },
  572. { 0x003A9 , 0x00314 , 0x01F69 },
  573. { 0x003A9 , 0x00345 , 0x01FFC },
  574. { 0x003AC , 0x00345 , 0x01FB4 },
  575. { 0x003AE , 0x00345 , 0x01FC4 },
  576. { 0x003B1 , 0x00300 , 0x01F70 },
  577. { 0x003B1 , 0x00301 , 0x003AC },
  578. { 0x003B1 , 0x00304 , 0x01FB1 },
  579. { 0x003B1 , 0x00306 , 0x01FB0 },
  580. { 0x003B1 , 0x00313 , 0x01F00 },
  581. { 0x003B1 , 0x00314 , 0x01F01 },
  582. { 0x003B1 , 0x00342 , 0x01FB6 },
  583. { 0x003B1 , 0x00345 , 0x01FB3 },
  584. { 0x003B5 , 0x00300 , 0x01F72 },
  585. { 0x003B5 , 0x00301 , 0x003AD },
  586. { 0x003B5 , 0x00313 , 0x01F10 },
  587. { 0x003B5 , 0x00314 , 0x01F11 },
  588. { 0x003B7 , 0x00300 , 0x01F74 },
  589. { 0x003B7 , 0x00301 , 0x003AE },
  590. { 0x003B7 , 0x00313 , 0x01F20 },
  591. { 0x003B7 , 0x00314 , 0x01F21 },
  592. { 0x003B7 , 0x00342 , 0x01FC6 },
  593. { 0x003B7 , 0x00345 , 0x01FC3 },
  594. { 0x003B9 , 0x00300 , 0x01F76 },
  595. { 0x003B9 , 0x00301 , 0x003AF },
  596. { 0x003B9 , 0x00304 , 0x01FD1 },
  597. { 0x003B9 , 0x00306 , 0x01FD0 },
  598. { 0x003B9 , 0x00308 , 0x003CA },
  599. { 0x003B9 , 0x00313 , 0x01F30 },
  600. { 0x003B9 , 0x00314 , 0x01F31 },
  601. { 0x003B9 , 0x00342 , 0x01FD6 },
  602. { 0x003BF , 0x00300 , 0x01F78 },
  603. { 0x003BF , 0x00301 , 0x003CC },
  604. { 0x003BF , 0x00313 , 0x01F40 },
  605. { 0x003BF , 0x00314 , 0x01F41 },
  606. { 0x003C1 , 0x00313 , 0x01FE4 },
  607. { 0x003C1 , 0x00314 , 0x01FE5 },
  608. { 0x003C5 , 0x00300 , 0x01F7A },
  609. { 0x003C5 , 0x00301 , 0x003CD },
  610. { 0x003C5 , 0x00304 , 0x01FE1 },
  611. { 0x003C5 , 0x00306 , 0x01FE0 },
  612. { 0x003C5 , 0x00308 , 0x003CB },
  613. { 0x003C5 , 0x00313 , 0x01F50 },
  614. { 0x003C5 , 0x00314 , 0x01F51 },
  615. { 0x003C5 , 0x00342 , 0x01FE6 },
  616. { 0x003C9 , 0x00300 , 0x01F7C },
  617. { 0x003C9 , 0x00301 , 0x003CE },
  618. { 0x003C9 , 0x00313 , 0x01F60 },
  619. { 0x003C9 , 0x00314 , 0x01F61 },
  620. { 0x003C9 , 0x00342 , 0x01FF6 },
  621. { 0x003C9 , 0x00345 , 0x01FF3 },
  622. { 0x003CA , 0x00300 , 0x01FD2 },
  623. { 0x003CA , 0x00301 , 0x00390 },
  624. { 0x003CA , 0x00342 , 0x01FD7 },
  625. { 0x003CB , 0x00300 , 0x01FE2 },
  626. { 0x003CB , 0x00301 , 0x003B0 },
  627. { 0x003CB , 0x00342 , 0x01FE7 },
  628. { 0x003CE , 0x00345 , 0x01FF4 },
  629. { 0x003D2 , 0x00301 , 0x003D3 },
  630. { 0x003D2 , 0x00308 , 0x003D4 },
  631. { 0x00406 , 0x00308 , 0x00407 },
  632. { 0x00410 , 0x00306 , 0x004D0 },
  633. { 0x00410 , 0x00308 , 0x004D2 },
  634. { 0x00413 , 0x00301 , 0x00403 },
  635. { 0x00415 , 0x00300 , 0x00400 },
  636. { 0x00415 , 0x00306 , 0x004D6 },
  637. { 0x00415 , 0x00308 , 0x00401 },
  638. { 0x00416 , 0x00306 , 0x004C1 },
  639. { 0x00416 , 0x00308 , 0x004DC },
  640. { 0x00417 , 0x00308 , 0x004DE },
  641. { 0x00418 , 0x00300 , 0x0040D },
  642. { 0x00418 , 0x00304 , 0x004E2 },
  643. { 0x00418 , 0x00306 , 0x00419 },
  644. { 0x00418 , 0x00308 , 0x004E4 },
  645. { 0x0041A , 0x00301 , 0x0040C },
  646. { 0x0041E , 0x00308 , 0x004E6 },
  647. { 0x00423 , 0x00304 , 0x004EE },
  648. { 0x00423 , 0x00306 , 0x0040E },
  649. { 0x00423 , 0x00308 , 0x004F0 },
  650. { 0x00423 , 0x0030B , 0x004F2 },
  651. { 0x00427 , 0x00308 , 0x004F4 },
  652. { 0x0042B , 0x00308 , 0x004F8 },
  653. { 0x0042D , 0x00308 , 0x004EC },
  654. { 0x00430 , 0x00306 , 0x004D1 },
  655. { 0x00430 , 0x00308 , 0x004D3 },
  656. { 0x00433 , 0x00301 , 0x00453 },
  657. { 0x00435 , 0x00300 , 0x00450 },
  658. { 0x00435 , 0x00306 , 0x004D7 },
  659. { 0x00435 , 0x00308 , 0x00451 },
  660. { 0x00436 , 0x00306 , 0x004C2 },
  661. { 0x00436 , 0x00308 , 0x004DD },
  662. { 0x00437 , 0x00308 , 0x004DF },
  663. { 0x00438 , 0x00300 , 0x0045D },
  664. { 0x00438 , 0x00304 , 0x004E3 },
  665. { 0x00438 , 0x00306 , 0x00439 },
  666. { 0x00438 , 0x00308 , 0x004E5 },
  667. { 0x0043A , 0x00301 , 0x0045C },
  668. { 0x0043E , 0x00308 , 0x004E7 },
  669. { 0x00443 , 0x00304 , 0x004EF },
  670. { 0x00443 , 0x00306 , 0x0045E },
  671. { 0x00443 , 0x00308 , 0x004F1 },
  672. { 0x00443 , 0x0030B , 0x004F3 },
  673. { 0x00447 , 0x00308 , 0x004F5 },
  674. { 0x0044B , 0x00308 , 0x004F9 },
  675. { 0x0044D , 0x00308 , 0x004ED },
  676. { 0x00456 , 0x00308 , 0x00457 },
  677. { 0x00474 , 0x0030F , 0x00476 },
  678. { 0x00475 , 0x0030F , 0x00477 },
  679. { 0x004D8 , 0x00308 , 0x004DA },
  680. { 0x004D9 , 0x00308 , 0x004DB },
  681. { 0x004E8 , 0x00308 , 0x004EA },
  682. { 0x004E9 , 0x00308 , 0x004EB },
  683. { 0x00627 , 0x00653 , 0x00622 },
  684. { 0x00627 , 0x00654 , 0x00623 },
  685. { 0x00627 , 0x00655 , 0x00625 },
  686. { 0x00648 , 0x00654 , 0x00624 },
  687. { 0x0064A , 0x00654 , 0x00626 },
  688. { 0x006C1 , 0x00654 , 0x006C2 },
  689. { 0x006D2 , 0x00654 , 0x006D3 },
  690. { 0x006D5 , 0x00654 , 0x006C0 },
  691. { 0x00928 , 0x0093C , 0x00929 },
  692. { 0x00930 , 0x0093C , 0x00931 },
  693. { 0x00933 , 0x0093C , 0x00934 },
  694. { 0x009C7 , 0x009BE , 0x009CB },
  695. { 0x009C7 , 0x009D7 , 0x009CC },
  696. { 0x00B47 , 0x00B3E , 0x00B4B },
  697. { 0x00B47 , 0x00B56 , 0x00B48 },
  698. { 0x00B47 , 0x00B57 , 0x00B4C },
  699. { 0x00B92 , 0x00BD7 , 0x00B94 },
  700. { 0x00BC6 , 0x00BBE , 0x00BCA },
  701. { 0x00BC6 , 0x00BD7 , 0x00BCC },
  702. { 0x00BC7 , 0x00BBE , 0x00BCB },
  703. { 0x00C46 , 0x00C56 , 0x00C48 },
  704. { 0x00CBF , 0x00CD5 , 0x00CC0 },
  705. { 0x00CC6 , 0x00CC2 , 0x00CCA },
  706. { 0x00CC6 , 0x00CD5 , 0x00CC7 },
  707. { 0x00CC6 , 0x00CD6 , 0x00CC8 },
  708. { 0x00CCA , 0x00CD5 , 0x00CCB },
  709. { 0x00D46 , 0x00D3E , 0x00D4A },
  710. { 0x00D46 , 0x00D57 , 0x00D4C },
  711. { 0x00D47 , 0x00D3E , 0x00D4B },
  712. { 0x00DD9 , 0x00DCA , 0x00DDA },
  713. { 0x00DD9 , 0x00DCF , 0x00DDC },
  714. { 0x00DD9 , 0x00DDF , 0x00DDE },
  715. { 0x00DDC , 0x00DCA , 0x00DDD },
  716. { 0x01025 , 0x0102E , 0x01026 },
  717. { 0x01B05 , 0x01B35 , 0x01B06 },
  718. { 0x01B07 , 0x01B35 , 0x01B08 },
  719. { 0x01B09 , 0x01B35 , 0x01B0A },
  720. { 0x01B0B , 0x01B35 , 0x01B0C },
  721. { 0x01B0D , 0x01B35 , 0x01B0E },
  722. { 0x01B11 , 0x01B35 , 0x01B12 },
  723. { 0x01B3A , 0x01B35 , 0x01B3B },
  724. { 0x01B3C , 0x01B35 , 0x01B3D },
  725. { 0x01B3E , 0x01B35 , 0x01B40 },
  726. { 0x01B3F , 0x01B35 , 0x01B41 },
  727. { 0x01B42 , 0x01B35 , 0x01B43 },
  728. { 0x01E36 , 0x00304 , 0x01E38 },
  729. { 0x01E37 , 0x00304 , 0x01E39 },
  730. { 0x01E5A , 0x00304 , 0x01E5C },
  731. { 0x01E5B , 0x00304 , 0x01E5D },
  732. { 0x01E62 , 0x00307 , 0x01E68 },
  733. { 0x01E63 , 0x00307 , 0x01E69 },
  734. { 0x01EA0 , 0x00302 , 0x01EAC },
  735. { 0x01EA0 , 0x00306 , 0x01EB6 },
  736. { 0x01EA1 , 0x00302 , 0x01EAD },
  737. { 0x01EA1 , 0x00306 , 0x01EB7 },
  738. { 0x01EB8 , 0x00302 , 0x01EC6 },
  739. { 0x01EB9 , 0x00302 , 0x01EC7 },
  740. { 0x01ECC , 0x00302 , 0x01ED8 },
  741. { 0x01ECD , 0x00302 , 0x01ED9 },
  742. { 0x01F00 , 0x00300 , 0x01F02 },
  743. { 0x01F00 , 0x00301 , 0x01F04 },
  744. { 0x01F00 , 0x00342 , 0x01F06 },
  745. { 0x01F00 , 0x00345 , 0x01F80 },
  746. { 0x01F01 , 0x00300 , 0x01F03 },
  747. { 0x01F01 , 0x00301 , 0x01F05 },
  748. { 0x01F01 , 0x00342 , 0x01F07 },
  749. { 0x01F01 , 0x00345 , 0x01F81 },
  750. { 0x01F02 , 0x00345 , 0x01F82 },
  751. { 0x01F03 , 0x00345 , 0x01F83 },
  752. { 0x01F04 , 0x00345 , 0x01F84 },
  753. { 0x01F05 , 0x00345 , 0x01F85 },
  754. { 0x01F06 , 0x00345 , 0x01F86 },
  755. { 0x01F07 , 0x00345 , 0x01F87 },
  756. { 0x01F08 , 0x00300 , 0x01F0A },
  757. { 0x01F08 , 0x00301 , 0x01F0C },
  758. { 0x01F08 , 0x00342 , 0x01F0E },
  759. { 0x01F08 , 0x00345 , 0x01F88 },
  760. { 0x01F09 , 0x00300 , 0x01F0B },
  761. { 0x01F09 , 0x00301 , 0x01F0D },
  762. { 0x01F09 , 0x00342 , 0x01F0F },
  763. { 0x01F09 , 0x00345 , 0x01F89 },
  764. { 0x01F0A , 0x00345 , 0x01F8A },
  765. { 0x01F0B , 0x00345 , 0x01F8B },
  766. { 0x01F0C , 0x00345 , 0x01F8C },
  767. { 0x01F0D , 0x00345 , 0x01F8D },
  768. { 0x01F0E , 0x00345 , 0x01F8E },
  769. { 0x01F0F , 0x00345 , 0x01F8F },
  770. { 0x01F10 , 0x00300 , 0x01F12 },
  771. { 0x01F10 , 0x00301 , 0x01F14 },
  772. { 0x01F11 , 0x00300 , 0x01F13 },
  773. { 0x01F11 , 0x00301 , 0x01F15 },
  774. { 0x01F18 , 0x00300 , 0x01F1A },
  775. { 0x01F18 , 0x00301 , 0x01F1C },
  776. { 0x01F19 , 0x00300 , 0x01F1B },
  777. { 0x01F19 , 0x00301 , 0x01F1D },
  778. { 0x01F20 , 0x00300 , 0x01F22 },
  779. { 0x01F20 , 0x00301 , 0x01F24 },
  780. { 0x01F20 , 0x00342 , 0x01F26 },
  781. { 0x01F20 , 0x00345 , 0x01F90 },
  782. { 0x01F21 , 0x00300 , 0x01F23 },
  783. { 0x01F21 , 0x00301 , 0x01F25 },
  784. { 0x01F21 , 0x00342 , 0x01F27 },
  785. { 0x01F21 , 0x00345 , 0x01F91 },
  786. { 0x01F22 , 0x00345 , 0x01F92 },
  787. { 0x01F23 , 0x00345 , 0x01F93 },
  788. { 0x01F24 , 0x00345 , 0x01F94 },
  789. { 0x01F25 , 0x00345 , 0x01F95 },
  790. { 0x01F26 , 0x00345 , 0x01F96 },
  791. { 0x01F27 , 0x00345 , 0x01F97 },
  792. { 0x01F28 , 0x00300 , 0x01F2A },
  793. { 0x01F28 , 0x00301 , 0x01F2C },
  794. { 0x01F28 , 0x00342 , 0x01F2E },
  795. { 0x01F28 , 0x00345 , 0x01F98 },
  796. { 0x01F29 , 0x00300 , 0x01F2B },
  797. { 0x01F29 , 0x00301 , 0x01F2D },
  798. { 0x01F29 , 0x00342 , 0x01F2F },
  799. { 0x01F29 , 0x00345 , 0x01F99 },
  800. { 0x01F2A , 0x00345 , 0x01F9A },
  801. { 0x01F2B , 0x00345 , 0x01F9B },
  802. { 0x01F2C , 0x00345 , 0x01F9C },
  803. { 0x01F2D , 0x00345 , 0x01F9D },
  804. { 0x01F2E , 0x00345 , 0x01F9E },
  805. { 0x01F2F , 0x00345 , 0x01F9F },
  806. { 0x01F30 , 0x00300 , 0x01F32 },
  807. { 0x01F30 , 0x00301 , 0x01F34 },
  808. { 0x01F30 , 0x00342 , 0x01F36 },
  809. { 0x01F31 , 0x00300 , 0x01F33 },
  810. { 0x01F31 , 0x00301 , 0x01F35 },
  811. { 0x01F31 , 0x00342 , 0x01F37 },
  812. { 0x01F38 , 0x00300 , 0x01F3A },
  813. { 0x01F38 , 0x00301 , 0x01F3C },
  814. { 0x01F38 , 0x00342 , 0x01F3E },
  815. { 0x01F39 , 0x00300 , 0x01F3B },
  816. { 0x01F39 , 0x00301 , 0x01F3D },
  817. { 0x01F39 , 0x00342 , 0x01F3F },
  818. { 0x01F40 , 0x00300 , 0x01F42 },
  819. { 0x01F40 , 0x00301 , 0x01F44 },
  820. { 0x01F41 , 0x00300 , 0x01F43 },
  821. { 0x01F41 , 0x00301 , 0x01F45 },
  822. { 0x01F48 , 0x00300 , 0x01F4A },
  823. { 0x01F48 , 0x00301 , 0x01F4C },
  824. { 0x01F49 , 0x00300 , 0x01F4B },
  825. { 0x01F49 , 0x00301 , 0x01F4D },
  826. { 0x01F50 , 0x00300 , 0x01F52 },
  827. { 0x01F50 , 0x00301 , 0x01F54 },
  828. { 0x01F50 , 0x00342 , 0x01F56 },
  829. { 0x01F51 , 0x00300 , 0x01F53 },
  830. { 0x01F51 , 0x00301 , 0x01F55 },
  831. { 0x01F51 , 0x00342 , 0x01F57 },
  832. { 0x01F59 , 0x00300 , 0x01F5B },
  833. { 0x01F59 , 0x00301 , 0x01F5D },
  834. { 0x01F59 , 0x00342 , 0x01F5F },
  835. { 0x01F60 , 0x00300 , 0x01F62 },
  836. { 0x01F60 , 0x00301 , 0x01F64 },
  837. { 0x01F60 , 0x00342 , 0x01F66 },
  838. { 0x01F60 , 0x00345 , 0x01FA0 },
  839. { 0x01F61 , 0x00300 , 0x01F63 },
  840. { 0x01F61 , 0x00301 , 0x01F65 },
  841. { 0x01F61 , 0x00342 , 0x01F67 },
  842. { 0x01F61 , 0x00345 , 0x01FA1 },
  843. { 0x01F62 , 0x00345 , 0x01FA2 },
  844. { 0x01F63 , 0x00345 , 0x01FA3 },
  845. { 0x01F64 , 0x00345 , 0x01FA4 },
  846. { 0x01F65 , 0x00345 , 0x01FA5 },
  847. { 0x01F66 , 0x00345 , 0x01FA6 },
  848. { 0x01F67 , 0x00345 , 0x01FA7 },
  849. { 0x01F68 , 0x00300 , 0x01F6A },
  850. { 0x01F68 , 0x00301 , 0x01F6C },
  851. { 0x01F68 , 0x00342 , 0x01F6E },
  852. { 0x01F68 , 0x00345 , 0x01FA8 },
  853. { 0x01F69 , 0x00300 , 0x01F6B },
  854. { 0x01F69 , 0x00301 , 0x01F6D },
  855. { 0x01F69 , 0x00342 , 0x01F6F },
  856. { 0x01F69 , 0x00345 , 0x01FA9 },
  857. { 0x01F6A , 0x00345 , 0x01FAA },
  858. { 0x01F6B , 0x00345 , 0x01FAB },
  859. { 0x01F6C , 0x00345 , 0x01FAC },
  860. { 0x01F6D , 0x00345 , 0x01FAD },
  861. { 0x01F6E , 0x00345 , 0x01FAE },
  862. { 0x01F6F , 0x00345 , 0x01FAF },
  863. { 0x01F70 , 0x00345 , 0x01FB2 },
  864. { 0x01F74 , 0x00345 , 0x01FC2 },
  865. { 0x01F7C , 0x00345 , 0x01FF2 },
  866. { 0x01FB6 , 0x00345 , 0x01FB7 },
  867. { 0x01FBF , 0x00300 , 0x01FCD },
  868. { 0x01FBF , 0x00301 , 0x01FCE },
  869. { 0x01FBF , 0x00342 , 0x01FCF },
  870. { 0x01FC6 , 0x00345 , 0x01FC7 },
  871. { 0x01FF6 , 0x00345 , 0x01FF7 },
  872. { 0x01FFE , 0x00300 , 0x01FDD },
  873. { 0x01FFE , 0x00301 , 0x01FDE },
  874. { 0x01FFE , 0x00342 , 0x01FDF },
  875. { 0x02190 , 0x00338 , 0x0219A },
  876. { 0x02192 , 0x00338 , 0x0219B },
  877. { 0x02194 , 0x00338 , 0x021AE },
  878. { 0x021D0 , 0x00338 , 0x021CD },
  879. { 0x021D2 , 0x00338 , 0x021CF },
  880. { 0x021D4 , 0x00338 , 0x021CE },
  881. { 0x02203 , 0x00338 , 0x02204 },
  882. { 0x02208 , 0x00338 , 0x02209 },
  883. { 0x0220B , 0x00338 , 0x0220C },
  884. { 0x02223 , 0x00338 , 0x02224 },
  885. { 0x02225 , 0x00338 , 0x02226 },
  886. { 0x0223C , 0x00338 , 0x02241 },
  887. { 0x02243 , 0x00338 , 0x02244 },
  888. { 0x02245 , 0x00338 , 0x02247 },
  889. { 0x02248 , 0x00338 , 0x02249 },
  890. { 0x0224D , 0x00338 , 0x0226D },
  891. { 0x02261 , 0x00338 , 0x02262 },
  892. { 0x02264 , 0x00338 , 0x02270 },
  893. { 0x02265 , 0x00338 , 0x02271 },
  894. { 0x02272 , 0x00338 , 0x02274 },
  895. { 0x02273 , 0x00338 , 0x02275 },
  896. { 0x02276 , 0x00338 , 0x02278 },
  897. { 0x02277 , 0x00338 , 0x02279 },
  898. { 0x0227A , 0x00338 , 0x02280 },
  899. { 0x0227B , 0x00338 , 0x02281 },
  900. { 0x0227C , 0x00338 , 0x022E0 },
  901. { 0x0227D , 0x00338 , 0x022E1 },
  902. { 0x02282 , 0x00338 , 0x02284 },
  903. { 0x02283 , 0x00338 , 0x02285 },
  904. { 0x02286 , 0x00338 , 0x02288 },
  905. { 0x02287 , 0x00338 , 0x02289 },
  906. { 0x02291 , 0x00338 , 0x022E2 },
  907. { 0x02292 , 0x00338 , 0x022E3 },
  908. { 0x022A2 , 0x00338 , 0x022AC },
  909. { 0x022A8 , 0x00338 , 0x022AD },
  910. { 0x022A9 , 0x00338 , 0x022AE },
  911. { 0x022AB , 0x00338 , 0x022AF },
  912. { 0x022B2 , 0x00338 , 0x022EA },
  913. { 0x022B3 , 0x00338 , 0x022EB },
  914. { 0x022B4 , 0x00338 , 0x022EC },
  915. { 0x022B5 , 0x00338 , 0x022ED },
  916. { 0x03046 , 0x03099 , 0x03094 },
  917. { 0x0304B , 0x03099 , 0x0304C },
  918. { 0x0304D , 0x03099 , 0x0304E },
  919. { 0x0304F , 0x03099 , 0x03050 },
  920. { 0x03051 , 0x03099 , 0x03052 },
  921. { 0x03053 , 0x03099 , 0x03054 },
  922. { 0x03055 , 0x03099 , 0x03056 },
  923. { 0x03057 , 0x03099 , 0x03058 },
  924. { 0x03059 , 0x03099 , 0x0305A },
  925. { 0x0305B , 0x03099 , 0x0305C },
  926. { 0x0305D , 0x03099 , 0x0305E },
  927. { 0x0305F , 0x03099 , 0x03060 },
  928. { 0x03061 , 0x03099 , 0x03062 },
  929. { 0x03064 , 0x03099 , 0x03065 },
  930. { 0x03066 , 0x03099 , 0x03067 },
  931. { 0x03068 , 0x03099 , 0x03069 },
  932. { 0x0306F , 0x03099 , 0x03070 },
  933. { 0x0306F , 0x0309A , 0x03071 },
  934. { 0x03072 , 0x03099 , 0x03073 },
  935. { 0x03072 , 0x0309A , 0x03074 },
  936. { 0x03075 , 0x03099 , 0x03076 },
  937. { 0x03075 , 0x0309A , 0x03077 },
  938. { 0x03078 , 0x03099 , 0x03079 },
  939. { 0x03078 , 0x0309A , 0x0307A },
  940. { 0x0307B , 0x03099 , 0x0307C },
  941. { 0x0307B , 0x0309A , 0x0307D },
  942. { 0x0309D , 0x03099 , 0x0309E },
  943. { 0x030A6 , 0x03099 , 0x030F4 },
  944. { 0x030AB , 0x03099 , 0x030AC },
  945. { 0x030AD , 0x03099 , 0x030AE },
  946. { 0x030AF , 0x03099 , 0x030B0 },
  947. { 0x030B1 , 0x03099 , 0x030B2 },
  948. { 0x030B3 , 0x03099 , 0x030B4 },
  949. { 0x030B5 , 0x03099 , 0x030B6 },
  950. { 0x030B7 , 0x03099 , 0x030B8 },
  951. { 0x030B9 , 0x03099 , 0x030BA },
  952. { 0x030BB , 0x03099 , 0x030BC },
  953. { 0x030BD , 0x03099 , 0x030BE },
  954. { 0x030BF , 0x03099 , 0x030C0 },
  955. { 0x030C1 , 0x03099 , 0x030C2 },
  956. { 0x030C4 , 0x03099 , 0x030C5 },
  957. { 0x030C6 , 0x03099 , 0x030C7 },
  958. { 0x030C8 , 0x03099 , 0x030C9 },
  959. { 0x030CF , 0x03099 , 0x030D0 },
  960. { 0x030CF , 0x0309A , 0x030D1 },
  961. { 0x030D2 , 0x03099 , 0x030D3 },
  962. { 0x030D2 , 0x0309A , 0x030D4 },
  963. { 0x030D5 , 0x03099 , 0x030D6 },
  964. { 0x030D5 , 0x0309A , 0x030D7 },
  965. { 0x030D8 , 0x03099 , 0x030D9 },
  966. { 0x030D8 , 0x0309A , 0x030DA },
  967. { 0x030DB , 0x03099 , 0x030DC },
  968. { 0x030DB , 0x0309A , 0x030DD },
  969. { 0x030EF , 0x03099 , 0x030F7 },
  970. { 0x030F0 , 0x03099 , 0x030F8 },
  971. { 0x030F1 , 0x03099 , 0x030F9 },
  972. { 0x030F2 , 0x03099 , 0x030FA },
  973. { 0x030FD , 0x03099 , 0x030FE },
  974. { 0x11099 , 0x110BA , 0x1109A },
  975. { 0x1109B , 0x110BA , 0x1109C },
  976. { 0x110A5 , 0x110BA , 0x110AB },
  977. };
  978. #define CANONICAL_CLASS_MIN 0x0300
  979. #define CANONICAL_CLASS_MAX 0x1D244
  980. #define IS_DECOMPOSABLE_BLOCK(uc) \
  981. (((uc)>>8) <= 0x1D2 && u_decomposable_blocks[(uc)>>8])
  982. static const char u_decomposable_blocks[0x1D2+1] = {
  983. 0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1,1,0,0,
  984. 1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  985. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  986. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  987. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  988. 0,0,0,0,0,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,
  989. 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,
  990. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,
  991. 0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  992. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  993. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  994. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  995. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  996. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
  997. 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,
  998. };
  999. /* Get Canonical Combining Class(CCC). */
  1000. #define CCC(uc) \
  1001. (((uc) > 0x1D244)?0:\
  1002. ccc_val[ccc_val_index[ccc_index[(uc)>>8]][((uc)>>4)&0x0F]][(uc)&0x0F])
  1003. /* The table of the value of Canonical Combining Class */
  1004. static const unsigned char ccc_val[][16] = {
  1005. /* idx=0: XXXX0 - XXXXF */
  1006. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1007. /* idx=1: 00300 - 0030F */
  1008. {230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
  1009. /* idx=2: 00310 - 0031F */
  1010. {230, 230, 230, 230, 230, 232, 220, 220, 220, 220, 232, 216, 220, 220, 220, 220 },
  1011. /* idx=3: 00320 - 0032F */
  1012. {220, 202, 202, 220, 220, 220, 220, 202, 202, 220, 220, 220, 220, 220, 220, 220 },
  1013. /* idx=4: 00330 - 0033F */
  1014. {220, 220, 220, 220, 1, 1, 1, 1, 1, 220, 220, 220, 220, 230, 230, 230 },
  1015. /* idx=5: 00340 - 0034F */
  1016. {230, 230, 230, 230, 230, 240, 230, 220, 220, 220, 230, 230, 230, 220, 220, 0 },
  1017. /* idx=6: 00350 - 0035F */
  1018. {230, 230, 230, 220, 220, 220, 220, 230, 232, 220, 220, 230, 233, 234, 234, 233 },
  1019. /* idx=7: 00360 - 0036F */
  1020. {234, 234, 233, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
  1021. /* idx=8: 00480 - 0048F */
  1022. {0, 0, 0, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0 },
  1023. /* idx=9: 00590 - 0059F */
  1024. {0, 220, 230, 230, 230, 230, 220, 230, 230, 230, 222, 220, 230, 230, 230, 230 },
  1025. /* idx=10: 005A0 - 005AF */
  1026. {230, 230, 220, 220, 220, 220, 220, 220, 230, 230, 220, 230, 230, 222, 228, 230 },
  1027. /* idx=11: 005B0 - 005BF */
  1028. {10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 19, 20, 21, 22, 0, 23 },
  1029. /* idx=12: 005C0 - 005CF */
  1030. {0, 24, 25, 0, 230, 220, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0 },
  1031. /* idx=13: 00610 - 0061F */
  1032. {230, 230, 230, 230, 230, 230, 230, 230, 30, 31, 32, 0, 0, 0, 0, 0 },
  1033. /* idx=14: 00640 - 0064F */
  1034. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 28, 29, 30, 31 },
  1035. /* idx=15: 00650 - 0065F */
  1036. {32, 33, 34, 230, 230, 220, 220, 230, 230, 230, 230, 230, 220, 230, 230, 220 },
  1037. /* idx=16: 00670 - 0067F */
  1038. {35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1039. /* idx=17: 006D0 - 006DF */
  1040. {0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 0, 0, 230 },
  1041. /* idx=18: 006E0 - 006EF */
  1042. {230, 230, 230, 220, 230, 0, 0, 230, 230, 0, 220, 230, 230, 220, 0, 0 },
  1043. /* idx=19: 00710 - 0071F */
  1044. {0, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1045. /* idx=20: 00730 - 0073F */
  1046. {230, 220, 230, 230, 220, 230, 230, 220, 220, 220, 230, 220, 220, 230, 220, 230 },
  1047. /* idx=21: 00740 - 0074F */
  1048. {230, 230, 220, 230, 220, 230, 220, 230, 220, 230, 230, 0, 0, 0, 0, 0 },
  1049. /* idx=22: 007E0 - 007EF */
  1050. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 230 },
  1051. /* idx=23: 007F0 - 007FF */
  1052. {230, 230, 220, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1053. /* idx=24: 00810 - 0081F */
  1054. {0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 230, 230, 230, 230, 230 },
  1055. /* idx=25: 00820 - 0082F */
  1056. {230, 230, 230, 230, 0, 230, 230, 230, 0, 230, 230, 230, 230, 230, 0, 0 },
  1057. /* idx=26: 00850 - 0085F */
  1058. {0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 0, 0, 0, 0 },
  1059. /* idx=27: 00930 - 0093F */
  1060. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 },
  1061. /* idx=28: 00940 - 0094F */
  1062. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1063. /* idx=29: 00950 - 0095F */
  1064. {0, 230, 220, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1065. /* idx=30: 009B0 - 009BF */
  1066. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 },
  1067. /* idx=31: 009C0 - 009CF */
  1068. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1069. /* idx=32: 00A30 - 00A3F */
  1070. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 },
  1071. /* idx=33: 00A40 - 00A4F */
  1072. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1073. /* idx=34: 00AB0 - 00ABF */
  1074. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 },
  1075. /* idx=35: 00AC0 - 00ACF */
  1076. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1077. /* idx=36: 00B30 - 00B3F */
  1078. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 },
  1079. /* idx=37: 00B40 - 00B4F */
  1080. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1081. /* idx=38: 00BC0 - 00BCF */
  1082. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1083. /* idx=39: 00C40 - 00C4F */
  1084. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1085. /* idx=40: 00C50 - 00C5F */
  1086. {0, 0, 0, 0, 0, 84, 91, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1087. /* idx=41: 00CB0 - 00CBF */
  1088. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0 },
  1089. /* idx=42: 00CC0 - 00CCF */
  1090. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1091. /* idx=43: 00D40 - 00D4F */
  1092. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1093. /* idx=44: 00DC0 - 00DCF */
  1094. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0 },
  1095. /* idx=45: 00E30 - 00E3F */
  1096. {0, 0, 0, 0, 0, 0, 0, 0, 103, 103, 9, 0, 0, 0, 0, 0 },
  1097. /* idx=46: 00E40 - 00E4F */
  1098. {0, 0, 0, 0, 0, 0, 0, 0, 107, 107, 107, 107, 0, 0, 0, 0 },
  1099. /* idx=47: 00EB0 - 00EBF */
  1100. {0, 0, 0, 0, 0, 0, 0, 0, 118, 118, 0, 0, 0, 0, 0, 0 },
  1101. /* idx=48: 00EC0 - 00ECF */
  1102. {0, 0, 0, 0, 0, 0, 0, 0, 122, 122, 122, 122, 0, 0, 0, 0 },
  1103. /* idx=49: 00F10 - 00F1F */
  1104. {0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 0, 0, 0, 0, 0, 0 },
  1105. /* idx=50: 00F30 - 00F3F */
  1106. {0, 0, 0, 0, 0, 220, 0, 220, 0, 216, 0, 0, 0, 0, 0, 0 },
  1107. /* idx=51: 00F70 - 00F7F */
  1108. {0, 129, 130, 0, 132, 0, 0, 0, 0, 0, 130, 130, 130, 130, 0, 0 },
  1109. /* idx=52: 00F80 - 00F8F */
  1110. {130, 0, 230, 230, 9, 0, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0 },
  1111. /* idx=53: 00FC0 - 00FCF */
  1112. {0, 0, 0, 0, 0, 0, 220, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1113. /* idx=54: 01030 - 0103F */
  1114. {0, 0, 0, 0, 0, 0, 0, 7, 0, 9, 9, 0, 0, 0, 0, 0 },
  1115. /* idx=55: 01080 - 0108F */
  1116. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0 },
  1117. /* idx=56: 01350 - 0135F */
  1118. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230 },
  1119. /* idx=57: 01710 - 0171F */
  1120. {0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1121. /* idx=58: 01730 - 0173F */
  1122. {0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1123. /* idx=59: 017D0 - 017DF */
  1124. {0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 0, 0 },
  1125. /* idx=60: 018A0 - 018AF */
  1126. {0, 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, 0 },
  1127. /* idx=61: 01930 - 0193F */
  1128. {0, 0, 0, 0, 0, 0, 0, 0, 0, 222, 230, 220, 0, 0, 0, 0 },
  1129. /* idx=62: 01A10 - 01A1F */
  1130. {0, 0, 0, 0, 0, 0, 0, 230, 220, 0, 0, 0, 0, 0, 0, 0 },
  1131. /* idx=63: 01A60 - 01A6F */
  1132. {9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1133. /* idx=64: 01A70 - 01A7F */
  1134. {0, 0, 0, 0, 0, 230, 230, 230, 230, 230, 230, 230, 230, 0, 0, 220 },
  1135. /* idx=65: 01B30 - 01B3F */
  1136. {0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1137. /* idx=66: 01B40 - 01B4F */
  1138. {0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1139. /* idx=67: 01B60 - 01B6F */
  1140. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 220, 230, 230, 230 },
  1141. /* idx=68: 01B70 - 01B7F */
  1142. {230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1143. /* idx=69: 01BA0 - 01BAF */
  1144. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0 },
  1145. /* idx=70: 01BE0 - 01BEF */
  1146. {0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1147. /* idx=71: 01BF0 - 01BFF */
  1148. {0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1149. /* idx=72: 01C30 - 01C3F */
  1150. {0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0 },
  1151. /* idx=73: 01CD0 - 01CDF */
  1152. {230, 230, 230, 0, 1, 220, 220, 220, 220, 220, 230, 230, 220, 220, 220, 220 },
  1153. /* idx=74: 01CE0 - 01CEF */
  1154. {230, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 220, 0, 0 },
  1155. /* idx=75: 01DC0 - 01DCF */
  1156. {230, 230, 220, 230, 230, 230, 230, 230, 230, 230, 220, 230, 230, 234, 214, 220 },
  1157. /* idx=76: 01DD0 - 01DDF */
  1158. {202, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
  1159. /* idx=77: 01DE0 - 01DEF */
  1160. {230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1161. /* idx=78: 01DF0 - 01DFF */
  1162. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 233, 220, 230, 220 },
  1163. /* idx=79: 020D0 - 020DF */
  1164. {230, 230, 1, 1, 230, 230, 230, 230, 1, 1, 1, 230, 230, 0, 0, 0 },
  1165. /* idx=80: 020E0 - 020EF */
  1166. {0, 230, 0, 0, 0, 1, 1, 230, 220, 230, 1, 1, 220, 220, 220, 220 },
  1167. /* idx=81: 020F0 - 020FF */
  1168. {230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1169. /* idx=82: 02CE0 - 02CEF */
  1170. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230 },
  1171. /* idx=83: 02CF0 - 02CFF */
  1172. {230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1173. /* idx=84: 02D70 - 02D7F */
  1174. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9 },
  1175. /* idx=85: 02DE0 - 02DEF */
  1176. {230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
  1177. /* idx=86: 02DF0 - 02DFF */
  1178. {230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
  1179. /* idx=87: 03020 - 0302F */
  1180. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 218, 228, 232, 222, 224, 224 },
  1181. /* idx=88: 03090 - 0309F */
  1182. {0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0 },
  1183. /* idx=89: 0A660 - 0A66F */
  1184. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230 },
  1185. /* idx=90: 0A670 - 0A67F */
  1186. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 0, 0 },
  1187. /* idx=91: 0A6F0 - 0A6FF */
  1188. {230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1189. /* idx=92: 0A800 - 0A80F */
  1190. {0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1191. /* idx=93: 0A8C0 - 0A8CF */
  1192. {0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1193. /* idx=94: 0A8E0 - 0A8EF */
  1194. {230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230 },
  1195. /* idx=95: 0A8F0 - 0A8FF */
  1196. {230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1197. /* idx=96: 0A920 - 0A92F */
  1198. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 0, 0 },
  1199. /* idx=97: 0A950 - 0A95F */
  1200. {0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1201. /* idx=98: 0A9B0 - 0A9BF */
  1202. {0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1203. /* idx=99: 0A9C0 - 0A9CF */
  1204. {9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1205. /* idx=100: 0AAB0 - 0AABF */
  1206. {230, 0, 230, 230, 220, 0, 0, 230, 230, 0, 0, 0, 0, 0, 230, 230 },
  1207. /* idx=101: 0AAC0 - 0AACF */
  1208. {0, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1209. /* idx=102: 0ABE0 - 0ABEF */
  1210. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 0, 0 },
  1211. /* idx=103: 0FB10 - 0FB1F */
  1212. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0 },
  1213. /* idx=104: 0FE20 - 0FE2F */
  1214. {230, 230, 230, 230, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1215. /* idx=105: 101F0 - 101FF */
  1216. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 0 },
  1217. /* idx=106: 10A00 - 10A0F */
  1218. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 220, 0, 230 },
  1219. /* idx=107: 10A30 - 10A3F */
  1220. {0, 0, 0, 0, 0, 0, 0, 0, 230, 1, 220, 0, 0, 0, 0, 9 },
  1221. /* idx=108: 11040 - 1104F */
  1222. {0, 0, 0, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1223. /* idx=109: 110B0 - 110BF */
  1224. {0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 7, 0, 0, 0, 0, 0 },
  1225. /* idx=110: 1D160 - 1D16F */
  1226. {0, 0, 0, 0, 0, 216, 216, 1, 1, 1, 0, 0, 0, 226, 216, 216 },
  1227. /* idx=111: 1D170 - 1D17F */
  1228. {216, 216, 216, 0, 0, 0, 0, 0, 0, 0, 0, 220, 220, 220, 220, 220 },
  1229. /* idx=112: 1D180 - 1D18F */
  1230. {220, 220, 220, 0, 0, 230, 230, 230, 230, 230, 220, 220, 0, 0, 0, 0 },
  1231. /* idx=113: 1D1A0 - 1D1AF */
  1232. {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 230, 230, 230, 230, 0, 0 },
  1233. /* idx=114: 1D240 - 1D24F */
  1234. {0, 0, 230, 230, 230, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1235. };
  1236. /* The index table to ccc_val[*][16] */
  1237. static const unsigned char ccc_val_index[][16] = {
  1238. /* idx=0: XXX00 - XXXFF */
  1239. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1240. /* idx=1: 00300 - 003FF */
  1241. { 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1242. /* idx=2: 00400 - 004FF */
  1243. { 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0 },
  1244. /* idx=3: 00500 - 005FF */
  1245. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 9,10,11,12, 0, 0, 0 },
  1246. /* idx=4: 00600 - 006FF */
  1247. { 0,13, 0, 0,14,15, 0,16, 0, 0, 0, 0, 0,17,18, 0 },
  1248. /* idx=5: 00700 - 007FF */
  1249. { 0,19, 0,20,21, 0, 0, 0, 0, 0, 0, 0, 0, 0,22,23 },
  1250. /* idx=6: 00800 - 008FF */
  1251. { 0,24,25, 0, 0,26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1252. /* idx=7: 00900 - 009FF */
  1253. { 0, 0, 0,27,28,29, 0, 0, 0, 0, 0,30,31, 0, 0, 0 },
  1254. /* idx=8: 00A00 - 00AFF */
  1255. { 0, 0, 0,32,33, 0, 0, 0, 0, 0, 0,34,35, 0, 0, 0 },
  1256. /* idx=9: 00B00 - 00BFF */
  1257. { 0, 0, 0,36,37, 0, 0, 0, 0, 0, 0, 0,38, 0, 0, 0 },
  1258. /* idx=10: 00C00 - 00CFF */
  1259. { 0, 0, 0, 0,39,40, 0, 0, 0, 0, 0,41,42, 0, 0, 0 },
  1260. /* idx=11: 00D00 - 00DFF */
  1261. { 0, 0, 0, 0,43, 0, 0, 0, 0, 0, 0, 0,44, 0, 0, 0 },
  1262. /* idx=12: 00E00 - 00EFF */
  1263. { 0, 0, 0,45,46, 0, 0, 0, 0, 0, 0,47,48, 0, 0, 0 },
  1264. /* idx=13: 00F00 - 00FFF */
  1265. { 0,49, 0,50, 0, 0, 0,51,52, 0, 0, 0,53, 0, 0, 0 },
  1266. /* idx=14: 01000 - 010FF */
  1267. { 0, 0, 0,54, 0, 0, 0, 0,55, 0, 0, 0, 0, 0, 0, 0 },
  1268. /* idx=15: 01300 - 013FF */
  1269. { 0, 0, 0, 0, 0,56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1270. /* idx=16: 01700 - 017FF */
  1271. { 0,57, 0,58, 0, 0, 0, 0, 0, 0, 0, 0, 0,59, 0, 0 },
  1272. /* idx=17: 01800 - 018FF */
  1273. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,60, 0, 0, 0, 0, 0 },
  1274. /* idx=18: 01900 - 019FF */
  1275. { 0, 0, 0,61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1276. /* idx=19: 01A00 - 01AFF */
  1277. { 0,62, 0, 0, 0, 0,63,64, 0, 0, 0, 0, 0, 0, 0, 0 },
  1278. /* idx=20: 01B00 - 01BFF */
  1279. { 0, 0, 0,65,66, 0,67,68, 0, 0,69, 0, 0, 0,70,71 },
  1280. /* idx=21: 01C00 - 01CFF */
  1281. { 0, 0, 0,72, 0, 0, 0, 0, 0, 0, 0, 0, 0,73,74, 0 },
  1282. /* idx=22: 01D00 - 01DFF */
  1283. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,75,76,77,78 },
  1284. /* idx=23: 02000 - 020FF */
  1285. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,79,80,81 },
  1286. /* idx=24: 02C00 - 02CFF */
  1287. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,82,83 },
  1288. /* idx=25: 02D00 - 02DFF */
  1289. { 0, 0, 0, 0, 0, 0, 0,84, 0, 0, 0, 0, 0, 0,85,86 },
  1290. /* idx=26: 03000 - 030FF */
  1291. { 0, 0,87, 0, 0, 0, 0, 0, 0,88, 0, 0, 0, 0, 0, 0 },
  1292. /* idx=27: 0A600 - 0A6FF */
  1293. { 0, 0, 0, 0, 0, 0,89,90, 0, 0, 0, 0, 0, 0, 0,91 },
  1294. /* idx=28: 0A800 - 0A8FF */
  1295. {92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,93, 0,94,95 },
  1296. /* idx=29: 0A900 - 0A9FF */
  1297. { 0, 0,96, 0, 0,97, 0, 0, 0, 0, 0,98,99, 0, 0, 0 },
  1298. /* idx=30: 0AA00 - 0AAFF */
  1299. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,100,101, 0, 0, 0 },
  1300. /* idx=31: 0AB00 - 0ABFF */
  1301. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,102, 0 },
  1302. /* idx=32: 0FB00 - 0FBFF */
  1303. { 0,103, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1304. /* idx=33: 0FE00 - 0FEFF */
  1305. { 0, 0,104, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1306. /* idx=34: 10100 - 101FF */
  1307. { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,105 },
  1308. /* idx=35: 10A00 - 10AFF */
  1309. {106, 0, 0,107, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1310. /* idx=36: 11000 - 110FF */
  1311. { 0, 0, 0, 0,108, 0, 0, 0, 0, 0, 0,109, 0, 0, 0, 0 },
  1312. /* idx=37: 1D100 - 1D1FF */
  1313. { 0, 0, 0, 0, 0, 0,110,111,112, 0,113, 0, 0, 0, 0, 0 },
  1314. /* idx=38: 1D200 - 1D2FF */
  1315. { 0, 0, 0, 0,114, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
  1316. };
  1317. /* The index table to ccc_val_index[*][16] */
  1318. static const unsigned char ccc_index[] = {
  1319. 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14, 0, 0,15, 0, 0, 0,16,
  1320. 17,18,19,20,21,22, 0, 0,23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,24,25, 0, 0,
  1321. 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1322. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1323. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1324. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1325. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,27, 0,
  1326. 28,29,30,31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1327. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1328. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1329. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,32, 0, 0,33, 0, 0,34, 0, 0, 0, 0, 0, 0,
  1330. 0, 0,35, 0, 0, 0, 0, 0,36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1331. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1332. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1333. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1334. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1335. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1336. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1337. 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
  1338. 0, 0, 0, 0, 0, 0, 0, 0, 0,37,38,};
  1339. struct unicode_decomposition_table {
  1340. uint32_t nfc;
  1341. uint32_t cp1;
  1342. uint32_t cp2;
  1343. };
  1344. static const struct unicode_decomposition_table u_decomposition_table[] = {
  1345. { 0x000C0 , 0x00041 , 0x00300 },
  1346. { 0x000C1 , 0x00041 , 0x00301 },
  1347. { 0x000C2 , 0x00041 , 0x00302 },
  1348. { 0x000C3 , 0x00041 , 0x00303 },
  1349. { 0x000C4 , 0x00041 , 0x00308 },
  1350. { 0x000C5 , 0x00041 , 0x0030A },
  1351. { 0x000C7 , 0x00043 , 0x00327 },
  1352. { 0x000C8 , 0x00045 , 0x00300 },
  1353. { 0x000C9 , 0x00045 , 0x00301 },
  1354. { 0x000CA , 0x00045 , 0x00302 },
  1355. { 0x000CB , 0x00045 , 0x00308 },
  1356. { 0x000CC , 0x00049 , 0x00300 },
  1357. { 0x000CD , 0x00049 , 0x00301 },
  1358. { 0x000CE , 0x00049 , 0x00302 },
  1359. { 0x000CF , 0x00049 , 0x00308 },
  1360. { 0x000D1 , 0x0004E , 0x00303 },
  1361. { 0x000D2 , 0x0004F , 0x00300 },
  1362. { 0x000D3 , 0x0004F , 0x00301 },
  1363. { 0x000D4 , 0x0004F , 0x00302 },
  1364. { 0x000D5 , 0x0004F , 0x00303 },
  1365. { 0x000D6 , 0x0004F , 0x00308 },
  1366. { 0x000D9 , 0x00055 , 0x00300 },
  1367. { 0x000DA , 0x00055 , 0x00301 },
  1368. { 0x000DB , 0x00055 , 0x00302 },
  1369. { 0x000DC , 0x00055 , 0x00308 },
  1370. { 0x000DD , 0x00059 , 0x00301 },
  1371. { 0x000E0 , 0x00061 , 0x00300 },
  1372. { 0x000E1 , 0x00061 , 0x00301 },
  1373. { 0x000E2 , 0x00061 , 0x00302 },
  1374. { 0x000E3 , 0x00061 , 0x00303 },
  1375. { 0x000E4 , 0x00061 , 0x00308 },
  1376. { 0x000E5 , 0x00061 , 0x0030A },
  1377. { 0x000E7 , 0x00063 , 0x00327 },
  1378. { 0x000E8 , 0x00065 , 0x00300 },
  1379. { 0x000E9 , 0x00065 , 0x00301 },
  1380. { 0x000EA , 0x00065 , 0x00302 },
  1381. { 0x000EB , 0x00065 , 0x00308 },
  1382. { 0x000EC , 0x00069 , 0x00300 },
  1383. { 0x000ED , 0x00069 , 0x00301 },
  1384. { 0x000EE , 0x00069 , 0x00302 },
  1385. { 0x000EF , 0x00069 , 0x00308 },
  1386. { 0x000F1 , 0x0006E , 0x00303 },
  1387. { 0x000F2 , 0x0006F , 0x00300 },
  1388. { 0x000F3 , 0x0006F , 0x00301 },
  1389. { 0x000F4 , 0x0006F , 0x00302 },
  1390. { 0x000F5 , 0x0006F , 0x00303 },
  1391. { 0x000F6 , 0x0006F , 0x00308 },
  1392. { 0x000F9 , 0x00075 , 0x00300 },
  1393. { 0x000FA , 0x00075 , 0x00301 },
  1394. { 0x000FB , 0x00075 , 0x00302 },
  1395. { 0x000FC , 0x00075 , 0x00308 },
  1396. { 0x000FD , 0x00079 , 0x00301 },
  1397. { 0x000FF , 0x00079 , 0x00308 },
  1398. { 0x00100 , 0x00041 , 0x00304 },
  1399. { 0x00101 , 0x00061 , 0x00304 },
  1400. { 0x00102 , 0x00041 , 0x00306 },
  1401. { 0x00103 , 0x00061 , 0x00306 },
  1402. { 0x00104 , 0x00041 , 0x00328 },
  1403. { 0x00105 , 0x00061 , 0x00328 },
  1404. { 0x00106 , 0x00043 , 0x00301 },
  1405. { 0x00107 , 0x00063 , 0x00301 },
  1406. { 0x00108 , 0x00043 , 0x00302 },
  1407. { 0x00109 , 0x00063 , 0x00302 },
  1408. { 0x0010A , 0x00043 , 0x00307 },
  1409. { 0x0010B , 0x00063 , 0x00307 },
  1410. { 0x0010C , 0x00043 , 0x0030C },
  1411. { 0x0010D , 0x00063 , 0x0030C },
  1412. { 0x0010E , 0x00044 , 0x0030C },
  1413. { 0x0010F , 0x00064 , 0x0030C },
  1414. { 0x00112 , 0x00045 , 0x00304 },
  1415. { 0x00113 , 0x00065 , 0x00304 },
  1416. { 0x00114 , 0x00045 , 0x00306 },
  1417. { 0x00115 , 0x00065 , 0x00306 },
  1418. { 0x00116 , 0x00045 , 0x00307 },
  1419. { 0x00117 , 0x00065 , 0x00307 },
  1420. { 0x00118 , 0x00045 , 0x00328 },
  1421. { 0x00119 , 0x00065 , 0x00328 },
  1422. { 0x0011A , 0x00045 , 0x0030C },
  1423. { 0x0011B , 0x00065 , 0x0030C },
  1424. { 0x0011C , 0x00047 , 0x00302 },
  1425. { 0x0011D , 0x00067 , 0x00302 },
  1426. { 0x0011E , 0x00047 , 0x00306 },
  1427. { 0x0011F , 0x00067 , 0x00306 },
  1428. { 0x00120 , 0x00047 , 0x00307 },
  1429. { 0x00121 , 0x00067 , 0x00307 },
  1430. { 0x00122 , 0x00047 , 0x00327 },
  1431. { 0x00123 , 0x00067 , 0x00327 },
  1432. { 0x00124 , 0x00048 , 0x00302 },
  1433. { 0x00125 , 0x00068 , 0x00302 },
  1434. { 0x00128 , 0x00049 , 0x00303 },
  1435. { 0x00129 , 0x00069 , 0x00303 },
  1436. { 0x0012A , 0x00049 , 0x00304 },
  1437. { 0x0012B , 0x00069 , 0x00304 },
  1438. { 0x0012C , 0x00049 , 0x00306 },
  1439. { 0x0012D , 0x00069 , 0x00306 },
  1440. { 0x0012E , 0x00049 , 0x00328 },
  1441. { 0x0012F , 0x00069 , 0x00328 },
  1442. { 0x00130 , 0x00049 , 0x00307 },
  1443. { 0x00134 , 0x0004A , 0x00302 },
  1444. { 0x00135 , 0x0006A , 0x00302 },
  1445. { 0x00136 , 0x0004B , 0x00327 },
  1446. { 0x00137 , 0x0006B , 0x00327 },
  1447. { 0x00139 , 0x0004C , 0x00301 },
  1448. { 0x0013A , 0x0006C , 0x00301 },
  1449. { 0x0013B , 0x0004C , 0x00327 },
  1450. { 0x0013C , 0x0006C , 0x00327 },
  1451. { 0x0013D , 0x0004C , 0x0030C },
  1452. { 0x0013E , 0x0006C , 0x0030C },
  1453. { 0x00143 , 0x0004E , 0x00301 },
  1454. { 0x00144 , 0x0006E , 0x00301 },
  1455. { 0x00145 , 0x0004E , 0x00327 },
  1456. { 0x00146 , 0x0006E , 0x00327 },
  1457. { 0x00147 , 0x0004E , 0x0030C },
  1458. { 0x00148 , 0x0006E , 0x0030C },
  1459. { 0x0014C , 0x0004F , 0x00304 },
  1460. { 0x0014D , 0x0006F , 0x00304 },
  1461. { 0x0014E , 0x0004F , 0x00306 },
  1462. { 0x0014F , 0x0006F , 0x00306 },
  1463. { 0x00150 , 0x0004F , 0x0030B },
  1464. { 0x00151 , 0x0006F , 0x0030B },
  1465. { 0x00154 , 0x00052 , 0x00301 },
  1466. { 0x00155 , 0x00072 , 0x00301 },
  1467. { 0x00156 , 0x00052 , 0x00327 },
  1468. { 0x00157 , 0x00072 , 0x00327 },
  1469. { 0x00158 , 0x00052 , 0x0030C },
  1470. { 0x00159 , 0x00072 , 0x0030C },
  1471. { 0x0015A , 0x00053 , 0x00301 },
  1472. { 0x0015B , 0x00073 , 0x00301 },
  1473. { 0x0015C , 0x00053 , 0x00302 },
  1474. { 0x0015D , 0x00073 , 0x00302 },
  1475. { 0x0015E , 0x00053 , 0x00327 },
  1476. { 0x0015F , 0x00073 , 0x00327 },
  1477. { 0x00160 , 0x00053 , 0x0030C },
  1478. { 0x00161 , 0x00073 , 0x0030C },
  1479. { 0x00162 , 0x00054 , 0x00327 },
  1480. { 0x00163 , 0x00074 , 0x00327 },
  1481. { 0x00164 , 0x00054 , 0x0030C },
  1482. { 0x00165 , 0x00074 , 0x0030C },
  1483. { 0x00168 , 0x00055 , 0x00303 },
  1484. { 0x00169 , 0x00075 , 0x00303 },
  1485. { 0x0016A , 0x00055 , 0x00304 },
  1486. { 0x0016B , 0x00075 , 0x00304 },
  1487. { 0x0016C , 0x00055 , 0x00306 },
  1488. { 0x0016D , 0x00075 , 0x00306 },
  1489. { 0x0016E , 0x00055 , 0x0030A },
  1490. { 0x0016F , 0x00075 , 0x0030A },
  1491. { 0x00170 , 0x00055 , 0x0030B },
  1492. { 0x00171 , 0x00075 , 0x0030B },
  1493. { 0x00172 , 0x00055 , 0x00328 },
  1494. { 0x00173 , 0x00075 , 0x00328 },
  1495. { 0x00174 , 0x00057 , 0x00302 },
  1496. { 0x00175 , 0x00077 , 0x00302 },
  1497. { 0x00176 , 0x00059 , 0x00302 },
  1498. { 0x00177 , 0x00079 , 0x00302 },
  1499. { 0x00178 , 0x00059 , 0x00308 },
  1500. { 0x00179 , 0x0005A , 0x00301 },
  1501. { 0x0017A , 0x0007A , 0x00301 },
  1502. { 0x0017B , 0x0005A , 0x00307 },
  1503. { 0x0017C , 0x0007A , 0x00307 },
  1504. { 0x0017D , 0x0005A , 0x0030C },
  1505. { 0x0017E , 0x0007A , 0x0030C },
  1506. { 0x001A0 , 0x0004F , 0x0031B },
  1507. { 0x001A1 , 0x0006F , 0x0031B },
  1508. { 0x001AF , 0x00055 , 0x0031B },
  1509. { 0x001B0 , 0x00075 , 0x0031B },
  1510. { 0x001CD , 0x00041 , 0x0030C },
  1511. { 0x001CE , 0x00061 , 0x0030C },
  1512. { 0x001CF , 0x00049 , 0x0030C },
  1513. { 0x001D0 , 0x00069 , 0x0030C },
  1514. { 0x001D1 , 0x0004F , 0x0030C },
  1515. { 0x001D2 , 0x0006F , 0x0030C },
  1516. { 0x001D3 , 0x00055 , 0x0030C },
  1517. { 0x001D4 , 0x00075 , 0x0030C },
  1518. { 0x001D5 , 0x000DC , 0x00304 },
  1519. { 0x001D6 , 0x000FC , 0x00304 },
  1520. { 0x001D7 , 0x000DC , 0x00301 },
  1521. { 0x001D8 , 0x000FC , 0x00301 },
  1522. { 0x001D9 , 0x000DC , 0x0030C },
  1523. { 0x001DA , 0x000FC , 0x0030C },
  1524. { 0x001DB , 0x000DC , 0x00300 },
  1525. { 0x001DC , 0x000FC , 0x00300 },
  1526. { 0x001DE , 0x000C4 , 0x00304 },
  1527. { 0x001DF , 0x000E4 , 0x00304 },
  1528. { 0x001E0 , 0x00226 , 0x00304 },
  1529. { 0x001E1 , 0x00227 , 0x00304 },
  1530. { 0x001E2 , 0x000C6 , 0x00304 },
  1531. { 0x001E3 , 0x000E6 , 0x00304 },
  1532. { 0x001E6 , 0x00047 , 0x0030C },
  1533. { 0x001E7 , 0x00067 , 0x0030C },
  1534. { 0x001E8 , 0x0004B , 0x0030C },
  1535. { 0x001E9 , 0x0006B , 0x0030C },
  1536. { 0x001EA , 0x0004F , 0x00328 },
  1537. { 0x001EB , 0x0006F , 0x00328 },
  1538. { 0x001EC , 0x001EA , 0x00304 },
  1539. { 0x001ED , 0x001EB , 0x00304 },
  1540. { 0x001EE , 0x001B7 , 0x0030C },
  1541. { 0x001EF , 0x00292 , 0x0030C },
  1542. { 0x001F0 , 0x0006A , 0x0030C },
  1543. { 0x001F4 , 0x00047 , 0x00301 },
  1544. { 0x001F5 , 0x00067 , 0x00301 },
  1545. { 0x001F8 , 0x0004E , 0x00300 },
  1546. { 0x001F9 , 0x0006E , 0x00300 },
  1547. { 0x001FA , 0x000C5 , 0x00301 },
  1548. { 0x001FB , 0x000E5 , 0x00301 },
  1549. { 0x001FC , 0x000C6 , 0x00301 },
  1550. { 0x001FD , 0x000E6 , 0x00301 },
  1551. { 0x001FE , 0x000D8 , 0x00301 },
  1552. { 0x001FF , 0x000F8 , 0x00301 },
  1553. { 0x00200 , 0x00041 , 0x0030F },
  1554. { 0x00201 , 0x00061 , 0x0030F },
  1555. { 0x00202 , 0x00041 , 0x00311 },
  1556. { 0x00203 , 0x00061 , 0x00311 },
  1557. { 0x00204 , 0x00045 , 0x0030F },
  1558. { 0x00205 , 0x00065 , 0x0030F },
  1559. { 0x00206 , 0x00045 , 0x00311 },
  1560. { 0x00207 , 0x00065 , 0x00311 },
  1561. { 0x00208 , 0x00049 , 0x0030F },
  1562. { 0x00209 , 0x00069 , 0x0030F },
  1563. { 0x0020A , 0x00049 , 0x00311 },
  1564. { 0x0020B , 0x00069 , 0x00311 },
  1565. { 0x0020C , 0x0004F , 0x0030F },
  1566. { 0x0020D , 0x0006F , 0x0030F },
  1567. { 0x0020E , 0x0004F , 0x00311 },
  1568. { 0x0020F , 0x0006F , 0x00311 },
  1569. { 0x00210 , 0x00052 , 0x0030F },
  1570. { 0x00211 , 0x00072 , 0x0030F },
  1571. { 0x00212 , 0x00052 , 0x00311 },
  1572. { 0x00213 , 0x00072 , 0x00311 },
  1573. { 0x00214 , 0x00055 , 0x0030F },
  1574. { 0x00215 , 0x00075 , 0x0030F },
  1575. { 0x00216 , 0x00055 , 0x00311 },
  1576. { 0x00217 , 0x00075 , 0x00311 },
  1577. { 0x00218 , 0x00053 , 0x00326 },
  1578. { 0x00219 , 0x00073 , 0x00326 },
  1579. { 0x0021A , 0x00054 , 0x00326 },
  1580. { 0x0021B , 0x00074 , 0x00326 },
  1581. { 0x0021E , 0x00048 , 0x0030C },
  1582. { 0x0021F , 0x00068 , 0x0030C },
  1583. { 0x00226 , 0x00041 , 0x00307 },
  1584. { 0x00227 , 0x00061 , 0x00307 },
  1585. { 0x00228 , 0x00045 , 0x00327 },
  1586. { 0x00229 , 0x00065 , 0x00327 },
  1587. { 0x0022A , 0x000D6 , 0x00304 },
  1588. { 0x0022B , 0x000F6 , 0x00304 },
  1589. { 0x0022C , 0x000D5 , 0x00304 },
  1590. { 0x0022D , 0x000F5 , 0x00304 },
  1591. { 0x0022E , 0x0004F , 0x00307 },
  1592. { 0x0022F , 0x0006F , 0x00307 },
  1593. { 0x00230 , 0x0022E , 0x00304 },
  1594. { 0x00231 , 0x0022F , 0x00304 },
  1595. { 0x00232 , 0x00059 , 0x00304 },
  1596. { 0x00233 , 0x00079 , 0x00304 },
  1597. { 0x00385 , 0x000A8 , 0x00301 },
  1598. { 0x00386 , 0x00391 , 0x00301 },
  1599. { 0x00388 , 0x00395 , 0x00301 },
  1600. { 0x00389 , 0x00397 , 0x00301 },
  1601. { 0x0038A , 0x00399 , 0x00301 },
  1602. { 0x0038C , 0x0039F , 0x00301 },
  1603. { 0x0038E , 0x003A5 , 0x00301 },
  1604. { 0x0038F , 0x003A9 , 0x00301 },
  1605. { 0x00390 , 0x003CA , 0x00301 },
  1606. { 0x003AA , 0x00399 , 0x00308 },
  1607. { 0x003AB , 0x003A5 , 0x00308 },
  1608. { 0x003AC , 0x003B1 , 0x00301 },
  1609. { 0x003AD , 0x003B5 , 0x00301 },
  1610. { 0x003AE , 0x003B7 , 0x00301 },
  1611. { 0x003AF , 0x003B9 , 0x00301 },
  1612. { 0x003B0 , 0x003CB , 0x00301 },
  1613. { 0x003CA , 0x003B9 , 0x00308 },
  1614. { 0x003CB , 0x003C5 , 0x00308 },
  1615. { 0x003CC , 0x003BF , 0x00301 },
  1616. { 0x003CD , 0x003C5 , 0x00301 },
  1617. { 0x003CE , 0x003C9 , 0x00301 },
  1618. { 0x003D3 , 0x003D2 , 0x00301 },
  1619. { 0x003D4 , 0x003D2 , 0x00308 },
  1620. { 0x00400 , 0x00415 , 0x00300 },
  1621. { 0x00401 , 0x00415 , 0x00308 },
  1622. { 0x00403 , 0x00413 , 0x00301 },
  1623. { 0x00407 , 0x00406 , 0x00308 },
  1624. { 0x0040C , 0x0041A , 0x00301 },
  1625. { 0x0040D , 0x00418 , 0x00300 },
  1626. { 0x0040E , 0x00423 , 0x00306 },
  1627. { 0x00419 , 0x00418 , 0x00306 },
  1628. { 0x00439 , 0x00438 , 0x00306 },
  1629. { 0x00450 , 0x00435 , 0x00300 },
  1630. { 0x00451 , 0x00435 , 0x00308 },
  1631. { 0x00453 , 0x00433 , 0x00301 },
  1632. { 0x00457 , 0x00456 , 0x00308 },
  1633. { 0x0045C , 0x0043A , 0x00301 },
  1634. { 0x0045D , 0x00438 , 0x00300 },
  1635. { 0x0045E , 0x00443 , 0x00306 },
  1636. { 0x00476 , 0x00474 , 0x0030F },
  1637. { 0x00477 , 0x00475 , 0x0030F },
  1638. { 0x004C1 , 0x00416 , 0x00306 },
  1639. { 0x004C2 , 0x00436 , 0x00306 },
  1640. { 0x004D0 , 0x00410 , 0x00306 },
  1641. { 0x004D1 , 0x00430 , 0x00306 },
  1642. { 0x004D2 , 0x00410 , 0x00308 },
  1643. { 0x004D3 , 0x00430 , 0x00308 },
  1644. { 0x004D6 , 0x00415 , 0x00306 },
  1645. { 0x004D7 , 0x00435 , 0x00306 },
  1646. { 0x004DA , 0x004D8 , 0x00308 },
  1647. { 0x004DB , 0x004D9 , 0x00308 },
  1648. { 0x004DC , 0x00416 , 0x00308 },
  1649. { 0x004DD , 0x00436 , 0x00308 },
  1650. { 0x004DE , 0x00417 , 0x00308 },
  1651. { 0x004DF , 0x00437 , 0x00308 },
  1652. { 0x004E2 , 0x00418 , 0x00304 },
  1653. { 0x004E3 , 0x00438 , 0x00304 },
  1654. { 0x004E4 , 0x00418 , 0x00308 },
  1655. { 0x004E5 , 0x00438 , 0x00308 },
  1656. { 0x004E6 , 0x0041E , 0x00308 },
  1657. { 0x004E7 , 0x0043E , 0x00308 },
  1658. { 0x004EA , 0x004E8 , 0x00308 },
  1659. { 0x004EB , 0x004E9 , 0x00308 },
  1660. { 0x004EC , 0x0042D , 0x00308 },
  1661. { 0x004ED , 0x0044D , 0x00308 },
  1662. { 0x004EE , 0x00423 , 0x00304 },
  1663. { 0x004EF , 0x00443 , 0x00304 },
  1664. { 0x004F0 , 0x00423 , 0x00308 },
  1665. { 0x004F1 , 0x00443 , 0x00308 },
  1666. { 0x004F2 , 0x00423 , 0x0030B },
  1667. { 0x004F3 , 0x00443 , 0x0030B },
  1668. { 0x004F4 , 0x00427 , 0x00308 },
  1669. { 0x004F5 , 0x00447 , 0x00308 },
  1670. { 0x004F8 , 0x0042B , 0x00308 },
  1671. { 0x004F9 , 0x0044B , 0x00308 },
  1672. { 0x00622 , 0x00627 , 0x00653 },
  1673. { 0x00623 , 0x00627 , 0x00654 },
  1674. { 0x00624 , 0x00648 , 0x00654 },
  1675. { 0x00625 , 0x00627 , 0x00655 },
  1676. { 0x00626 , 0x0064A , 0x00654 },
  1677. { 0x006C0 , 0x006D5 , 0x00654 },
  1678. { 0x006C2 , 0x006C1 , 0x00654 },
  1679. { 0x006D3 , 0x006D2 , 0x00654 },
  1680. { 0x00929 , 0x00928 , 0x0093C },
  1681. { 0x00931 , 0x00930 , 0x0093C },
  1682. { 0x00934 , 0x00933 , 0x0093C },
  1683. { 0x009CB , 0x009C7 , 0x009BE },
  1684. { 0x009CC , 0x009C7 , 0x009D7 },
  1685. { 0x00B48 , 0x00B47 , 0x00B56 },
  1686. { 0x00B4B , 0x00B47 , 0x00B3E },
  1687. { 0x00B4C , 0x00B47 , 0x00B57 },
  1688. { 0x00B94 , 0x00B92 , 0x00BD7 },
  1689. { 0x00BCA , 0x00BC6 , 0x00BBE },
  1690. { 0x00BCB , 0x00BC7 , 0x00BBE },
  1691. { 0x00BCC , 0x00BC6 , 0x00BD7 },
  1692. { 0x00C48 , 0x00C46 , 0x00C56 },
  1693. { 0x00CC0 , 0x00CBF , 0x00CD5 },
  1694. { 0x00CC7 , 0x00CC6 , 0x00CD5 },
  1695. { 0x00CC8 , 0x00CC6 , 0x00CD6 },
  1696. { 0x00CCA , 0x00CC6 , 0x00CC2 },
  1697. { 0x00CCB , 0x00CCA , 0x00CD5 },
  1698. { 0x00D4A , 0x00D46 , 0x00D3E },
  1699. { 0x00D4B , 0x00D47 , 0x00D3E },
  1700. { 0x00D4C , 0x00D46 , 0x00D57 },
  1701. { 0x00DDA , 0x00DD9 , 0x00DCA },
  1702. { 0x00DDC , 0x00DD9 , 0x00DCF },
  1703. { 0x00DDD , 0x00DDC , 0x00DCA },
  1704. { 0x00DDE , 0x00DD9 , 0x00DDF },
  1705. { 0x01026 , 0x01025 , 0x0102E },
  1706. { 0x01B06 , 0x01B05 , 0x01B35 },
  1707. { 0x01B08 , 0x01B07 , 0x01B35 },
  1708. { 0x01B0A , 0x01B09 , 0x01B35 },
  1709. { 0x01B0C , 0x01B0B , 0x01B35 },
  1710. { 0x01B0E , 0x01B0D , 0x01B35 },
  1711. { 0x01B12 , 0x01B11 , 0x01B35 },
  1712. { 0x01B3B , 0x01B3A , 0x01B35 },
  1713. { 0x01B3D , 0x01B3C , 0x01B35 },
  1714. { 0x01B40 , 0x01B3E , 0x01B35 },
  1715. { 0x01B41 , 0x01B3F , 0x01B35 },
  1716. { 0x01B43 , 0x01B42 , 0x01B35 },
  1717. { 0x01E00 , 0x00041 , 0x00325 },
  1718. { 0x01E01 , 0x00061 , 0x00325 },
  1719. { 0x01E02 , 0x00042 , 0x00307 },
  1720. { 0x01E03 , 0x00062 , 0x00307 },
  1721. { 0x01E04 , 0x00042 , 0x00323 },
  1722. { 0x01E05 , 0x00062 , 0x00323 },
  1723. { 0x01E06 , 0x00042 , 0x00331 },
  1724. { 0x01E07 , 0x00062 , 0x00331 },
  1725. { 0x01E08 , 0x000C7 , 0x00301 },
  1726. { 0x01E09 , 0x000E7 , 0x00301 },
  1727. { 0x01E0A , 0x00044 , 0x00307 },
  1728. { 0x01E0B , 0x00064 , 0x00307 },
  1729. { 0x01E0C , 0x00044 , 0x00323 },
  1730. { 0x01E0D , 0x00064 , 0x00323 },
  1731. { 0x01E0E , 0x00044 , 0x00331 },
  1732. { 0x01E0F , 0x00064 , 0x00331 },
  1733. { 0x01E10 , 0x00044 , 0x00327 },
  1734. { 0x01E11 , 0x00064 , 0x00327 },
  1735. { 0x01E12 , 0x00044 , 0x0032D },
  1736. { 0x01E13 , 0x00064 , 0x0032D },
  1737. { 0x01E14 , 0x00112 , 0x00300 },
  1738. { 0x01E15 , 0x00113 , 0x00300 },
  1739. { 0x01E16 , 0x00112 , 0x00301 },
  1740. { 0x01E17 , 0x00113 , 0x00301 },
  1741. { 0x01E18 , 0x00045 , 0x0032D },
  1742. { 0x01E19 , 0x00065 , 0x0032D },
  1743. { 0x01E1A , 0x00045 , 0x00330 },
  1744. { 0x01E1B , 0x00065 , 0x00330 },
  1745. { 0x01E1C , 0x00228 , 0x00306 },
  1746. { 0x01E1D , 0x00229 , 0x00306 },
  1747. { 0x01E1E , 0x00046 , 0x00307 },
  1748. { 0x01E1F , 0x00066 , 0x00307 },
  1749. { 0x01E20 , 0x00047 , 0x00304 },
  1750. { 0x01E21 , 0x00067 , 0x00304 },
  1751. { 0x01E22 , 0x00048 , 0x00307 },
  1752. { 0x01E23 , 0x00068 , 0x00307 },
  1753. { 0x01E24 , 0x00048 , 0x00323 },
  1754. { 0x01E25 , 0x00068 , 0x00323 },
  1755. { 0x01E26 , 0x00048 , 0x00308 },
  1756. { 0x01E27 , 0x00068 , 0x00308 },
  1757. { 0x01E28 , 0x00048 , 0x00327 },
  1758. { 0x01E29 , 0x00068 , 0x00327 },
  1759. { 0x01E2A , 0x00048 , 0x0032E },
  1760. { 0x01E2B , 0x00068 , 0x0032E },
  1761. { 0x01E2C , 0x00049 , 0x00330 },
  1762. { 0x01E2D , 0x00069 , 0x00330 },
  1763. { 0x01E2E , 0x000CF , 0x00301 },
  1764. { 0x01E2F , 0x000EF , 0x00301 },
  1765. { 0x01E30 , 0x0004B , 0x00301 },
  1766. { 0x01E31 , 0x0006B , 0x00301 },
  1767. { 0x01E32 , 0x0004B , 0x00323 },
  1768. { 0x01E33 , 0x0006B , 0x00323 },
  1769. { 0x01E34 , 0x0004B , 0x00331 },
  1770. { 0x01E35 , 0x0006B , 0x00331 },
  1771. { 0x01E36 , 0x0004C , 0x00323 },
  1772. { 0x01E37 , 0x0006C , 0x00323 },
  1773. { 0x01E38 , 0x01E36 , 0x00304 },
  1774. { 0x01E39 , 0x01E37 , 0x00304 },
  1775. { 0x01E3A , 0x0004C , 0x00331 },
  1776. { 0x01E3B , 0x0006C , 0x00331 },
  1777. { 0x01E3C , 0x0004C , 0x0032D },
  1778. { 0x01E3D , 0x0006C , 0x0032D },
  1779. { 0x01E3E , 0x0004D , 0x00301 },
  1780. { 0x01E3F , 0x0006D , 0x00301 },
  1781. { 0x01E40 , 0x0004D , 0x00307 },
  1782. { 0x01E41 , 0x0006D , 0x00307 },
  1783. { 0x01E42 , 0x0004D , 0x00323 },
  1784. { 0x01E43 , 0x0006D , 0x00323 },
  1785. { 0x01E44 , 0x0004E , 0x00307 },
  1786. { 0x01E45 , 0x0006E , 0x00307 },
  1787. { 0x01E46 , 0x0004E , 0x00323 },
  1788. { 0x01E47 , 0x0006E , 0x00323 },
  1789. { 0x01E48 , 0x0004E , 0x00331 },
  1790. { 0x01E49 , 0x0006E , 0x00331 },
  1791. { 0x01E4A , 0x0004E , 0x0032D },
  1792. { 0x01E4B , 0x0006E , 0x0032D },
  1793. { 0x01E4C , 0x000D5 , 0x00301 },
  1794. { 0x01E4D , 0x000F5 , 0x00301 },
  1795. { 0x01E4E , 0x000D5 , 0x00308 },
  1796. { 0x01E4F , 0x000F5 , 0x00308 },
  1797. { 0x01E50 , 0x0014C , 0x00300 },
  1798. { 0x01E51 , 0x0014D , 0x00300 },
  1799. { 0x01E52 , 0x0014C , 0x00301 },
  1800. { 0x01E53 , 0x0014D , 0x00301 },
  1801. { 0x01E54 , 0x00050 , 0x00301 },
  1802. { 0x01E55 , 0x00070 , 0x00301 },
  1803. { 0x01E56 , 0x00050 , 0x00307 },
  1804. { 0x01E57 , 0x00070 , 0x00307 },
  1805. { 0x01E58 , 0x00052 , 0x00307 },
  1806. { 0x01E59 , 0x00072 , 0x00307 },
  1807. { 0x01E5A , 0x00052 , 0x00323 },
  1808. { 0x01E5B , 0x00072 , 0x00323 },
  1809. { 0x01E5C , 0x01E5A , 0x00304 },
  1810. { 0x01E5D , 0x01E5B , 0x00304 },
  1811. { 0x01E5E , 0x00052 , 0x00331 },
  1812. { 0x01E5F , 0x00072 , 0x00331 },
  1813. { 0x01E60 , 0x00053 , 0x00307 },
  1814. { 0x01E61 , 0x00073 , 0x00307 },
  1815. { 0x01E62 , 0x00053 , 0x00323 },
  1816. { 0x01E63 , 0x00073 , 0x00323 },
  1817. { 0x01E64 , 0x0015A , 0x00307 },
  1818. { 0x01E65 , 0x0015B , 0x00307 },
  1819. { 0x01E66 , 0x00160 , 0x00307 },
  1820. { 0x01E67 , 0x00161 , 0x00307 },
  1821. { 0x01E68 , 0x01E62 , 0x00307 },
  1822. { 0x01E69 , 0x01E63 , 0x00307 },
  1823. { 0x01E6A , 0x00054 , 0x00307 },
  1824. { 0x01E6B , 0x00074 , 0x00307 },
  1825. { 0x01E6C , 0x00054 , 0x00323 },
  1826. { 0x01E6D , 0x00074 , 0x00323 },
  1827. { 0x01E6E , 0x00054 , 0x00331 },
  1828. { 0x01E6F , 0x00074 , 0x00331 },
  1829. { 0x01E70 , 0x00054 , 0x0032D },
  1830. { 0x01E71 , 0x00074 , 0x0032D },
  1831. { 0x01E72 , 0x00055 , 0x00324 },
  1832. { 0x01E73 , 0x00075 , 0x00324 },
  1833. { 0x01E74 , 0x00055 , 0x00330 },
  1834. { 0x01E75 , 0x00075 , 0x00330 },
  1835. { 0x01E76 , 0x00055 , 0x0032D },
  1836. { 0x01E77 , 0x00075 , 0x0032D },
  1837. { 0x01E78 , 0x00168 , 0x00301 },
  1838. { 0x01E79 , 0x00169 , 0x00301 },
  1839. { 0x01E7A , 0x0016A , 0x00308 },
  1840. { 0x01E7B , 0x0016B , 0x00308 },
  1841. { 0x01E7C , 0x00056 , 0x00303 },
  1842. { 0x01E7D , 0x00076 , 0x00303 },
  1843. { 0x01E7E , 0x00056 , 0x00323 },
  1844. { 0x01E7F , 0x00076 , 0x00323 },
  1845. { 0x01E80 , 0x00057 , 0x00300 },
  1846. { 0x01E81 , 0x00077 , 0x00300 },
  1847. { 0x01E82 , 0x00057 , 0x00301 },
  1848. { 0x01E83 , 0x00077 , 0x00301 },
  1849. { 0x01E84 , 0x00057 , 0x00308 },
  1850. { 0x01E85 , 0x00077 , 0x00308 },
  1851. { 0x01E86 , 0x00057 , 0x00307 },
  1852. { 0x01E87 , 0x00077 , 0x00307 },
  1853. { 0x01E88 , 0x00057 , 0x00323 },
  1854. { 0x01E89 , 0x00077 , 0x00323 },
  1855. { 0x01E8A , 0x00058 , 0x00307 },
  1856. { 0x01E8B , 0x00078 , 0x00307 },
  1857. { 0x01E8C , 0x00058 , 0x00308 },
  1858. { 0x01E8D , 0x00078 , 0x00308 },
  1859. { 0x01E8E , 0x00059 , 0x00307 },
  1860. { 0x01E8F , 0x00079 , 0x00307 },
  1861. { 0x01E90 , 0x0005A , 0x00302 },
  1862. { 0x01E91 , 0x0007A , 0x00302 },
  1863. { 0x01E92 , 0x0005A , 0x00323 },
  1864. { 0x01E93 , 0x0007A , 0x00323 },
  1865. { 0x01E94 , 0x0005A , 0x00331 },
  1866. { 0x01E95 , 0x0007A , 0x00331 },
  1867. { 0x01E96 , 0x00068 , 0x00331 },
  1868. { 0x01E97 , 0x00074 , 0x00308 },
  1869. { 0x01E98 , 0x00077 , 0x0030A },
  1870. { 0x01E99 , 0x00079 , 0x0030A },
  1871. { 0x01E9B , 0x0017F , 0x00307 },
  1872. { 0x01EA0 , 0x00041 , 0x00323 },
  1873. { 0x01EA1 , 0x00061 , 0x00323 },
  1874. { 0x01EA2 , 0x00041 , 0x00309 },
  1875. { 0x01EA3 , 0x00061 , 0x00309 },
  1876. { 0x01EA4 , 0x000C2 , 0x00301 },
  1877. { 0x01EA5 , 0x000E2 , 0x00301 },
  1878. { 0x01EA6 , 0x000C2 , 0x00300 },
  1879. { 0x01EA7 , 0x000E2 , 0x00300 },
  1880. { 0x01EA8 , 0x000C2 , 0x00309 },
  1881. { 0x01EA9 , 0x000E2 , 0x00309 },
  1882. { 0x01EAA , 0x000C2 , 0x00303 },
  1883. { 0x01EAB , 0x000E2 , 0x00303 },
  1884. { 0x01EAC , 0x01EA0 , 0x00302 },
  1885. { 0x01EAD , 0x01EA1 , 0x00302 },
  1886. { 0x01EAE , 0x00102 , 0x00301 },
  1887. { 0x01EAF , 0x00103 , 0x00301 },
  1888. { 0x01EB0 , 0x00102 , 0x00300 },
  1889. { 0x01EB1 , 0x00103 , 0x00300 },
  1890. { 0x01EB2 , 0x00102 , 0x00309 },
  1891. { 0x01EB3 , 0x00103 , 0x00309 },
  1892. { 0x01EB4 , 0x00102 , 0x00303 },
  1893. { 0x01EB5 , 0x00103 , 0x00303 },
  1894. { 0x01EB6 , 0x01EA0 , 0x00306 },
  1895. { 0x01EB7 , 0x01EA1 , 0x00306 },
  1896. { 0x01EB8 , 0x00045 , 0x00323 },
  1897. { 0x01EB9 , 0x00065 , 0x00323 },
  1898. { 0x01EBA , 0x00045 , 0x00309 },
  1899. { 0x01EBB , 0x00065 , 0x00309 },
  1900. { 0x01EBC , 0x00045 , 0x00303 },
  1901. { 0x01EBD , 0x00065 , 0x00303 },
  1902. { 0x01EBE , 0x000CA , 0x00301 },
  1903. { 0x01EBF , 0x000EA , 0x00301 },
  1904. { 0x01EC0 , 0x000CA , 0x00300 },
  1905. { 0x01EC1 , 0x000EA , 0x00300 },
  1906. { 0x01EC2 , 0x000CA , 0x00309 },
  1907. { 0x01EC3 , 0x000EA , 0x00309 },
  1908. { 0x01EC4 , 0x000CA , 0x00303 },
  1909. { 0x01EC5 , 0x000EA , 0x00303 },
  1910. { 0x01EC6 , 0x01EB8 , 0x00302 },
  1911. { 0x01EC7 , 0x01EB9 , 0x00302 },
  1912. { 0x01EC8 , 0x00049 , 0x00309 },
  1913. { 0x01EC9 , 0x00069 , 0x00309 },
  1914. { 0x01ECA , 0x00049 , 0x00323 },
  1915. { 0x01ECB , 0x00069 , 0x00323 },
  1916. { 0x01ECC , 0x0004F , 0x00323 },
  1917. { 0x01ECD , 0x0006F , 0x00323 },
  1918. { 0x01ECE , 0x0004F , 0x00309 },
  1919. { 0x01ECF , 0x0006F , 0x00309 },
  1920. { 0x01ED0 , 0x000D4 , 0x00301 },
  1921. { 0x01ED1 , 0x000F4 , 0x00301 },
  1922. { 0x01ED2 , 0x000D4 , 0x00300 },
  1923. { 0x01ED3 , 0x000F4 , 0x00300 },
  1924. { 0x01ED4 , 0x000D4 , 0x00309 },
  1925. { 0x01ED5 , 0x000F4 , 0x00309 },
  1926. { 0x01ED6 , 0x000D4 , 0x00303 },
  1927. { 0x01ED7 , 0x000F4 , 0x00303 },
  1928. { 0x01ED8 , 0x01ECC , 0x00302 },
  1929. { 0x01ED9 , 0x01ECD , 0x00302 },
  1930. { 0x01EDA , 0x001A0 , 0x00301 },
  1931. { 0x01EDB , 0x001A1 , 0x00301 },
  1932. { 0x01EDC , 0x001A0 , 0x00300 },
  1933. { 0x01EDD , 0x001A1 , 0x00300 },
  1934. { 0x01EDE , 0x001A0 , 0x00309 },
  1935. { 0x01EDF , 0x001A1 , 0x00309 },
  1936. { 0x01EE0 , 0x001A0 , 0x00303 },
  1937. { 0x01EE1 , 0x001A1 , 0x00303 },
  1938. { 0x01EE2 , 0x001A0 , 0x00323 },
  1939. { 0x01EE3 , 0x001A1 , 0x00323 },
  1940. { 0x01EE4 , 0x00055 , 0x00323 },
  1941. { 0x01EE5 , 0x00075 , 0x00323 },
  1942. { 0x01EE6 , 0x00055 , 0x00309 },
  1943. { 0x01EE7 , 0x00075 , 0x00309 },
  1944. { 0x01EE8 , 0x001AF , 0x00301 },
  1945. { 0x01EE9 , 0x001B0 , 0x00301 },
  1946. { 0x01EEA , 0x001AF , 0x00300 },
  1947. { 0x01EEB , 0x001B0 , 0x00300 },
  1948. { 0x01EEC , 0x001AF , 0x00309 },
  1949. { 0x01EED , 0x001B0 , 0x00309 },
  1950. { 0x01EEE , 0x001AF , 0x00303 },
  1951. { 0x01EEF , 0x001B0 , 0x00303 },
  1952. { 0x01EF0 , 0x001AF , 0x00323 },
  1953. { 0x01EF1 , 0x001B0 , 0x00323 },
  1954. { 0x01EF2 , 0x00059 , 0x00300 },
  1955. { 0x01EF3 , 0x00079 , 0x00300 },
  1956. { 0x01EF4 , 0x00059 , 0x00323 },
  1957. { 0x01EF5 , 0x00079 , 0x00323 },
  1958. { 0x01EF6 , 0x00059 , 0x00309 },
  1959. { 0x01EF7 , 0x00079 , 0x00309 },
  1960. { 0x01EF8 , 0x00059 , 0x00303 },
  1961. { 0x01EF9 , 0x00079 , 0x00303 },
  1962. { 0x01F00 , 0x003B1 , 0x00313 },
  1963. { 0x01F01 , 0x003B1 , 0x00314 },
  1964. { 0x01F02 , 0x01F00 , 0x00300 },
  1965. { 0x01F03 , 0x01F01 , 0x00300 },
  1966. { 0x01F04 , 0x01F00 , 0x00301 },
  1967. { 0x01F05 , 0x01F01 , 0x00301 },
  1968. { 0x01F06 , 0x01F00 , 0x00342 },
  1969. { 0x01F07 , 0x01F01 , 0x00342 },
  1970. { 0x01F08 , 0x00391 , 0x00313 },
  1971. { 0x01F09 , 0x00391 , 0x00314 },
  1972. { 0x01F0A , 0x01F08 , 0x00300 },
  1973. { 0x01F0B , 0x01F09 , 0x00300 },
  1974. { 0x01F0C , 0x01F08 , 0x00301 },
  1975. { 0x01F0D , 0x01F09 , 0x00301 },
  1976. { 0x01F0E , 0x01F08 , 0x00342 },
  1977. { 0x01F0F , 0x01F09 , 0x00342 },
  1978. { 0x01F10 , 0x003B5 , 0x00313 },
  1979. { 0x01F11 , 0x003B5 , 0x00314 },
  1980. { 0x01F12 , 0x01F10 , 0x00300 },
  1981. { 0x01F13 , 0x01F11 , 0x00300 },
  1982. { 0x01F14 , 0x01F10 , 0x00301 },
  1983. { 0x01F15 , 0x01F11 , 0x00301 },
  1984. { 0x01F18 , 0x00395 , 0x00313 },
  1985. { 0x01F19 , 0x00395 , 0x00314 },
  1986. { 0x01F1A , 0x01F18 , 0x00300 },
  1987. { 0x01F1B , 0x01F19 , 0x00300 },
  1988. { 0x01F1C , 0x01F18 , 0x00301 },
  1989. { 0x01F1D , 0x01F19 , 0x00301 },
  1990. { 0x01F20 , 0x003B7 , 0x00313 },
  1991. { 0x01F21 , 0x003B7 , 0x00314 },
  1992. { 0x01F22 , 0x01F20 , 0x00300 },
  1993. { 0x01F23 , 0x01F21 , 0x00300 },
  1994. { 0x01F24 , 0x01F20 , 0x00301 },
  1995. { 0x01F25 , 0x01F21 , 0x00301 },
  1996. { 0x01F26 , 0x01F20 , 0x00342 },
  1997. { 0x01F27 , 0x01F21 , 0x00342 },
  1998. { 0x01F28 , 0x00397 , 0x00313 },
  1999. { 0x01F29 , 0x00397 , 0x00314 },
  2000. { 0x01F2A , 0x01F28 , 0x00300 },
  2001. { 0x01F2B , 0x01F29 , 0x00300 },
  2002. { 0x01F2C , 0x01F28 , 0x00301 },
  2003. { 0x01F2D , 0x01F29 , 0x00301 },
  2004. { 0x01F2E , 0x01F28 , 0x00342 },
  2005. { 0x01F2F , 0x01F29 , 0x00342 },
  2006. { 0x01F30 , 0x003B9 , 0x00313 },
  2007. { 0x01F31 , 0x003B9 , 0x00314 },
  2008. { 0x01F32 , 0x01F30 , 0x00300 },
  2009. { 0x01F33 , 0x01F31 , 0x00300 },
  2010. { 0x01F34 , 0x01F30 , 0x00301 },
  2011. { 0x01F35 , 0x01F31 , 0x00301 },
  2012. { 0x01F36 , 0x01F30 , 0x00342 },
  2013. { 0x01F37 , 0x01F31 , 0x00342 },
  2014. { 0x01F38 , 0x00399 , 0x00313 },
  2015. { 0x01F39 , 0x00399 , 0x00314 },
  2016. { 0x01F3A , 0x01F38 , 0x00300 },
  2017. { 0x01F3B , 0x01F39 , 0x00300 },
  2018. { 0x01F3C , 0x01F38 , 0x00301 },
  2019. { 0x01F3D , 0x01F39 , 0x00301 },
  2020. { 0x01F3E , 0x01F38 , 0x00342 },
  2021. { 0x01F3F , 0x01F39 , 0x00342 },
  2022. { 0x01F40 , 0x003BF , 0x00313 },
  2023. { 0x01F41 , 0x003BF , 0x00314 },
  2024. { 0x01F42 , 0x01F40 , 0x00300 },
  2025. { 0x01F43 , 0x01F41 , 0x00300 },
  2026. { 0x01F44 , 0x01F40 , 0x00301 },
  2027. { 0x01F45 , 0x01F41 , 0x00301 },
  2028. { 0x01F48 , 0x0039F , 0x00313 },
  2029. { 0x01F49 , 0x0039F , 0x00314 },
  2030. { 0x01F4A , 0x01F48 , 0x00300 },
  2031. { 0x01F4B , 0x01F49 , 0x00300 },
  2032. { 0x01F4C , 0x01F48 , 0x00301 },
  2033. { 0x01F4D , 0x01F49 , 0x00301 },
  2034. { 0x01F50 , 0x003C5 , 0x00313 },
  2035. { 0x01F51 , 0x003C5 , 0x00314 },
  2036. { 0x01F52 , 0x01F50 , 0x00300 },
  2037. { 0x01F53 , 0x01F51 , 0x00300 },
  2038. { 0x01F54 , 0x01F50 , 0x00301 },
  2039. { 0x01F55 , 0x01F51 , 0x00301 },
  2040. { 0x01F56 , 0x01F50 , 0x00342 },
  2041. { 0x01F57 , 0x01F51 , 0x00342 },
  2042. { 0x01F59 , 0x003A5 , 0x00314 },
  2043. { 0x01F5B , 0x01F59 , 0x00300 },
  2044. { 0x01F5D , 0x01F59 , 0x00301 },
  2045. { 0x01F5F , 0x01F59 , 0x00342 },
  2046. { 0x01F60 , 0x003C9 , 0x00313 },
  2047. { 0x01F61 , 0x003C9 , 0x00314 },
  2048. { 0x01F62 , 0x01F60 , 0x00300 },
  2049. { 0x01F63 , 0x01F61 , 0x00300 },
  2050. { 0x01F64 , 0x01F60 , 0x00301 },
  2051. { 0x01F65 , 0x01F61 , 0x00301 },
  2052. { 0x01F66 , 0x01F60 , 0x00342 },
  2053. { 0x01F67 , 0x01F61 , 0x00342 },
  2054. { 0x01F68 , 0x003A9 , 0x00313 },
  2055. { 0x01F69 , 0x003A9 , 0x00314 },
  2056. { 0x01F6A , 0x01F68 , 0x00300 },
  2057. { 0x01F6B , 0x01F69 , 0x00300 },
  2058. { 0x01F6C , 0x01F68 , 0x00301 },
  2059. { 0x01F6D , 0x01F69 , 0x00301 },
  2060. { 0x01F6E , 0x01F68 , 0x00342 },
  2061. { 0x01F6F , 0x01F69 , 0x00342 },
  2062. { 0x01F70 , 0x003B1 , 0x00300 },
  2063. { 0x01F72 , 0x003B5 , 0x00300 },
  2064. { 0x01F74 , 0x003B7 , 0x00300 },
  2065. { 0x01F76 , 0x003B9 , 0x00300 },
  2066. { 0x01F78 , 0x003BF , 0x00300 },
  2067. { 0x01F7A , 0x003C5 , 0x00300 },
  2068. { 0x01F7C , 0x003C9 , 0x00300 },
  2069. { 0x01F80 , 0x01F00 , 0x00345 },
  2070. { 0x01F81 , 0x01F01 , 0x00345 },
  2071. { 0x01F82 , 0x01F02 , 0x00345 },
  2072. { 0x01F83 , 0x01F03 , 0x00345 },
  2073. { 0x01F84 , 0x01F04 , 0x00345 },
  2074. { 0x01F85 , 0x01F05 , 0x00345 },
  2075. { 0x01F86 , 0x01F06 , 0x00345 },
  2076. { 0x01F87 , 0x01F07 , 0x00345 },
  2077. { 0x01F88 , 0x01F08 , 0x00345 },
  2078. { 0x01F89 , 0x01F09 , 0x00345 },
  2079. { 0x01F8A , 0x01F0A , 0x00345 },
  2080. { 0x01F8B , 0x01F0B , 0x00345 },
  2081. { 0x01F8C , 0x01F0C , 0x00345 },
  2082. { 0x01F8D , 0x01F0D , 0x00345 },
  2083. { 0x01F8E , 0x01F0E , 0x00345 },
  2084. { 0x01F8F , 0x01F0F , 0x00345 },
  2085. { 0x01F90 , 0x01F20 , 0x00345 },
  2086. { 0x01F91 , 0x01F21 , 0x00345 },
  2087. { 0x01F92 , 0x01F22 , 0x00345 },
  2088. { 0x01F93 , 0x01F23 , 0x00345 },
  2089. { 0x01F94 , 0x01F24 , 0x00345 },
  2090. { 0x01F95 , 0x01F25 , 0x00345 },
  2091. { 0x01F96 , 0x01F26 , 0x00345 },
  2092. { 0x01F97 , 0x01F27 , 0x00345 },
  2093. { 0x01F98 , 0x01F28 , 0x00345 },
  2094. { 0x01F99 , 0x01F29 , 0x00345 },
  2095. { 0x01F9A , 0x01F2A , 0x00345 },
  2096. { 0x01F9B , 0x01F2B , 0x00345 },
  2097. { 0x01F9C , 0x01F2C , 0x00345 },
  2098. { 0x01F9D , 0x01F2D , 0x00345 },
  2099. { 0x01F9E , 0x01F2E , 0x00345 },
  2100. { 0x01F9F , 0x01F2F , 0x00345 },
  2101. { 0x01FA0 , 0x01F60 , 0x00345 },
  2102. { 0x01FA1 , 0x01F61 , 0x00345 },
  2103. { 0x01FA2 , 0x01F62 , 0x00345 },
  2104. { 0x01FA3 , 0x01F63 , 0x00345 },
  2105. { 0x01FA4 , 0x01F64 , 0x00345 },
  2106. { 0x01FA5 , 0x01F65 , 0x00345 },
  2107. { 0x01FA6 , 0x01F66 , 0x00345 },
  2108. { 0x01FA7 , 0x01F67 , 0x00345 },
  2109. { 0x01FA8 , 0x01F68 , 0x00345 },
  2110. { 0x01FA9 , 0x01F69 , 0x00345 },
  2111. { 0x01FAA , 0x01F6A , 0x00345 },
  2112. { 0x01FAB , 0x01F6B , 0x00345 },
  2113. { 0x01FAC , 0x01F6C , 0x00345 },
  2114. { 0x01FAD , 0x01F6D , 0x00345 },
  2115. { 0x01FAE , 0x01F6E , 0x00345 },
  2116. { 0x01FAF , 0x01F6F , 0x00345 },
  2117. { 0x01FB0 , 0x003B1 , 0x00306 },
  2118. { 0x01FB1 , 0x003B1 , 0x00304 },
  2119. { 0x01FB2 , 0x01F70 , 0x00345 },
  2120. { 0x01FB3 , 0x003B1 , 0x00345 },
  2121. { 0x01FB4 , 0x003AC , 0x00345 },
  2122. { 0x01FB6 , 0x003B1 , 0x00342 },
  2123. { 0x01FB7 , 0x01FB6 , 0x00345 },
  2124. { 0x01FB8 , 0x00391 , 0x00306 },
  2125. { 0x01FB9 , 0x00391 , 0x00304 },
  2126. { 0x01FBA , 0x00391 , 0x00300 },
  2127. { 0x01FBC , 0x00391 , 0x00345 },
  2128. { 0x01FC1 , 0x000A8 , 0x00342 },
  2129. { 0x01FC2 , 0x01F74 , 0x00345 },
  2130. { 0x01FC3 , 0x003B7 , 0x00345 },
  2131. { 0x01FC4 , 0x003AE , 0x00345 },
  2132. { 0x01FC6 , 0x003B7 , 0x00342 },
  2133. { 0x01FC7 , 0x01FC6 , 0x00345 },
  2134. { 0x01FC8 , 0x00395 , 0x00300 },
  2135. { 0x01FCA , 0x00397 , 0x00300 },
  2136. { 0x01FCC , 0x00397 , 0x00345 },
  2137. { 0x01FCD , 0x01FBF , 0x00300 },
  2138. { 0x01FCE , 0x01FBF , 0x00301 },
  2139. { 0x01FCF , 0x01FBF , 0x00342 },
  2140. { 0x01FD0 , 0x003B9 , 0x00306 },
  2141. { 0x01FD1 , 0x003B9 , 0x00304 },
  2142. { 0x01FD2 , 0x003CA , 0x00300 },
  2143. { 0x01FD6 , 0x003B9 , 0x00342 },
  2144. { 0x01FD7 , 0x003CA , 0x00342 },
  2145. { 0x01FD8 , 0x00399 , 0x00306 },
  2146. { 0x01FD9 , 0x00399 , 0x00304 },
  2147. { 0x01FDA , 0x00399 , 0x00300 },
  2148. { 0x01FDD , 0x01FFE , 0x00300 },
  2149. { 0x01FDE , 0x01FFE , 0x00301 },
  2150. { 0x01FDF , 0x01FFE , 0x00342 },
  2151. { 0x01FE0 , 0x003C5 , 0x00306 },
  2152. { 0x01FE1 , 0x003C5 , 0x00304 },
  2153. { 0x01FE2 , 0x003CB , 0x00300 },
  2154. { 0x01FE4 , 0x003C1 , 0x00313 },
  2155. { 0x01FE5 , 0x003C1 , 0x00314 },
  2156. { 0x01FE6 , 0x003C5 , 0x00342 },
  2157. { 0x01FE7 , 0x003CB , 0x00342 },
  2158. { 0x01FE8 , 0x003A5 , 0x00306 },
  2159. { 0x01FE9 , 0x003A5 , 0x00304 },
  2160. { 0x01FEA , 0x003A5 , 0x00300 },
  2161. { 0x01FEC , 0x003A1 , 0x00314 },
  2162. { 0x01FED , 0x000A8 , 0x00300 },
  2163. { 0x01FF2 , 0x01F7C , 0x00345 },
  2164. { 0x01FF3 , 0x003C9 , 0x00345 },
  2165. { 0x01FF4 , 0x003CE , 0x00345 },
  2166. { 0x01FF6 , 0x003C9 , 0x00342 },
  2167. { 0x01FF7 , 0x01FF6 , 0x00345 },
  2168. { 0x01FF8 , 0x0039F , 0x00300 },
  2169. { 0x01FFA , 0x003A9 , 0x00300 },
  2170. { 0x01FFC , 0x003A9 , 0x00345 },
  2171. { 0x0219A , 0x02190 , 0x00338 },
  2172. { 0x0219B , 0x02192 , 0x00338 },
  2173. { 0x021AE , 0x02194 , 0x00338 },
  2174. { 0x021CD , 0x021D0 , 0x00338 },
  2175. { 0x021CE , 0x021D4 , 0x00338 },
  2176. { 0x021CF , 0x021D2 , 0x00338 },
  2177. { 0x02204 , 0x02203 , 0x00338 },
  2178. { 0x02209 , 0x02208 , 0x00338 },
  2179. { 0x0220C , 0x0220B , 0x00338 },
  2180. { 0x02224 , 0x02223 , 0x00338 },
  2181. { 0x02226 , 0x02225 , 0x00338 },
  2182. { 0x02241 , 0x0223C , 0x00338 },
  2183. { 0x02244 , 0x02243 , 0x00338 },
  2184. { 0x02247 , 0x02245 , 0x00338 },
  2185. { 0x02249 , 0x02248 , 0x00338 },
  2186. { 0x02260 , 0x0003D , 0x00338 },
  2187. { 0x02262 , 0x02261 , 0x00338 },
  2188. { 0x0226D , 0x0224D , 0x00338 },
  2189. { 0x0226E , 0x0003C , 0x00338 },
  2190. { 0x0226F , 0x0003E , 0x00338 },
  2191. { 0x02270 , 0x02264 , 0x00338 },
  2192. { 0x02271 , 0x02265 , 0x00338 },
  2193. { 0x02274 , 0x02272 , 0x00338 },
  2194. { 0x02275 , 0x02273 , 0x00338 },
  2195. { 0x02278 , 0x02276 , 0x00338 },
  2196. { 0x02279 , 0x02277 , 0x00338 },
  2197. { 0x02280 , 0x0227A , 0x00338 },
  2198. { 0x02281 , 0x0227B , 0x00338 },
  2199. { 0x02284 , 0x02282 , 0x00338 },
  2200. { 0x02285 , 0x02283 , 0x00338 },
  2201. { 0x02288 , 0x02286 , 0x00338 },
  2202. { 0x02289 , 0x02287 , 0x00338 },
  2203. { 0x022AC , 0x022A2 , 0x00338 },
  2204. { 0x022AD , 0x022A8 , 0x00338 },
  2205. { 0x022AE , 0x022A9 , 0x00338 },
  2206. { 0x022AF , 0x022AB , 0x00338 },
  2207. { 0x022E0 , 0x0227C , 0x00338 },
  2208. { 0x022E1 , 0x0227D , 0x00338 },
  2209. { 0x022E2 , 0x02291 , 0x00338 },
  2210. { 0x022E3 , 0x02292 , 0x00338 },
  2211. { 0x022EA , 0x022B2 , 0x00338 },
  2212. { 0x022EB , 0x022B3 , 0x00338 },
  2213. { 0x022EC , 0x022B4 , 0x00338 },
  2214. { 0x022ED , 0x022B5 , 0x00338 },
  2215. { 0x0304C , 0x0304B , 0x03099 },
  2216. { 0x0304E , 0x0304D , 0x03099 },
  2217. { 0x03050 , 0x0304F , 0x03099 },
  2218. { 0x03052 , 0x03051 , 0x03099 },
  2219. { 0x03054 , 0x03053 , 0x03099 },
  2220. { 0x03056 , 0x03055 , 0x03099 },
  2221. { 0x03058 , 0x03057 , 0x03099 },
  2222. { 0x0305A , 0x03059 , 0x03099 },
  2223. { 0x0305C , 0x0305B , 0x03099 },
  2224. { 0x0305E , 0x0305D , 0x03099 },
  2225. { 0x03060 , 0x0305F , 0x03099 },
  2226. { 0x03062 , 0x03061 , 0x03099 },
  2227. { 0x03065 , 0x03064 , 0x03099 },
  2228. { 0x03067 , 0x03066 , 0x03099 },
  2229. { 0x03069 , 0x03068 , 0x03099 },
  2230. { 0x03070 , 0x0306F , 0x03099 },
  2231. { 0x03071 , 0x0306F , 0x0309A },
  2232. { 0x03073 , 0x03072 , 0x03099 },
  2233. { 0x03074 , 0x03072 , 0x0309A },
  2234. { 0x03076 , 0x03075 , 0x03099 },
  2235. { 0x03077 , 0x03075 , 0x0309A },
  2236. { 0x03079 , 0x03078 , 0x03099 },
  2237. { 0x0307A , 0x03078 , 0x0309A },
  2238. { 0x0307C , 0x0307B , 0x03099 },
  2239. { 0x0307D , 0x0307B , 0x0309A },
  2240. { 0x03094 , 0x03046 , 0x03099 },
  2241. { 0x0309E , 0x0309D , 0x03099 },
  2242. { 0x030AC , 0x030AB , 0x03099 },
  2243. { 0x030AE , 0x030AD , 0x03099 },
  2244. { 0x030B0 , 0x030AF , 0x03099 },
  2245. { 0x030B2 , 0x030B1 , 0x03099 },
  2246. { 0x030B4 , 0x030B3 , 0x03099 },
  2247. { 0x030B6 , 0x030B5 , 0x03099 },
  2248. { 0x030B8 , 0x030B7 , 0x03099 },
  2249. { 0x030BA , 0x030B9 , 0x03099 },
  2250. { 0x030BC , 0x030BB , 0x03099 },
  2251. { 0x030BE , 0x030BD , 0x03099 },
  2252. { 0x030C0 , 0x030BF , 0x03099 },
  2253. { 0x030C2 , 0x030C1 , 0x03099 },
  2254. { 0x030C5 , 0x030C4 , 0x03099 },
  2255. { 0x030C7 , 0x030C6 , 0x03099 },
  2256. { 0x030C9 , 0x030C8 , 0x03099 },
  2257. { 0x030D0 , 0x030CF , 0x03099 },
  2258. { 0x030D1 , 0x030CF , 0x0309A },
  2259. { 0x030D3 , 0x030D2 , 0x03099 },
  2260. { 0x030D4 , 0x030D2 , 0x0309A },
  2261. { 0x030D6 , 0x030D5 , 0x03099 },
  2262. { 0x030D7 , 0x030D5 , 0x0309A },
  2263. { 0x030D9 , 0x030D8 , 0x03099 },
  2264. { 0x030DA , 0x030D8 , 0x0309A },
  2265. { 0x030DC , 0x030DB , 0x03099 },
  2266. { 0x030DD , 0x030DB , 0x0309A },
  2267. { 0x030F4 , 0x030A6 , 0x03099 },
  2268. { 0x030F7 , 0x030EF , 0x03099 },
  2269. { 0x030F8 , 0x030F0 , 0x03099 },
  2270. { 0x030F9 , 0x030F1 , 0x03099 },
  2271. { 0x030FA , 0x030F2 , 0x03099 },
  2272. { 0x030FE , 0x030FD , 0x03099 },
  2273. { 0x1109A , 0x11099 , 0x110BA },
  2274. { 0x1109C , 0x1109B , 0x110BA },
  2275. { 0x110AB , 0x110A5 , 0x110BA },
  2276. };
  2277. #endif /* ARCHIVE_STRING_COMPOSITION_H_INCLUDED */