grapheme-splitter.js 114 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750
  1. /* This file is automatically rebuilt by the Cesium build process. */
  2. import { c as createCommonjsModule } from './_commonjsHelpers-3aae1032.js';
  3. var graphemeSplitter = createCommonjsModule(function (module) {
  4. /*
  5. Breaks a Javascript string into individual user-perceived "characters"
  6. called extended grapheme clusters by implementing the Unicode UAX-29 standard, version 10.0.0
  7. Usage:
  8. var splitter = new GraphemeSplitter();
  9. //returns an array of strings, one string for each grapheme cluster
  10. var graphemes = splitter.splitGraphemes(string);
  11. */
  12. function GraphemeSplitter(){
  13. var CR = 0,
  14. LF = 1,
  15. Control = 2,
  16. Extend = 3,
  17. Regional_Indicator = 4,
  18. SpacingMark = 5,
  19. L = 6,
  20. V = 7,
  21. T = 8,
  22. LV = 9,
  23. LVT = 10,
  24. Other = 11,
  25. Prepend = 12,
  26. E_Base = 13,
  27. E_Modifier = 14,
  28. ZWJ = 15,
  29. Glue_After_Zwj = 16,
  30. E_Base_GAZ = 17;
  31. // BreakTypes
  32. var NotBreak = 0,
  33. BreakStart = 1,
  34. Break = 2,
  35. BreakLastRegional = 3,
  36. BreakPenultimateRegional = 4;
  37. function isSurrogate(str, pos) {
  38. return 0xd800 <= str.charCodeAt(pos) && str.charCodeAt(pos) <= 0xdbff &&
  39. 0xdc00 <= str.charCodeAt(pos + 1) && str.charCodeAt(pos + 1) <= 0xdfff;
  40. }
  41. // Private function, gets a Unicode code point from a JavaScript UTF-16 string
  42. // handling surrogate pairs appropriately
  43. function codePointAt(str, idx){
  44. if(idx === undefined){
  45. idx = 0;
  46. }
  47. var code = str.charCodeAt(idx);
  48. // if a high surrogate
  49. if (0xD800 <= code && code <= 0xDBFF &&
  50. idx < str.length - 1){
  51. var hi = code;
  52. var low = str.charCodeAt(idx + 1);
  53. if (0xDC00 <= low && low <= 0xDFFF){
  54. return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;
  55. }
  56. return hi;
  57. }
  58. // if a low surrogate
  59. if (0xDC00 <= code && code <= 0xDFFF &&
  60. idx >= 1){
  61. var hi = str.charCodeAt(idx - 1);
  62. var low = code;
  63. if (0xD800 <= hi && hi <= 0xDBFF){
  64. return ((hi - 0xD800) * 0x400) + (low - 0xDC00) + 0x10000;
  65. }
  66. return low;
  67. }
  68. //just return the char if an unmatched surrogate half or a
  69. //single-char codepoint
  70. return code;
  71. }
  72. // Private function, returns whether a break is allowed between the
  73. // two given grapheme breaking classes
  74. function shouldBreak(start, mid, end){
  75. var all = [start].concat(mid).concat([end]);
  76. var previous = all[all.length - 2];
  77. var next = end;
  78. // Lookahead termintor for:
  79. // GB10. (E_Base | EBG) Extend* ? E_Modifier
  80. var eModifierIndex = all.lastIndexOf(E_Modifier);
  81. if(eModifierIndex > 1 &&
  82. all.slice(1, eModifierIndex).every(function(c){return c == Extend}) &&
  83. [Extend, E_Base, E_Base_GAZ].indexOf(start) == -1){
  84. return Break
  85. }
  86. // Lookahead termintor for:
  87. // GB12. ^ (RI RI)* RI ? RI
  88. // GB13. [^RI] (RI RI)* RI ? RI
  89. var rIIndex = all.lastIndexOf(Regional_Indicator);
  90. if(rIIndex > 0 &&
  91. all.slice(1, rIIndex).every(function(c){return c == Regional_Indicator}) &&
  92. [Prepend, Regional_Indicator].indexOf(previous) == -1) {
  93. if(all.filter(function(c){return c == Regional_Indicator}).length % 2 == 1) {
  94. return BreakLastRegional
  95. }
  96. else {
  97. return BreakPenultimateRegional
  98. }
  99. }
  100. // GB3. CR X LF
  101. if(previous == CR && next == LF){
  102. return NotBreak;
  103. }
  104. // GB4. (Control|CR|LF) ÷
  105. else if(previous == Control || previous == CR || previous == LF){
  106. if(next == E_Modifier && mid.every(function(c){return c == Extend})){
  107. return Break
  108. }
  109. else {
  110. return BreakStart
  111. }
  112. }
  113. // GB5. ÷ (Control|CR|LF)
  114. else if(next == Control || next == CR || next == LF){
  115. return BreakStart;
  116. }
  117. // GB6. L X (L|V|LV|LVT)
  118. else if(previous == L &&
  119. (next == L || next == V || next == LV || next == LVT)){
  120. return NotBreak;
  121. }
  122. // GB7. (LV|V) X (V|T)
  123. else if((previous == LV || previous == V) &&
  124. (next == V || next == T)){
  125. return NotBreak;
  126. }
  127. // GB8. (LVT|T) X (T)
  128. else if((previous == LVT || previous == T) &&
  129. next == T){
  130. return NotBreak;
  131. }
  132. // GB9. X (Extend|ZWJ)
  133. else if (next == Extend || next == ZWJ){
  134. return NotBreak;
  135. }
  136. // GB9a. X SpacingMark
  137. else if(next == SpacingMark){
  138. return NotBreak;
  139. }
  140. // GB9b. Prepend X
  141. else if (previous == Prepend){
  142. return NotBreak;
  143. }
  144. // GB10. (E_Base | EBG) Extend* ? E_Modifier
  145. var previousNonExtendIndex = all.indexOf(Extend) != -1 ? all.lastIndexOf(Extend) - 1 : all.length - 2;
  146. if([E_Base, E_Base_GAZ].indexOf(all[previousNonExtendIndex]) != -1 &&
  147. all.slice(previousNonExtendIndex + 1, -1).every(function(c){return c == Extend}) &&
  148. next == E_Modifier){
  149. return NotBreak;
  150. }
  151. // GB11. ZWJ ? (Glue_After_Zwj | EBG)
  152. if(previous == ZWJ && [Glue_After_Zwj, E_Base_GAZ].indexOf(next) != -1) {
  153. return NotBreak;
  154. }
  155. // GB12. ^ (RI RI)* RI ? RI
  156. // GB13. [^RI] (RI RI)* RI ? RI
  157. if(mid.indexOf(Regional_Indicator) != -1) {
  158. return Break;
  159. }
  160. if(previous == Regional_Indicator && next == Regional_Indicator) {
  161. return NotBreak;
  162. }
  163. // GB999. Any ? Any
  164. return BreakStart;
  165. }
  166. // Returns the next grapheme break in the string after the given index
  167. this.nextBreak = function(string, index){
  168. if(index === undefined){
  169. index = 0;
  170. }
  171. if(index < 0){
  172. return 0;
  173. }
  174. if(index >= string.length - 1){
  175. return string.length;
  176. }
  177. var prev = getGraphemeBreakProperty(codePointAt(string, index));
  178. var mid = [];
  179. for (var i = index + 1; i < string.length; i++) {
  180. // check for already processed low surrogates
  181. if(isSurrogate(string, i - 1)){
  182. continue;
  183. }
  184. var next = getGraphemeBreakProperty(codePointAt(string, i));
  185. if(shouldBreak(prev, mid, next)){
  186. return i;
  187. }
  188. mid.push(next);
  189. }
  190. return string.length;
  191. };
  192. // Breaks the given string into an array of grapheme cluster strings
  193. this.splitGraphemes = function(str){
  194. var res = [];
  195. var index = 0;
  196. var brk;
  197. while((brk = this.nextBreak(str, index)) < str.length){
  198. res.push(str.slice(index, brk));
  199. index = brk;
  200. }
  201. if(index < str.length){
  202. res.push(str.slice(index));
  203. }
  204. return res;
  205. };
  206. // Returns the iterator of grapheme clusters there are in the given string
  207. this.iterateGraphemes = function(str) {
  208. var index = 0;
  209. var res = {
  210. next: (function() {
  211. var value;
  212. var brk;
  213. if ((brk = this.nextBreak(str, index)) < str.length) {
  214. value = str.slice(index, brk);
  215. index = brk;
  216. return { value: value, done: false };
  217. }
  218. if (index < str.length) {
  219. value = str.slice(index);
  220. index = str.length;
  221. return { value: value, done: false };
  222. }
  223. return { value: undefined, done: true };
  224. }).bind(this)
  225. };
  226. // ES2015 @@iterator method (iterable) for spread syntax and for...of statement
  227. if (typeof Symbol !== 'undefined' && Symbol.iterator) {
  228. res[Symbol.iterator] = function() {return res};
  229. }
  230. return res;
  231. };
  232. // Returns the number of grapheme clusters there are in the given string
  233. this.countGraphemes = function(str){
  234. var count = 0;
  235. var index = 0;
  236. var brk;
  237. while((brk = this.nextBreak(str, index)) < str.length){
  238. index = brk;
  239. count++;
  240. }
  241. if(index < str.length){
  242. count++;
  243. }
  244. return count;
  245. };
  246. //given a Unicode code point, determines this symbol's grapheme break property
  247. function getGraphemeBreakProperty(code){
  248. //grapheme break property for Unicode 10.0.0,
  249. //taken from http://www.unicode.org/Public/10.0.0/ucd/auxiliary/GraphemeBreakProperty.txt
  250. //and adapted to JavaScript rules
  251. if(
  252. (0x0600 <= code && code <= 0x0605) || // Cf [6] ARABIC NUMBER SIGN..ARABIC NUMBER MARK ABOVE
  253. 0x06DD == code || // Cf ARABIC END OF AYAH
  254. 0x070F == code || // Cf SYRIAC ABBREVIATION MARK
  255. 0x08E2 == code || // Cf ARABIC DISPUTED END OF AYAH
  256. 0x0D4E == code || // Lo MALAYALAM LETTER DOT REPH
  257. 0x110BD == code || // Cf KAITHI NUMBER SIGN
  258. (0x111C2 <= code && code <= 0x111C3) || // Lo [2] SHARADA SIGN JIHVAMULIYA..SHARADA SIGN UPADHMANIYA
  259. 0x11A3A == code || // Lo ZANABAZAR SQUARE CLUSTER-INITIAL LETTER RA
  260. (0x11A86 <= code && code <= 0x11A89) || // Lo [4] SOYOMBO CLUSTER-INITIAL LETTER RA..SOYOMBO CLUSTER-INITIAL LETTER SA
  261. 0x11D46 == code // Lo MASARAM GONDI REPHA
  262. ){
  263. return Prepend;
  264. }
  265. if(
  266. 0x000D == code // Cc <control-000D>
  267. ){
  268. return CR;
  269. }
  270. if(
  271. 0x000A == code // Cc <control-000A>
  272. ){
  273. return LF;
  274. }
  275. if(
  276. (0x0000 <= code && code <= 0x0009) || // Cc [10] <control-0000>..<control-0009>
  277. (0x000B <= code && code <= 0x000C) || // Cc [2] <control-000B>..<control-000C>
  278. (0x000E <= code && code <= 0x001F) || // Cc [18] <control-000E>..<control-001F>
  279. (0x007F <= code && code <= 0x009F) || // Cc [33] <control-007F>..<control-009F>
  280. 0x00AD == code || // Cf SOFT HYPHEN
  281. 0x061C == code || // Cf ARABIC LETTER MARK
  282. 0x180E == code || // Cf MONGOLIAN VOWEL SEPARATOR
  283. 0x200B == code || // Cf ZERO WIDTH SPACE
  284. (0x200E <= code && code <= 0x200F) || // Cf [2] LEFT-TO-RIGHT MARK..RIGHT-TO-LEFT MARK
  285. 0x2028 == code || // Zl LINE SEPARATOR
  286. 0x2029 == code || // Zp PARAGRAPH SEPARATOR
  287. (0x202A <= code && code <= 0x202E) || // Cf [5] LEFT-TO-RIGHT EMBEDDING..RIGHT-TO-LEFT OVERRIDE
  288. (0x2060 <= code && code <= 0x2064) || // Cf [5] WORD JOINER..INVISIBLE PLUS
  289. 0x2065 == code || // Cn <reserved-2065>
  290. (0x2066 <= code && code <= 0x206F) || // Cf [10] LEFT-TO-RIGHT ISOLATE..NOMINAL DIGIT SHAPES
  291. (0xD800 <= code && code <= 0xDFFF) || // Cs [2048] <surrogate-D800>..<surrogate-DFFF>
  292. 0xFEFF == code || // Cf ZERO WIDTH NO-BREAK SPACE
  293. (0xFFF0 <= code && code <= 0xFFF8) || // Cn [9] <reserved-FFF0>..<reserved-FFF8>
  294. (0xFFF9 <= code && code <= 0xFFFB) || // Cf [3] INTERLINEAR ANNOTATION ANCHOR..INTERLINEAR ANNOTATION TERMINATOR
  295. (0x1BCA0 <= code && code <= 0x1BCA3) || // Cf [4] SHORTHAND FORMAT LETTER OVERLAP..SHORTHAND FORMAT UP STEP
  296. (0x1D173 <= code && code <= 0x1D17A) || // Cf [8] MUSICAL SYMBOL BEGIN BEAM..MUSICAL SYMBOL END PHRASE
  297. 0xE0000 == code || // Cn <reserved-E0000>
  298. 0xE0001 == code || // Cf LANGUAGE TAG
  299. (0xE0002 <= code && code <= 0xE001F) || // Cn [30] <reserved-E0002>..<reserved-E001F>
  300. (0xE0080 <= code && code <= 0xE00FF) || // Cn [128] <reserved-E0080>..<reserved-E00FF>
  301. (0xE01F0 <= code && code <= 0xE0FFF) // Cn [3600] <reserved-E01F0>..<reserved-E0FFF>
  302. ){
  303. return Control;
  304. }
  305. if(
  306. (0x0300 <= code && code <= 0x036F) || // Mn [112] COMBINING GRAVE ACCENT..COMBINING LATIN SMALL LETTER X
  307. (0x0483 <= code && code <= 0x0487) || // Mn [5] COMBINING CYRILLIC TITLO..COMBINING CYRILLIC POKRYTIE
  308. (0x0488 <= code && code <= 0x0489) || // Me [2] COMBINING CYRILLIC HUNDRED THOUSANDS SIGN..COMBINING CYRILLIC MILLIONS SIGN
  309. (0x0591 <= code && code <= 0x05BD) || // Mn [45] HEBREW ACCENT ETNAHTA..HEBREW POINT METEG
  310. 0x05BF == code || // Mn HEBREW POINT RAFE
  311. (0x05C1 <= code && code <= 0x05C2) || // Mn [2] HEBREW POINT SHIN DOT..HEBREW POINT SIN DOT
  312. (0x05C4 <= code && code <= 0x05C5) || // Mn [2] HEBREW MARK UPPER DOT..HEBREW MARK LOWER DOT
  313. 0x05C7 == code || // Mn HEBREW POINT QAMATS QATAN
  314. (0x0610 <= code && code <= 0x061A) || // Mn [11] ARABIC SIGN SALLALLAHOU ALAYHE WASSALLAM..ARABIC SMALL KASRA
  315. (0x064B <= code && code <= 0x065F) || // Mn [21] ARABIC FATHATAN..ARABIC WAVY HAMZA BELOW
  316. 0x0670 == code || // Mn ARABIC LETTER SUPERSCRIPT ALEF
  317. (0x06D6 <= code && code <= 0x06DC) || // Mn [7] ARABIC SMALL HIGH LIGATURE SAD WITH LAM WITH ALEF MAKSURA..ARABIC SMALL HIGH SEEN
  318. (0x06DF <= code && code <= 0x06E4) || // Mn [6] ARABIC SMALL HIGH ROUNDED ZERO..ARABIC SMALL HIGH MADDA
  319. (0x06E7 <= code && code <= 0x06E8) || // Mn [2] ARABIC SMALL HIGH YEH..ARABIC SMALL HIGH NOON
  320. (0x06EA <= code && code <= 0x06ED) || // Mn [4] ARABIC EMPTY CENTRE LOW STOP..ARABIC SMALL LOW MEEM
  321. 0x0711 == code || // Mn SYRIAC LETTER SUPERSCRIPT ALAPH
  322. (0x0730 <= code && code <= 0x074A) || // Mn [27] SYRIAC PTHAHA ABOVE..SYRIAC BARREKH
  323. (0x07A6 <= code && code <= 0x07B0) || // Mn [11] THAANA ABAFILI..THAANA SUKUN
  324. (0x07EB <= code && code <= 0x07F3) || // Mn [9] NKO COMBINING SHORT HIGH TONE..NKO COMBINING DOUBLE DOT ABOVE
  325. (0x0816 <= code && code <= 0x0819) || // Mn [4] SAMARITAN MARK IN..SAMARITAN MARK DAGESH
  326. (0x081B <= code && code <= 0x0823) || // Mn [9] SAMARITAN MARK EPENTHETIC YUT..SAMARITAN VOWEL SIGN A
  327. (0x0825 <= code && code <= 0x0827) || // Mn [3] SAMARITAN VOWEL SIGN SHORT A..SAMARITAN VOWEL SIGN U
  328. (0x0829 <= code && code <= 0x082D) || // Mn [5] SAMARITAN VOWEL SIGN LONG I..SAMARITAN MARK NEQUDAA
  329. (0x0859 <= code && code <= 0x085B) || // Mn [3] MANDAIC AFFRICATION MARK..MANDAIC GEMINATION MARK
  330. (0x08D4 <= code && code <= 0x08E1) || // Mn [14] ARABIC SMALL HIGH WORD AR-RUB..ARABIC SMALL HIGH SIGN SAFHA
  331. (0x08E3 <= code && code <= 0x0902) || // Mn [32] ARABIC TURNED DAMMA BELOW..DEVANAGARI SIGN ANUSVARA
  332. 0x093A == code || // Mn DEVANAGARI VOWEL SIGN OE
  333. 0x093C == code || // Mn DEVANAGARI SIGN NUKTA
  334. (0x0941 <= code && code <= 0x0948) || // Mn [8] DEVANAGARI VOWEL SIGN U..DEVANAGARI VOWEL SIGN AI
  335. 0x094D == code || // Mn DEVANAGARI SIGN VIRAMA
  336. (0x0951 <= code && code <= 0x0957) || // Mn [7] DEVANAGARI STRESS SIGN UDATTA..DEVANAGARI VOWEL SIGN UUE
  337. (0x0962 <= code && code <= 0x0963) || // Mn [2] DEVANAGARI VOWEL SIGN VOCALIC L..DEVANAGARI VOWEL SIGN VOCALIC LL
  338. 0x0981 == code || // Mn BENGALI SIGN CANDRABINDU
  339. 0x09BC == code || // Mn BENGALI SIGN NUKTA
  340. 0x09BE == code || // Mc BENGALI VOWEL SIGN AA
  341. (0x09C1 <= code && code <= 0x09C4) || // Mn [4] BENGALI VOWEL SIGN U..BENGALI VOWEL SIGN VOCALIC RR
  342. 0x09CD == code || // Mn BENGALI SIGN VIRAMA
  343. 0x09D7 == code || // Mc BENGALI AU LENGTH MARK
  344. (0x09E2 <= code && code <= 0x09E3) || // Mn [2] BENGALI VOWEL SIGN VOCALIC L..BENGALI VOWEL SIGN VOCALIC LL
  345. (0x0A01 <= code && code <= 0x0A02) || // Mn [2] GURMUKHI SIGN ADAK BINDI..GURMUKHI SIGN BINDI
  346. 0x0A3C == code || // Mn GURMUKHI SIGN NUKTA
  347. (0x0A41 <= code && code <= 0x0A42) || // Mn [2] GURMUKHI VOWEL SIGN U..GURMUKHI VOWEL SIGN UU
  348. (0x0A47 <= code && code <= 0x0A48) || // Mn [2] GURMUKHI VOWEL SIGN EE..GURMUKHI VOWEL SIGN AI
  349. (0x0A4B <= code && code <= 0x0A4D) || // Mn [3] GURMUKHI VOWEL SIGN OO..GURMUKHI SIGN VIRAMA
  350. 0x0A51 == code || // Mn GURMUKHI SIGN UDAAT
  351. (0x0A70 <= code && code <= 0x0A71) || // Mn [2] GURMUKHI TIPPI..GURMUKHI ADDAK
  352. 0x0A75 == code || // Mn GURMUKHI SIGN YAKASH
  353. (0x0A81 <= code && code <= 0x0A82) || // Mn [2] GUJARATI SIGN CANDRABINDU..GUJARATI SIGN ANUSVARA
  354. 0x0ABC == code || // Mn GUJARATI SIGN NUKTA
  355. (0x0AC1 <= code && code <= 0x0AC5) || // Mn [5] GUJARATI VOWEL SIGN U..GUJARATI VOWEL SIGN CANDRA E
  356. (0x0AC7 <= code && code <= 0x0AC8) || // Mn [2] GUJARATI VOWEL SIGN E..GUJARATI VOWEL SIGN AI
  357. 0x0ACD == code || // Mn GUJARATI SIGN VIRAMA
  358. (0x0AE2 <= code && code <= 0x0AE3) || // Mn [2] GUJARATI VOWEL SIGN VOCALIC L..GUJARATI VOWEL SIGN VOCALIC LL
  359. (0x0AFA <= code && code <= 0x0AFF) || // Mn [6] GUJARATI SIGN SUKUN..GUJARATI SIGN TWO-CIRCLE NUKTA ABOVE
  360. 0x0B01 == code || // Mn ORIYA SIGN CANDRABINDU
  361. 0x0B3C == code || // Mn ORIYA SIGN NUKTA
  362. 0x0B3E == code || // Mc ORIYA VOWEL SIGN AA
  363. 0x0B3F == code || // Mn ORIYA VOWEL SIGN I
  364. (0x0B41 <= code && code <= 0x0B44) || // Mn [4] ORIYA VOWEL SIGN U..ORIYA VOWEL SIGN VOCALIC RR
  365. 0x0B4D == code || // Mn ORIYA SIGN VIRAMA
  366. 0x0B56 == code || // Mn ORIYA AI LENGTH MARK
  367. 0x0B57 == code || // Mc ORIYA AU LENGTH MARK
  368. (0x0B62 <= code && code <= 0x0B63) || // Mn [2] ORIYA VOWEL SIGN VOCALIC L..ORIYA VOWEL SIGN VOCALIC LL
  369. 0x0B82 == code || // Mn TAMIL SIGN ANUSVARA
  370. 0x0BBE == code || // Mc TAMIL VOWEL SIGN AA
  371. 0x0BC0 == code || // Mn TAMIL VOWEL SIGN II
  372. 0x0BCD == code || // Mn TAMIL SIGN VIRAMA
  373. 0x0BD7 == code || // Mc TAMIL AU LENGTH MARK
  374. 0x0C00 == code || // Mn TELUGU SIGN COMBINING CANDRABINDU ABOVE
  375. (0x0C3E <= code && code <= 0x0C40) || // Mn [3] TELUGU VOWEL SIGN AA..TELUGU VOWEL SIGN II
  376. (0x0C46 <= code && code <= 0x0C48) || // Mn [3] TELUGU VOWEL SIGN E..TELUGU VOWEL SIGN AI
  377. (0x0C4A <= code && code <= 0x0C4D) || // Mn [4] TELUGU VOWEL SIGN O..TELUGU SIGN VIRAMA
  378. (0x0C55 <= code && code <= 0x0C56) || // Mn [2] TELUGU LENGTH MARK..TELUGU AI LENGTH MARK
  379. (0x0C62 <= code && code <= 0x0C63) || // Mn [2] TELUGU VOWEL SIGN VOCALIC L..TELUGU VOWEL SIGN VOCALIC LL
  380. 0x0C81 == code || // Mn KANNADA SIGN CANDRABINDU
  381. 0x0CBC == code || // Mn KANNADA SIGN NUKTA
  382. 0x0CBF == code || // Mn KANNADA VOWEL SIGN I
  383. 0x0CC2 == code || // Mc KANNADA VOWEL SIGN UU
  384. 0x0CC6 == code || // Mn KANNADA VOWEL SIGN E
  385. (0x0CCC <= code && code <= 0x0CCD) || // Mn [2] KANNADA VOWEL SIGN AU..KANNADA SIGN VIRAMA
  386. (0x0CD5 <= code && code <= 0x0CD6) || // Mc [2] KANNADA LENGTH MARK..KANNADA AI LENGTH MARK
  387. (0x0CE2 <= code && code <= 0x0CE3) || // Mn [2] KANNADA VOWEL SIGN VOCALIC L..KANNADA VOWEL SIGN VOCALIC LL
  388. (0x0D00 <= code && code <= 0x0D01) || // Mn [2] MALAYALAM SIGN COMBINING ANUSVARA ABOVE..MALAYALAM SIGN CANDRABINDU
  389. (0x0D3B <= code && code <= 0x0D3C) || // Mn [2] MALAYALAM SIGN VERTICAL BAR VIRAMA..MALAYALAM SIGN CIRCULAR VIRAMA
  390. 0x0D3E == code || // Mc MALAYALAM VOWEL SIGN AA
  391. (0x0D41 <= code && code <= 0x0D44) || // Mn [4] MALAYALAM VOWEL SIGN U..MALAYALAM VOWEL SIGN VOCALIC RR
  392. 0x0D4D == code || // Mn MALAYALAM SIGN VIRAMA
  393. 0x0D57 == code || // Mc MALAYALAM AU LENGTH MARK
  394. (0x0D62 <= code && code <= 0x0D63) || // Mn [2] MALAYALAM VOWEL SIGN VOCALIC L..MALAYALAM VOWEL SIGN VOCALIC LL
  395. 0x0DCA == code || // Mn SINHALA SIGN AL-LAKUNA
  396. 0x0DCF == code || // Mc SINHALA VOWEL SIGN AELA-PILLA
  397. (0x0DD2 <= code && code <= 0x0DD4) || // Mn [3] SINHALA VOWEL SIGN KETTI IS-PILLA..SINHALA VOWEL SIGN KETTI PAA-PILLA
  398. 0x0DD6 == code || // Mn SINHALA VOWEL SIGN DIGA PAA-PILLA
  399. 0x0DDF == code || // Mc SINHALA VOWEL SIGN GAYANUKITTA
  400. 0x0E31 == code || // Mn THAI CHARACTER MAI HAN-AKAT
  401. (0x0E34 <= code && code <= 0x0E3A) || // Mn [7] THAI CHARACTER SARA I..THAI CHARACTER PHINTHU
  402. (0x0E47 <= code && code <= 0x0E4E) || // Mn [8] THAI CHARACTER MAITAIKHU..THAI CHARACTER YAMAKKAN
  403. 0x0EB1 == code || // Mn LAO VOWEL SIGN MAI KAN
  404. (0x0EB4 <= code && code <= 0x0EB9) || // Mn [6] LAO VOWEL SIGN I..LAO VOWEL SIGN UU
  405. (0x0EBB <= code && code <= 0x0EBC) || // Mn [2] LAO VOWEL SIGN MAI KON..LAO SEMIVOWEL SIGN LO
  406. (0x0EC8 <= code && code <= 0x0ECD) || // Mn [6] LAO TONE MAI EK..LAO NIGGAHITA
  407. (0x0F18 <= code && code <= 0x0F19) || // Mn [2] TIBETAN ASTROLOGICAL SIGN -KHYUD PA..TIBETAN ASTROLOGICAL SIGN SDONG TSHUGS
  408. 0x0F35 == code || // Mn TIBETAN MARK NGAS BZUNG NYI ZLA
  409. 0x0F37 == code || // Mn TIBETAN MARK NGAS BZUNG SGOR RTAGS
  410. 0x0F39 == code || // Mn TIBETAN MARK TSA -PHRU
  411. (0x0F71 <= code && code <= 0x0F7E) || // Mn [14] TIBETAN VOWEL SIGN AA..TIBETAN SIGN RJES SU NGA RO
  412. (0x0F80 <= code && code <= 0x0F84) || // Mn [5] TIBETAN VOWEL SIGN REVERSED I..TIBETAN MARK HALANTA
  413. (0x0F86 <= code && code <= 0x0F87) || // Mn [2] TIBETAN SIGN LCI RTAGS..TIBETAN SIGN YANG RTAGS
  414. (0x0F8D <= code && code <= 0x0F97) || // Mn [11] TIBETAN SUBJOINED SIGN LCE TSA CAN..TIBETAN SUBJOINED LETTER JA
  415. (0x0F99 <= code && code <= 0x0FBC) || // Mn [36] TIBETAN SUBJOINED LETTER NYA..TIBETAN SUBJOINED LETTER FIXED-FORM RA
  416. 0x0FC6 == code || // Mn TIBETAN SYMBOL PADMA GDAN
  417. (0x102D <= code && code <= 0x1030) || // Mn [4] MYANMAR VOWEL SIGN I..MYANMAR VOWEL SIGN UU
  418. (0x1032 <= code && code <= 0x1037) || // Mn [6] MYANMAR VOWEL SIGN AI..MYANMAR SIGN DOT BELOW
  419. (0x1039 <= code && code <= 0x103A) || // Mn [2] MYANMAR SIGN VIRAMA..MYANMAR SIGN ASAT
  420. (0x103D <= code && code <= 0x103E) || // Mn [2] MYANMAR CONSONANT SIGN MEDIAL WA..MYANMAR CONSONANT SIGN MEDIAL HA
  421. (0x1058 <= code && code <= 0x1059) || // Mn [2] MYANMAR VOWEL SIGN VOCALIC L..MYANMAR VOWEL SIGN VOCALIC LL
  422. (0x105E <= code && code <= 0x1060) || // Mn [3] MYANMAR CONSONANT SIGN MON MEDIAL NA..MYANMAR CONSONANT SIGN MON MEDIAL LA
  423. (0x1071 <= code && code <= 0x1074) || // Mn [4] MYANMAR VOWEL SIGN GEBA KAREN I..MYANMAR VOWEL SIGN KAYAH EE
  424. 0x1082 == code || // Mn MYANMAR CONSONANT SIGN SHAN MEDIAL WA
  425. (0x1085 <= code && code <= 0x1086) || // Mn [2] MYANMAR VOWEL SIGN SHAN E ABOVE..MYANMAR VOWEL SIGN SHAN FINAL Y
  426. 0x108D == code || // Mn MYANMAR SIGN SHAN COUNCIL EMPHATIC TONE
  427. 0x109D == code || // Mn MYANMAR VOWEL SIGN AITON AI
  428. (0x135D <= code && code <= 0x135F) || // Mn [3] ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK..ETHIOPIC COMBINING GEMINATION MARK
  429. (0x1712 <= code && code <= 0x1714) || // Mn [3] TAGALOG VOWEL SIGN I..TAGALOG SIGN VIRAMA
  430. (0x1732 <= code && code <= 0x1734) || // Mn [3] HANUNOO VOWEL SIGN I..HANUNOO SIGN PAMUDPOD
  431. (0x1752 <= code && code <= 0x1753) || // Mn [2] BUHID VOWEL SIGN I..BUHID VOWEL SIGN U
  432. (0x1772 <= code && code <= 0x1773) || // Mn [2] TAGBANWA VOWEL SIGN I..TAGBANWA VOWEL SIGN U
  433. (0x17B4 <= code && code <= 0x17B5) || // Mn [2] KHMER VOWEL INHERENT AQ..KHMER VOWEL INHERENT AA
  434. (0x17B7 <= code && code <= 0x17BD) || // Mn [7] KHMER VOWEL SIGN I..KHMER VOWEL SIGN UA
  435. 0x17C6 == code || // Mn KHMER SIGN NIKAHIT
  436. (0x17C9 <= code && code <= 0x17D3) || // Mn [11] KHMER SIGN MUUSIKATOAN..KHMER SIGN BATHAMASAT
  437. 0x17DD == code || // Mn KHMER SIGN ATTHACAN
  438. (0x180B <= code && code <= 0x180D) || // Mn [3] MONGOLIAN FREE VARIATION SELECTOR ONE..MONGOLIAN FREE VARIATION SELECTOR THREE
  439. (0x1885 <= code && code <= 0x1886) || // Mn [2] MONGOLIAN LETTER ALI GALI BALUDA..MONGOLIAN LETTER ALI GALI THREE BALUDA
  440. 0x18A9 == code || // Mn MONGOLIAN LETTER ALI GALI DAGALGA
  441. (0x1920 <= code && code <= 0x1922) || // Mn [3] LIMBU VOWEL SIGN A..LIMBU VOWEL SIGN U
  442. (0x1927 <= code && code <= 0x1928) || // Mn [2] LIMBU VOWEL SIGN E..LIMBU VOWEL SIGN O
  443. 0x1932 == code || // Mn LIMBU SMALL LETTER ANUSVARA
  444. (0x1939 <= code && code <= 0x193B) || // Mn [3] LIMBU SIGN MUKPHRENG..LIMBU SIGN SA-I
  445. (0x1A17 <= code && code <= 0x1A18) || // Mn [2] BUGINESE VOWEL SIGN I..BUGINESE VOWEL SIGN U
  446. 0x1A1B == code || // Mn BUGINESE VOWEL SIGN AE
  447. 0x1A56 == code || // Mn TAI THAM CONSONANT SIGN MEDIAL LA
  448. (0x1A58 <= code && code <= 0x1A5E) || // Mn [7] TAI THAM SIGN MAI KANG LAI..TAI THAM CONSONANT SIGN SA
  449. 0x1A60 == code || // Mn TAI THAM SIGN SAKOT
  450. 0x1A62 == code || // Mn TAI THAM VOWEL SIGN MAI SAT
  451. (0x1A65 <= code && code <= 0x1A6C) || // Mn [8] TAI THAM VOWEL SIGN I..TAI THAM VOWEL SIGN OA BELOW
  452. (0x1A73 <= code && code <= 0x1A7C) || // Mn [10] TAI THAM VOWEL SIGN OA ABOVE..TAI THAM SIGN KHUEN-LUE KARAN
  453. 0x1A7F == code || // Mn TAI THAM COMBINING CRYPTOGRAMMIC DOT
  454. (0x1AB0 <= code && code <= 0x1ABD) || // Mn [14] COMBINING DOUBLED CIRCUMFLEX ACCENT..COMBINING PARENTHESES BELOW
  455. 0x1ABE == code || // Me COMBINING PARENTHESES OVERLAY
  456. (0x1B00 <= code && code <= 0x1B03) || // Mn [4] BALINESE SIGN ULU RICEM..BALINESE SIGN SURANG
  457. 0x1B34 == code || // Mn BALINESE SIGN REREKAN
  458. (0x1B36 <= code && code <= 0x1B3A) || // Mn [5] BALINESE VOWEL SIGN ULU..BALINESE VOWEL SIGN RA REPA
  459. 0x1B3C == code || // Mn BALINESE VOWEL SIGN LA LENGA
  460. 0x1B42 == code || // Mn BALINESE VOWEL SIGN PEPET
  461. (0x1B6B <= code && code <= 0x1B73) || // Mn [9] BALINESE MUSICAL SYMBOL COMBINING TEGEH..BALINESE MUSICAL SYMBOL COMBINING GONG
  462. (0x1B80 <= code && code <= 0x1B81) || // Mn [2] SUNDANESE SIGN PANYECEK..SUNDANESE SIGN PANGLAYAR
  463. (0x1BA2 <= code && code <= 0x1BA5) || // Mn [4] SUNDANESE CONSONANT SIGN PANYAKRA..SUNDANESE VOWEL SIGN PANYUKU
  464. (0x1BA8 <= code && code <= 0x1BA9) || // Mn [2] SUNDANESE VOWEL SIGN PAMEPET..SUNDANESE VOWEL SIGN PANEULEUNG
  465. (0x1BAB <= code && code <= 0x1BAD) || // Mn [3] SUNDANESE SIGN VIRAMA..SUNDANESE CONSONANT SIGN PASANGAN WA
  466. 0x1BE6 == code || // Mn BATAK SIGN TOMPI
  467. (0x1BE8 <= code && code <= 0x1BE9) || // Mn [2] BATAK VOWEL SIGN PAKPAK E..BATAK VOWEL SIGN EE
  468. 0x1BED == code || // Mn BATAK VOWEL SIGN KARO O
  469. (0x1BEF <= code && code <= 0x1BF1) || // Mn [3] BATAK VOWEL SIGN U FOR SIMALUNGUN SA..BATAK CONSONANT SIGN H
  470. (0x1C2C <= code && code <= 0x1C33) || // Mn [8] LEPCHA VOWEL SIGN E..LEPCHA CONSONANT SIGN T
  471. (0x1C36 <= code && code <= 0x1C37) || // Mn [2] LEPCHA SIGN RAN..LEPCHA SIGN NUKTA
  472. (0x1CD0 <= code && code <= 0x1CD2) || // Mn [3] VEDIC TONE KARSHANA..VEDIC TONE PRENKHA
  473. (0x1CD4 <= code && code <= 0x1CE0) || // Mn [13] VEDIC SIGN YAJURVEDIC MIDLINE SVARITA..VEDIC TONE RIGVEDIC KASHMIRI INDEPENDENT SVARITA
  474. (0x1CE2 <= code && code <= 0x1CE8) || // Mn [7] VEDIC SIGN VISARGA SVARITA..VEDIC SIGN VISARGA ANUDATTA WITH TAIL
  475. 0x1CED == code || // Mn VEDIC SIGN TIRYAK
  476. 0x1CF4 == code || // Mn VEDIC TONE CANDRA ABOVE
  477. (0x1CF8 <= code && code <= 0x1CF9) || // Mn [2] VEDIC TONE RING ABOVE..VEDIC TONE DOUBLE RING ABOVE
  478. (0x1DC0 <= code && code <= 0x1DF9) || // Mn [58] COMBINING DOTTED GRAVE ACCENT..COMBINING WIDE INVERTED BRIDGE BELOW
  479. (0x1DFB <= code && code <= 0x1DFF) || // Mn [5] COMBINING DELETION MARK..COMBINING RIGHT ARROWHEAD AND DOWN ARROWHEAD BELOW
  480. 0x200C == code || // Cf ZERO WIDTH NON-JOINER
  481. (0x20D0 <= code && code <= 0x20DC) || // Mn [13] COMBINING LEFT HARPOON ABOVE..COMBINING FOUR DOTS ABOVE
  482. (0x20DD <= code && code <= 0x20E0) || // Me [4] COMBINING ENCLOSING CIRCLE..COMBINING ENCLOSING CIRCLE BACKSLASH
  483. 0x20E1 == code || // Mn COMBINING LEFT RIGHT ARROW ABOVE
  484. (0x20E2 <= code && code <= 0x20E4) || // Me [3] COMBINING ENCLOSING SCREEN..COMBINING ENCLOSING UPWARD POINTING TRIANGLE
  485. (0x20E5 <= code && code <= 0x20F0) || // Mn [12] COMBINING REVERSE SOLIDUS OVERLAY..COMBINING ASTERISK ABOVE
  486. (0x2CEF <= code && code <= 0x2CF1) || // Mn [3] COPTIC COMBINING NI ABOVE..COPTIC COMBINING SPIRITUS LENIS
  487. 0x2D7F == code || // Mn TIFINAGH CONSONANT JOINER
  488. (0x2DE0 <= code && code <= 0x2DFF) || // Mn [32] COMBINING CYRILLIC LETTER BE..COMBINING CYRILLIC LETTER IOTIFIED BIG YUS
  489. (0x302A <= code && code <= 0x302D) || // Mn [4] IDEOGRAPHIC LEVEL TONE MARK..IDEOGRAPHIC ENTERING TONE MARK
  490. (0x302E <= code && code <= 0x302F) || // Mc [2] HANGUL SINGLE DOT TONE MARK..HANGUL DOUBLE DOT TONE MARK
  491. (0x3099 <= code && code <= 0x309A) || // Mn [2] COMBINING KATAKANA-HIRAGANA VOICED SOUND MARK..COMBINING KATAKANA-HIRAGANA SEMI-VOICED SOUND MARK
  492. 0xA66F == code || // Mn COMBINING CYRILLIC VZMET
  493. (0xA670 <= code && code <= 0xA672) || // Me [3] COMBINING CYRILLIC TEN MILLIONS SIGN..COMBINING CYRILLIC THOUSAND MILLIONS SIGN
  494. (0xA674 <= code && code <= 0xA67D) || // Mn [10] COMBINING CYRILLIC LETTER UKRAINIAN IE..COMBINING CYRILLIC PAYEROK
  495. (0xA69E <= code && code <= 0xA69F) || // Mn [2] COMBINING CYRILLIC LETTER EF..COMBINING CYRILLIC LETTER IOTIFIED E
  496. (0xA6F0 <= code && code <= 0xA6F1) || // Mn [2] BAMUM COMBINING MARK KOQNDON..BAMUM COMBINING MARK TUKWENTIS
  497. 0xA802 == code || // Mn SYLOTI NAGRI SIGN DVISVARA
  498. 0xA806 == code || // Mn SYLOTI NAGRI SIGN HASANTA
  499. 0xA80B == code || // Mn SYLOTI NAGRI SIGN ANUSVARA
  500. (0xA825 <= code && code <= 0xA826) || // Mn [2] SYLOTI NAGRI VOWEL SIGN U..SYLOTI NAGRI VOWEL SIGN E
  501. (0xA8C4 <= code && code <= 0xA8C5) || // Mn [2] SAURASHTRA SIGN VIRAMA..SAURASHTRA SIGN CANDRABINDU
  502. (0xA8E0 <= code && code <= 0xA8F1) || // Mn [18] COMBINING DEVANAGARI DIGIT ZERO..COMBINING DEVANAGARI SIGN AVAGRAHA
  503. (0xA926 <= code && code <= 0xA92D) || // Mn [8] KAYAH LI VOWEL UE..KAYAH LI TONE CALYA PLOPHU
  504. (0xA947 <= code && code <= 0xA951) || // Mn [11] REJANG VOWEL SIGN I..REJANG CONSONANT SIGN R
  505. (0xA980 <= code && code <= 0xA982) || // Mn [3] JAVANESE SIGN PANYANGGA..JAVANESE SIGN LAYAR
  506. 0xA9B3 == code || // Mn JAVANESE SIGN CECAK TELU
  507. (0xA9B6 <= code && code <= 0xA9B9) || // Mn [4] JAVANESE VOWEL SIGN WULU..JAVANESE VOWEL SIGN SUKU MENDUT
  508. 0xA9BC == code || // Mn JAVANESE VOWEL SIGN PEPET
  509. 0xA9E5 == code || // Mn MYANMAR SIGN SHAN SAW
  510. (0xAA29 <= code && code <= 0xAA2E) || // Mn [6] CHAM VOWEL SIGN AA..CHAM VOWEL SIGN OE
  511. (0xAA31 <= code && code <= 0xAA32) || // Mn [2] CHAM VOWEL SIGN AU..CHAM VOWEL SIGN UE
  512. (0xAA35 <= code && code <= 0xAA36) || // Mn [2] CHAM CONSONANT SIGN LA..CHAM CONSONANT SIGN WA
  513. 0xAA43 == code || // Mn CHAM CONSONANT SIGN FINAL NG
  514. 0xAA4C == code || // Mn CHAM CONSONANT SIGN FINAL M
  515. 0xAA7C == code || // Mn MYANMAR SIGN TAI LAING TONE-2
  516. 0xAAB0 == code || // Mn TAI VIET MAI KANG
  517. (0xAAB2 <= code && code <= 0xAAB4) || // Mn [3] TAI VIET VOWEL I..TAI VIET VOWEL U
  518. (0xAAB7 <= code && code <= 0xAAB8) || // Mn [2] TAI VIET MAI KHIT..TAI VIET VOWEL IA
  519. (0xAABE <= code && code <= 0xAABF) || // Mn [2] TAI VIET VOWEL AM..TAI VIET TONE MAI EK
  520. 0xAAC1 == code || // Mn TAI VIET TONE MAI THO
  521. (0xAAEC <= code && code <= 0xAAED) || // Mn [2] MEETEI MAYEK VOWEL SIGN UU..MEETEI MAYEK VOWEL SIGN AAI
  522. 0xAAF6 == code || // Mn MEETEI MAYEK VIRAMA
  523. 0xABE5 == code || // Mn MEETEI MAYEK VOWEL SIGN ANAP
  524. 0xABE8 == code || // Mn MEETEI MAYEK VOWEL SIGN UNAP
  525. 0xABED == code || // Mn MEETEI MAYEK APUN IYEK
  526. 0xFB1E == code || // Mn HEBREW POINT JUDEO-SPANISH VARIKA
  527. (0xFE00 <= code && code <= 0xFE0F) || // Mn [16] VARIATION SELECTOR-1..VARIATION SELECTOR-16
  528. (0xFE20 <= code && code <= 0xFE2F) || // Mn [16] COMBINING LIGATURE LEFT HALF..COMBINING CYRILLIC TITLO RIGHT HALF
  529. (0xFF9E <= code && code <= 0xFF9F) || // Lm [2] HALFWIDTH KATAKANA VOICED SOUND MARK..HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
  530. 0x101FD == code || // Mn PHAISTOS DISC SIGN COMBINING OBLIQUE STROKE
  531. 0x102E0 == code || // Mn COPTIC EPACT THOUSANDS MARK
  532. (0x10376 <= code && code <= 0x1037A) || // Mn [5] COMBINING OLD PERMIC LETTER AN..COMBINING OLD PERMIC LETTER SII
  533. (0x10A01 <= code && code <= 0x10A03) || // Mn [3] KHAROSHTHI VOWEL SIGN I..KHAROSHTHI VOWEL SIGN VOCALIC R
  534. (0x10A05 <= code && code <= 0x10A06) || // Mn [2] KHAROSHTHI VOWEL SIGN E..KHAROSHTHI VOWEL SIGN O
  535. (0x10A0C <= code && code <= 0x10A0F) || // Mn [4] KHAROSHTHI VOWEL LENGTH MARK..KHAROSHTHI SIGN VISARGA
  536. (0x10A38 <= code && code <= 0x10A3A) || // Mn [3] KHAROSHTHI SIGN BAR ABOVE..KHAROSHTHI SIGN DOT BELOW
  537. 0x10A3F == code || // Mn KHAROSHTHI VIRAMA
  538. (0x10AE5 <= code && code <= 0x10AE6) || // Mn [2] MANICHAEAN ABBREVIATION MARK ABOVE..MANICHAEAN ABBREVIATION MARK BELOW
  539. 0x11001 == code || // Mn BRAHMI SIGN ANUSVARA
  540. (0x11038 <= code && code <= 0x11046) || // Mn [15] BRAHMI VOWEL SIGN AA..BRAHMI VIRAMA
  541. (0x1107F <= code && code <= 0x11081) || // Mn [3] BRAHMI NUMBER JOINER..KAITHI SIGN ANUSVARA
  542. (0x110B3 <= code && code <= 0x110B6) || // Mn [4] KAITHI VOWEL SIGN U..KAITHI VOWEL SIGN AI
  543. (0x110B9 <= code && code <= 0x110BA) || // Mn [2] KAITHI SIGN VIRAMA..KAITHI SIGN NUKTA
  544. (0x11100 <= code && code <= 0x11102) || // Mn [3] CHAKMA SIGN CANDRABINDU..CHAKMA SIGN VISARGA
  545. (0x11127 <= code && code <= 0x1112B) || // Mn [5] CHAKMA VOWEL SIGN A..CHAKMA VOWEL SIGN UU
  546. (0x1112D <= code && code <= 0x11134) || // Mn [8] CHAKMA VOWEL SIGN AI..CHAKMA MAAYYAA
  547. 0x11173 == code || // Mn MAHAJANI SIGN NUKTA
  548. (0x11180 <= code && code <= 0x11181) || // Mn [2] SHARADA SIGN CANDRABINDU..SHARADA SIGN ANUSVARA
  549. (0x111B6 <= code && code <= 0x111BE) || // Mn [9] SHARADA VOWEL SIGN U..SHARADA VOWEL SIGN O
  550. (0x111CA <= code && code <= 0x111CC) || // Mn [3] SHARADA SIGN NUKTA..SHARADA EXTRA SHORT VOWEL MARK
  551. (0x1122F <= code && code <= 0x11231) || // Mn [3] KHOJKI VOWEL SIGN U..KHOJKI VOWEL SIGN AI
  552. 0x11234 == code || // Mn KHOJKI SIGN ANUSVARA
  553. (0x11236 <= code && code <= 0x11237) || // Mn [2] KHOJKI SIGN NUKTA..KHOJKI SIGN SHADDA
  554. 0x1123E == code || // Mn KHOJKI SIGN SUKUN
  555. 0x112DF == code || // Mn KHUDAWADI SIGN ANUSVARA
  556. (0x112E3 <= code && code <= 0x112EA) || // Mn [8] KHUDAWADI VOWEL SIGN U..KHUDAWADI SIGN VIRAMA
  557. (0x11300 <= code && code <= 0x11301) || // Mn [2] GRANTHA SIGN COMBINING ANUSVARA ABOVE..GRANTHA SIGN CANDRABINDU
  558. 0x1133C == code || // Mn GRANTHA SIGN NUKTA
  559. 0x1133E == code || // Mc GRANTHA VOWEL SIGN AA
  560. 0x11340 == code || // Mn GRANTHA VOWEL SIGN II
  561. 0x11357 == code || // Mc GRANTHA AU LENGTH MARK
  562. (0x11366 <= code && code <= 0x1136C) || // Mn [7] COMBINING GRANTHA DIGIT ZERO..COMBINING GRANTHA DIGIT SIX
  563. (0x11370 <= code && code <= 0x11374) || // Mn [5] COMBINING GRANTHA LETTER A..COMBINING GRANTHA LETTER PA
  564. (0x11438 <= code && code <= 0x1143F) || // Mn [8] NEWA VOWEL SIGN U..NEWA VOWEL SIGN AI
  565. (0x11442 <= code && code <= 0x11444) || // Mn [3] NEWA SIGN VIRAMA..NEWA SIGN ANUSVARA
  566. 0x11446 == code || // Mn NEWA SIGN NUKTA
  567. 0x114B0 == code || // Mc TIRHUTA VOWEL SIGN AA
  568. (0x114B3 <= code && code <= 0x114B8) || // Mn [6] TIRHUTA VOWEL SIGN U..TIRHUTA VOWEL SIGN VOCALIC LL
  569. 0x114BA == code || // Mn TIRHUTA VOWEL SIGN SHORT E
  570. 0x114BD == code || // Mc TIRHUTA VOWEL SIGN SHORT O
  571. (0x114BF <= code && code <= 0x114C0) || // Mn [2] TIRHUTA SIGN CANDRABINDU..TIRHUTA SIGN ANUSVARA
  572. (0x114C2 <= code && code <= 0x114C3) || // Mn [2] TIRHUTA SIGN VIRAMA..TIRHUTA SIGN NUKTA
  573. 0x115AF == code || // Mc SIDDHAM VOWEL SIGN AA
  574. (0x115B2 <= code && code <= 0x115B5) || // Mn [4] SIDDHAM VOWEL SIGN U..SIDDHAM VOWEL SIGN VOCALIC RR
  575. (0x115BC <= code && code <= 0x115BD) || // Mn [2] SIDDHAM SIGN CANDRABINDU..SIDDHAM SIGN ANUSVARA
  576. (0x115BF <= code && code <= 0x115C0) || // Mn [2] SIDDHAM SIGN VIRAMA..SIDDHAM SIGN NUKTA
  577. (0x115DC <= code && code <= 0x115DD) || // Mn [2] SIDDHAM VOWEL SIGN ALTERNATE U..SIDDHAM VOWEL SIGN ALTERNATE UU
  578. (0x11633 <= code && code <= 0x1163A) || // Mn [8] MODI VOWEL SIGN U..MODI VOWEL SIGN AI
  579. 0x1163D == code || // Mn MODI SIGN ANUSVARA
  580. (0x1163F <= code && code <= 0x11640) || // Mn [2] MODI SIGN VIRAMA..MODI SIGN ARDHACANDRA
  581. 0x116AB == code || // Mn TAKRI SIGN ANUSVARA
  582. 0x116AD == code || // Mn TAKRI VOWEL SIGN AA
  583. (0x116B0 <= code && code <= 0x116B5) || // Mn [6] TAKRI VOWEL SIGN U..TAKRI VOWEL SIGN AU
  584. 0x116B7 == code || // Mn TAKRI SIGN NUKTA
  585. (0x1171D <= code && code <= 0x1171F) || // Mn [3] AHOM CONSONANT SIGN MEDIAL LA..AHOM CONSONANT SIGN MEDIAL LIGATING RA
  586. (0x11722 <= code && code <= 0x11725) || // Mn [4] AHOM VOWEL SIGN I..AHOM VOWEL SIGN UU
  587. (0x11727 <= code && code <= 0x1172B) || // Mn [5] AHOM VOWEL SIGN AW..AHOM SIGN KILLER
  588. (0x11A01 <= code && code <= 0x11A06) || // Mn [6] ZANABAZAR SQUARE VOWEL SIGN I..ZANABAZAR SQUARE VOWEL SIGN O
  589. (0x11A09 <= code && code <= 0x11A0A) || // Mn [2] ZANABAZAR SQUARE VOWEL SIGN REVERSED I..ZANABAZAR SQUARE VOWEL LENGTH MARK
  590. (0x11A33 <= code && code <= 0x11A38) || // Mn [6] ZANABAZAR SQUARE FINAL CONSONANT MARK..ZANABAZAR SQUARE SIGN ANUSVARA
  591. (0x11A3B <= code && code <= 0x11A3E) || // Mn [4] ZANABAZAR SQUARE CLUSTER-FINAL LETTER YA..ZANABAZAR SQUARE CLUSTER-FINAL LETTER VA
  592. 0x11A47 == code || // Mn ZANABAZAR SQUARE SUBJOINER
  593. (0x11A51 <= code && code <= 0x11A56) || // Mn [6] SOYOMBO VOWEL SIGN I..SOYOMBO VOWEL SIGN OE
  594. (0x11A59 <= code && code <= 0x11A5B) || // Mn [3] SOYOMBO VOWEL SIGN VOCALIC R..SOYOMBO VOWEL LENGTH MARK
  595. (0x11A8A <= code && code <= 0x11A96) || // Mn [13] SOYOMBO FINAL CONSONANT SIGN G..SOYOMBO SIGN ANUSVARA
  596. (0x11A98 <= code && code <= 0x11A99) || // Mn [2] SOYOMBO GEMINATION MARK..SOYOMBO SUBJOINER
  597. (0x11C30 <= code && code <= 0x11C36) || // Mn [7] BHAIKSUKI VOWEL SIGN I..BHAIKSUKI VOWEL SIGN VOCALIC L
  598. (0x11C38 <= code && code <= 0x11C3D) || // Mn [6] BHAIKSUKI VOWEL SIGN E..BHAIKSUKI SIGN ANUSVARA
  599. 0x11C3F == code || // Mn BHAIKSUKI SIGN VIRAMA
  600. (0x11C92 <= code && code <= 0x11CA7) || // Mn [22] MARCHEN SUBJOINED LETTER KA..MARCHEN SUBJOINED LETTER ZA
  601. (0x11CAA <= code && code <= 0x11CB0) || // Mn [7] MARCHEN SUBJOINED LETTER RA..MARCHEN VOWEL SIGN AA
  602. (0x11CB2 <= code && code <= 0x11CB3) || // Mn [2] MARCHEN VOWEL SIGN U..MARCHEN VOWEL SIGN E
  603. (0x11CB5 <= code && code <= 0x11CB6) || // Mn [2] MARCHEN SIGN ANUSVARA..MARCHEN SIGN CANDRABINDU
  604. (0x11D31 <= code && code <= 0x11D36) || // Mn [6] MASARAM GONDI VOWEL SIGN AA..MASARAM GONDI VOWEL SIGN VOCALIC R
  605. 0x11D3A == code || // Mn MASARAM GONDI VOWEL SIGN E
  606. (0x11D3C <= code && code <= 0x11D3D) || // Mn [2] MASARAM GONDI VOWEL SIGN AI..MASARAM GONDI VOWEL SIGN O
  607. (0x11D3F <= code && code <= 0x11D45) || // Mn [7] MASARAM GONDI VOWEL SIGN AU..MASARAM GONDI VIRAMA
  608. 0x11D47 == code || // Mn MASARAM GONDI RA-KARA
  609. (0x16AF0 <= code && code <= 0x16AF4) || // Mn [5] BASSA VAH COMBINING HIGH TONE..BASSA VAH COMBINING HIGH-LOW TONE
  610. (0x16B30 <= code && code <= 0x16B36) || // Mn [7] PAHAWH HMONG MARK CIM TUB..PAHAWH HMONG MARK CIM TAUM
  611. (0x16F8F <= code && code <= 0x16F92) || // Mn [4] MIAO TONE RIGHT..MIAO TONE BELOW
  612. (0x1BC9D <= code && code <= 0x1BC9E) || // Mn [2] DUPLOYAN THICK LETTER SELECTOR..DUPLOYAN DOUBLE MARK
  613. 0x1D165 == code || // Mc MUSICAL SYMBOL COMBINING STEM
  614. (0x1D167 <= code && code <= 0x1D169) || // Mn [3] MUSICAL SYMBOL COMBINING TREMOLO-1..MUSICAL SYMBOL COMBINING TREMOLO-3
  615. (0x1D16E <= code && code <= 0x1D172) || // Mc [5] MUSICAL SYMBOL COMBINING FLAG-1..MUSICAL SYMBOL COMBINING FLAG-5
  616. (0x1D17B <= code && code <= 0x1D182) || // Mn [8] MUSICAL SYMBOL COMBINING ACCENT..MUSICAL SYMBOL COMBINING LOURE
  617. (0x1D185 <= code && code <= 0x1D18B) || // Mn [7] MUSICAL SYMBOL COMBINING DOIT..MUSICAL SYMBOL COMBINING TRIPLE TONGUE
  618. (0x1D1AA <= code && code <= 0x1D1AD) || // Mn [4] MUSICAL SYMBOL COMBINING DOWN BOW..MUSICAL SYMBOL COMBINING SNAP PIZZICATO
  619. (0x1D242 <= code && code <= 0x1D244) || // Mn [3] COMBINING GREEK MUSICAL TRISEME..COMBINING GREEK MUSICAL PENTASEME
  620. (0x1DA00 <= code && code <= 0x1DA36) || // Mn [55] SIGNWRITING HEAD RIM..SIGNWRITING AIR SUCKING IN
  621. (0x1DA3B <= code && code <= 0x1DA6C) || // Mn [50] SIGNWRITING MOUTH CLOSED NEUTRAL..SIGNWRITING EXCITEMENT
  622. 0x1DA75 == code || // Mn SIGNWRITING UPPER BODY TILTING FROM HIP JOINTS
  623. 0x1DA84 == code || // Mn SIGNWRITING LOCATION HEAD NECK
  624. (0x1DA9B <= code && code <= 0x1DA9F) || // Mn [5] SIGNWRITING FILL MODIFIER-2..SIGNWRITING FILL MODIFIER-6
  625. (0x1DAA1 <= code && code <= 0x1DAAF) || // Mn [15] SIGNWRITING ROTATION MODIFIER-2..SIGNWRITING ROTATION MODIFIER-16
  626. (0x1E000 <= code && code <= 0x1E006) || // Mn [7] COMBINING GLAGOLITIC LETTER AZU..COMBINING GLAGOLITIC LETTER ZHIVETE
  627. (0x1E008 <= code && code <= 0x1E018) || // Mn [17] COMBINING GLAGOLITIC LETTER ZEMLJA..COMBINING GLAGOLITIC LETTER HERU
  628. (0x1E01B <= code && code <= 0x1E021) || // Mn [7] COMBINING GLAGOLITIC LETTER SHTA..COMBINING GLAGOLITIC LETTER YATI
  629. (0x1E023 <= code && code <= 0x1E024) || // Mn [2] COMBINING GLAGOLITIC LETTER YU..COMBINING GLAGOLITIC LETTER SMALL YUS
  630. (0x1E026 <= code && code <= 0x1E02A) || // Mn [5] COMBINING GLAGOLITIC LETTER YO..COMBINING GLAGOLITIC LETTER FITA
  631. (0x1E8D0 <= code && code <= 0x1E8D6) || // Mn [7] MENDE KIKAKUI COMBINING NUMBER TEENS..MENDE KIKAKUI COMBINING NUMBER MILLIONS
  632. (0x1E944 <= code && code <= 0x1E94A) || // Mn [7] ADLAM ALIF LENGTHENER..ADLAM NUKTA
  633. (0xE0020 <= code && code <= 0xE007F) || // Cf [96] TAG SPACE..CANCEL TAG
  634. (0xE0100 <= code && code <= 0xE01EF) // Mn [240] VARIATION SELECTOR-17..VARIATION SELECTOR-256
  635. ){
  636. return Extend;
  637. }
  638. if(
  639. (0x1F1E6 <= code && code <= 0x1F1FF) // So [26] REGIONAL INDICATOR SYMBOL LETTER A..REGIONAL INDICATOR SYMBOL LETTER Z
  640. ){
  641. return Regional_Indicator;
  642. }
  643. if(
  644. 0x0903 == code || // Mc DEVANAGARI SIGN VISARGA
  645. 0x093B == code || // Mc DEVANAGARI VOWEL SIGN OOE
  646. (0x093E <= code && code <= 0x0940) || // Mc [3] DEVANAGARI VOWEL SIGN AA..DEVANAGARI VOWEL SIGN II
  647. (0x0949 <= code && code <= 0x094C) || // Mc [4] DEVANAGARI VOWEL SIGN CANDRA O..DEVANAGARI VOWEL SIGN AU
  648. (0x094E <= code && code <= 0x094F) || // Mc [2] DEVANAGARI VOWEL SIGN PRISHTHAMATRA E..DEVANAGARI VOWEL SIGN AW
  649. (0x0982 <= code && code <= 0x0983) || // Mc [2] BENGALI SIGN ANUSVARA..BENGALI SIGN VISARGA
  650. (0x09BF <= code && code <= 0x09C0) || // Mc [2] BENGALI VOWEL SIGN I..BENGALI VOWEL SIGN II
  651. (0x09C7 <= code && code <= 0x09C8) || // Mc [2] BENGALI VOWEL SIGN E..BENGALI VOWEL SIGN AI
  652. (0x09CB <= code && code <= 0x09CC) || // Mc [2] BENGALI VOWEL SIGN O..BENGALI VOWEL SIGN AU
  653. 0x0A03 == code || // Mc GURMUKHI SIGN VISARGA
  654. (0x0A3E <= code && code <= 0x0A40) || // Mc [3] GURMUKHI VOWEL SIGN AA..GURMUKHI VOWEL SIGN II
  655. 0x0A83 == code || // Mc GUJARATI SIGN VISARGA
  656. (0x0ABE <= code && code <= 0x0AC0) || // Mc [3] GUJARATI VOWEL SIGN AA..GUJARATI VOWEL SIGN II
  657. 0x0AC9 == code || // Mc GUJARATI VOWEL SIGN CANDRA O
  658. (0x0ACB <= code && code <= 0x0ACC) || // Mc [2] GUJARATI VOWEL SIGN O..GUJARATI VOWEL SIGN AU
  659. (0x0B02 <= code && code <= 0x0B03) || // Mc [2] ORIYA SIGN ANUSVARA..ORIYA SIGN VISARGA
  660. 0x0B40 == code || // Mc ORIYA VOWEL SIGN II
  661. (0x0B47 <= code && code <= 0x0B48) || // Mc [2] ORIYA VOWEL SIGN E..ORIYA VOWEL SIGN AI
  662. (0x0B4B <= code && code <= 0x0B4C) || // Mc [2] ORIYA VOWEL SIGN O..ORIYA VOWEL SIGN AU
  663. 0x0BBF == code || // Mc TAMIL VOWEL SIGN I
  664. (0x0BC1 <= code && code <= 0x0BC2) || // Mc [2] TAMIL VOWEL SIGN U..TAMIL VOWEL SIGN UU
  665. (0x0BC6 <= code && code <= 0x0BC8) || // Mc [3] TAMIL VOWEL SIGN E..TAMIL VOWEL SIGN AI
  666. (0x0BCA <= code && code <= 0x0BCC) || // Mc [3] TAMIL VOWEL SIGN O..TAMIL VOWEL SIGN AU
  667. (0x0C01 <= code && code <= 0x0C03) || // Mc [3] TELUGU SIGN CANDRABINDU..TELUGU SIGN VISARGA
  668. (0x0C41 <= code && code <= 0x0C44) || // Mc [4] TELUGU VOWEL SIGN U..TELUGU VOWEL SIGN VOCALIC RR
  669. (0x0C82 <= code && code <= 0x0C83) || // Mc [2] KANNADA SIGN ANUSVARA..KANNADA SIGN VISARGA
  670. 0x0CBE == code || // Mc KANNADA VOWEL SIGN AA
  671. (0x0CC0 <= code && code <= 0x0CC1) || // Mc [2] KANNADA VOWEL SIGN II..KANNADA VOWEL SIGN U
  672. (0x0CC3 <= code && code <= 0x0CC4) || // Mc [2] KANNADA VOWEL SIGN VOCALIC R..KANNADA VOWEL SIGN VOCALIC RR
  673. (0x0CC7 <= code && code <= 0x0CC8) || // Mc [2] KANNADA VOWEL SIGN EE..KANNADA VOWEL SIGN AI
  674. (0x0CCA <= code && code <= 0x0CCB) || // Mc [2] KANNADA VOWEL SIGN O..KANNADA VOWEL SIGN OO
  675. (0x0D02 <= code && code <= 0x0D03) || // Mc [2] MALAYALAM SIGN ANUSVARA..MALAYALAM SIGN VISARGA
  676. (0x0D3F <= code && code <= 0x0D40) || // Mc [2] MALAYALAM VOWEL SIGN I..MALAYALAM VOWEL SIGN II
  677. (0x0D46 <= code && code <= 0x0D48) || // Mc [3] MALAYALAM VOWEL SIGN E..MALAYALAM VOWEL SIGN AI
  678. (0x0D4A <= code && code <= 0x0D4C) || // Mc [3] MALAYALAM VOWEL SIGN O..MALAYALAM VOWEL SIGN AU
  679. (0x0D82 <= code && code <= 0x0D83) || // Mc [2] SINHALA SIGN ANUSVARAYA..SINHALA SIGN VISARGAYA
  680. (0x0DD0 <= code && code <= 0x0DD1) || // Mc [2] SINHALA VOWEL SIGN KETTI AEDA-PILLA..SINHALA VOWEL SIGN DIGA AEDA-PILLA
  681. (0x0DD8 <= code && code <= 0x0DDE) || // Mc [7] SINHALA VOWEL SIGN GAETTA-PILLA..SINHALA VOWEL SIGN KOMBUVA HAA GAYANUKITTA
  682. (0x0DF2 <= code && code <= 0x0DF3) || // Mc [2] SINHALA VOWEL SIGN DIGA GAETTA-PILLA..SINHALA VOWEL SIGN DIGA GAYANUKITTA
  683. 0x0E33 == code || // Lo THAI CHARACTER SARA AM
  684. 0x0EB3 == code || // Lo LAO VOWEL SIGN AM
  685. (0x0F3E <= code && code <= 0x0F3F) || // Mc [2] TIBETAN SIGN YAR TSHES..TIBETAN SIGN MAR TSHES
  686. 0x0F7F == code || // Mc TIBETAN SIGN RNAM BCAD
  687. 0x1031 == code || // Mc MYANMAR VOWEL SIGN E
  688. (0x103B <= code && code <= 0x103C) || // Mc [2] MYANMAR CONSONANT SIGN MEDIAL YA..MYANMAR CONSONANT SIGN MEDIAL RA
  689. (0x1056 <= code && code <= 0x1057) || // Mc [2] MYANMAR VOWEL SIGN VOCALIC R..MYANMAR VOWEL SIGN VOCALIC RR
  690. 0x1084 == code || // Mc MYANMAR VOWEL SIGN SHAN E
  691. 0x17B6 == code || // Mc KHMER VOWEL SIGN AA
  692. (0x17BE <= code && code <= 0x17C5) || // Mc [8] KHMER VOWEL SIGN OE..KHMER VOWEL SIGN AU
  693. (0x17C7 <= code && code <= 0x17C8) || // Mc [2] KHMER SIGN REAHMUK..KHMER SIGN YUUKALEAPINTU
  694. (0x1923 <= code && code <= 0x1926) || // Mc [4] LIMBU VOWEL SIGN EE..LIMBU VOWEL SIGN AU
  695. (0x1929 <= code && code <= 0x192B) || // Mc [3] LIMBU SUBJOINED LETTER YA..LIMBU SUBJOINED LETTER WA
  696. (0x1930 <= code && code <= 0x1931) || // Mc [2] LIMBU SMALL LETTER KA..LIMBU SMALL LETTER NGA
  697. (0x1933 <= code && code <= 0x1938) || // Mc [6] LIMBU SMALL LETTER TA..LIMBU SMALL LETTER LA
  698. (0x1A19 <= code && code <= 0x1A1A) || // Mc [2] BUGINESE VOWEL SIGN E..BUGINESE VOWEL SIGN O
  699. 0x1A55 == code || // Mc TAI THAM CONSONANT SIGN MEDIAL RA
  700. 0x1A57 == code || // Mc TAI THAM CONSONANT SIGN LA TANG LAI
  701. (0x1A6D <= code && code <= 0x1A72) || // Mc [6] TAI THAM VOWEL SIGN OY..TAI THAM VOWEL SIGN THAM AI
  702. 0x1B04 == code || // Mc BALINESE SIGN BISAH
  703. 0x1B35 == code || // Mc BALINESE VOWEL SIGN TEDUNG
  704. 0x1B3B == code || // Mc BALINESE VOWEL SIGN RA REPA TEDUNG
  705. (0x1B3D <= code && code <= 0x1B41) || // Mc [5] BALINESE VOWEL SIGN LA LENGA TEDUNG..BALINESE VOWEL SIGN TALING REPA TEDUNG
  706. (0x1B43 <= code && code <= 0x1B44) || // Mc [2] BALINESE VOWEL SIGN PEPET TEDUNG..BALINESE ADEG ADEG
  707. 0x1B82 == code || // Mc SUNDANESE SIGN PANGWISAD
  708. 0x1BA1 == code || // Mc SUNDANESE CONSONANT SIGN PAMINGKAL
  709. (0x1BA6 <= code && code <= 0x1BA7) || // Mc [2] SUNDANESE VOWEL SIGN PANAELAENG..SUNDANESE VOWEL SIGN PANOLONG
  710. 0x1BAA == code || // Mc SUNDANESE SIGN PAMAAEH
  711. 0x1BE7 == code || // Mc BATAK VOWEL SIGN E
  712. (0x1BEA <= code && code <= 0x1BEC) || // Mc [3] BATAK VOWEL SIGN I..BATAK VOWEL SIGN O
  713. 0x1BEE == code || // Mc BATAK VOWEL SIGN U
  714. (0x1BF2 <= code && code <= 0x1BF3) || // Mc [2] BATAK PANGOLAT..BATAK PANONGONAN
  715. (0x1C24 <= code && code <= 0x1C2B) || // Mc [8] LEPCHA SUBJOINED LETTER YA..LEPCHA VOWEL SIGN UU
  716. (0x1C34 <= code && code <= 0x1C35) || // Mc [2] LEPCHA CONSONANT SIGN NYIN-DO..LEPCHA CONSONANT SIGN KANG
  717. 0x1CE1 == code || // Mc VEDIC TONE ATHARVAVEDIC INDEPENDENT SVARITA
  718. (0x1CF2 <= code && code <= 0x1CF3) || // Mc [2] VEDIC SIGN ARDHAVISARGA..VEDIC SIGN ROTATED ARDHAVISARGA
  719. 0x1CF7 == code || // Mc VEDIC SIGN ATIKRAMA
  720. (0xA823 <= code && code <= 0xA824) || // Mc [2] SYLOTI NAGRI VOWEL SIGN A..SYLOTI NAGRI VOWEL SIGN I
  721. 0xA827 == code || // Mc SYLOTI NAGRI VOWEL SIGN OO
  722. (0xA880 <= code && code <= 0xA881) || // Mc [2] SAURASHTRA SIGN ANUSVARA..SAURASHTRA SIGN VISARGA
  723. (0xA8B4 <= code && code <= 0xA8C3) || // Mc [16] SAURASHTRA CONSONANT SIGN HAARU..SAURASHTRA VOWEL SIGN AU
  724. (0xA952 <= code && code <= 0xA953) || // Mc [2] REJANG CONSONANT SIGN H..REJANG VIRAMA
  725. 0xA983 == code || // Mc JAVANESE SIGN WIGNYAN
  726. (0xA9B4 <= code && code <= 0xA9B5) || // Mc [2] JAVANESE VOWEL SIGN TARUNG..JAVANESE VOWEL SIGN TOLONG
  727. (0xA9BA <= code && code <= 0xA9BB) || // Mc [2] JAVANESE VOWEL SIGN TALING..JAVANESE VOWEL SIGN DIRGA MURE
  728. (0xA9BD <= code && code <= 0xA9C0) || // Mc [4] JAVANESE CONSONANT SIGN KERET..JAVANESE PANGKON
  729. (0xAA2F <= code && code <= 0xAA30) || // Mc [2] CHAM VOWEL SIGN O..CHAM VOWEL SIGN AI
  730. (0xAA33 <= code && code <= 0xAA34) || // Mc [2] CHAM CONSONANT SIGN YA..CHAM CONSONANT SIGN RA
  731. 0xAA4D == code || // Mc CHAM CONSONANT SIGN FINAL H
  732. 0xAAEB == code || // Mc MEETEI MAYEK VOWEL SIGN II
  733. (0xAAEE <= code && code <= 0xAAEF) || // Mc [2] MEETEI MAYEK VOWEL SIGN AU..MEETEI MAYEK VOWEL SIGN AAU
  734. 0xAAF5 == code || // Mc MEETEI MAYEK VOWEL SIGN VISARGA
  735. (0xABE3 <= code && code <= 0xABE4) || // Mc [2] MEETEI MAYEK VOWEL SIGN ONAP..MEETEI MAYEK VOWEL SIGN INAP
  736. (0xABE6 <= code && code <= 0xABE7) || // Mc [2] MEETEI MAYEK VOWEL SIGN YENAP..MEETEI MAYEK VOWEL SIGN SOUNAP
  737. (0xABE9 <= code && code <= 0xABEA) || // Mc [2] MEETEI MAYEK VOWEL SIGN CHEINAP..MEETEI MAYEK VOWEL SIGN NUNG
  738. 0xABEC == code || // Mc MEETEI MAYEK LUM IYEK
  739. 0x11000 == code || // Mc BRAHMI SIGN CANDRABINDU
  740. 0x11002 == code || // Mc BRAHMI SIGN VISARGA
  741. 0x11082 == code || // Mc KAITHI SIGN VISARGA
  742. (0x110B0 <= code && code <= 0x110B2) || // Mc [3] KAITHI VOWEL SIGN AA..KAITHI VOWEL SIGN II
  743. (0x110B7 <= code && code <= 0x110B8) || // Mc [2] KAITHI VOWEL SIGN O..KAITHI VOWEL SIGN AU
  744. 0x1112C == code || // Mc CHAKMA VOWEL SIGN E
  745. 0x11182 == code || // Mc SHARADA SIGN VISARGA
  746. (0x111B3 <= code && code <= 0x111B5) || // Mc [3] SHARADA VOWEL SIGN AA..SHARADA VOWEL SIGN II
  747. (0x111BF <= code && code <= 0x111C0) || // Mc [2] SHARADA VOWEL SIGN AU..SHARADA SIGN VIRAMA
  748. (0x1122C <= code && code <= 0x1122E) || // Mc [3] KHOJKI VOWEL SIGN AA..KHOJKI VOWEL SIGN II
  749. (0x11232 <= code && code <= 0x11233) || // Mc [2] KHOJKI VOWEL SIGN O..KHOJKI VOWEL SIGN AU
  750. 0x11235 == code || // Mc KHOJKI SIGN VIRAMA
  751. (0x112E0 <= code && code <= 0x112E2) || // Mc [3] KHUDAWADI VOWEL SIGN AA..KHUDAWADI VOWEL SIGN II
  752. (0x11302 <= code && code <= 0x11303) || // Mc [2] GRANTHA SIGN ANUSVARA..GRANTHA SIGN VISARGA
  753. 0x1133F == code || // Mc GRANTHA VOWEL SIGN I
  754. (0x11341 <= code && code <= 0x11344) || // Mc [4] GRANTHA VOWEL SIGN U..GRANTHA VOWEL SIGN VOCALIC RR
  755. (0x11347 <= code && code <= 0x11348) || // Mc [2] GRANTHA VOWEL SIGN EE..GRANTHA VOWEL SIGN AI
  756. (0x1134B <= code && code <= 0x1134D) || // Mc [3] GRANTHA VOWEL SIGN OO..GRANTHA SIGN VIRAMA
  757. (0x11362 <= code && code <= 0x11363) || // Mc [2] GRANTHA VOWEL SIGN VOCALIC L..GRANTHA VOWEL SIGN VOCALIC LL
  758. (0x11435 <= code && code <= 0x11437) || // Mc [3] NEWA VOWEL SIGN AA..NEWA VOWEL SIGN II
  759. (0x11440 <= code && code <= 0x11441) || // Mc [2] NEWA VOWEL SIGN O..NEWA VOWEL SIGN AU
  760. 0x11445 == code || // Mc NEWA SIGN VISARGA
  761. (0x114B1 <= code && code <= 0x114B2) || // Mc [2] TIRHUTA VOWEL SIGN I..TIRHUTA VOWEL SIGN II
  762. 0x114B9 == code || // Mc TIRHUTA VOWEL SIGN E
  763. (0x114BB <= code && code <= 0x114BC) || // Mc [2] TIRHUTA VOWEL SIGN AI..TIRHUTA VOWEL SIGN O
  764. 0x114BE == code || // Mc TIRHUTA VOWEL SIGN AU
  765. 0x114C1 == code || // Mc TIRHUTA SIGN VISARGA
  766. (0x115B0 <= code && code <= 0x115B1) || // Mc [2] SIDDHAM VOWEL SIGN I..SIDDHAM VOWEL SIGN II
  767. (0x115B8 <= code && code <= 0x115BB) || // Mc [4] SIDDHAM VOWEL SIGN E..SIDDHAM VOWEL SIGN AU
  768. 0x115BE == code || // Mc SIDDHAM SIGN VISARGA
  769. (0x11630 <= code && code <= 0x11632) || // Mc [3] MODI VOWEL SIGN AA..MODI VOWEL SIGN II
  770. (0x1163B <= code && code <= 0x1163C) || // Mc [2] MODI VOWEL SIGN O..MODI VOWEL SIGN AU
  771. 0x1163E == code || // Mc MODI SIGN VISARGA
  772. 0x116AC == code || // Mc TAKRI SIGN VISARGA
  773. (0x116AE <= code && code <= 0x116AF) || // Mc [2] TAKRI VOWEL SIGN I..TAKRI VOWEL SIGN II
  774. 0x116B6 == code || // Mc TAKRI SIGN VIRAMA
  775. (0x11720 <= code && code <= 0x11721) || // Mc [2] AHOM VOWEL SIGN A..AHOM VOWEL SIGN AA
  776. 0x11726 == code || // Mc AHOM VOWEL SIGN E
  777. (0x11A07 <= code && code <= 0x11A08) || // Mc [2] ZANABAZAR SQUARE VOWEL SIGN AI..ZANABAZAR SQUARE VOWEL SIGN AU
  778. 0x11A39 == code || // Mc ZANABAZAR SQUARE SIGN VISARGA
  779. (0x11A57 <= code && code <= 0x11A58) || // Mc [2] SOYOMBO VOWEL SIGN AI..SOYOMBO VOWEL SIGN AU
  780. 0x11A97 == code || // Mc SOYOMBO SIGN VISARGA
  781. 0x11C2F == code || // Mc BHAIKSUKI VOWEL SIGN AA
  782. 0x11C3E == code || // Mc BHAIKSUKI SIGN VISARGA
  783. 0x11CA9 == code || // Mc MARCHEN SUBJOINED LETTER YA
  784. 0x11CB1 == code || // Mc MARCHEN VOWEL SIGN I
  785. 0x11CB4 == code || // Mc MARCHEN VOWEL SIGN O
  786. (0x16F51 <= code && code <= 0x16F7E) || // Mc [46] MIAO SIGN ASPIRATION..MIAO VOWEL SIGN NG
  787. 0x1D166 == code || // Mc MUSICAL SYMBOL COMBINING SPRECHGESANG STEM
  788. 0x1D16D == code // Mc MUSICAL SYMBOL COMBINING AUGMENTATION DOT
  789. ){
  790. return SpacingMark;
  791. }
  792. if(
  793. (0x1100 <= code && code <= 0x115F) || // Lo [96] HANGUL CHOSEONG KIYEOK..HANGUL CHOSEONG FILLER
  794. (0xA960 <= code && code <= 0xA97C) // Lo [29] HANGUL CHOSEONG TIKEUT-MIEUM..HANGUL CHOSEONG SSANGYEORINHIEUH
  795. ){
  796. return L;
  797. }
  798. if(
  799. (0x1160 <= code && code <= 0x11A7) || // Lo [72] HANGUL JUNGSEONG FILLER..HANGUL JUNGSEONG O-YAE
  800. (0xD7B0 <= code && code <= 0xD7C6) // Lo [23] HANGUL JUNGSEONG O-YEO..HANGUL JUNGSEONG ARAEA-E
  801. ){
  802. return V;
  803. }
  804. if(
  805. (0x11A8 <= code && code <= 0x11FF) || // Lo [88] HANGUL JONGSEONG KIYEOK..HANGUL JONGSEONG SSANGNIEUN
  806. (0xD7CB <= code && code <= 0xD7FB) // Lo [49] HANGUL JONGSEONG NIEUN-RIEUL..HANGUL JONGSEONG PHIEUPH-THIEUTH
  807. ){
  808. return T;
  809. }
  810. if(
  811. 0xAC00 == code || // Lo HANGUL SYLLABLE GA
  812. 0xAC1C == code || // Lo HANGUL SYLLABLE GAE
  813. 0xAC38 == code || // Lo HANGUL SYLLABLE GYA
  814. 0xAC54 == code || // Lo HANGUL SYLLABLE GYAE
  815. 0xAC70 == code || // Lo HANGUL SYLLABLE GEO
  816. 0xAC8C == code || // Lo HANGUL SYLLABLE GE
  817. 0xACA8 == code || // Lo HANGUL SYLLABLE GYEO
  818. 0xACC4 == code || // Lo HANGUL SYLLABLE GYE
  819. 0xACE0 == code || // Lo HANGUL SYLLABLE GO
  820. 0xACFC == code || // Lo HANGUL SYLLABLE GWA
  821. 0xAD18 == code || // Lo HANGUL SYLLABLE GWAE
  822. 0xAD34 == code || // Lo HANGUL SYLLABLE GOE
  823. 0xAD50 == code || // Lo HANGUL SYLLABLE GYO
  824. 0xAD6C == code || // Lo HANGUL SYLLABLE GU
  825. 0xAD88 == code || // Lo HANGUL SYLLABLE GWEO
  826. 0xADA4 == code || // Lo HANGUL SYLLABLE GWE
  827. 0xADC0 == code || // Lo HANGUL SYLLABLE GWI
  828. 0xADDC == code || // Lo HANGUL SYLLABLE GYU
  829. 0xADF8 == code || // Lo HANGUL SYLLABLE GEU
  830. 0xAE14 == code || // Lo HANGUL SYLLABLE GYI
  831. 0xAE30 == code || // Lo HANGUL SYLLABLE GI
  832. 0xAE4C == code || // Lo HANGUL SYLLABLE GGA
  833. 0xAE68 == code || // Lo HANGUL SYLLABLE GGAE
  834. 0xAE84 == code || // Lo HANGUL SYLLABLE GGYA
  835. 0xAEA0 == code || // Lo HANGUL SYLLABLE GGYAE
  836. 0xAEBC == code || // Lo HANGUL SYLLABLE GGEO
  837. 0xAED8 == code || // Lo HANGUL SYLLABLE GGE
  838. 0xAEF4 == code || // Lo HANGUL SYLLABLE GGYEO
  839. 0xAF10 == code || // Lo HANGUL SYLLABLE GGYE
  840. 0xAF2C == code || // Lo HANGUL SYLLABLE GGO
  841. 0xAF48 == code || // Lo HANGUL SYLLABLE GGWA
  842. 0xAF64 == code || // Lo HANGUL SYLLABLE GGWAE
  843. 0xAF80 == code || // Lo HANGUL SYLLABLE GGOE
  844. 0xAF9C == code || // Lo HANGUL SYLLABLE GGYO
  845. 0xAFB8 == code || // Lo HANGUL SYLLABLE GGU
  846. 0xAFD4 == code || // Lo HANGUL SYLLABLE GGWEO
  847. 0xAFF0 == code || // Lo HANGUL SYLLABLE GGWE
  848. 0xB00C == code || // Lo HANGUL SYLLABLE GGWI
  849. 0xB028 == code || // Lo HANGUL SYLLABLE GGYU
  850. 0xB044 == code || // Lo HANGUL SYLLABLE GGEU
  851. 0xB060 == code || // Lo HANGUL SYLLABLE GGYI
  852. 0xB07C == code || // Lo HANGUL SYLLABLE GGI
  853. 0xB098 == code || // Lo HANGUL SYLLABLE NA
  854. 0xB0B4 == code || // Lo HANGUL SYLLABLE NAE
  855. 0xB0D0 == code || // Lo HANGUL SYLLABLE NYA
  856. 0xB0EC == code || // Lo HANGUL SYLLABLE NYAE
  857. 0xB108 == code || // Lo HANGUL SYLLABLE NEO
  858. 0xB124 == code || // Lo HANGUL SYLLABLE NE
  859. 0xB140 == code || // Lo HANGUL SYLLABLE NYEO
  860. 0xB15C == code || // Lo HANGUL SYLLABLE NYE
  861. 0xB178 == code || // Lo HANGUL SYLLABLE NO
  862. 0xB194 == code || // Lo HANGUL SYLLABLE NWA
  863. 0xB1B0 == code || // Lo HANGUL SYLLABLE NWAE
  864. 0xB1CC == code || // Lo HANGUL SYLLABLE NOE
  865. 0xB1E8 == code || // Lo HANGUL SYLLABLE NYO
  866. 0xB204 == code || // Lo HANGUL SYLLABLE NU
  867. 0xB220 == code || // Lo HANGUL SYLLABLE NWEO
  868. 0xB23C == code || // Lo HANGUL SYLLABLE NWE
  869. 0xB258 == code || // Lo HANGUL SYLLABLE NWI
  870. 0xB274 == code || // Lo HANGUL SYLLABLE NYU
  871. 0xB290 == code || // Lo HANGUL SYLLABLE NEU
  872. 0xB2AC == code || // Lo HANGUL SYLLABLE NYI
  873. 0xB2C8 == code || // Lo HANGUL SYLLABLE NI
  874. 0xB2E4 == code || // Lo HANGUL SYLLABLE DA
  875. 0xB300 == code || // Lo HANGUL SYLLABLE DAE
  876. 0xB31C == code || // Lo HANGUL SYLLABLE DYA
  877. 0xB338 == code || // Lo HANGUL SYLLABLE DYAE
  878. 0xB354 == code || // Lo HANGUL SYLLABLE DEO
  879. 0xB370 == code || // Lo HANGUL SYLLABLE DE
  880. 0xB38C == code || // Lo HANGUL SYLLABLE DYEO
  881. 0xB3A8 == code || // Lo HANGUL SYLLABLE DYE
  882. 0xB3C4 == code || // Lo HANGUL SYLLABLE DO
  883. 0xB3E0 == code || // Lo HANGUL SYLLABLE DWA
  884. 0xB3FC == code || // Lo HANGUL SYLLABLE DWAE
  885. 0xB418 == code || // Lo HANGUL SYLLABLE DOE
  886. 0xB434 == code || // Lo HANGUL SYLLABLE DYO
  887. 0xB450 == code || // Lo HANGUL SYLLABLE DU
  888. 0xB46C == code || // Lo HANGUL SYLLABLE DWEO
  889. 0xB488 == code || // Lo HANGUL SYLLABLE DWE
  890. 0xB4A4 == code || // Lo HANGUL SYLLABLE DWI
  891. 0xB4C0 == code || // Lo HANGUL SYLLABLE DYU
  892. 0xB4DC == code || // Lo HANGUL SYLLABLE DEU
  893. 0xB4F8 == code || // Lo HANGUL SYLLABLE DYI
  894. 0xB514 == code || // Lo HANGUL SYLLABLE DI
  895. 0xB530 == code || // Lo HANGUL SYLLABLE DDA
  896. 0xB54C == code || // Lo HANGUL SYLLABLE DDAE
  897. 0xB568 == code || // Lo HANGUL SYLLABLE DDYA
  898. 0xB584 == code || // Lo HANGUL SYLLABLE DDYAE
  899. 0xB5A0 == code || // Lo HANGUL SYLLABLE DDEO
  900. 0xB5BC == code || // Lo HANGUL SYLLABLE DDE
  901. 0xB5D8 == code || // Lo HANGUL SYLLABLE DDYEO
  902. 0xB5F4 == code || // Lo HANGUL SYLLABLE DDYE
  903. 0xB610 == code || // Lo HANGUL SYLLABLE DDO
  904. 0xB62C == code || // Lo HANGUL SYLLABLE DDWA
  905. 0xB648 == code || // Lo HANGUL SYLLABLE DDWAE
  906. 0xB664 == code || // Lo HANGUL SYLLABLE DDOE
  907. 0xB680 == code || // Lo HANGUL SYLLABLE DDYO
  908. 0xB69C == code || // Lo HANGUL SYLLABLE DDU
  909. 0xB6B8 == code || // Lo HANGUL SYLLABLE DDWEO
  910. 0xB6D4 == code || // Lo HANGUL SYLLABLE DDWE
  911. 0xB6F0 == code || // Lo HANGUL SYLLABLE DDWI
  912. 0xB70C == code || // Lo HANGUL SYLLABLE DDYU
  913. 0xB728 == code || // Lo HANGUL SYLLABLE DDEU
  914. 0xB744 == code || // Lo HANGUL SYLLABLE DDYI
  915. 0xB760 == code || // Lo HANGUL SYLLABLE DDI
  916. 0xB77C == code || // Lo HANGUL SYLLABLE RA
  917. 0xB798 == code || // Lo HANGUL SYLLABLE RAE
  918. 0xB7B4 == code || // Lo HANGUL SYLLABLE RYA
  919. 0xB7D0 == code || // Lo HANGUL SYLLABLE RYAE
  920. 0xB7EC == code || // Lo HANGUL SYLLABLE REO
  921. 0xB808 == code || // Lo HANGUL SYLLABLE RE
  922. 0xB824 == code || // Lo HANGUL SYLLABLE RYEO
  923. 0xB840 == code || // Lo HANGUL SYLLABLE RYE
  924. 0xB85C == code || // Lo HANGUL SYLLABLE RO
  925. 0xB878 == code || // Lo HANGUL SYLLABLE RWA
  926. 0xB894 == code || // Lo HANGUL SYLLABLE RWAE
  927. 0xB8B0 == code || // Lo HANGUL SYLLABLE ROE
  928. 0xB8CC == code || // Lo HANGUL SYLLABLE RYO
  929. 0xB8E8 == code || // Lo HANGUL SYLLABLE RU
  930. 0xB904 == code || // Lo HANGUL SYLLABLE RWEO
  931. 0xB920 == code || // Lo HANGUL SYLLABLE RWE
  932. 0xB93C == code || // Lo HANGUL SYLLABLE RWI
  933. 0xB958 == code || // Lo HANGUL SYLLABLE RYU
  934. 0xB974 == code || // Lo HANGUL SYLLABLE REU
  935. 0xB990 == code || // Lo HANGUL SYLLABLE RYI
  936. 0xB9AC == code || // Lo HANGUL SYLLABLE RI
  937. 0xB9C8 == code || // Lo HANGUL SYLLABLE MA
  938. 0xB9E4 == code || // Lo HANGUL SYLLABLE MAE
  939. 0xBA00 == code || // Lo HANGUL SYLLABLE MYA
  940. 0xBA1C == code || // Lo HANGUL SYLLABLE MYAE
  941. 0xBA38 == code || // Lo HANGUL SYLLABLE MEO
  942. 0xBA54 == code || // Lo HANGUL SYLLABLE ME
  943. 0xBA70 == code || // Lo HANGUL SYLLABLE MYEO
  944. 0xBA8C == code || // Lo HANGUL SYLLABLE MYE
  945. 0xBAA8 == code || // Lo HANGUL SYLLABLE MO
  946. 0xBAC4 == code || // Lo HANGUL SYLLABLE MWA
  947. 0xBAE0 == code || // Lo HANGUL SYLLABLE MWAE
  948. 0xBAFC == code || // Lo HANGUL SYLLABLE MOE
  949. 0xBB18 == code || // Lo HANGUL SYLLABLE MYO
  950. 0xBB34 == code || // Lo HANGUL SYLLABLE MU
  951. 0xBB50 == code || // Lo HANGUL SYLLABLE MWEO
  952. 0xBB6C == code || // Lo HANGUL SYLLABLE MWE
  953. 0xBB88 == code || // Lo HANGUL SYLLABLE MWI
  954. 0xBBA4 == code || // Lo HANGUL SYLLABLE MYU
  955. 0xBBC0 == code || // Lo HANGUL SYLLABLE MEU
  956. 0xBBDC == code || // Lo HANGUL SYLLABLE MYI
  957. 0xBBF8 == code || // Lo HANGUL SYLLABLE MI
  958. 0xBC14 == code || // Lo HANGUL SYLLABLE BA
  959. 0xBC30 == code || // Lo HANGUL SYLLABLE BAE
  960. 0xBC4C == code || // Lo HANGUL SYLLABLE BYA
  961. 0xBC68 == code || // Lo HANGUL SYLLABLE BYAE
  962. 0xBC84 == code || // Lo HANGUL SYLLABLE BEO
  963. 0xBCA0 == code || // Lo HANGUL SYLLABLE BE
  964. 0xBCBC == code || // Lo HANGUL SYLLABLE BYEO
  965. 0xBCD8 == code || // Lo HANGUL SYLLABLE BYE
  966. 0xBCF4 == code || // Lo HANGUL SYLLABLE BO
  967. 0xBD10 == code || // Lo HANGUL SYLLABLE BWA
  968. 0xBD2C == code || // Lo HANGUL SYLLABLE BWAE
  969. 0xBD48 == code || // Lo HANGUL SYLLABLE BOE
  970. 0xBD64 == code || // Lo HANGUL SYLLABLE BYO
  971. 0xBD80 == code || // Lo HANGUL SYLLABLE BU
  972. 0xBD9C == code || // Lo HANGUL SYLLABLE BWEO
  973. 0xBDB8 == code || // Lo HANGUL SYLLABLE BWE
  974. 0xBDD4 == code || // Lo HANGUL SYLLABLE BWI
  975. 0xBDF0 == code || // Lo HANGUL SYLLABLE BYU
  976. 0xBE0C == code || // Lo HANGUL SYLLABLE BEU
  977. 0xBE28 == code || // Lo HANGUL SYLLABLE BYI
  978. 0xBE44 == code || // Lo HANGUL SYLLABLE BI
  979. 0xBE60 == code || // Lo HANGUL SYLLABLE BBA
  980. 0xBE7C == code || // Lo HANGUL SYLLABLE BBAE
  981. 0xBE98 == code || // Lo HANGUL SYLLABLE BBYA
  982. 0xBEB4 == code || // Lo HANGUL SYLLABLE BBYAE
  983. 0xBED0 == code || // Lo HANGUL SYLLABLE BBEO
  984. 0xBEEC == code || // Lo HANGUL SYLLABLE BBE
  985. 0xBF08 == code || // Lo HANGUL SYLLABLE BBYEO
  986. 0xBF24 == code || // Lo HANGUL SYLLABLE BBYE
  987. 0xBF40 == code || // Lo HANGUL SYLLABLE BBO
  988. 0xBF5C == code || // Lo HANGUL SYLLABLE BBWA
  989. 0xBF78 == code || // Lo HANGUL SYLLABLE BBWAE
  990. 0xBF94 == code || // Lo HANGUL SYLLABLE BBOE
  991. 0xBFB0 == code || // Lo HANGUL SYLLABLE BBYO
  992. 0xBFCC == code || // Lo HANGUL SYLLABLE BBU
  993. 0xBFE8 == code || // Lo HANGUL SYLLABLE BBWEO
  994. 0xC004 == code || // Lo HANGUL SYLLABLE BBWE
  995. 0xC020 == code || // Lo HANGUL SYLLABLE BBWI
  996. 0xC03C == code || // Lo HANGUL SYLLABLE BBYU
  997. 0xC058 == code || // Lo HANGUL SYLLABLE BBEU
  998. 0xC074 == code || // Lo HANGUL SYLLABLE BBYI
  999. 0xC090 == code || // Lo HANGUL SYLLABLE BBI
  1000. 0xC0AC == code || // Lo HANGUL SYLLABLE SA
  1001. 0xC0C8 == code || // Lo HANGUL SYLLABLE SAE
  1002. 0xC0E4 == code || // Lo HANGUL SYLLABLE SYA
  1003. 0xC100 == code || // Lo HANGUL SYLLABLE SYAE
  1004. 0xC11C == code || // Lo HANGUL SYLLABLE SEO
  1005. 0xC138 == code || // Lo HANGUL SYLLABLE SE
  1006. 0xC154 == code || // Lo HANGUL SYLLABLE SYEO
  1007. 0xC170 == code || // Lo HANGUL SYLLABLE SYE
  1008. 0xC18C == code || // Lo HANGUL SYLLABLE SO
  1009. 0xC1A8 == code || // Lo HANGUL SYLLABLE SWA
  1010. 0xC1C4 == code || // Lo HANGUL SYLLABLE SWAE
  1011. 0xC1E0 == code || // Lo HANGUL SYLLABLE SOE
  1012. 0xC1FC == code || // Lo HANGUL SYLLABLE SYO
  1013. 0xC218 == code || // Lo HANGUL SYLLABLE SU
  1014. 0xC234 == code || // Lo HANGUL SYLLABLE SWEO
  1015. 0xC250 == code || // Lo HANGUL SYLLABLE SWE
  1016. 0xC26C == code || // Lo HANGUL SYLLABLE SWI
  1017. 0xC288 == code || // Lo HANGUL SYLLABLE SYU
  1018. 0xC2A4 == code || // Lo HANGUL SYLLABLE SEU
  1019. 0xC2C0 == code || // Lo HANGUL SYLLABLE SYI
  1020. 0xC2DC == code || // Lo HANGUL SYLLABLE SI
  1021. 0xC2F8 == code || // Lo HANGUL SYLLABLE SSA
  1022. 0xC314 == code || // Lo HANGUL SYLLABLE SSAE
  1023. 0xC330 == code || // Lo HANGUL SYLLABLE SSYA
  1024. 0xC34C == code || // Lo HANGUL SYLLABLE SSYAE
  1025. 0xC368 == code || // Lo HANGUL SYLLABLE SSEO
  1026. 0xC384 == code || // Lo HANGUL SYLLABLE SSE
  1027. 0xC3A0 == code || // Lo HANGUL SYLLABLE SSYEO
  1028. 0xC3BC == code || // Lo HANGUL SYLLABLE SSYE
  1029. 0xC3D8 == code || // Lo HANGUL SYLLABLE SSO
  1030. 0xC3F4 == code || // Lo HANGUL SYLLABLE SSWA
  1031. 0xC410 == code || // Lo HANGUL SYLLABLE SSWAE
  1032. 0xC42C == code || // Lo HANGUL SYLLABLE SSOE
  1033. 0xC448 == code || // Lo HANGUL SYLLABLE SSYO
  1034. 0xC464 == code || // Lo HANGUL SYLLABLE SSU
  1035. 0xC480 == code || // Lo HANGUL SYLLABLE SSWEO
  1036. 0xC49C == code || // Lo HANGUL SYLLABLE SSWE
  1037. 0xC4B8 == code || // Lo HANGUL SYLLABLE SSWI
  1038. 0xC4D4 == code || // Lo HANGUL SYLLABLE SSYU
  1039. 0xC4F0 == code || // Lo HANGUL SYLLABLE SSEU
  1040. 0xC50C == code || // Lo HANGUL SYLLABLE SSYI
  1041. 0xC528 == code || // Lo HANGUL SYLLABLE SSI
  1042. 0xC544 == code || // Lo HANGUL SYLLABLE A
  1043. 0xC560 == code || // Lo HANGUL SYLLABLE AE
  1044. 0xC57C == code || // Lo HANGUL SYLLABLE YA
  1045. 0xC598 == code || // Lo HANGUL SYLLABLE YAE
  1046. 0xC5B4 == code || // Lo HANGUL SYLLABLE EO
  1047. 0xC5D0 == code || // Lo HANGUL SYLLABLE E
  1048. 0xC5EC == code || // Lo HANGUL SYLLABLE YEO
  1049. 0xC608 == code || // Lo HANGUL SYLLABLE YE
  1050. 0xC624 == code || // Lo HANGUL SYLLABLE O
  1051. 0xC640 == code || // Lo HANGUL SYLLABLE WA
  1052. 0xC65C == code || // Lo HANGUL SYLLABLE WAE
  1053. 0xC678 == code || // Lo HANGUL SYLLABLE OE
  1054. 0xC694 == code || // Lo HANGUL SYLLABLE YO
  1055. 0xC6B0 == code || // Lo HANGUL SYLLABLE U
  1056. 0xC6CC == code || // Lo HANGUL SYLLABLE WEO
  1057. 0xC6E8 == code || // Lo HANGUL SYLLABLE WE
  1058. 0xC704 == code || // Lo HANGUL SYLLABLE WI
  1059. 0xC720 == code || // Lo HANGUL SYLLABLE YU
  1060. 0xC73C == code || // Lo HANGUL SYLLABLE EU
  1061. 0xC758 == code || // Lo HANGUL SYLLABLE YI
  1062. 0xC774 == code || // Lo HANGUL SYLLABLE I
  1063. 0xC790 == code || // Lo HANGUL SYLLABLE JA
  1064. 0xC7AC == code || // Lo HANGUL SYLLABLE JAE
  1065. 0xC7C8 == code || // Lo HANGUL SYLLABLE JYA
  1066. 0xC7E4 == code || // Lo HANGUL SYLLABLE JYAE
  1067. 0xC800 == code || // Lo HANGUL SYLLABLE JEO
  1068. 0xC81C == code || // Lo HANGUL SYLLABLE JE
  1069. 0xC838 == code || // Lo HANGUL SYLLABLE JYEO
  1070. 0xC854 == code || // Lo HANGUL SYLLABLE JYE
  1071. 0xC870 == code || // Lo HANGUL SYLLABLE JO
  1072. 0xC88C == code || // Lo HANGUL SYLLABLE JWA
  1073. 0xC8A8 == code || // Lo HANGUL SYLLABLE JWAE
  1074. 0xC8C4 == code || // Lo HANGUL SYLLABLE JOE
  1075. 0xC8E0 == code || // Lo HANGUL SYLLABLE JYO
  1076. 0xC8FC == code || // Lo HANGUL SYLLABLE JU
  1077. 0xC918 == code || // Lo HANGUL SYLLABLE JWEO
  1078. 0xC934 == code || // Lo HANGUL SYLLABLE JWE
  1079. 0xC950 == code || // Lo HANGUL SYLLABLE JWI
  1080. 0xC96C == code || // Lo HANGUL SYLLABLE JYU
  1081. 0xC988 == code || // Lo HANGUL SYLLABLE JEU
  1082. 0xC9A4 == code || // Lo HANGUL SYLLABLE JYI
  1083. 0xC9C0 == code || // Lo HANGUL SYLLABLE JI
  1084. 0xC9DC == code || // Lo HANGUL SYLLABLE JJA
  1085. 0xC9F8 == code || // Lo HANGUL SYLLABLE JJAE
  1086. 0xCA14 == code || // Lo HANGUL SYLLABLE JJYA
  1087. 0xCA30 == code || // Lo HANGUL SYLLABLE JJYAE
  1088. 0xCA4C == code || // Lo HANGUL SYLLABLE JJEO
  1089. 0xCA68 == code || // Lo HANGUL SYLLABLE JJE
  1090. 0xCA84 == code || // Lo HANGUL SYLLABLE JJYEO
  1091. 0xCAA0 == code || // Lo HANGUL SYLLABLE JJYE
  1092. 0xCABC == code || // Lo HANGUL SYLLABLE JJO
  1093. 0xCAD8 == code || // Lo HANGUL SYLLABLE JJWA
  1094. 0xCAF4 == code || // Lo HANGUL SYLLABLE JJWAE
  1095. 0xCB10 == code || // Lo HANGUL SYLLABLE JJOE
  1096. 0xCB2C == code || // Lo HANGUL SYLLABLE JJYO
  1097. 0xCB48 == code || // Lo HANGUL SYLLABLE JJU
  1098. 0xCB64 == code || // Lo HANGUL SYLLABLE JJWEO
  1099. 0xCB80 == code || // Lo HANGUL SYLLABLE JJWE
  1100. 0xCB9C == code || // Lo HANGUL SYLLABLE JJWI
  1101. 0xCBB8 == code || // Lo HANGUL SYLLABLE JJYU
  1102. 0xCBD4 == code || // Lo HANGUL SYLLABLE JJEU
  1103. 0xCBF0 == code || // Lo HANGUL SYLLABLE JJYI
  1104. 0xCC0C == code || // Lo HANGUL SYLLABLE JJI
  1105. 0xCC28 == code || // Lo HANGUL SYLLABLE CA
  1106. 0xCC44 == code || // Lo HANGUL SYLLABLE CAE
  1107. 0xCC60 == code || // Lo HANGUL SYLLABLE CYA
  1108. 0xCC7C == code || // Lo HANGUL SYLLABLE CYAE
  1109. 0xCC98 == code || // Lo HANGUL SYLLABLE CEO
  1110. 0xCCB4 == code || // Lo HANGUL SYLLABLE CE
  1111. 0xCCD0 == code || // Lo HANGUL SYLLABLE CYEO
  1112. 0xCCEC == code || // Lo HANGUL SYLLABLE CYE
  1113. 0xCD08 == code || // Lo HANGUL SYLLABLE CO
  1114. 0xCD24 == code || // Lo HANGUL SYLLABLE CWA
  1115. 0xCD40 == code || // Lo HANGUL SYLLABLE CWAE
  1116. 0xCD5C == code || // Lo HANGUL SYLLABLE COE
  1117. 0xCD78 == code || // Lo HANGUL SYLLABLE CYO
  1118. 0xCD94 == code || // Lo HANGUL SYLLABLE CU
  1119. 0xCDB0 == code || // Lo HANGUL SYLLABLE CWEO
  1120. 0xCDCC == code || // Lo HANGUL SYLLABLE CWE
  1121. 0xCDE8 == code || // Lo HANGUL SYLLABLE CWI
  1122. 0xCE04 == code || // Lo HANGUL SYLLABLE CYU
  1123. 0xCE20 == code || // Lo HANGUL SYLLABLE CEU
  1124. 0xCE3C == code || // Lo HANGUL SYLLABLE CYI
  1125. 0xCE58 == code || // Lo HANGUL SYLLABLE CI
  1126. 0xCE74 == code || // Lo HANGUL SYLLABLE KA
  1127. 0xCE90 == code || // Lo HANGUL SYLLABLE KAE
  1128. 0xCEAC == code || // Lo HANGUL SYLLABLE KYA
  1129. 0xCEC8 == code || // Lo HANGUL SYLLABLE KYAE
  1130. 0xCEE4 == code || // Lo HANGUL SYLLABLE KEO
  1131. 0xCF00 == code || // Lo HANGUL SYLLABLE KE
  1132. 0xCF1C == code || // Lo HANGUL SYLLABLE KYEO
  1133. 0xCF38 == code || // Lo HANGUL SYLLABLE KYE
  1134. 0xCF54 == code || // Lo HANGUL SYLLABLE KO
  1135. 0xCF70 == code || // Lo HANGUL SYLLABLE KWA
  1136. 0xCF8C == code || // Lo HANGUL SYLLABLE KWAE
  1137. 0xCFA8 == code || // Lo HANGUL SYLLABLE KOE
  1138. 0xCFC4 == code || // Lo HANGUL SYLLABLE KYO
  1139. 0xCFE0 == code || // Lo HANGUL SYLLABLE KU
  1140. 0xCFFC == code || // Lo HANGUL SYLLABLE KWEO
  1141. 0xD018 == code || // Lo HANGUL SYLLABLE KWE
  1142. 0xD034 == code || // Lo HANGUL SYLLABLE KWI
  1143. 0xD050 == code || // Lo HANGUL SYLLABLE KYU
  1144. 0xD06C == code || // Lo HANGUL SYLLABLE KEU
  1145. 0xD088 == code || // Lo HANGUL SYLLABLE KYI
  1146. 0xD0A4 == code || // Lo HANGUL SYLLABLE KI
  1147. 0xD0C0 == code || // Lo HANGUL SYLLABLE TA
  1148. 0xD0DC == code || // Lo HANGUL SYLLABLE TAE
  1149. 0xD0F8 == code || // Lo HANGUL SYLLABLE TYA
  1150. 0xD114 == code || // Lo HANGUL SYLLABLE TYAE
  1151. 0xD130 == code || // Lo HANGUL SYLLABLE TEO
  1152. 0xD14C == code || // Lo HANGUL SYLLABLE TE
  1153. 0xD168 == code || // Lo HANGUL SYLLABLE TYEO
  1154. 0xD184 == code || // Lo HANGUL SYLLABLE TYE
  1155. 0xD1A0 == code || // Lo HANGUL SYLLABLE TO
  1156. 0xD1BC == code || // Lo HANGUL SYLLABLE TWA
  1157. 0xD1D8 == code || // Lo HANGUL SYLLABLE TWAE
  1158. 0xD1F4 == code || // Lo HANGUL SYLLABLE TOE
  1159. 0xD210 == code || // Lo HANGUL SYLLABLE TYO
  1160. 0xD22C == code || // Lo HANGUL SYLLABLE TU
  1161. 0xD248 == code || // Lo HANGUL SYLLABLE TWEO
  1162. 0xD264 == code || // Lo HANGUL SYLLABLE TWE
  1163. 0xD280 == code || // Lo HANGUL SYLLABLE TWI
  1164. 0xD29C == code || // Lo HANGUL SYLLABLE TYU
  1165. 0xD2B8 == code || // Lo HANGUL SYLLABLE TEU
  1166. 0xD2D4 == code || // Lo HANGUL SYLLABLE TYI
  1167. 0xD2F0 == code || // Lo HANGUL SYLLABLE TI
  1168. 0xD30C == code || // Lo HANGUL SYLLABLE PA
  1169. 0xD328 == code || // Lo HANGUL SYLLABLE PAE
  1170. 0xD344 == code || // Lo HANGUL SYLLABLE PYA
  1171. 0xD360 == code || // Lo HANGUL SYLLABLE PYAE
  1172. 0xD37C == code || // Lo HANGUL SYLLABLE PEO
  1173. 0xD398 == code || // Lo HANGUL SYLLABLE PE
  1174. 0xD3B4 == code || // Lo HANGUL SYLLABLE PYEO
  1175. 0xD3D0 == code || // Lo HANGUL SYLLABLE PYE
  1176. 0xD3EC == code || // Lo HANGUL SYLLABLE PO
  1177. 0xD408 == code || // Lo HANGUL SYLLABLE PWA
  1178. 0xD424 == code || // Lo HANGUL SYLLABLE PWAE
  1179. 0xD440 == code || // Lo HANGUL SYLLABLE POE
  1180. 0xD45C == code || // Lo HANGUL SYLLABLE PYO
  1181. 0xD478 == code || // Lo HANGUL SYLLABLE PU
  1182. 0xD494 == code || // Lo HANGUL SYLLABLE PWEO
  1183. 0xD4B0 == code || // Lo HANGUL SYLLABLE PWE
  1184. 0xD4CC == code || // Lo HANGUL SYLLABLE PWI
  1185. 0xD4E8 == code || // Lo HANGUL SYLLABLE PYU
  1186. 0xD504 == code || // Lo HANGUL SYLLABLE PEU
  1187. 0xD520 == code || // Lo HANGUL SYLLABLE PYI
  1188. 0xD53C == code || // Lo HANGUL SYLLABLE PI
  1189. 0xD558 == code || // Lo HANGUL SYLLABLE HA
  1190. 0xD574 == code || // Lo HANGUL SYLLABLE HAE
  1191. 0xD590 == code || // Lo HANGUL SYLLABLE HYA
  1192. 0xD5AC == code || // Lo HANGUL SYLLABLE HYAE
  1193. 0xD5C8 == code || // Lo HANGUL SYLLABLE HEO
  1194. 0xD5E4 == code || // Lo HANGUL SYLLABLE HE
  1195. 0xD600 == code || // Lo HANGUL SYLLABLE HYEO
  1196. 0xD61C == code || // Lo HANGUL SYLLABLE HYE
  1197. 0xD638 == code || // Lo HANGUL SYLLABLE HO
  1198. 0xD654 == code || // Lo HANGUL SYLLABLE HWA
  1199. 0xD670 == code || // Lo HANGUL SYLLABLE HWAE
  1200. 0xD68C == code || // Lo HANGUL SYLLABLE HOE
  1201. 0xD6A8 == code || // Lo HANGUL SYLLABLE HYO
  1202. 0xD6C4 == code || // Lo HANGUL SYLLABLE HU
  1203. 0xD6E0 == code || // Lo HANGUL SYLLABLE HWEO
  1204. 0xD6FC == code || // Lo HANGUL SYLLABLE HWE
  1205. 0xD718 == code || // Lo HANGUL SYLLABLE HWI
  1206. 0xD734 == code || // Lo HANGUL SYLLABLE HYU
  1207. 0xD750 == code || // Lo HANGUL SYLLABLE HEU
  1208. 0xD76C == code || // Lo HANGUL SYLLABLE HYI
  1209. 0xD788 == code // Lo HANGUL SYLLABLE HI
  1210. ){
  1211. return LV;
  1212. }
  1213. if(
  1214. (0xAC01 <= code && code <= 0xAC1B) || // Lo [27] HANGUL SYLLABLE GAG..HANGUL SYLLABLE GAH
  1215. (0xAC1D <= code && code <= 0xAC37) || // Lo [27] HANGUL SYLLABLE GAEG..HANGUL SYLLABLE GAEH
  1216. (0xAC39 <= code && code <= 0xAC53) || // Lo [27] HANGUL SYLLABLE GYAG..HANGUL SYLLABLE GYAH
  1217. (0xAC55 <= code && code <= 0xAC6F) || // Lo [27] HANGUL SYLLABLE GYAEG..HANGUL SYLLABLE GYAEH
  1218. (0xAC71 <= code && code <= 0xAC8B) || // Lo [27] HANGUL SYLLABLE GEOG..HANGUL SYLLABLE GEOH
  1219. (0xAC8D <= code && code <= 0xACA7) || // Lo [27] HANGUL SYLLABLE GEG..HANGUL SYLLABLE GEH
  1220. (0xACA9 <= code && code <= 0xACC3) || // Lo [27] HANGUL SYLLABLE GYEOG..HANGUL SYLLABLE GYEOH
  1221. (0xACC5 <= code && code <= 0xACDF) || // Lo [27] HANGUL SYLLABLE GYEG..HANGUL SYLLABLE GYEH
  1222. (0xACE1 <= code && code <= 0xACFB) || // Lo [27] HANGUL SYLLABLE GOG..HANGUL SYLLABLE GOH
  1223. (0xACFD <= code && code <= 0xAD17) || // Lo [27] HANGUL SYLLABLE GWAG..HANGUL SYLLABLE GWAH
  1224. (0xAD19 <= code && code <= 0xAD33) || // Lo [27] HANGUL SYLLABLE GWAEG..HANGUL SYLLABLE GWAEH
  1225. (0xAD35 <= code && code <= 0xAD4F) || // Lo [27] HANGUL SYLLABLE GOEG..HANGUL SYLLABLE GOEH
  1226. (0xAD51 <= code && code <= 0xAD6B) || // Lo [27] HANGUL SYLLABLE GYOG..HANGUL SYLLABLE GYOH
  1227. (0xAD6D <= code && code <= 0xAD87) || // Lo [27] HANGUL SYLLABLE GUG..HANGUL SYLLABLE GUH
  1228. (0xAD89 <= code && code <= 0xADA3) || // Lo [27] HANGUL SYLLABLE GWEOG..HANGUL SYLLABLE GWEOH
  1229. (0xADA5 <= code && code <= 0xADBF) || // Lo [27] HANGUL SYLLABLE GWEG..HANGUL SYLLABLE GWEH
  1230. (0xADC1 <= code && code <= 0xADDB) || // Lo [27] HANGUL SYLLABLE GWIG..HANGUL SYLLABLE GWIH
  1231. (0xADDD <= code && code <= 0xADF7) || // Lo [27] HANGUL SYLLABLE GYUG..HANGUL SYLLABLE GYUH
  1232. (0xADF9 <= code && code <= 0xAE13) || // Lo [27] HANGUL SYLLABLE GEUG..HANGUL SYLLABLE GEUH
  1233. (0xAE15 <= code && code <= 0xAE2F) || // Lo [27] HANGUL SYLLABLE GYIG..HANGUL SYLLABLE GYIH
  1234. (0xAE31 <= code && code <= 0xAE4B) || // Lo [27] HANGUL SYLLABLE GIG..HANGUL SYLLABLE GIH
  1235. (0xAE4D <= code && code <= 0xAE67) || // Lo [27] HANGUL SYLLABLE GGAG..HANGUL SYLLABLE GGAH
  1236. (0xAE69 <= code && code <= 0xAE83) || // Lo [27] HANGUL SYLLABLE GGAEG..HANGUL SYLLABLE GGAEH
  1237. (0xAE85 <= code && code <= 0xAE9F) || // Lo [27] HANGUL SYLLABLE GGYAG..HANGUL SYLLABLE GGYAH
  1238. (0xAEA1 <= code && code <= 0xAEBB) || // Lo [27] HANGUL SYLLABLE GGYAEG..HANGUL SYLLABLE GGYAEH
  1239. (0xAEBD <= code && code <= 0xAED7) || // Lo [27] HANGUL SYLLABLE GGEOG..HANGUL SYLLABLE GGEOH
  1240. (0xAED9 <= code && code <= 0xAEF3) || // Lo [27] HANGUL SYLLABLE GGEG..HANGUL SYLLABLE GGEH
  1241. (0xAEF5 <= code && code <= 0xAF0F) || // Lo [27] HANGUL SYLLABLE GGYEOG..HANGUL SYLLABLE GGYEOH
  1242. (0xAF11 <= code && code <= 0xAF2B) || // Lo [27] HANGUL SYLLABLE GGYEG..HANGUL SYLLABLE GGYEH
  1243. (0xAF2D <= code && code <= 0xAF47) || // Lo [27] HANGUL SYLLABLE GGOG..HANGUL SYLLABLE GGOH
  1244. (0xAF49 <= code && code <= 0xAF63) || // Lo [27] HANGUL SYLLABLE GGWAG..HANGUL SYLLABLE GGWAH
  1245. (0xAF65 <= code && code <= 0xAF7F) || // Lo [27] HANGUL SYLLABLE GGWAEG..HANGUL SYLLABLE GGWAEH
  1246. (0xAF81 <= code && code <= 0xAF9B) || // Lo [27] HANGUL SYLLABLE GGOEG..HANGUL SYLLABLE GGOEH
  1247. (0xAF9D <= code && code <= 0xAFB7) || // Lo [27] HANGUL SYLLABLE GGYOG..HANGUL SYLLABLE GGYOH
  1248. (0xAFB9 <= code && code <= 0xAFD3) || // Lo [27] HANGUL SYLLABLE GGUG..HANGUL SYLLABLE GGUH
  1249. (0xAFD5 <= code && code <= 0xAFEF) || // Lo [27] HANGUL SYLLABLE GGWEOG..HANGUL SYLLABLE GGWEOH
  1250. (0xAFF1 <= code && code <= 0xB00B) || // Lo [27] HANGUL SYLLABLE GGWEG..HANGUL SYLLABLE GGWEH
  1251. (0xB00D <= code && code <= 0xB027) || // Lo [27] HANGUL SYLLABLE GGWIG..HANGUL SYLLABLE GGWIH
  1252. (0xB029 <= code && code <= 0xB043) || // Lo [27] HANGUL SYLLABLE GGYUG..HANGUL SYLLABLE GGYUH
  1253. (0xB045 <= code && code <= 0xB05F) || // Lo [27] HANGUL SYLLABLE GGEUG..HANGUL SYLLABLE GGEUH
  1254. (0xB061 <= code && code <= 0xB07B) || // Lo [27] HANGUL SYLLABLE GGYIG..HANGUL SYLLABLE GGYIH
  1255. (0xB07D <= code && code <= 0xB097) || // Lo [27] HANGUL SYLLABLE GGIG..HANGUL SYLLABLE GGIH
  1256. (0xB099 <= code && code <= 0xB0B3) || // Lo [27] HANGUL SYLLABLE NAG..HANGUL SYLLABLE NAH
  1257. (0xB0B5 <= code && code <= 0xB0CF) || // Lo [27] HANGUL SYLLABLE NAEG..HANGUL SYLLABLE NAEH
  1258. (0xB0D1 <= code && code <= 0xB0EB) || // Lo [27] HANGUL SYLLABLE NYAG..HANGUL SYLLABLE NYAH
  1259. (0xB0ED <= code && code <= 0xB107) || // Lo [27] HANGUL SYLLABLE NYAEG..HANGUL SYLLABLE NYAEH
  1260. (0xB109 <= code && code <= 0xB123) || // Lo [27] HANGUL SYLLABLE NEOG..HANGUL SYLLABLE NEOH
  1261. (0xB125 <= code && code <= 0xB13F) || // Lo [27] HANGUL SYLLABLE NEG..HANGUL SYLLABLE NEH
  1262. (0xB141 <= code && code <= 0xB15B) || // Lo [27] HANGUL SYLLABLE NYEOG..HANGUL SYLLABLE NYEOH
  1263. (0xB15D <= code && code <= 0xB177) || // Lo [27] HANGUL SYLLABLE NYEG..HANGUL SYLLABLE NYEH
  1264. (0xB179 <= code && code <= 0xB193) || // Lo [27] HANGUL SYLLABLE NOG..HANGUL SYLLABLE NOH
  1265. (0xB195 <= code && code <= 0xB1AF) || // Lo [27] HANGUL SYLLABLE NWAG..HANGUL SYLLABLE NWAH
  1266. (0xB1B1 <= code && code <= 0xB1CB) || // Lo [27] HANGUL SYLLABLE NWAEG..HANGUL SYLLABLE NWAEH
  1267. (0xB1CD <= code && code <= 0xB1E7) || // Lo [27] HANGUL SYLLABLE NOEG..HANGUL SYLLABLE NOEH
  1268. (0xB1E9 <= code && code <= 0xB203) || // Lo [27] HANGUL SYLLABLE NYOG..HANGUL SYLLABLE NYOH
  1269. (0xB205 <= code && code <= 0xB21F) || // Lo [27] HANGUL SYLLABLE NUG..HANGUL SYLLABLE NUH
  1270. (0xB221 <= code && code <= 0xB23B) || // Lo [27] HANGUL SYLLABLE NWEOG..HANGUL SYLLABLE NWEOH
  1271. (0xB23D <= code && code <= 0xB257) || // Lo [27] HANGUL SYLLABLE NWEG..HANGUL SYLLABLE NWEH
  1272. (0xB259 <= code && code <= 0xB273) || // Lo [27] HANGUL SYLLABLE NWIG..HANGUL SYLLABLE NWIH
  1273. (0xB275 <= code && code <= 0xB28F) || // Lo [27] HANGUL SYLLABLE NYUG..HANGUL SYLLABLE NYUH
  1274. (0xB291 <= code && code <= 0xB2AB) || // Lo [27] HANGUL SYLLABLE NEUG..HANGUL SYLLABLE NEUH
  1275. (0xB2AD <= code && code <= 0xB2C7) || // Lo [27] HANGUL SYLLABLE NYIG..HANGUL SYLLABLE NYIH
  1276. (0xB2C9 <= code && code <= 0xB2E3) || // Lo [27] HANGUL SYLLABLE NIG..HANGUL SYLLABLE NIH
  1277. (0xB2E5 <= code && code <= 0xB2FF) || // Lo [27] HANGUL SYLLABLE DAG..HANGUL SYLLABLE DAH
  1278. (0xB301 <= code && code <= 0xB31B) || // Lo [27] HANGUL SYLLABLE DAEG..HANGUL SYLLABLE DAEH
  1279. (0xB31D <= code && code <= 0xB337) || // Lo [27] HANGUL SYLLABLE DYAG..HANGUL SYLLABLE DYAH
  1280. (0xB339 <= code && code <= 0xB353) || // Lo [27] HANGUL SYLLABLE DYAEG..HANGUL SYLLABLE DYAEH
  1281. (0xB355 <= code && code <= 0xB36F) || // Lo [27] HANGUL SYLLABLE DEOG..HANGUL SYLLABLE DEOH
  1282. (0xB371 <= code && code <= 0xB38B) || // Lo [27] HANGUL SYLLABLE DEG..HANGUL SYLLABLE DEH
  1283. (0xB38D <= code && code <= 0xB3A7) || // Lo [27] HANGUL SYLLABLE DYEOG..HANGUL SYLLABLE DYEOH
  1284. (0xB3A9 <= code && code <= 0xB3C3) || // Lo [27] HANGUL SYLLABLE DYEG..HANGUL SYLLABLE DYEH
  1285. (0xB3C5 <= code && code <= 0xB3DF) || // Lo [27] HANGUL SYLLABLE DOG..HANGUL SYLLABLE DOH
  1286. (0xB3E1 <= code && code <= 0xB3FB) || // Lo [27] HANGUL SYLLABLE DWAG..HANGUL SYLLABLE DWAH
  1287. (0xB3FD <= code && code <= 0xB417) || // Lo [27] HANGUL SYLLABLE DWAEG..HANGUL SYLLABLE DWAEH
  1288. (0xB419 <= code && code <= 0xB433) || // Lo [27] HANGUL SYLLABLE DOEG..HANGUL SYLLABLE DOEH
  1289. (0xB435 <= code && code <= 0xB44F) || // Lo [27] HANGUL SYLLABLE DYOG..HANGUL SYLLABLE DYOH
  1290. (0xB451 <= code && code <= 0xB46B) || // Lo [27] HANGUL SYLLABLE DUG..HANGUL SYLLABLE DUH
  1291. (0xB46D <= code && code <= 0xB487) || // Lo [27] HANGUL SYLLABLE DWEOG..HANGUL SYLLABLE DWEOH
  1292. (0xB489 <= code && code <= 0xB4A3) || // Lo [27] HANGUL SYLLABLE DWEG..HANGUL SYLLABLE DWEH
  1293. (0xB4A5 <= code && code <= 0xB4BF) || // Lo [27] HANGUL SYLLABLE DWIG..HANGUL SYLLABLE DWIH
  1294. (0xB4C1 <= code && code <= 0xB4DB) || // Lo [27] HANGUL SYLLABLE DYUG..HANGUL SYLLABLE DYUH
  1295. (0xB4DD <= code && code <= 0xB4F7) || // Lo [27] HANGUL SYLLABLE DEUG..HANGUL SYLLABLE DEUH
  1296. (0xB4F9 <= code && code <= 0xB513) || // Lo [27] HANGUL SYLLABLE DYIG..HANGUL SYLLABLE DYIH
  1297. (0xB515 <= code && code <= 0xB52F) || // Lo [27] HANGUL SYLLABLE DIG..HANGUL SYLLABLE DIH
  1298. (0xB531 <= code && code <= 0xB54B) || // Lo [27] HANGUL SYLLABLE DDAG..HANGUL SYLLABLE DDAH
  1299. (0xB54D <= code && code <= 0xB567) || // Lo [27] HANGUL SYLLABLE DDAEG..HANGUL SYLLABLE DDAEH
  1300. (0xB569 <= code && code <= 0xB583) || // Lo [27] HANGUL SYLLABLE DDYAG..HANGUL SYLLABLE DDYAH
  1301. (0xB585 <= code && code <= 0xB59F) || // Lo [27] HANGUL SYLLABLE DDYAEG..HANGUL SYLLABLE DDYAEH
  1302. (0xB5A1 <= code && code <= 0xB5BB) || // Lo [27] HANGUL SYLLABLE DDEOG..HANGUL SYLLABLE DDEOH
  1303. (0xB5BD <= code && code <= 0xB5D7) || // Lo [27] HANGUL SYLLABLE DDEG..HANGUL SYLLABLE DDEH
  1304. (0xB5D9 <= code && code <= 0xB5F3) || // Lo [27] HANGUL SYLLABLE DDYEOG..HANGUL SYLLABLE DDYEOH
  1305. (0xB5F5 <= code && code <= 0xB60F) || // Lo [27] HANGUL SYLLABLE DDYEG..HANGUL SYLLABLE DDYEH
  1306. (0xB611 <= code && code <= 0xB62B) || // Lo [27] HANGUL SYLLABLE DDOG..HANGUL SYLLABLE DDOH
  1307. (0xB62D <= code && code <= 0xB647) || // Lo [27] HANGUL SYLLABLE DDWAG..HANGUL SYLLABLE DDWAH
  1308. (0xB649 <= code && code <= 0xB663) || // Lo [27] HANGUL SYLLABLE DDWAEG..HANGUL SYLLABLE DDWAEH
  1309. (0xB665 <= code && code <= 0xB67F) || // Lo [27] HANGUL SYLLABLE DDOEG..HANGUL SYLLABLE DDOEH
  1310. (0xB681 <= code && code <= 0xB69B) || // Lo [27] HANGUL SYLLABLE DDYOG..HANGUL SYLLABLE DDYOH
  1311. (0xB69D <= code && code <= 0xB6B7) || // Lo [27] HANGUL SYLLABLE DDUG..HANGUL SYLLABLE DDUH
  1312. (0xB6B9 <= code && code <= 0xB6D3) || // Lo [27] HANGUL SYLLABLE DDWEOG..HANGUL SYLLABLE DDWEOH
  1313. (0xB6D5 <= code && code <= 0xB6EF) || // Lo [27] HANGUL SYLLABLE DDWEG..HANGUL SYLLABLE DDWEH
  1314. (0xB6F1 <= code && code <= 0xB70B) || // Lo [27] HANGUL SYLLABLE DDWIG..HANGUL SYLLABLE DDWIH
  1315. (0xB70D <= code && code <= 0xB727) || // Lo [27] HANGUL SYLLABLE DDYUG..HANGUL SYLLABLE DDYUH
  1316. (0xB729 <= code && code <= 0xB743) || // Lo [27] HANGUL SYLLABLE DDEUG..HANGUL SYLLABLE DDEUH
  1317. (0xB745 <= code && code <= 0xB75F) || // Lo [27] HANGUL SYLLABLE DDYIG..HANGUL SYLLABLE DDYIH
  1318. (0xB761 <= code && code <= 0xB77B) || // Lo [27] HANGUL SYLLABLE DDIG..HANGUL SYLLABLE DDIH
  1319. (0xB77D <= code && code <= 0xB797) || // Lo [27] HANGUL SYLLABLE RAG..HANGUL SYLLABLE RAH
  1320. (0xB799 <= code && code <= 0xB7B3) || // Lo [27] HANGUL SYLLABLE RAEG..HANGUL SYLLABLE RAEH
  1321. (0xB7B5 <= code && code <= 0xB7CF) || // Lo [27] HANGUL SYLLABLE RYAG..HANGUL SYLLABLE RYAH
  1322. (0xB7D1 <= code && code <= 0xB7EB) || // Lo [27] HANGUL SYLLABLE RYAEG..HANGUL SYLLABLE RYAEH
  1323. (0xB7ED <= code && code <= 0xB807) || // Lo [27] HANGUL SYLLABLE REOG..HANGUL SYLLABLE REOH
  1324. (0xB809 <= code && code <= 0xB823) || // Lo [27] HANGUL SYLLABLE REG..HANGUL SYLLABLE REH
  1325. (0xB825 <= code && code <= 0xB83F) || // Lo [27] HANGUL SYLLABLE RYEOG..HANGUL SYLLABLE RYEOH
  1326. (0xB841 <= code && code <= 0xB85B) || // Lo [27] HANGUL SYLLABLE RYEG..HANGUL SYLLABLE RYEH
  1327. (0xB85D <= code && code <= 0xB877) || // Lo [27] HANGUL SYLLABLE ROG..HANGUL SYLLABLE ROH
  1328. (0xB879 <= code && code <= 0xB893) || // Lo [27] HANGUL SYLLABLE RWAG..HANGUL SYLLABLE RWAH
  1329. (0xB895 <= code && code <= 0xB8AF) || // Lo [27] HANGUL SYLLABLE RWAEG..HANGUL SYLLABLE RWAEH
  1330. (0xB8B1 <= code && code <= 0xB8CB) || // Lo [27] HANGUL SYLLABLE ROEG..HANGUL SYLLABLE ROEH
  1331. (0xB8CD <= code && code <= 0xB8E7) || // Lo [27] HANGUL SYLLABLE RYOG..HANGUL SYLLABLE RYOH
  1332. (0xB8E9 <= code && code <= 0xB903) || // Lo [27] HANGUL SYLLABLE RUG..HANGUL SYLLABLE RUH
  1333. (0xB905 <= code && code <= 0xB91F) || // Lo [27] HANGUL SYLLABLE RWEOG..HANGUL SYLLABLE RWEOH
  1334. (0xB921 <= code && code <= 0xB93B) || // Lo [27] HANGUL SYLLABLE RWEG..HANGUL SYLLABLE RWEH
  1335. (0xB93D <= code && code <= 0xB957) || // Lo [27] HANGUL SYLLABLE RWIG..HANGUL SYLLABLE RWIH
  1336. (0xB959 <= code && code <= 0xB973) || // Lo [27] HANGUL SYLLABLE RYUG..HANGUL SYLLABLE RYUH
  1337. (0xB975 <= code && code <= 0xB98F) || // Lo [27] HANGUL SYLLABLE REUG..HANGUL SYLLABLE REUH
  1338. (0xB991 <= code && code <= 0xB9AB) || // Lo [27] HANGUL SYLLABLE RYIG..HANGUL SYLLABLE RYIH
  1339. (0xB9AD <= code && code <= 0xB9C7) || // Lo [27] HANGUL SYLLABLE RIG..HANGUL SYLLABLE RIH
  1340. (0xB9C9 <= code && code <= 0xB9E3) || // Lo [27] HANGUL SYLLABLE MAG..HANGUL SYLLABLE MAH
  1341. (0xB9E5 <= code && code <= 0xB9FF) || // Lo [27] HANGUL SYLLABLE MAEG..HANGUL SYLLABLE MAEH
  1342. (0xBA01 <= code && code <= 0xBA1B) || // Lo [27] HANGUL SYLLABLE MYAG..HANGUL SYLLABLE MYAH
  1343. (0xBA1D <= code && code <= 0xBA37) || // Lo [27] HANGUL SYLLABLE MYAEG..HANGUL SYLLABLE MYAEH
  1344. (0xBA39 <= code && code <= 0xBA53) || // Lo [27] HANGUL SYLLABLE MEOG..HANGUL SYLLABLE MEOH
  1345. (0xBA55 <= code && code <= 0xBA6F) || // Lo [27] HANGUL SYLLABLE MEG..HANGUL SYLLABLE MEH
  1346. (0xBA71 <= code && code <= 0xBA8B) || // Lo [27] HANGUL SYLLABLE MYEOG..HANGUL SYLLABLE MYEOH
  1347. (0xBA8D <= code && code <= 0xBAA7) || // Lo [27] HANGUL SYLLABLE MYEG..HANGUL SYLLABLE MYEH
  1348. (0xBAA9 <= code && code <= 0xBAC3) || // Lo [27] HANGUL SYLLABLE MOG..HANGUL SYLLABLE MOH
  1349. (0xBAC5 <= code && code <= 0xBADF) || // Lo [27] HANGUL SYLLABLE MWAG..HANGUL SYLLABLE MWAH
  1350. (0xBAE1 <= code && code <= 0xBAFB) || // Lo [27] HANGUL SYLLABLE MWAEG..HANGUL SYLLABLE MWAEH
  1351. (0xBAFD <= code && code <= 0xBB17) || // Lo [27] HANGUL SYLLABLE MOEG..HANGUL SYLLABLE MOEH
  1352. (0xBB19 <= code && code <= 0xBB33) || // Lo [27] HANGUL SYLLABLE MYOG..HANGUL SYLLABLE MYOH
  1353. (0xBB35 <= code && code <= 0xBB4F) || // Lo [27] HANGUL SYLLABLE MUG..HANGUL SYLLABLE MUH
  1354. (0xBB51 <= code && code <= 0xBB6B) || // Lo [27] HANGUL SYLLABLE MWEOG..HANGUL SYLLABLE MWEOH
  1355. (0xBB6D <= code && code <= 0xBB87) || // Lo [27] HANGUL SYLLABLE MWEG..HANGUL SYLLABLE MWEH
  1356. (0xBB89 <= code && code <= 0xBBA3) || // Lo [27] HANGUL SYLLABLE MWIG..HANGUL SYLLABLE MWIH
  1357. (0xBBA5 <= code && code <= 0xBBBF) || // Lo [27] HANGUL SYLLABLE MYUG..HANGUL SYLLABLE MYUH
  1358. (0xBBC1 <= code && code <= 0xBBDB) || // Lo [27] HANGUL SYLLABLE MEUG..HANGUL SYLLABLE MEUH
  1359. (0xBBDD <= code && code <= 0xBBF7) || // Lo [27] HANGUL SYLLABLE MYIG..HANGUL SYLLABLE MYIH
  1360. (0xBBF9 <= code && code <= 0xBC13) || // Lo [27] HANGUL SYLLABLE MIG..HANGUL SYLLABLE MIH
  1361. (0xBC15 <= code && code <= 0xBC2F) || // Lo [27] HANGUL SYLLABLE BAG..HANGUL SYLLABLE BAH
  1362. (0xBC31 <= code && code <= 0xBC4B) || // Lo [27] HANGUL SYLLABLE BAEG..HANGUL SYLLABLE BAEH
  1363. (0xBC4D <= code && code <= 0xBC67) || // Lo [27] HANGUL SYLLABLE BYAG..HANGUL SYLLABLE BYAH
  1364. (0xBC69 <= code && code <= 0xBC83) || // Lo [27] HANGUL SYLLABLE BYAEG..HANGUL SYLLABLE BYAEH
  1365. (0xBC85 <= code && code <= 0xBC9F) || // Lo [27] HANGUL SYLLABLE BEOG..HANGUL SYLLABLE BEOH
  1366. (0xBCA1 <= code && code <= 0xBCBB) || // Lo [27] HANGUL SYLLABLE BEG..HANGUL SYLLABLE BEH
  1367. (0xBCBD <= code && code <= 0xBCD7) || // Lo [27] HANGUL SYLLABLE BYEOG..HANGUL SYLLABLE BYEOH
  1368. (0xBCD9 <= code && code <= 0xBCF3) || // Lo [27] HANGUL SYLLABLE BYEG..HANGUL SYLLABLE BYEH
  1369. (0xBCF5 <= code && code <= 0xBD0F) || // Lo [27] HANGUL SYLLABLE BOG..HANGUL SYLLABLE BOH
  1370. (0xBD11 <= code && code <= 0xBD2B) || // Lo [27] HANGUL SYLLABLE BWAG..HANGUL SYLLABLE BWAH
  1371. (0xBD2D <= code && code <= 0xBD47) || // Lo [27] HANGUL SYLLABLE BWAEG..HANGUL SYLLABLE BWAEH
  1372. (0xBD49 <= code && code <= 0xBD63) || // Lo [27] HANGUL SYLLABLE BOEG..HANGUL SYLLABLE BOEH
  1373. (0xBD65 <= code && code <= 0xBD7F) || // Lo [27] HANGUL SYLLABLE BYOG..HANGUL SYLLABLE BYOH
  1374. (0xBD81 <= code && code <= 0xBD9B) || // Lo [27] HANGUL SYLLABLE BUG..HANGUL SYLLABLE BUH
  1375. (0xBD9D <= code && code <= 0xBDB7) || // Lo [27] HANGUL SYLLABLE BWEOG..HANGUL SYLLABLE BWEOH
  1376. (0xBDB9 <= code && code <= 0xBDD3) || // Lo [27] HANGUL SYLLABLE BWEG..HANGUL SYLLABLE BWEH
  1377. (0xBDD5 <= code && code <= 0xBDEF) || // Lo [27] HANGUL SYLLABLE BWIG..HANGUL SYLLABLE BWIH
  1378. (0xBDF1 <= code && code <= 0xBE0B) || // Lo [27] HANGUL SYLLABLE BYUG..HANGUL SYLLABLE BYUH
  1379. (0xBE0D <= code && code <= 0xBE27) || // Lo [27] HANGUL SYLLABLE BEUG..HANGUL SYLLABLE BEUH
  1380. (0xBE29 <= code && code <= 0xBE43) || // Lo [27] HANGUL SYLLABLE BYIG..HANGUL SYLLABLE BYIH
  1381. (0xBE45 <= code && code <= 0xBE5F) || // Lo [27] HANGUL SYLLABLE BIG..HANGUL SYLLABLE BIH
  1382. (0xBE61 <= code && code <= 0xBE7B) || // Lo [27] HANGUL SYLLABLE BBAG..HANGUL SYLLABLE BBAH
  1383. (0xBE7D <= code && code <= 0xBE97) || // Lo [27] HANGUL SYLLABLE BBAEG..HANGUL SYLLABLE BBAEH
  1384. (0xBE99 <= code && code <= 0xBEB3) || // Lo [27] HANGUL SYLLABLE BBYAG..HANGUL SYLLABLE BBYAH
  1385. (0xBEB5 <= code && code <= 0xBECF) || // Lo [27] HANGUL SYLLABLE BBYAEG..HANGUL SYLLABLE BBYAEH
  1386. (0xBED1 <= code && code <= 0xBEEB) || // Lo [27] HANGUL SYLLABLE BBEOG..HANGUL SYLLABLE BBEOH
  1387. (0xBEED <= code && code <= 0xBF07) || // Lo [27] HANGUL SYLLABLE BBEG..HANGUL SYLLABLE BBEH
  1388. (0xBF09 <= code && code <= 0xBF23) || // Lo [27] HANGUL SYLLABLE BBYEOG..HANGUL SYLLABLE BBYEOH
  1389. (0xBF25 <= code && code <= 0xBF3F) || // Lo [27] HANGUL SYLLABLE BBYEG..HANGUL SYLLABLE BBYEH
  1390. (0xBF41 <= code && code <= 0xBF5B) || // Lo [27] HANGUL SYLLABLE BBOG..HANGUL SYLLABLE BBOH
  1391. (0xBF5D <= code && code <= 0xBF77) || // Lo [27] HANGUL SYLLABLE BBWAG..HANGUL SYLLABLE BBWAH
  1392. (0xBF79 <= code && code <= 0xBF93) || // Lo [27] HANGUL SYLLABLE BBWAEG..HANGUL SYLLABLE BBWAEH
  1393. (0xBF95 <= code && code <= 0xBFAF) || // Lo [27] HANGUL SYLLABLE BBOEG..HANGUL SYLLABLE BBOEH
  1394. (0xBFB1 <= code && code <= 0xBFCB) || // Lo [27] HANGUL SYLLABLE BBYOG..HANGUL SYLLABLE BBYOH
  1395. (0xBFCD <= code && code <= 0xBFE7) || // Lo [27] HANGUL SYLLABLE BBUG..HANGUL SYLLABLE BBUH
  1396. (0xBFE9 <= code && code <= 0xC003) || // Lo [27] HANGUL SYLLABLE BBWEOG..HANGUL SYLLABLE BBWEOH
  1397. (0xC005 <= code && code <= 0xC01F) || // Lo [27] HANGUL SYLLABLE BBWEG..HANGUL SYLLABLE BBWEH
  1398. (0xC021 <= code && code <= 0xC03B) || // Lo [27] HANGUL SYLLABLE BBWIG..HANGUL SYLLABLE BBWIH
  1399. (0xC03D <= code && code <= 0xC057) || // Lo [27] HANGUL SYLLABLE BBYUG..HANGUL SYLLABLE BBYUH
  1400. (0xC059 <= code && code <= 0xC073) || // Lo [27] HANGUL SYLLABLE BBEUG..HANGUL SYLLABLE BBEUH
  1401. (0xC075 <= code && code <= 0xC08F) || // Lo [27] HANGUL SYLLABLE BBYIG..HANGUL SYLLABLE BBYIH
  1402. (0xC091 <= code && code <= 0xC0AB) || // Lo [27] HANGUL SYLLABLE BBIG..HANGUL SYLLABLE BBIH
  1403. (0xC0AD <= code && code <= 0xC0C7) || // Lo [27] HANGUL SYLLABLE SAG..HANGUL SYLLABLE SAH
  1404. (0xC0C9 <= code && code <= 0xC0E3) || // Lo [27] HANGUL SYLLABLE SAEG..HANGUL SYLLABLE SAEH
  1405. (0xC0E5 <= code && code <= 0xC0FF) || // Lo [27] HANGUL SYLLABLE SYAG..HANGUL SYLLABLE SYAH
  1406. (0xC101 <= code && code <= 0xC11B) || // Lo [27] HANGUL SYLLABLE SYAEG..HANGUL SYLLABLE SYAEH
  1407. (0xC11D <= code && code <= 0xC137) || // Lo [27] HANGUL SYLLABLE SEOG..HANGUL SYLLABLE SEOH
  1408. (0xC139 <= code && code <= 0xC153) || // Lo [27] HANGUL SYLLABLE SEG..HANGUL SYLLABLE SEH
  1409. (0xC155 <= code && code <= 0xC16F) || // Lo [27] HANGUL SYLLABLE SYEOG..HANGUL SYLLABLE SYEOH
  1410. (0xC171 <= code && code <= 0xC18B) || // Lo [27] HANGUL SYLLABLE SYEG..HANGUL SYLLABLE SYEH
  1411. (0xC18D <= code && code <= 0xC1A7) || // Lo [27] HANGUL SYLLABLE SOG..HANGUL SYLLABLE SOH
  1412. (0xC1A9 <= code && code <= 0xC1C3) || // Lo [27] HANGUL SYLLABLE SWAG..HANGUL SYLLABLE SWAH
  1413. (0xC1C5 <= code && code <= 0xC1DF) || // Lo [27] HANGUL SYLLABLE SWAEG..HANGUL SYLLABLE SWAEH
  1414. (0xC1E1 <= code && code <= 0xC1FB) || // Lo [27] HANGUL SYLLABLE SOEG..HANGUL SYLLABLE SOEH
  1415. (0xC1FD <= code && code <= 0xC217) || // Lo [27] HANGUL SYLLABLE SYOG..HANGUL SYLLABLE SYOH
  1416. (0xC219 <= code && code <= 0xC233) || // Lo [27] HANGUL SYLLABLE SUG..HANGUL SYLLABLE SUH
  1417. (0xC235 <= code && code <= 0xC24F) || // Lo [27] HANGUL SYLLABLE SWEOG..HANGUL SYLLABLE SWEOH
  1418. (0xC251 <= code && code <= 0xC26B) || // Lo [27] HANGUL SYLLABLE SWEG..HANGUL SYLLABLE SWEH
  1419. (0xC26D <= code && code <= 0xC287) || // Lo [27] HANGUL SYLLABLE SWIG..HANGUL SYLLABLE SWIH
  1420. (0xC289 <= code && code <= 0xC2A3) || // Lo [27] HANGUL SYLLABLE SYUG..HANGUL SYLLABLE SYUH
  1421. (0xC2A5 <= code && code <= 0xC2BF) || // Lo [27] HANGUL SYLLABLE SEUG..HANGUL SYLLABLE SEUH
  1422. (0xC2C1 <= code && code <= 0xC2DB) || // Lo [27] HANGUL SYLLABLE SYIG..HANGUL SYLLABLE SYIH
  1423. (0xC2DD <= code && code <= 0xC2F7) || // Lo [27] HANGUL SYLLABLE SIG..HANGUL SYLLABLE SIH
  1424. (0xC2F9 <= code && code <= 0xC313) || // Lo [27] HANGUL SYLLABLE SSAG..HANGUL SYLLABLE SSAH
  1425. (0xC315 <= code && code <= 0xC32F) || // Lo [27] HANGUL SYLLABLE SSAEG..HANGUL SYLLABLE SSAEH
  1426. (0xC331 <= code && code <= 0xC34B) || // Lo [27] HANGUL SYLLABLE SSYAG..HANGUL SYLLABLE SSYAH
  1427. (0xC34D <= code && code <= 0xC367) || // Lo [27] HANGUL SYLLABLE SSYAEG..HANGUL SYLLABLE SSYAEH
  1428. (0xC369 <= code && code <= 0xC383) || // Lo [27] HANGUL SYLLABLE SSEOG..HANGUL SYLLABLE SSEOH
  1429. (0xC385 <= code && code <= 0xC39F) || // Lo [27] HANGUL SYLLABLE SSEG..HANGUL SYLLABLE SSEH
  1430. (0xC3A1 <= code && code <= 0xC3BB) || // Lo [27] HANGUL SYLLABLE SSYEOG..HANGUL SYLLABLE SSYEOH
  1431. (0xC3BD <= code && code <= 0xC3D7) || // Lo [27] HANGUL SYLLABLE SSYEG..HANGUL SYLLABLE SSYEH
  1432. (0xC3D9 <= code && code <= 0xC3F3) || // Lo [27] HANGUL SYLLABLE SSOG..HANGUL SYLLABLE SSOH
  1433. (0xC3F5 <= code && code <= 0xC40F) || // Lo [27] HANGUL SYLLABLE SSWAG..HANGUL SYLLABLE SSWAH
  1434. (0xC411 <= code && code <= 0xC42B) || // Lo [27] HANGUL SYLLABLE SSWAEG..HANGUL SYLLABLE SSWAEH
  1435. (0xC42D <= code && code <= 0xC447) || // Lo [27] HANGUL SYLLABLE SSOEG..HANGUL SYLLABLE SSOEH
  1436. (0xC449 <= code && code <= 0xC463) || // Lo [27] HANGUL SYLLABLE SSYOG..HANGUL SYLLABLE SSYOH
  1437. (0xC465 <= code && code <= 0xC47F) || // Lo [27] HANGUL SYLLABLE SSUG..HANGUL SYLLABLE SSUH
  1438. (0xC481 <= code && code <= 0xC49B) || // Lo [27] HANGUL SYLLABLE SSWEOG..HANGUL SYLLABLE SSWEOH
  1439. (0xC49D <= code && code <= 0xC4B7) || // Lo [27] HANGUL SYLLABLE SSWEG..HANGUL SYLLABLE SSWEH
  1440. (0xC4B9 <= code && code <= 0xC4D3) || // Lo [27] HANGUL SYLLABLE SSWIG..HANGUL SYLLABLE SSWIH
  1441. (0xC4D5 <= code && code <= 0xC4EF) || // Lo [27] HANGUL SYLLABLE SSYUG..HANGUL SYLLABLE SSYUH
  1442. (0xC4F1 <= code && code <= 0xC50B) || // Lo [27] HANGUL SYLLABLE SSEUG..HANGUL SYLLABLE SSEUH
  1443. (0xC50D <= code && code <= 0xC527) || // Lo [27] HANGUL SYLLABLE SSYIG..HANGUL SYLLABLE SSYIH
  1444. (0xC529 <= code && code <= 0xC543) || // Lo [27] HANGUL SYLLABLE SSIG..HANGUL SYLLABLE SSIH
  1445. (0xC545 <= code && code <= 0xC55F) || // Lo [27] HANGUL SYLLABLE AG..HANGUL SYLLABLE AH
  1446. (0xC561 <= code && code <= 0xC57B) || // Lo [27] HANGUL SYLLABLE AEG..HANGUL SYLLABLE AEH
  1447. (0xC57D <= code && code <= 0xC597) || // Lo [27] HANGUL SYLLABLE YAG..HANGUL SYLLABLE YAH
  1448. (0xC599 <= code && code <= 0xC5B3) || // Lo [27] HANGUL SYLLABLE YAEG..HANGUL SYLLABLE YAEH
  1449. (0xC5B5 <= code && code <= 0xC5CF) || // Lo [27] HANGUL SYLLABLE EOG..HANGUL SYLLABLE EOH
  1450. (0xC5D1 <= code && code <= 0xC5EB) || // Lo [27] HANGUL SYLLABLE EG..HANGUL SYLLABLE EH
  1451. (0xC5ED <= code && code <= 0xC607) || // Lo [27] HANGUL SYLLABLE YEOG..HANGUL SYLLABLE YEOH
  1452. (0xC609 <= code && code <= 0xC623) || // Lo [27] HANGUL SYLLABLE YEG..HANGUL SYLLABLE YEH
  1453. (0xC625 <= code && code <= 0xC63F) || // Lo [27] HANGUL SYLLABLE OG..HANGUL SYLLABLE OH
  1454. (0xC641 <= code && code <= 0xC65B) || // Lo [27] HANGUL SYLLABLE WAG..HANGUL SYLLABLE WAH
  1455. (0xC65D <= code && code <= 0xC677) || // Lo [27] HANGUL SYLLABLE WAEG..HANGUL SYLLABLE WAEH
  1456. (0xC679 <= code && code <= 0xC693) || // Lo [27] HANGUL SYLLABLE OEG..HANGUL SYLLABLE OEH
  1457. (0xC695 <= code && code <= 0xC6AF) || // Lo [27] HANGUL SYLLABLE YOG..HANGUL SYLLABLE YOH
  1458. (0xC6B1 <= code && code <= 0xC6CB) || // Lo [27] HANGUL SYLLABLE UG..HANGUL SYLLABLE UH
  1459. (0xC6CD <= code && code <= 0xC6E7) || // Lo [27] HANGUL SYLLABLE WEOG..HANGUL SYLLABLE WEOH
  1460. (0xC6E9 <= code && code <= 0xC703) || // Lo [27] HANGUL SYLLABLE WEG..HANGUL SYLLABLE WEH
  1461. (0xC705 <= code && code <= 0xC71F) || // Lo [27] HANGUL SYLLABLE WIG..HANGUL SYLLABLE WIH
  1462. (0xC721 <= code && code <= 0xC73B) || // Lo [27] HANGUL SYLLABLE YUG..HANGUL SYLLABLE YUH
  1463. (0xC73D <= code && code <= 0xC757) || // Lo [27] HANGUL SYLLABLE EUG..HANGUL SYLLABLE EUH
  1464. (0xC759 <= code && code <= 0xC773) || // Lo [27] HANGUL SYLLABLE YIG..HANGUL SYLLABLE YIH
  1465. (0xC775 <= code && code <= 0xC78F) || // Lo [27] HANGUL SYLLABLE IG..HANGUL SYLLABLE IH
  1466. (0xC791 <= code && code <= 0xC7AB) || // Lo [27] HANGUL SYLLABLE JAG..HANGUL SYLLABLE JAH
  1467. (0xC7AD <= code && code <= 0xC7C7) || // Lo [27] HANGUL SYLLABLE JAEG..HANGUL SYLLABLE JAEH
  1468. (0xC7C9 <= code && code <= 0xC7E3) || // Lo [27] HANGUL SYLLABLE JYAG..HANGUL SYLLABLE JYAH
  1469. (0xC7E5 <= code && code <= 0xC7FF) || // Lo [27] HANGUL SYLLABLE JYAEG..HANGUL SYLLABLE JYAEH
  1470. (0xC801 <= code && code <= 0xC81B) || // Lo [27] HANGUL SYLLABLE JEOG..HANGUL SYLLABLE JEOH
  1471. (0xC81D <= code && code <= 0xC837) || // Lo [27] HANGUL SYLLABLE JEG..HANGUL SYLLABLE JEH
  1472. (0xC839 <= code && code <= 0xC853) || // Lo [27] HANGUL SYLLABLE JYEOG..HANGUL SYLLABLE JYEOH
  1473. (0xC855 <= code && code <= 0xC86F) || // Lo [27] HANGUL SYLLABLE JYEG..HANGUL SYLLABLE JYEH
  1474. (0xC871 <= code && code <= 0xC88B) || // Lo [27] HANGUL SYLLABLE JOG..HANGUL SYLLABLE JOH
  1475. (0xC88D <= code && code <= 0xC8A7) || // Lo [27] HANGUL SYLLABLE JWAG..HANGUL SYLLABLE JWAH
  1476. (0xC8A9 <= code && code <= 0xC8C3) || // Lo [27] HANGUL SYLLABLE JWAEG..HANGUL SYLLABLE JWAEH
  1477. (0xC8C5 <= code && code <= 0xC8DF) || // Lo [27] HANGUL SYLLABLE JOEG..HANGUL SYLLABLE JOEH
  1478. (0xC8E1 <= code && code <= 0xC8FB) || // Lo [27] HANGUL SYLLABLE JYOG..HANGUL SYLLABLE JYOH
  1479. (0xC8FD <= code && code <= 0xC917) || // Lo [27] HANGUL SYLLABLE JUG..HANGUL SYLLABLE JUH
  1480. (0xC919 <= code && code <= 0xC933) || // Lo [27] HANGUL SYLLABLE JWEOG..HANGUL SYLLABLE JWEOH
  1481. (0xC935 <= code && code <= 0xC94F) || // Lo [27] HANGUL SYLLABLE JWEG..HANGUL SYLLABLE JWEH
  1482. (0xC951 <= code && code <= 0xC96B) || // Lo [27] HANGUL SYLLABLE JWIG..HANGUL SYLLABLE JWIH
  1483. (0xC96D <= code && code <= 0xC987) || // Lo [27] HANGUL SYLLABLE JYUG..HANGUL SYLLABLE JYUH
  1484. (0xC989 <= code && code <= 0xC9A3) || // Lo [27] HANGUL SYLLABLE JEUG..HANGUL SYLLABLE JEUH
  1485. (0xC9A5 <= code && code <= 0xC9BF) || // Lo [27] HANGUL SYLLABLE JYIG..HANGUL SYLLABLE JYIH
  1486. (0xC9C1 <= code && code <= 0xC9DB) || // Lo [27] HANGUL SYLLABLE JIG..HANGUL SYLLABLE JIH
  1487. (0xC9DD <= code && code <= 0xC9F7) || // Lo [27] HANGUL SYLLABLE JJAG..HANGUL SYLLABLE JJAH
  1488. (0xC9F9 <= code && code <= 0xCA13) || // Lo [27] HANGUL SYLLABLE JJAEG..HANGUL SYLLABLE JJAEH
  1489. (0xCA15 <= code && code <= 0xCA2F) || // Lo [27] HANGUL SYLLABLE JJYAG..HANGUL SYLLABLE JJYAH
  1490. (0xCA31 <= code && code <= 0xCA4B) || // Lo [27] HANGUL SYLLABLE JJYAEG..HANGUL SYLLABLE JJYAEH
  1491. (0xCA4D <= code && code <= 0xCA67) || // Lo [27] HANGUL SYLLABLE JJEOG..HANGUL SYLLABLE JJEOH
  1492. (0xCA69 <= code && code <= 0xCA83) || // Lo [27] HANGUL SYLLABLE JJEG..HANGUL SYLLABLE JJEH
  1493. (0xCA85 <= code && code <= 0xCA9F) || // Lo [27] HANGUL SYLLABLE JJYEOG..HANGUL SYLLABLE JJYEOH
  1494. (0xCAA1 <= code && code <= 0xCABB) || // Lo [27] HANGUL SYLLABLE JJYEG..HANGUL SYLLABLE JJYEH
  1495. (0xCABD <= code && code <= 0xCAD7) || // Lo [27] HANGUL SYLLABLE JJOG..HANGUL SYLLABLE JJOH
  1496. (0xCAD9 <= code && code <= 0xCAF3) || // Lo [27] HANGUL SYLLABLE JJWAG..HANGUL SYLLABLE JJWAH
  1497. (0xCAF5 <= code && code <= 0xCB0F) || // Lo [27] HANGUL SYLLABLE JJWAEG..HANGUL SYLLABLE JJWAEH
  1498. (0xCB11 <= code && code <= 0xCB2B) || // Lo [27] HANGUL SYLLABLE JJOEG..HANGUL SYLLABLE JJOEH
  1499. (0xCB2D <= code && code <= 0xCB47) || // Lo [27] HANGUL SYLLABLE JJYOG..HANGUL SYLLABLE JJYOH
  1500. (0xCB49 <= code && code <= 0xCB63) || // Lo [27] HANGUL SYLLABLE JJUG..HANGUL SYLLABLE JJUH
  1501. (0xCB65 <= code && code <= 0xCB7F) || // Lo [27] HANGUL SYLLABLE JJWEOG..HANGUL SYLLABLE JJWEOH
  1502. (0xCB81 <= code && code <= 0xCB9B) || // Lo [27] HANGUL SYLLABLE JJWEG..HANGUL SYLLABLE JJWEH
  1503. (0xCB9D <= code && code <= 0xCBB7) || // Lo [27] HANGUL SYLLABLE JJWIG..HANGUL SYLLABLE JJWIH
  1504. (0xCBB9 <= code && code <= 0xCBD3) || // Lo [27] HANGUL SYLLABLE JJYUG..HANGUL SYLLABLE JJYUH
  1505. (0xCBD5 <= code && code <= 0xCBEF) || // Lo [27] HANGUL SYLLABLE JJEUG..HANGUL SYLLABLE JJEUH
  1506. (0xCBF1 <= code && code <= 0xCC0B) || // Lo [27] HANGUL SYLLABLE JJYIG..HANGUL SYLLABLE JJYIH
  1507. (0xCC0D <= code && code <= 0xCC27) || // Lo [27] HANGUL SYLLABLE JJIG..HANGUL SYLLABLE JJIH
  1508. (0xCC29 <= code && code <= 0xCC43) || // Lo [27] HANGUL SYLLABLE CAG..HANGUL SYLLABLE CAH
  1509. (0xCC45 <= code && code <= 0xCC5F) || // Lo [27] HANGUL SYLLABLE CAEG..HANGUL SYLLABLE CAEH
  1510. (0xCC61 <= code && code <= 0xCC7B) || // Lo [27] HANGUL SYLLABLE CYAG..HANGUL SYLLABLE CYAH
  1511. (0xCC7D <= code && code <= 0xCC97) || // Lo [27] HANGUL SYLLABLE CYAEG..HANGUL SYLLABLE CYAEH
  1512. (0xCC99 <= code && code <= 0xCCB3) || // Lo [27] HANGUL SYLLABLE CEOG..HANGUL SYLLABLE CEOH
  1513. (0xCCB5 <= code && code <= 0xCCCF) || // Lo [27] HANGUL SYLLABLE CEG..HANGUL SYLLABLE CEH
  1514. (0xCCD1 <= code && code <= 0xCCEB) || // Lo [27] HANGUL SYLLABLE CYEOG..HANGUL SYLLABLE CYEOH
  1515. (0xCCED <= code && code <= 0xCD07) || // Lo [27] HANGUL SYLLABLE CYEG..HANGUL SYLLABLE CYEH
  1516. (0xCD09 <= code && code <= 0xCD23) || // Lo [27] HANGUL SYLLABLE COG..HANGUL SYLLABLE COH
  1517. (0xCD25 <= code && code <= 0xCD3F) || // Lo [27] HANGUL SYLLABLE CWAG..HANGUL SYLLABLE CWAH
  1518. (0xCD41 <= code && code <= 0xCD5B) || // Lo [27] HANGUL SYLLABLE CWAEG..HANGUL SYLLABLE CWAEH
  1519. (0xCD5D <= code && code <= 0xCD77) || // Lo [27] HANGUL SYLLABLE COEG..HANGUL SYLLABLE COEH
  1520. (0xCD79 <= code && code <= 0xCD93) || // Lo [27] HANGUL SYLLABLE CYOG..HANGUL SYLLABLE CYOH
  1521. (0xCD95 <= code && code <= 0xCDAF) || // Lo [27] HANGUL SYLLABLE CUG..HANGUL SYLLABLE CUH
  1522. (0xCDB1 <= code && code <= 0xCDCB) || // Lo [27] HANGUL SYLLABLE CWEOG..HANGUL SYLLABLE CWEOH
  1523. (0xCDCD <= code && code <= 0xCDE7) || // Lo [27] HANGUL SYLLABLE CWEG..HANGUL SYLLABLE CWEH
  1524. (0xCDE9 <= code && code <= 0xCE03) || // Lo [27] HANGUL SYLLABLE CWIG..HANGUL SYLLABLE CWIH
  1525. (0xCE05 <= code && code <= 0xCE1F) || // Lo [27] HANGUL SYLLABLE CYUG..HANGUL SYLLABLE CYUH
  1526. (0xCE21 <= code && code <= 0xCE3B) || // Lo [27] HANGUL SYLLABLE CEUG..HANGUL SYLLABLE CEUH
  1527. (0xCE3D <= code && code <= 0xCE57) || // Lo [27] HANGUL SYLLABLE CYIG..HANGUL SYLLABLE CYIH
  1528. (0xCE59 <= code && code <= 0xCE73) || // Lo [27] HANGUL SYLLABLE CIG..HANGUL SYLLABLE CIH
  1529. (0xCE75 <= code && code <= 0xCE8F) || // Lo [27] HANGUL SYLLABLE KAG..HANGUL SYLLABLE KAH
  1530. (0xCE91 <= code && code <= 0xCEAB) || // Lo [27] HANGUL SYLLABLE KAEG..HANGUL SYLLABLE KAEH
  1531. (0xCEAD <= code && code <= 0xCEC7) || // Lo [27] HANGUL SYLLABLE KYAG..HANGUL SYLLABLE KYAH
  1532. (0xCEC9 <= code && code <= 0xCEE3) || // Lo [27] HANGUL SYLLABLE KYAEG..HANGUL SYLLABLE KYAEH
  1533. (0xCEE5 <= code && code <= 0xCEFF) || // Lo [27] HANGUL SYLLABLE KEOG..HANGUL SYLLABLE KEOH
  1534. (0xCF01 <= code && code <= 0xCF1B) || // Lo [27] HANGUL SYLLABLE KEG..HANGUL SYLLABLE KEH
  1535. (0xCF1D <= code && code <= 0xCF37) || // Lo [27] HANGUL SYLLABLE KYEOG..HANGUL SYLLABLE KYEOH
  1536. (0xCF39 <= code && code <= 0xCF53) || // Lo [27] HANGUL SYLLABLE KYEG..HANGUL SYLLABLE KYEH
  1537. (0xCF55 <= code && code <= 0xCF6F) || // Lo [27] HANGUL SYLLABLE KOG..HANGUL SYLLABLE KOH
  1538. (0xCF71 <= code && code <= 0xCF8B) || // Lo [27] HANGUL SYLLABLE KWAG..HANGUL SYLLABLE KWAH
  1539. (0xCF8D <= code && code <= 0xCFA7) || // Lo [27] HANGUL SYLLABLE KWAEG..HANGUL SYLLABLE KWAEH
  1540. (0xCFA9 <= code && code <= 0xCFC3) || // Lo [27] HANGUL SYLLABLE KOEG..HANGUL SYLLABLE KOEH
  1541. (0xCFC5 <= code && code <= 0xCFDF) || // Lo [27] HANGUL SYLLABLE KYOG..HANGUL SYLLABLE KYOH
  1542. (0xCFE1 <= code && code <= 0xCFFB) || // Lo [27] HANGUL SYLLABLE KUG..HANGUL SYLLABLE KUH
  1543. (0xCFFD <= code && code <= 0xD017) || // Lo [27] HANGUL SYLLABLE KWEOG..HANGUL SYLLABLE KWEOH
  1544. (0xD019 <= code && code <= 0xD033) || // Lo [27] HANGUL SYLLABLE KWEG..HANGUL SYLLABLE KWEH
  1545. (0xD035 <= code && code <= 0xD04F) || // Lo [27] HANGUL SYLLABLE KWIG..HANGUL SYLLABLE KWIH
  1546. (0xD051 <= code && code <= 0xD06B) || // Lo [27] HANGUL SYLLABLE KYUG..HANGUL SYLLABLE KYUH
  1547. (0xD06D <= code && code <= 0xD087) || // Lo [27] HANGUL SYLLABLE KEUG..HANGUL SYLLABLE KEUH
  1548. (0xD089 <= code && code <= 0xD0A3) || // Lo [27] HANGUL SYLLABLE KYIG..HANGUL SYLLABLE KYIH
  1549. (0xD0A5 <= code && code <= 0xD0BF) || // Lo [27] HANGUL SYLLABLE KIG..HANGUL SYLLABLE KIH
  1550. (0xD0C1 <= code && code <= 0xD0DB) || // Lo [27] HANGUL SYLLABLE TAG..HANGUL SYLLABLE TAH
  1551. (0xD0DD <= code && code <= 0xD0F7) || // Lo [27] HANGUL SYLLABLE TAEG..HANGUL SYLLABLE TAEH
  1552. (0xD0F9 <= code && code <= 0xD113) || // Lo [27] HANGUL SYLLABLE TYAG..HANGUL SYLLABLE TYAH
  1553. (0xD115 <= code && code <= 0xD12F) || // Lo [27] HANGUL SYLLABLE TYAEG..HANGUL SYLLABLE TYAEH
  1554. (0xD131 <= code && code <= 0xD14B) || // Lo [27] HANGUL SYLLABLE TEOG..HANGUL SYLLABLE TEOH
  1555. (0xD14D <= code && code <= 0xD167) || // Lo [27] HANGUL SYLLABLE TEG..HANGUL SYLLABLE TEH
  1556. (0xD169 <= code && code <= 0xD183) || // Lo [27] HANGUL SYLLABLE TYEOG..HANGUL SYLLABLE TYEOH
  1557. (0xD185 <= code && code <= 0xD19F) || // Lo [27] HANGUL SYLLABLE TYEG..HANGUL SYLLABLE TYEH
  1558. (0xD1A1 <= code && code <= 0xD1BB) || // Lo [27] HANGUL SYLLABLE TOG..HANGUL SYLLABLE TOH
  1559. (0xD1BD <= code && code <= 0xD1D7) || // Lo [27] HANGUL SYLLABLE TWAG..HANGUL SYLLABLE TWAH
  1560. (0xD1D9 <= code && code <= 0xD1F3) || // Lo [27] HANGUL SYLLABLE TWAEG..HANGUL SYLLABLE TWAEH
  1561. (0xD1F5 <= code && code <= 0xD20F) || // Lo [27] HANGUL SYLLABLE TOEG..HANGUL SYLLABLE TOEH
  1562. (0xD211 <= code && code <= 0xD22B) || // Lo [27] HANGUL SYLLABLE TYOG..HANGUL SYLLABLE TYOH
  1563. (0xD22D <= code && code <= 0xD247) || // Lo [27] HANGUL SYLLABLE TUG..HANGUL SYLLABLE TUH
  1564. (0xD249 <= code && code <= 0xD263) || // Lo [27] HANGUL SYLLABLE TWEOG..HANGUL SYLLABLE TWEOH
  1565. (0xD265 <= code && code <= 0xD27F) || // Lo [27] HANGUL SYLLABLE TWEG..HANGUL SYLLABLE TWEH
  1566. (0xD281 <= code && code <= 0xD29B) || // Lo [27] HANGUL SYLLABLE TWIG..HANGUL SYLLABLE TWIH
  1567. (0xD29D <= code && code <= 0xD2B7) || // Lo [27] HANGUL SYLLABLE TYUG..HANGUL SYLLABLE TYUH
  1568. (0xD2B9 <= code && code <= 0xD2D3) || // Lo [27] HANGUL SYLLABLE TEUG..HANGUL SYLLABLE TEUH
  1569. (0xD2D5 <= code && code <= 0xD2EF) || // Lo [27] HANGUL SYLLABLE TYIG..HANGUL SYLLABLE TYIH
  1570. (0xD2F1 <= code && code <= 0xD30B) || // Lo [27] HANGUL SYLLABLE TIG..HANGUL SYLLABLE TIH
  1571. (0xD30D <= code && code <= 0xD327) || // Lo [27] HANGUL SYLLABLE PAG..HANGUL SYLLABLE PAH
  1572. (0xD329 <= code && code <= 0xD343) || // Lo [27] HANGUL SYLLABLE PAEG..HANGUL SYLLABLE PAEH
  1573. (0xD345 <= code && code <= 0xD35F) || // Lo [27] HANGUL SYLLABLE PYAG..HANGUL SYLLABLE PYAH
  1574. (0xD361 <= code && code <= 0xD37B) || // Lo [27] HANGUL SYLLABLE PYAEG..HANGUL SYLLABLE PYAEH
  1575. (0xD37D <= code && code <= 0xD397) || // Lo [27] HANGUL SYLLABLE PEOG..HANGUL SYLLABLE PEOH
  1576. (0xD399 <= code && code <= 0xD3B3) || // Lo [27] HANGUL SYLLABLE PEG..HANGUL SYLLABLE PEH
  1577. (0xD3B5 <= code && code <= 0xD3CF) || // Lo [27] HANGUL SYLLABLE PYEOG..HANGUL SYLLABLE PYEOH
  1578. (0xD3D1 <= code && code <= 0xD3EB) || // Lo [27] HANGUL SYLLABLE PYEG..HANGUL SYLLABLE PYEH
  1579. (0xD3ED <= code && code <= 0xD407) || // Lo [27] HANGUL SYLLABLE POG..HANGUL SYLLABLE POH
  1580. (0xD409 <= code && code <= 0xD423) || // Lo [27] HANGUL SYLLABLE PWAG..HANGUL SYLLABLE PWAH
  1581. (0xD425 <= code && code <= 0xD43F) || // Lo [27] HANGUL SYLLABLE PWAEG..HANGUL SYLLABLE PWAEH
  1582. (0xD441 <= code && code <= 0xD45B) || // Lo [27] HANGUL SYLLABLE POEG..HANGUL SYLLABLE POEH
  1583. (0xD45D <= code && code <= 0xD477) || // Lo [27] HANGUL SYLLABLE PYOG..HANGUL SYLLABLE PYOH
  1584. (0xD479 <= code && code <= 0xD493) || // Lo [27] HANGUL SYLLABLE PUG..HANGUL SYLLABLE PUH
  1585. (0xD495 <= code && code <= 0xD4AF) || // Lo [27] HANGUL SYLLABLE PWEOG..HANGUL SYLLABLE PWEOH
  1586. (0xD4B1 <= code && code <= 0xD4CB) || // Lo [27] HANGUL SYLLABLE PWEG..HANGUL SYLLABLE PWEH
  1587. (0xD4CD <= code && code <= 0xD4E7) || // Lo [27] HANGUL SYLLABLE PWIG..HANGUL SYLLABLE PWIH
  1588. (0xD4E9 <= code && code <= 0xD503) || // Lo [27] HANGUL SYLLABLE PYUG..HANGUL SYLLABLE PYUH
  1589. (0xD505 <= code && code <= 0xD51F) || // Lo [27] HANGUL SYLLABLE PEUG..HANGUL SYLLABLE PEUH
  1590. (0xD521 <= code && code <= 0xD53B) || // Lo [27] HANGUL SYLLABLE PYIG..HANGUL SYLLABLE PYIH
  1591. (0xD53D <= code && code <= 0xD557) || // Lo [27] HANGUL SYLLABLE PIG..HANGUL SYLLABLE PIH
  1592. (0xD559 <= code && code <= 0xD573) || // Lo [27] HANGUL SYLLABLE HAG..HANGUL SYLLABLE HAH
  1593. (0xD575 <= code && code <= 0xD58F) || // Lo [27] HANGUL SYLLABLE HAEG..HANGUL SYLLABLE HAEH
  1594. (0xD591 <= code && code <= 0xD5AB) || // Lo [27] HANGUL SYLLABLE HYAG..HANGUL SYLLABLE HYAH
  1595. (0xD5AD <= code && code <= 0xD5C7) || // Lo [27] HANGUL SYLLABLE HYAEG..HANGUL SYLLABLE HYAEH
  1596. (0xD5C9 <= code && code <= 0xD5E3) || // Lo [27] HANGUL SYLLABLE HEOG..HANGUL SYLLABLE HEOH
  1597. (0xD5E5 <= code && code <= 0xD5FF) || // Lo [27] HANGUL SYLLABLE HEG..HANGUL SYLLABLE HEH
  1598. (0xD601 <= code && code <= 0xD61B) || // Lo [27] HANGUL SYLLABLE HYEOG..HANGUL SYLLABLE HYEOH
  1599. (0xD61D <= code && code <= 0xD637) || // Lo [27] HANGUL SYLLABLE HYEG..HANGUL SYLLABLE HYEH
  1600. (0xD639 <= code && code <= 0xD653) || // Lo [27] HANGUL SYLLABLE HOG..HANGUL SYLLABLE HOH
  1601. (0xD655 <= code && code <= 0xD66F) || // Lo [27] HANGUL SYLLABLE HWAG..HANGUL SYLLABLE HWAH
  1602. (0xD671 <= code && code <= 0xD68B) || // Lo [27] HANGUL SYLLABLE HWAEG..HANGUL SYLLABLE HWAEH
  1603. (0xD68D <= code && code <= 0xD6A7) || // Lo [27] HANGUL SYLLABLE HOEG..HANGUL SYLLABLE HOEH
  1604. (0xD6A9 <= code && code <= 0xD6C3) || // Lo [27] HANGUL SYLLABLE HYOG..HANGUL SYLLABLE HYOH
  1605. (0xD6C5 <= code && code <= 0xD6DF) || // Lo [27] HANGUL SYLLABLE HUG..HANGUL SYLLABLE HUH
  1606. (0xD6E1 <= code && code <= 0xD6FB) || // Lo [27] HANGUL SYLLABLE HWEOG..HANGUL SYLLABLE HWEOH
  1607. (0xD6FD <= code && code <= 0xD717) || // Lo [27] HANGUL SYLLABLE HWEG..HANGUL SYLLABLE HWEH
  1608. (0xD719 <= code && code <= 0xD733) || // Lo [27] HANGUL SYLLABLE HWIG..HANGUL SYLLABLE HWIH
  1609. (0xD735 <= code && code <= 0xD74F) || // Lo [27] HANGUL SYLLABLE HYUG..HANGUL SYLLABLE HYUH
  1610. (0xD751 <= code && code <= 0xD76B) || // Lo [27] HANGUL SYLLABLE HEUG..HANGUL SYLLABLE HEUH
  1611. (0xD76D <= code && code <= 0xD787) || // Lo [27] HANGUL SYLLABLE HYIG..HANGUL SYLLABLE HYIH
  1612. (0xD789 <= code && code <= 0xD7A3) // Lo [27] HANGUL SYLLABLE HIG..HANGUL SYLLABLE HIH
  1613. ){
  1614. return LVT;
  1615. }
  1616. if(
  1617. 0x261D == code || // So WHITE UP POINTING INDEX
  1618. 0x26F9 == code || // So PERSON WITH BALL
  1619. (0x270A <= code && code <= 0x270D) || // So [4] RAISED FIST..WRITING HAND
  1620. 0x1F385 == code || // So FATHER CHRISTMAS
  1621. (0x1F3C2 <= code && code <= 0x1F3C4) || // So [3] SNOWBOARDER..SURFER
  1622. 0x1F3C7 == code || // So HORSE RACING
  1623. (0x1F3CA <= code && code <= 0x1F3CC) || // So [3] SWIMMER..GOLFER
  1624. (0x1F442 <= code && code <= 0x1F443) || // So [2] EAR..NOSE
  1625. (0x1F446 <= code && code <= 0x1F450) || // So [11] WHITE UP POINTING BACKHAND INDEX..OPEN HANDS SIGN
  1626. 0x1F46E == code || // So POLICE OFFICER
  1627. (0x1F470 <= code && code <= 0x1F478) || // So [9] BRIDE WITH VEIL..PRINCESS
  1628. 0x1F47C == code || // So BABY ANGEL
  1629. (0x1F481 <= code && code <= 0x1F483) || // So [3] INFORMATION DESK PERSON..DANCER
  1630. (0x1F485 <= code && code <= 0x1F487) || // So [3] NAIL POLISH..HAIRCUT
  1631. 0x1F4AA == code || // So FLEXED BICEPS
  1632. (0x1F574 <= code && code <= 0x1F575) || // So [2] MAN IN BUSINESS SUIT LEVITATING..SLEUTH OR SPY
  1633. 0x1F57A == code || // So MAN DANCING
  1634. 0x1F590 == code || // So RAISED HAND WITH FINGERS SPLAYED
  1635. (0x1F595 <= code && code <= 0x1F596) || // So [2] REVERSED HAND WITH MIDDLE FINGER EXTENDED..RAISED HAND WITH PART BETWEEN MIDDLE AND RING FINGERS
  1636. (0x1F645 <= code && code <= 0x1F647) || // So [3] FACE WITH NO GOOD GESTURE..PERSON BOWING DEEPLY
  1637. (0x1F64B <= code && code <= 0x1F64F) || // So [5] HAPPY PERSON RAISING ONE HAND..PERSON WITH FOLDED HANDS
  1638. 0x1F6A3 == code || // So ROWBOAT
  1639. (0x1F6B4 <= code && code <= 0x1F6B6) || // So [3] BICYCLIST..PEDESTRIAN
  1640. 0x1F6C0 == code || // So BATH
  1641. 0x1F6CC == code || // So SLEEPING ACCOMMODATION
  1642. (0x1F918 <= code && code <= 0x1F91C) || // So [5] SIGN OF THE HORNS..RIGHT-FACING FIST
  1643. (0x1F91E <= code && code <= 0x1F91F) || // So [2] HAND WITH INDEX AND MIDDLE FINGERS CROSSED..I LOVE YOU HAND SIGN
  1644. 0x1F926 == code || // So FACE PALM
  1645. (0x1F930 <= code && code <= 0x1F939) || // So [10] PREGNANT WOMAN..JUGGLING
  1646. (0x1F93D <= code && code <= 0x1F93E) || // So [2] WATER POLO..HANDBALL
  1647. (0x1F9D1 <= code && code <= 0x1F9DD) // So [13] ADULT..ELF
  1648. ){
  1649. return E_Base;
  1650. }
  1651. if(
  1652. (0x1F3FB <= code && code <= 0x1F3FF) // Sk [5] EMOJI MODIFIER FITZPATRICK TYPE-1-2..EMOJI MODIFIER FITZPATRICK TYPE-6
  1653. ){
  1654. return E_Modifier;
  1655. }
  1656. if(
  1657. 0x200D == code // Cf ZERO WIDTH JOINER
  1658. ){
  1659. return ZWJ;
  1660. }
  1661. if(
  1662. 0x2640 == code || // So FEMALE SIGN
  1663. 0x2642 == code || // So MALE SIGN
  1664. (0x2695 <= code && code <= 0x2696) || // So [2] STAFF OF AESCULAPIUS..SCALES
  1665. 0x2708 == code || // So AIRPLANE
  1666. 0x2764 == code || // So HEAVY BLACK HEART
  1667. 0x1F308 == code || // So RAINBOW
  1668. 0x1F33E == code || // So EAR OF RICE
  1669. 0x1F373 == code || // So COOKING
  1670. 0x1F393 == code || // So GRADUATION CAP
  1671. 0x1F3A4 == code || // So MICROPHONE
  1672. 0x1F3A8 == code || // So ARTIST PALETTE
  1673. 0x1F3EB == code || // So SCHOOL
  1674. 0x1F3ED == code || // So FACTORY
  1675. 0x1F48B == code || // So KISS MARK
  1676. (0x1F4BB <= code && code <= 0x1F4BC) || // So [2] PERSONAL COMPUTER..BRIEFCASE
  1677. 0x1F527 == code || // So WRENCH
  1678. 0x1F52C == code || // So MICROSCOPE
  1679. 0x1F5E8 == code || // So LEFT SPEECH BUBBLE
  1680. 0x1F680 == code || // So ROCKET
  1681. 0x1F692 == code // So FIRE ENGINE
  1682. ){
  1683. return Glue_After_Zwj;
  1684. }
  1685. if(
  1686. (0x1F466 <= code && code <= 0x1F469) // So [4] BOY..WOMAN
  1687. ){
  1688. return E_Base_GAZ;
  1689. }
  1690. //all unlisted characters have a grapheme break property of "Other"
  1691. return Other;
  1692. }
  1693. return this;
  1694. }
  1695. if (module.exports) {
  1696. module.exports = GraphemeSplitter;
  1697. }
  1698. });
  1699. export { graphemeSplitter as default };