diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-05-20 17:56:55 +0200 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-05-20 17:56:55 +0200 |
commit | 2e125c1c7e75db14a88f0b8b09e61a132977c63e (patch) | |
tree | 30c37263315e07f983c2b05b69c17e47c827b849 /include/unicode | |
parent | d6b1db5c14ca1e731db299748d2df9eb955c9f7c (diff) |
Support the 4 forms of Unicode string normalization
Diffstat (limited to 'include/unicode')
-rw-r--r-- | include/unicode/_cm.h | 990 | ||||
-rw-r--r-- | include/unicode/string.h | 20 |
2 files changed, 1004 insertions, 6 deletions
diff --git a/include/unicode/_cm.h b/include/unicode/_cm.h new file mode 100644 index 0000000..fdeb361 --- /dev/null +++ b/include/unicode/_cm.h @@ -0,0 +1,990 @@ +/* This file is autogenerated by gen/prop/cm.c; DO NOT EDIT. */ + +#include <inttypes.h> + +#include "_attrs.h" +#include "rune.h" + +constexpr int HT_EXP = 11; + +static const struct { + uint64_t k; + rune v; +} uprop_cm_ht[] = { + [ 3] = {UINT64_C(0x000003B100000345), RUNE_C(0x001FB3)}, + [ 5] = {UINT64_C(0x0000229100000338), RUNE_C(0x0022E2)}, + [ 6] = {UINT64_C(0x00000DD900000DCA), RUNE_C(0x000DDA)}, + [ 8] = {UINT64_C(0x0000005700000308), RUNE_C(0x001E84)}, + [ 10] = {UINT64_C(0x000002920000030C), RUNE_C(0x0001EF)}, + [ 11] = {UINT64_C(0x00001F0800000300), RUNE_C(0x001F0A)}, + [ 14] = {UINT64_C(0x0000004700000327), RUNE_C(0x000122)}, + [ 15] = {UINT64_C(0x00001F5100000301), RUNE_C(0x001F55)}, + [ 18] = {UINT64_C(0x0000004700000307), RUNE_C(0x000120)}, + [ 21] = {UINT64_C(0x000001AF00000300), RUNE_C(0x001EEA)}, + [ 22] = {UINT64_C(0x000000770000030A), RUNE_C(0x001E98)}, + [ 23] = {UINT64_C(0x00001F5900000301), RUNE_C(0x001F5D)}, + [ 28] = {UINT64_C(0x000000E200000300), RUNE_C(0x001EA7)}, + [ 29] = {UINT64_C(0x0000007900000304), RUNE_C(0x000233)}, + [ 31] = {UINT64_C(0x000000FC00000301), RUNE_C(0x0001D8)}, + [ 33] = {UINT64_C(0x0000043700000308), RUNE_C(0x0004DF)}, + [ 35] = {UINT64_C(0x000030BD00003099), RUNE_C(0x0030BE)}, + [ 37] = {UINT64_C(0x0000006500000301), RUNE_C(0x0000E9)}, + [ 39] = {UINT64_C(0x00001F5100000300), RUNE_C(0x001F53)}, + [ 40] = {UINT64_C(0x0000006900000330), RUNE_C(0x001E2D)}, + [ 42] = {UINT64_C(0x0000006600000307), RUNE_C(0x001E1F)}, + [ 43] = {UINT64_C(0x0000006500000327), RUNE_C(0x000229)}, + [ 49] = {UINT64_C(0x0000007500000330), RUNE_C(0x001E75)}, + [ 50] = {UINT64_C(0x0000007300000323), RUNE_C(0x001E63)}, + [ 51] = {UINT64_C(0x000030720000309A), RUNE_C(0x003074)}, + [ 55] = {UINT64_C(0x0000305100003099), RUNE_C(0x003052)}, + [ 57] = {UINT64_C(0x0000006F00000309), RUNE_C(0x001ECF)}, + [ 58] = {UINT64_C(0x00001EA000000306), RUNE_C(0x001EB6)}, + [ 59] = {UINT64_C(0x0000224D00000338), RUNE_C(0x00226D)}, + [ 61] = {UINT64_C(0x000003BF00000301), RUNE_C(0x0003CC)}, + [ 65] = {UINT64_C(0x00001F4100000301), RUNE_C(0x001F45)}, + [ 69] = {UINT64_C(0x00001F2C00000345), RUNE_C(0x001F9C)}, + [ 70] = {UINT64_C(0x000009280000093C), RUNE_C(0x000929)}, + [ 76] = {UINT64_C(0x00001F3000000300), RUNE_C(0x001F32)}, + [ 78] = {UINT64_C(0x000000FC00000300), RUNE_C(0x0001DC)}, + [ 79] = {UINT64_C(0x0000004500000307), RUNE_C(0x000116)}, + [ 82] = {UINT64_C(0x00001F6900000345), RUNE_C(0x001FA9)}, + [ 83] = {UINT64_C(0x0000004700000304), RUNE_C(0x001E20)}, + [ 86] = {UINT64_C(0x000030780000309A), RUNE_C(0x00307A)}, + [ 87] = {UINT64_C(0x0000005300000326), RUNE_C(0x000218)}, + [ 90] = {UINT64_C(0x0000005200000331), RUNE_C(0x001E5E)}, + [ 92] = {UINT64_C(0x0000006F00000303), RUNE_C(0x0000F5)}, + [ 95] = {UINT64_C(0x0000005400000331), RUNE_C(0x001E6E)}, + [ 97] = {UINT64_C(0x0000039500000313), RUNE_C(0x001F18)}, + [ 99] = {UINT64_C(0x000003A900000314), RUNE_C(0x001F69)}, + [ 100] = {UINT64_C(0x0000004800000307), RUNE_C(0x001E22)}, + [ 101] = {UINT64_C(0x000000C400000304), RUNE_C(0x0001DE)}, + [ 104] = {UINT64_C(0x0000005300000307), RUNE_C(0x001E60)}, + [ 106] = {UINT64_C(0x00001F6000000342), RUNE_C(0x001F66)}, + [ 107] = {UINT64_C(0x000000690000030C), RUNE_C(0x0001D0)}, + [ 109] = {UINT64_C(0x000000450000032D), RUNE_C(0x001E18)}, + [ 113] = {UINT64_C(0x000003B700000342), RUNE_C(0x001FC6)}, + [ 114] = {UINT64_C(0x000000D400000309), RUNE_C(0x001ED4)}, + [ 115] = {UINT64_C(0x00001B0B00001B35), RUNE_C(0x001B0C)}, + [ 116] = {UINT64_C(0x000000CA00000300), RUNE_C(0x001EC0)}, + [ 118] = {UINT64_C(0x000003C100000313), RUNE_C(0x001FE4)}, + [ 120] = {UINT64_C(0x00001FBF00000301), RUNE_C(0x001FCE)}, + [ 121] = {UINT64_C(0x000003BF00000314), RUNE_C(0x001F41)}, + [ 123] = {UINT64_C(0x000000550000030A), RUNE_C(0x00016E)}, + [ 124] = {UINT64_C(0x0000006E00000327), RUNE_C(0x000146)}, + [ 126] = {UINT64_C(0x000000720000030C), RUNE_C(0x000159)}, + [ 130] = {UINT64_C(0x00001F2100000345), RUNE_C(0x001F91)}, + [ 131] = {UINT64_C(0x0000226100000338), RUNE_C(0x002262)}, + [ 133] = {UINT64_C(0x0000005700000300), RUNE_C(0x001E80)}, + [ 134] = {UINT64_C(0x000009300000093C), RUNE_C(0x000931)}, + [ 136] = {UINT64_C(0x000000630000030C), RUNE_C(0x00010D)}, + [ 137] = {UINT64_C(0x00000DDC00000DCA), RUNE_C(0x000DDD)}, + [ 139] = {UINT64_C(0x00001E3600000304), RUNE_C(0x001E38)}, + [ 140] = {UINT64_C(0x0000004100000303), RUNE_C(0x0000C3)}, + [ 141] = {UINT64_C(0x0000004100000302), RUNE_C(0x0000C2)}, + [ 142] = {UINT64_C(0x0000005400000323), RUNE_C(0x001E6C)}, + [ 143] = {UINT64_C(0x0000007500000303), RUNE_C(0x000169)}, + [ 144] = {UINT64_C(0x0000006500000328), RUNE_C(0x000119)}, + [ 145] = {UINT64_C(0x0000004300000301), RUNE_C(0x000106)}, + [ 147] = {UINT64_C(0x0000040600000308), RUNE_C(0x000407)}, + [ 148] = {UINT64_C(0x0000006C00000323), RUNE_C(0x001E37)}, + [ 149] = {UINT64_C(0x0000224800000338), RUNE_C(0x002249)}, + [ 150] = {UINT64_C(0x00000BC600000BD7), RUNE_C(0x000BCC)}, + [ 153] = {UINT64_C(0x0000039700000301), RUNE_C(0x000389)}, + [ 155] = {UINT64_C(0x0000006100000303), RUNE_C(0x0000E3)}, + [ 156] = {UINT64_C(0x0000005500000303), RUNE_C(0x000168)}, + [ 157] = {UINT64_C(0x0000041600000308), RUNE_C(0x0004DC)}, + [ 168] = {UINT64_C(0x0000043000000308), RUNE_C(0x0004D3)}, + [ 170] = {UINT64_C(0x000000650000030C), RUNE_C(0x00011B)}, + [ 171] = {UINT64_C(0x0000005300000302), RUNE_C(0x00015C)}, + [ 172] = {UINT64_C(0x0000228300000338), RUNE_C(0x002285)}, + [ 174] = {UINT64_C(0x0000006200000307), RUNE_C(0x001E03)}, + [ 180] = {UINT64_C(0x0000010300000300), RUNE_C(0x001EB1)}, + [ 182] = {UINT64_C(0x0000041800000308), RUNE_C(0x0004E4)}, + [ 185] = {UINT64_C(0x0000005700000302), RUNE_C(0x000174)}, + [ 186] = {UINT64_C(0x0000004800000327), RUNE_C(0x001E28)}, + [ 187] = {UINT64_C(0x0000006200000331), RUNE_C(0x001E07)}, + [ 189] = {UINT64_C(0x00000CC600000CC2), RUNE_C(0x000CCA)}, + [ 190] = {UINT64_C(0x0000010200000309), RUNE_C(0x001EB2)}, + [ 191] = {UINT64_C(0x0000006800000323), RUNE_C(0x001E25)}, + [ 194] = {UINT64_C(0x0000004F00000301), RUNE_C(0x0000D3)}, + [ 195] = {UINT64_C(0x0000004F0000030B), RUNE_C(0x000150)}, + [ 196] = {UINT64_C(0x000003C500000304), RUNE_C(0x001FE1)}, + [ 198] = {UINT64_C(0x00000CC600000CD6), RUNE_C(0x000CC8)}, + [ 199] = {UINT64_C(0x00001F2800000300), RUNE_C(0x001F2A)}, + [ 208] = {UINT64_C(0x00001F6600000345), RUNE_C(0x001FA6)}, + [ 210] = {UINT64_C(0x0000007300000326), RUNE_C(0x000219)}, + [ 213] = {UINT64_C(0x0000003D00000338), RUNE_C(0x002260)}, + [ 214] = {UINT64_C(0x0000004200000323), RUNE_C(0x001E04)}, + [ 220] = {UINT64_C(0x000003C100000314), RUNE_C(0x001FE5)}, + [ 221] = {UINT64_C(0x000000F500000308), RUNE_C(0x001E4F)}, + [ 223] = {UINT64_C(0x0000004900000308), RUNE_C(0x0000CF)}, + [ 224] = {UINT64_C(0x00001F2A00000345), RUNE_C(0x001F9A)}, + [ 225] = {UINT64_C(0x00001F2900000342), RUNE_C(0x001F2F)}, + [ 226] = {UINT64_C(0x0000004100000328), RUNE_C(0x000104)}, + [ 229] = {UINT64_C(0x00001F6100000345), RUNE_C(0x001FA1)}, + [ 233] = {UINT64_C(0x0000041E00000308), RUNE_C(0x0004E6)}, + [ 234] = {UINT64_C(0x000003B900000313), RUNE_C(0x001F30)}, + [ 238] = {UINT64_C(0x000000E200000301), RUNE_C(0x001EA5)}, + [ 239] = {UINT64_C(0x0000306F0000309A), RUNE_C(0x003071)}, + [ 240] = {UINT64_C(0x0000011200000300), RUNE_C(0x001E14)}, + [ 244] = {UINT64_C(0x000009C7000009D7), RUNE_C(0x0009CC)}, + [ 248] = {UINT64_C(0x0000004900000303), RUNE_C(0x000128)}, + [ 250] = {UINT64_C(0x000000690000030F), RUNE_C(0x000209)}, + [ 254] = {UINT64_C(0x0000006900000311), RUNE_C(0x00020B)}, + [ 255] = {UINT64_C(0x000000F500000301), RUNE_C(0x001E4D)}, + [ 258] = {UINT64_C(0x00001F4800000300), RUNE_C(0x001F4A)}, + [ 260] = {UINT64_C(0x000030C400003099), RUNE_C(0x0030C5)}, + [ 261] = {UINT64_C(0x000003B100000306), RUNE_C(0x001FB0)}, + [ 262] = {UINT64_C(0x0000005300000301), RUNE_C(0x00015A)}, + [ 263] = {UINT64_C(0x000003D200000308), RUNE_C(0x0003D4)}, + [ 265] = {UINT64_C(0x000003CB00000300), RUNE_C(0x001FE2)}, + [ 266] = {UINT64_C(0x000030C600003099), RUNE_C(0x0030C7)}, + [ 273] = {UINT64_C(0x000000D400000301), RUNE_C(0x001ED0)}, + [ 275] = {UINT64_C(0x000003B700000314), RUNE_C(0x001F21)}, + [ 276] = {UINT64_C(0x000001A100000309), RUNE_C(0x001EDF)}, + [ 280] = {UINT64_C(0x0000005400000327), RUNE_C(0x000162)}, + [ 288] = {UINT64_C(0x00000DD900000DCF), RUNE_C(0x000DDC)}, + [ 291] = {UINT64_C(0x000030EF00003099), RUNE_C(0x0030F7)}, + [ 292] = {UINT64_C(0x000000A800000300), RUNE_C(0x001FED)}, + [ 294] = {UINT64_C(0x0000005500000330), RUNE_C(0x001E74)}, + [ 296] = {UINT64_C(0x0000005400000326), RUNE_C(0x00021A)}, + [ 299] = {UINT64_C(0x0000004F00000323), RUNE_C(0x001ECC)}, + [ 303] = {UINT64_C(0x000022B200000338), RUNE_C(0x0022EA)}, + [ 304] = {UINT64_C(0x00001F0100000300), RUNE_C(0x001F03)}, + [ 309] = {UINT64_C(0x0000043800000304), RUNE_C(0x0004E3)}, + [ 310] = {UINT64_C(0x0000006900000323), RUNE_C(0x001ECB)}, + [ 312] = {UINT64_C(0x0000006E00000331), RUNE_C(0x001E49)}, + [ 315] = {UINT64_C(0x000001A000000303), RUNE_C(0x001EE0)}, + [ 318] = {UINT64_C(0x0000015B00000307), RUNE_C(0x001E65)}, + [ 319] = {UINT64_C(0x00000D4600000D57), RUNE_C(0x000D4C)}, + [ 323] = {UINT64_C(0x0000007900000300), RUNE_C(0x001EF3)}, + [ 324] = {UINT64_C(0x00001F2100000342), RUNE_C(0x001F27)}, + [ 326] = {UINT64_C(0x0000004900000309), RUNE_C(0x001EC8)}, + [ 332] = {UINT64_C(0x00001EA000000302), RUNE_C(0x001EAC)}, + [ 334] = {UINT64_C(0x0000004400000323), RUNE_C(0x001E0C)}, + [ 338] = {UINT64_C(0x0000004500000300), RUNE_C(0x0000C8)}, + [ 339] = {UINT64_C(0x0000007700000302), RUNE_C(0x000175)}, + [ 343] = {UINT64_C(0x000030B100003099), RUNE_C(0x0030B2)}, + [ 344] = {UINT64_C(0x0000022900000306), RUNE_C(0x001E1D)}, + [ 345] = {UINT64_C(0x0000007900000323), RUNE_C(0x001EF5)}, + [ 348] = {UINT64_C(0x000000750000031B), RUNE_C(0x0001B0)}, + [ 349] = {UINT64_C(0x0000042700000308), RUNE_C(0x0004F4)}, + [ 350] = {UINT64_C(0x000010250000102E), RUNE_C(0x001026)}, + [ 355] = {UINT64_C(0x0000006900000302), RUNE_C(0x0000EE)}, + [ 357] = {UINT64_C(0x0000004B00000323), RUNE_C(0x001E32)}, + [ 358] = {UINT64_C(0x0000004E00000303), RUNE_C(0x0000D1)}, + [ 359] = {UINT64_C(0x0000226500000338), RUNE_C(0x002271)}, + [ 362] = {UINT64_C(0x00001FF600000345), RUNE_C(0x001FF7)}, + [ 366] = {UINT64_C(0x00001F1000000300), RUNE_C(0x001F12)}, + [ 369] = {UINT64_C(0x00001F1800000300), RUNE_C(0x001F1A)}, + [ 370] = {UINT64_C(0x000003C500000313), RUNE_C(0x001F50)}, + [ 371] = {UINT64_C(0x000003B500000300), RUNE_C(0x001F72)}, + [ 373] = {UINT64_C(0x000004E800000308), RUNE_C(0x0004EA)}, + [ 374] = {UINT64_C(0x00001F6100000342), RUNE_C(0x001F67)}, + [ 375] = {UINT64_C(0x0000006D00000323), RUNE_C(0x001E43)}, + [ 378] = {UINT64_C(0x00001F3800000300), RUNE_C(0x001F3A)}, + [ 379] = {UINT64_C(0x000000CA00000301), RUNE_C(0x001EBE)}, + [ 382] = {UINT64_C(0x0000006B00000301), RUNE_C(0x001E31)}, + [ 384] = {UINT64_C(0x0000044300000306), RUNE_C(0x00045E)}, + [ 385] = {UINT64_C(0x0000041600000306), RUNE_C(0x0004C1)}, + [ 388] = {UINT64_C(0x0000307B00003099), RUNE_C(0x00307C)}, + [ 391] = {UINT64_C(0x0000005200000301), RUNE_C(0x000154)}, + [ 392] = {UINT64_C(0x00001F0300000345), RUNE_C(0x001F83)}, + [ 394] = {UINT64_C(0x00001F7C00000345), RUNE_C(0x001FF2)}, + [ 395] = {UINT64_C(0x0000228600000338), RUNE_C(0x002288)}, + [ 396] = {UINT64_C(0x0000039500000301), RUNE_C(0x000388)}, + [ 397] = {UINT64_C(0x00001F3800000342), RUNE_C(0x001F3E)}, + [ 399] = {UINT64_C(0x0000220B00000338), RUNE_C(0x00220C)}, + [ 400] = {UINT64_C(0x0000043800000300), RUNE_C(0x00045D)}, + [ 401] = {UINT64_C(0x0000006700000327), RUNE_C(0x000123)}, + [ 403] = {UINT64_C(0x0000007A0000030C), RUNE_C(0x00017E)}, + [ 407] = {UINT64_C(0x0000006B00000323), RUNE_C(0x001E33)}, + [ 408] = {UINT64_C(0x0000006900000301), RUNE_C(0x0000ED)}, + [ 409] = {UINT64_C(0x0000010200000301), RUNE_C(0x001EAE)}, + [ 411] = {UINT64_C(0x0000006D00000301), RUNE_C(0x001E3F)}, + [ 415] = {UINT64_C(0x0000006100000311), RUNE_C(0x000203)}, + [ 416] = {UINT64_C(0x00001F0E00000345), RUNE_C(0x001F8E)}, + [ 423] = {UINT64_C(0x000003A900000300), RUNE_C(0x001FFA)}, + [ 428] = {UINT64_C(0x0000304F00003099), RUNE_C(0x003050)}, + [ 429] = {UINT64_C(0x00001F7400000345), RUNE_C(0x001FC2)}, + [ 431] = {UINT64_C(0x000030AB00003099), RUNE_C(0x0030AC)}, + [ 433] = {UINT64_C(0x0000043600000306), RUNE_C(0x0004C2)}, + [ 435] = {UINT64_C(0x00001F4000000300), RUNE_C(0x001F42)}, + [ 436] = {UINT64_C(0x00001F0B00000345), RUNE_C(0x001F8B)}, + [ 438] = {UINT64_C(0x0000004200000331), RUNE_C(0x001E06)}, + [ 439] = {UINT64_C(0x0000006500000323), RUNE_C(0x001EB9)}, + [ 440] = {UINT64_C(0x00001F5000000300), RUNE_C(0x001F52)}, + [ 442] = {UINT64_C(0x000000480000032E), RUNE_C(0x001E2A)}, + [ 445] = {UINT64_C(0x0000041A00000301), RUNE_C(0x00040C)}, + [ 449] = {UINT64_C(0x000000430000030C), RUNE_C(0x00010C)}, + [ 450] = {UINT64_C(0x0000005600000323), RUNE_C(0x001E7E)}, + [ 451] = {UINT64_C(0x0000007500000328), RUNE_C(0x000173)}, + [ 454] = {UINT64_C(0x0000016B00000308), RUNE_C(0x001E7B)}, + [ 459] = {UINT64_C(0x00000B9200000BD7), RUNE_C(0x000B94)}, + [ 461] = {UINT64_C(0x0000219200000338), RUNE_C(0x00219B)}, + [ 462] = {UINT64_C(0x0000007400000327), RUNE_C(0x000163)}, + [ 465] = {UINT64_C(0x000003B700000345), RUNE_C(0x001FC3)}, + [ 468] = {UINT64_C(0x0000219000000338), RUNE_C(0x00219A)}, + [ 469] = {UINT64_C(0x0000004B00000327), RUNE_C(0x000136)}, + [ 470] = {UINT64_C(0x000000DC00000300), RUNE_C(0x0001DB)}, + [ 471] = {UINT64_C(0x0000006100000309), RUNE_C(0x001EA3)}, + [ 473] = {UINT64_C(0x00001FBF00000342), RUNE_C(0x001FCF)}, + [ 475] = {UINT64_C(0x000000750000030C), RUNE_C(0x0001D4)}, + [ 478] = {UINT64_C(0x00001F0800000345), RUNE_C(0x001F88)}, + [ 479] = {UINT64_C(0x000003BF00000300), RUNE_C(0x001F78)}, + [ 481] = {UINT64_C(0x0000226400000338), RUNE_C(0x002270)}, + [ 482] = {UINT64_C(0x0000007400000308), RUNE_C(0x001E97)}, + [ 483] = {UINT64_C(0x0000043800000308), RUNE_C(0x0004E5)}, + [ 484] = {UINT64_C(0x0000006500000300), RUNE_C(0x0000E8)}, + [ 487] = {UINT64_C(0x0000007300000301), RUNE_C(0x00015B)}, + [ 488] = {UINT64_C(0x000003CB00000342), RUNE_C(0x001FE7)}, + [ 491] = {UINT64_C(0x000003C900000314), RUNE_C(0x001F61)}, + [ 492] = {UINT64_C(0x0000005500000302), RUNE_C(0x0000DB)}, + [ 496] = {UINT64_C(0x0000041500000306), RUNE_C(0x0004D6)}, + [ 497] = {UINT64_C(0x0000045600000308), RUNE_C(0x000457)}, + [ 500] = {UINT64_C(0x00001B4200001B35), RUNE_C(0x001B43)}, + [ 502] = {UINT64_C(0x00001F6200000345), RUNE_C(0x001FA2)}, + [ 503] = {UINT64_C(0x000000640000030C), RUNE_C(0x00010F)}, + [ 504] = {UINT64_C(0x00000B4700000B57), RUNE_C(0x000B4C)}, + [ 507] = {UINT64_C(0x0000039900000304), RUNE_C(0x001FD9)}, + [ 508] = {UINT64_C(0x0000007900000307), RUNE_C(0x001E8F)}, + [ 509] = {UINT64_C(0x000004D800000308), RUNE_C(0x0004DA)}, + [ 511] = {UINT64_C(0x0000006900000306), RUNE_C(0x00012D)}, + [ 513] = {UINT64_C(0x000000D400000303), RUNE_C(0x001ED6)}, + [ 514] = {UINT64_C(0x0000006100000328), RUNE_C(0x000105)}, + [ 517] = {UINT64_C(0x0000006900000309), RUNE_C(0x001EC9)}, + [ 520] = {UINT64_C(0x0000039900000308), RUNE_C(0x0003AA)}, + [ 521] = {UINT64_C(0x0000005500000324), RUNE_C(0x001E72)}, + [ 529] = {UINT64_C(0x000000680000030C), RUNE_C(0x00021F)}, + [ 530] = {UINT64_C(0x0000043600000308), RUNE_C(0x0004DD)}, + [ 531] = {UINT64_C(0x00001F2100000301), RUNE_C(0x001F25)}, + [ 534] = {UINT64_C(0x00001B3C00001B35), RUNE_C(0x001B3D)}, + [ 537] = {UINT64_C(0x0000042300000308), RUNE_C(0x0004F0)}, + [ 541] = {UINT64_C(0x0000007700000323), RUNE_C(0x001E89)}, + [ 542] = {UINT64_C(0x000000E200000309), RUNE_C(0x001EA9)}, + [ 547] = {UINT64_C(0x000030D800003099), RUNE_C(0x0030D9)}, + [ 548] = {UINT64_C(0x0000305F00003099), RUNE_C(0x003060)}, + [ 549] = {UINT64_C(0x00001F0000000300), RUNE_C(0x001F02)}, + [ 550] = {UINT64_C(0x00001FFE00000300), RUNE_C(0x001FDD)}, + [ 553] = {UINT64_C(0x000001AF00000301), RUNE_C(0x001EE8)}, + [ 554] = {UINT64_C(0x0000007300000307), RUNE_C(0x001E61)}, + [ 556] = {UINT64_C(0x00001F2800000345), RUNE_C(0x001F98)}, + [ 558] = {UINT64_C(0x0000007000000307), RUNE_C(0x001E57)}, + [ 562] = {UINT64_C(0x0000007700000300), RUNE_C(0x001E81)}, + [ 563] = {UINT64_C(0x0000007500000308), RUNE_C(0x0000FC)}, + [ 566] = {UINT64_C(0x0000006F00000300), RUNE_C(0x0000F2)}, + [ 567] = {UINT64_C(0x000000D800000301), RUNE_C(0x0001FE)}, + [ 568] = {UINT64_C(0x000000C200000303), RUNE_C(0x001EAA)}, + [ 572] = {UINT64_C(0x0000005200000311), RUNE_C(0x000212)}, + [ 573] = {UINT64_C(0x0000007500000306), RUNE_C(0x00016D)}, + [ 576] = {UINT64_C(0x0000227A00000338), RUNE_C(0x002280)}, + [ 577] = {UINT64_C(0x0000005A00000301), RUNE_C(0x000179)}, + [ 579] = {UINT64_C(0x0000039900000301), RUNE_C(0x00038A)}, + [ 586] = {UINT64_C(0x0000006500000302), RUNE_C(0x0000EA)}, + [ 587] = {UINT64_C(0x00001F6900000300), RUNE_C(0x001F6B)}, + [ 588] = {UINT64_C(0x000000D500000304), RUNE_C(0x00022C)}, + [ 589] = {UINT64_C(0x000000EA00000301), RUNE_C(0x001EBF)}, + [ 591] = {UINT64_C(0x00001F6900000301), RUNE_C(0x001F6D)}, + [ 592] = {UINT64_C(0x0000305700003099), RUNE_C(0x003058)}, + [ 593] = {UINT64_C(0x000000D400000300), RUNE_C(0x001ED2)}, + [ 594] = {UINT64_C(0x000000720000030F), RUNE_C(0x000211)}, + [ 595] = {UINT64_C(0x000000FC0000030C), RUNE_C(0x0001DA)}, + [ 596] = {UINT64_C(0x000030AF00003099), RUNE_C(0x0030B0)}, + [ 598] = {UINT64_C(0x000000520000030F), RUNE_C(0x000210)}, + [ 601] = {UINT64_C(0x0000039F00000314), RUNE_C(0x001F49)}, + [ 605] = {UINT64_C(0x00001F1900000301), RUNE_C(0x001F1D)}, + [ 607] = {UINT64_C(0x0000004800000302), RUNE_C(0x000124)}, + [ 608] = {UINT64_C(0x0000006900000300), RUNE_C(0x0000EC)}, + [ 617] = {UINT64_C(0x000000520000030C), RUNE_C(0x000158)}, + [ 624] = {UINT64_C(0x0000007500000324), RUNE_C(0x001E73)}, + [ 628] = {UINT64_C(0x0000005500000306), RUNE_C(0x00016C)}, + [ 633] = {UINT64_C(0x00001F0900000300), RUNE_C(0x001F0B)}, + [ 634] = {UINT64_C(0x0000006400000307), RUNE_C(0x001E0B)}, + [ 635] = {UINT64_C(0x000113470001133E), RUNE_C(0x01134B)}, + [ 640] = {UINT64_C(0x0000006400000323), RUNE_C(0x001E0D)}, + [ 645] = {UINT64_C(0x0000005A00000302), RUNE_C(0x001E90)}, + [ 647] = {UINT64_C(0x00001F3100000300), RUNE_C(0x001F33)}, + [ 649] = {UINT64_C(0x00001F3900000301), RUNE_C(0x001F3D)}, + [ 651] = {UINT64_C(0x0000005900000301), RUNE_C(0x0000DD)}, + [ 654] = {UINT64_C(0x0000305500003099), RUNE_C(0x003056)}, + [ 656] = {UINT64_C(0x0001109B000110BA), RUNE_C(0x01109C)}, + [ 658] = {UINT64_C(0x0000005900000304), RUNE_C(0x000232)}, + [ 659] = {UINT64_C(0x0000305B00003099), RUNE_C(0x00305C)}, + [ 660] = {UINT64_C(0x0000005A0000030C), RUNE_C(0x00017D)}, + [ 661] = {UINT64_C(0x000003A500000308), RUNE_C(0x0003AB)}, + [ 663] = {UINT64_C(0x0000004100000308), RUNE_C(0x0000C4)}, + [ 664] = {UINT64_C(0x0000007700000301), RUNE_C(0x001E83)}, + [ 666] = {UINT64_C(0x00001B3E00001B35), RUNE_C(0x001B40)}, + [ 667] = {UINT64_C(0x00001F2D00000345), RUNE_C(0x001F9D)}, + [ 670] = {UINT64_C(0x00001B3A00001B35), RUNE_C(0x001B3B)}, + [ 671] = {UINT64_C(0x000000610000030A), RUNE_C(0x0000E5)}, + [ 672] = {UINT64_C(0x0001113200011127), RUNE_C(0x01112F)}, + [ 673] = {UINT64_C(0x0000306400003099), RUNE_C(0x003065)}, + [ 676] = {UINT64_C(0x000003B500000313), RUNE_C(0x001F10)}, + [ 677] = {UINT64_C(0x000030CF00003099), RUNE_C(0x0030D0)}, + [ 682] = {UINT64_C(0x000003B900000301), RUNE_C(0x0003AF)}, + [ 684] = {UINT64_C(0x0000039900000313), RUNE_C(0x001F38)}, + [ 687] = {UINT64_C(0x000030B900003099), RUNE_C(0x0030BA)}, + [ 689] = {UINT64_C(0x0000004700000306), RUNE_C(0x00011E)}, + [ 691] = {UINT64_C(0x0000004E00000300), RUNE_C(0x0001F8)}, + [ 692] = {UINT64_C(0x00001B0500001B35), RUNE_C(0x001B06)}, + [ 693] = {UINT64_C(0x0000007900000309), RUNE_C(0x001EF7)}, + [ 700] = {UINT64_C(0x0000220800000338), RUNE_C(0x002209)}, + [ 702] = {UINT64_C(0x0000016800000301), RUNE_C(0x001E78)}, + [ 704] = {UINT64_C(0x000000640000032D), RUNE_C(0x001E13)}, + [ 705] = {UINT64_C(0x0000005A00000307), RUNE_C(0x00017B)}, + [ 706] = {UINT64_C(0x0000004900000304), RUNE_C(0x00012A)}, + [ 713] = {UINT64_C(0x000003B900000306), RUNE_C(0x001FD0)}, + [ 714] = {UINT64_C(0x0000004F0000030F), RUNE_C(0x00020C)}, + [ 715] = {UINT64_C(0x0000004F00000306), RUNE_C(0x00014E)}, + [ 720] = {UINT64_C(0x00001F2000000342), RUNE_C(0x001F26)}, + [ 721] = {UINT64_C(0x0000041300000301), RUNE_C(0x000403)}, + [ 723] = {UINT64_C(0x000006C100000654), RUNE_C(0x0006C2)}, + [ 726] = {UINT64_C(0x000000790000030A), RUNE_C(0x001E99)}, + [ 727] = {UINT64_C(0x0000014C00000300), RUNE_C(0x001E50)}, + [ 729] = {UINT64_C(0x000003CB00000301), RUNE_C(0x0003B0)}, + [ 731] = {UINT64_C(0x00000C4600000C56), RUNE_C(0x000C48)}, + [ 732] = {UINT64_C(0x0000006900000304), RUNE_C(0x00012B)}, + [ 736] = {UINT64_C(0x00001F4900000300), RUNE_C(0x001F4B)}, + [ 737] = {UINT64_C(0x0000004100000300), RUNE_C(0x0000C0)}, + [ 741] = {UINT64_C(0x0000006300000307), RUNE_C(0x00010B)}, + [ 742] = {UINT64_C(0x000000680000032E), RUNE_C(0x001E2B)}, + [ 743] = {UINT64_C(0x00001F2100000300), RUNE_C(0x001F23)}, + [ 747] = {UINT64_C(0x0000004500000306), RUNE_C(0x000114)}, + [ 750] = {UINT64_C(0x000000EA00000303), RUNE_C(0x001EC5)}, + [ 753] = {UINT64_C(0x0000007700000308), RUNE_C(0x001E85)}, + [ 756] = {UINT64_C(0x000021D000000338), RUNE_C(0x0021CD)}, + [ 763] = {UINT64_C(0x0000004B00000301), RUNE_C(0x001E30)}, + [ 766] = {UINT64_C(0x0000015A00000307), RUNE_C(0x001E64)}, + [ 770] = {UINT64_C(0x00000B4700000B3E), RUNE_C(0x000B4B)}, + [ 771] = {UINT64_C(0x0000006800000331), RUNE_C(0x001E96)}, + [ 772] = {UINT64_C(0x00001F1100000301), RUNE_C(0x001F15)}, + [ 773] = {UINT64_C(0x0000006F0000030C), RUNE_C(0x0001D2)}, + [ 774] = {UINT64_C(0x000003CE00000345), RUNE_C(0x001FF4)}, + [ 777] = {UINT64_C(0x00001F2F00000345), RUNE_C(0x001F9F)}, + [ 778] = {UINT64_C(0x0000004100000309), RUNE_C(0x001EA2)}, + [ 781] = {UINT64_C(0x0000006900000303), RUNE_C(0x000129)}, + [ 785] = {UINT64_C(0x000001B70000030C), RUNE_C(0x0001EE)}, + [ 788] = {UINT64_C(0x00001F6000000345), RUNE_C(0x001FA0)}, + [ 789] = {UINT64_C(0x0000041000000306), RUNE_C(0x0004D0)}, + [ 790] = {UINT64_C(0x0000006E00000307), RUNE_C(0x001E45)}, + [ 792] = {UINT64_C(0x000003B900000342), RUNE_C(0x001FD6)}, + [ 794] = {UINT64_C(0x000021D400000338), RUNE_C(0x0021CE)}, + [ 798] = {UINT64_C(0x0000007A00000302), RUNE_C(0x001E91)}, + [ 799] = {UINT64_C(0x000022B500000338), RUNE_C(0x0022ED)}, + [ 800] = {UINT64_C(0x0000006100000323), RUNE_C(0x001EA1)}, + [ 804] = {UINT64_C(0x000003A500000304), RUNE_C(0x001FE9)}, + [ 806] = {UINT64_C(0x000003CA00000342), RUNE_C(0x001FD7)}, + [ 807] = {UINT64_C(0x000000530000030C), RUNE_C(0x000160)}, + [ 808] = {UINT64_C(0x00001F5900000342), RUNE_C(0x001F5F)}, + [ 812] = {UINT64_C(0x0000306F00003099), RUNE_C(0x003070)}, + [ 815] = {UINT64_C(0x0000006100000307), RUNE_C(0x000227)}, + [ 819] = {UINT64_C(0x000003B900000300), RUNE_C(0x001F76)}, + [ 820] = {UINT64_C(0x000030B700003099), RUNE_C(0x0030B8)}, + [ 821] = {UINT64_C(0x0000006900000328), RUNE_C(0x00012F)}, + [ 825] = {UINT64_C(0x000022A900000338), RUNE_C(0x0022AE)}, + [ 830] = {UINT64_C(0x000003BF00000313), RUNE_C(0x001F40)}, + [ 832] = {UINT64_C(0x0000007A00000331), RUNE_C(0x001E95)}, + [ 833] = {UINT64_C(0x0000007500000301), RUNE_C(0x0000FA)}, + [ 836] = {UINT64_C(0x0000041000000308), RUNE_C(0x0004D2)}, + [ 837] = {UINT64_C(0x000030C800003099), RUNE_C(0x0030C9)}, + [ 839] = {UINT64_C(0x0000004800000308), RUNE_C(0x001E26)}, + [ 842] = {UINT64_C(0x0000004300000307), RUNE_C(0x00010A)}, + [ 846] = {UINT64_C(0x0000006A0000030C), RUNE_C(0x0001F0)}, + [ 847] = {UINT64_C(0x0000043500000308), RUNE_C(0x000451)}, + [ 849] = {UINT64_C(0x0001113100011127), RUNE_C(0x01112E)}, + [ 852] = {UINT64_C(0x0000007200000301), RUNE_C(0x000155)}, + [ 855] = {UINT64_C(0x0000006E0000030C), RUNE_C(0x000148)}, + [ 859] = {UINT64_C(0x0000043A00000301), RUNE_C(0x00045C)}, + [ 860] = {UINT64_C(0x0000039700000314), RUNE_C(0x001F29)}, + [ 861] = {UINT64_C(0x000003C900000345), RUNE_C(0x001FF3)}, + [ 862] = {UINT64_C(0x0000042300000304), RUNE_C(0x0004EE)}, + [ 863] = {UINT64_C(0x0000005500000308), RUNE_C(0x0000DC)}, + [ 867] = {UINT64_C(0x000030D50000309A), RUNE_C(0x0030D7)}, + [ 876] = {UINT64_C(0x0000004500000308), RUNE_C(0x0000CB)}, + [ 878] = {UINT64_C(0x00001F1900000300), RUNE_C(0x001F1B)}, + [ 880] = {UINT64_C(0x0000006E00000300), RUNE_C(0x0001F9)}, + [ 883] = {UINT64_C(0x000030BB00003099), RUNE_C(0x0030BC)}, + [ 890] = {UINT64_C(0x0000004E00000327), RUNE_C(0x000145)}, + [ 891] = {UINT64_C(0x000003B100000314), RUNE_C(0x001F01)}, + [ 892] = {UINT64_C(0x00001FC600000345), RUNE_C(0x001FC7)}, + [ 893] = {UINT64_C(0x0000307800003099), RUNE_C(0x003079)}, + [ 894] = {UINT64_C(0x0000007800000308), RUNE_C(0x001E8D)}, + [ 900] = {UINT64_C(0x000030B300003099), RUNE_C(0x0030B4)}, + [ 904] = {UINT64_C(0x000000E600000304), RUNE_C(0x0001E3)}, + [ 905] = {UINT64_C(0x00001F3800000301), RUNE_C(0x001F3C)}, + [ 906] = {UINT64_C(0x00001F2800000342), RUNE_C(0x001F2E)}, + [ 907] = {UINT64_C(0x00001EA100000302), RUNE_C(0x001EAD)}, + [ 914] = {UINT64_C(0x00001F3000000301), RUNE_C(0x001F34)}, + [ 915] = {UINT64_C(0x0000004900000311), RUNE_C(0x00020A)}, + [ 917] = {UINT64_C(0x000001B000000323), RUNE_C(0x001EF1)}, + [ 918] = {UINT64_C(0x00000BC600000BBE), RUNE_C(0x000BCA)}, + [ 920] = {UINT64_C(0x0000006F0000031B), RUNE_C(0x0001A1)}, + [ 922] = {UINT64_C(0x0000007500000311), RUNE_C(0x000217)}, + [ 925] = {UINT64_C(0x000114B9000114BA), RUNE_C(0x0114BB)}, + [ 930] = {UINT64_C(0x0000007400000323), RUNE_C(0x001E6D)}, + [ 931] = {UINT64_C(0x000001AF00000309), RUNE_C(0x001EEC)}, + [ 932] = {UINT64_C(0x0000039100000345), RUNE_C(0x001FBC)}, + [ 935] = {UINT64_C(0x0000007200000331), RUNE_C(0x001E5F)}, + [ 939] = {UINT64_C(0x000000740000032D), RUNE_C(0x001E71)}, + [ 940] = {UINT64_C(0x000000C600000301), RUNE_C(0x0001FC)}, + [ 942] = {UINT64_C(0x000003A500000306), RUNE_C(0x001FE8)}, + [ 944] = {UINT64_C(0x0000006900000308), RUNE_C(0x0000EF)}, + [ 950] = {UINT64_C(0x0000006C00000331), RUNE_C(0x001E3B)}, + [ 954] = {UINT64_C(0x0000016A00000308), RUNE_C(0x001E7A)}, + [ 956] = {UINT64_C(0x0000041500000308), RUNE_C(0x000401)}, + [ 958] = {UINT64_C(0x0000007200000307), RUNE_C(0x001E59)}, + [ 959] = {UINT64_C(0x0000222500000338), RUNE_C(0x002226)}, + [ 961] = {UINT64_C(0x000000410000030A), RUNE_C(0x0000C5)}, + [ 962] = {UINT64_C(0x000000750000030F), RUNE_C(0x000215)}, + [ 965] = {UINT64_C(0x0000017F00000307), RUNE_C(0x001E9B)}, + [ 967] = {UINT64_C(0x000000410000030F), RUNE_C(0x000200)}, + [ 972] = {UINT64_C(0x0000007A00000301), RUNE_C(0x00017A)}, + [ 973] = {UINT64_C(0x0000039F00000313), RUNE_C(0x001F48)}, + [ 975] = {UINT64_C(0x000003B100000300), RUNE_C(0x001F70)}, + [ 977] = {UINT64_C(0x0000006F00000307), RUNE_C(0x00022F)}, + [ 979] = {UINT64_C(0x000003C900000301), RUNE_C(0x0003CE)}, + [ 981] = {UINT64_C(0x000003A900000313), RUNE_C(0x001F68)}, + [ 982] = {UINT64_C(0x0000005A00000331), RUNE_C(0x001E94)}, + [ 983] = {UINT64_C(0x0000039100000300), RUNE_C(0x001FBA)}, + [ 984] = {UINT64_C(0x00001FFE00000301), RUNE_C(0x001FDE)}, + [ 985] = {UINT64_C(0x000003B900000308), RUNE_C(0x0003CA)}, + [ 987] = {UINT64_C(0x0000007400000307), RUNE_C(0x001E6B)}, + [ 989] = {UINT64_C(0x00001E6300000307), RUNE_C(0x001E69)}, + [ 991] = {UINT64_C(0x00001F0500000345), RUNE_C(0x001F85)}, + [ 994] = {UINT64_C(0x0000006F00000306), RUNE_C(0x00014F)}, + [ 995] = {UINT64_C(0x000030CF0000309A), RUNE_C(0x0030D1)}, + [1000] = {UINT64_C(0x00001F2400000345), RUNE_C(0x001F94)}, + [1001] = {UINT64_C(0x0000062700000654), RUNE_C(0x000623)}, + [1004] = {UINT64_C(0x0000042300000306), RUNE_C(0x00040E)}, + [1008] = {UINT64_C(0x000030B500003099), RUNE_C(0x0030B6)}, + [1009] = {UINT64_C(0x00001F6800000300), RUNE_C(0x001F6A)}, + [1010] = {UINT64_C(0x0000004600000307), RUNE_C(0x001E1E)}, + [1011] = {UINT64_C(0x00001F0700000345), RUNE_C(0x001F87)}, + [1012] = {UINT64_C(0x000000610000030C), RUNE_C(0x0001CE)}, + [1013] = {UINT64_C(0x0000004400000327), RUNE_C(0x001E10)}, + [1014] = {UINT64_C(0x000000490000030C), RUNE_C(0x0001CF)}, + [1015] = {UINT64_C(0x00001ECD00000302), RUNE_C(0x001ED9)}, + [1018] = {UINT64_C(0x0001193500011930), RUNE_C(0x011938)}, + [1019] = {UINT64_C(0x000000F400000309), RUNE_C(0x001ED5)}, + [1020] = {UINT64_C(0x000021D200000338), RUNE_C(0x0021CF)}, + [1022] = {UINT64_C(0x000000440000032D), RUNE_C(0x001E12)}, + [1023] = {UINT64_C(0x0000004900000328), RUNE_C(0x00012E)}, + [1025] = {UINT64_C(0x00001FFE00000342), RUNE_C(0x001FDF)}, + [1026] = {UINT64_C(0x000000470000030C), RUNE_C(0x0001E6)}, + [1030] = {UINT64_C(0x0000039100000313), RUNE_C(0x001F08)}, + [1031] = {UINT64_C(0x0000007300000302), RUNE_C(0x00015D)}, + [1034] = {UINT64_C(0x0000005300000327), RUNE_C(0x00015E)}, + [1035] = {UINT64_C(0x0000004700000302), RUNE_C(0x00011C)}, + [1038] = {UINT64_C(0x000000E400000304), RUNE_C(0x0001DF)}, + [1039] = {UINT64_C(0x0000005900000300), RUNE_C(0x001EF2)}, + [1040] = {UINT64_C(0x00001FB600000345), RUNE_C(0x001FB7)}, + [1042] = {UINT64_C(0x0000062700000655), RUNE_C(0x000625)}, + [1043] = {UINT64_C(0x0000004400000331), RUNE_C(0x001E0E)}, + [1044] = {UINT64_C(0x000000F400000300), RUNE_C(0x001ED3)}, + [1045] = {UINT64_C(0x000000550000030F), RUNE_C(0x000214)}, + [1046] = {UINT64_C(0x0000006300000327), RUNE_C(0x0000E7)}, + [1048] = {UINT64_C(0x0000004100000301), RUNE_C(0x0000C1)}, + [1050] = {UINT64_C(0x0000004F00000303), RUNE_C(0x0000D5)}, + [1051] = {UINT64_C(0x00001F3100000301), RUNE_C(0x001F35)}, + [1053] = {UINT64_C(0x00001F2E00000345), RUNE_C(0x001F9E)}, + [1054] = {UINT64_C(0x00001F0A00000345), RUNE_C(0x001F8A)}, + [1055] = {UINT64_C(0x00000B4700000B56), RUNE_C(0x000B48)}, + [1056] = {UINT64_C(0x000030D80000309A), RUNE_C(0x0030DA)}, + [1058] = {UINT64_C(0x000001A000000301), RUNE_C(0x001EDA)}, + [1060] = {UINT64_C(0x000000DC00000304), RUNE_C(0x0001D5)}, + [1062] = {UINT64_C(0x0000005700000301), RUNE_C(0x001E82)}, + [1066] = {UINT64_C(0x000000730000030C), RUNE_C(0x000161)}, + [1067] = {UINT64_C(0x0000007500000302), RUNE_C(0x0000FB)}, + [1068] = {UINT64_C(0x000030AD00003099), RUNE_C(0x0030AE)}, + [1070] = {UINT64_C(0x0000039700000345), RUNE_C(0x001FCC)}, + [1072] = {UINT64_C(0x0000005200000327), RUNE_C(0x000156)}, + [1075] = {UINT64_C(0x0000014D00000301), RUNE_C(0x001E53)}, + [1077] = {UINT64_C(0x000003B500000301), RUNE_C(0x0003AD)}, + [1078] = {UINT64_C(0x00000CBF00000CD5), RUNE_C(0x000CC0)}, + [1080] = {UINT64_C(0x000004D900000308), RUNE_C(0x0004DB)}, + [1083] = {UINT64_C(0x000003A500000314), RUNE_C(0x001F59)}, + [1085] = {UINT64_C(0x0000006A00000302), RUNE_C(0x000135)}, + [1086] = {UINT64_C(0x00001F2000000300), RUNE_C(0x001F22)}, + [1087] = {UINT64_C(0x00001F3100000342), RUNE_C(0x001F37)}, + [1089] = {UINT64_C(0x00001F0100000342), RUNE_C(0x001F07)}, + [1090] = {UINT64_C(0x0000007200000323), RUNE_C(0x001E5B)}, + [1091] = {UINT64_C(0x0000006E00000323), RUNE_C(0x001E47)}, + [1092] = {UINT64_C(0x00001F4000000301), RUNE_C(0x001F44)}, + [1093] = {UINT64_C(0x000003A900000301), RUNE_C(0x00038F)}, + [1095] = {UINT64_C(0x000000EF00000301), RUNE_C(0x001E2F)}, + [1100] = {UINT64_C(0x0000039F00000300), RUNE_C(0x001FF8)}, + [1104] = {UINT64_C(0x0000006100000308), RUNE_C(0x0000E4)}, + [1105] = {UINT64_C(0x0000003C00000338), RUNE_C(0x00226E)}, + [1109] = {UINT64_C(0x0000006B00000327), RUNE_C(0x000137)}, + [1110] = {UINT64_C(0x00001F3000000342), RUNE_C(0x001F36)}, + [1112] = {UINT64_C(0x0000004E00000331), RUNE_C(0x001E48)}, + [1113] = {UINT64_C(0x00001EB800000302), RUNE_C(0x001EC6)}, + [1114] = {UINT64_C(0x000003B900000314), RUNE_C(0x001F31)}, + [1115] = {UINT64_C(0x0000006500000308), RUNE_C(0x0000EB)}, + [1116] = {UINT64_C(0x000000C200000300), RUNE_C(0x001EA6)}, + [1117] = {UINT64_C(0x000003A500000300), RUNE_C(0x001FEA)}, + [1118] = {UINT64_C(0x000004430000030B), RUNE_C(0x0004F3)}, + [1120] = {UINT64_C(0x000001AF00000323), RUNE_C(0x001EF0)}, + [1123] = {UINT64_C(0x000000440000030C), RUNE_C(0x00010E)}, + [1127] = {UINT64_C(0x000114B9000114B0), RUNE_C(0x0114BC)}, + [1128] = {UINT64_C(0x0000043300000301), RUNE_C(0x000453)}, + [1129] = {UINT64_C(0x000030C100003099), RUNE_C(0x0030C2)}, + [1130] = {UINT64_C(0x000000F400000303), RUNE_C(0x001ED7)}, + [1136] = {UINT64_C(0x0000005200000323), RUNE_C(0x001E5A)}, + [1137] = {UINT64_C(0x000001B000000303), RUNE_C(0x001EEF)}, + [1140] = {UINT64_C(0x0000005700000323), RUNE_C(0x001E88)}, + [1141] = {UINT64_C(0x0000004900000302), RUNE_C(0x0000CE)}, + [1144] = {UINT64_C(0x00001F0F00000345), RUNE_C(0x001F8F)}, + [1146] = {UINT64_C(0x000000650000030F), RUNE_C(0x000205)}, + [1147] = {UINT64_C(0x0000005900000303), RUNE_C(0x001EF8)}, + [1148] = {UINT64_C(0x00001F6000000301), RUNE_C(0x001F64)}, + [1150] = {UINT64_C(0x0000007500000304), RUNE_C(0x00016B)}, + [1151] = {UINT64_C(0x0000039100000304), RUNE_C(0x001FB9)}, + [1154] = {UINT64_C(0x00001E6200000307), RUNE_C(0x001E68)}, + [1158] = {UINT64_C(0x00001F2000000301), RUNE_C(0x001F24)}, + [1160] = {UINT64_C(0x000001A000000300), RUNE_C(0x001EDC)}, + [1161] = {UINT64_C(0x0000006C00000327), RUNE_C(0x00013C)}, + [1164] = {UINT64_C(0x000000C200000301), RUNE_C(0x001EA4)}, + [1165] = {UINT64_C(0x000001A100000323), RUNE_C(0x001EE3)}, + [1166] = {UINT64_C(0x0000006C00000301), RUNE_C(0x00013A)}, + [1167] = {UINT64_C(0x0000004E0000032D), RUNE_C(0x001E4A)}, + [1169] = {UINT64_C(0x00001F0900000345), RUNE_C(0x001F89)}, + [1171] = {UINT64_C(0x0000227300000338), RUNE_C(0x002275)}, + [1176] = {UINT64_C(0x000003C500000301), RUNE_C(0x0003CD)}, + [1179] = {UINT64_C(0x0000042B00000308), RUNE_C(0x0004F8)}, + [1180] = {UINT64_C(0x0000022800000306), RUNE_C(0x001E1C)}, + [1184] = {UINT64_C(0x00001F2700000345), RUNE_C(0x001F97)}, + [1186] = {UINT64_C(0x0000006800000327), RUNE_C(0x001E29)}, + [1189] = {UINT64_C(0x000000A800000342), RUNE_C(0x001FC1)}, + [1192] = {UINT64_C(0x0000022E00000304), RUNE_C(0x000230)}, + [1194] = {UINT64_C(0x00001F0900000301), RUNE_C(0x001F0D)}, + [1197] = {UINT64_C(0x000000480000030C), RUNE_C(0x00021E)}, + [1198] = {UINT64_C(0x000030FD00003099), RUNE_C(0x0030FE)}, + [1199] = {UINT64_C(0x0000004500000302), RUNE_C(0x0000CA)}, + [1201] = {UINT64_C(0x0000005600000303), RUNE_C(0x001E7C)}, + [1202] = {UINT64_C(0x0000005A00000323), RUNE_C(0x001E92)}, + [1205] = {UINT64_C(0x0000039700000300), RUNE_C(0x001FCA)}, + [1209] = {UINT64_C(0x0000306100003099), RUNE_C(0x003062)}, + [1212] = {UINT64_C(0x0000022700000304), RUNE_C(0x0001E1)}, + [1214] = {UINT64_C(0x0000004E00000307), RUNE_C(0x001E44)}, + [1216] = {UINT64_C(0x0000016900000301), RUNE_C(0x001E79)}, + [1217] = {UINT64_C(0x0000016000000307), RUNE_C(0x001E66)}, + [1219] = {UINT64_C(0x000001EA00000304), RUNE_C(0x0001EC)}, + [1224] = {UINT64_C(0x00000D4700000D3E), RUNE_C(0x000D4B)}, + [1225] = {UINT64_C(0x000009C7000009BE), RUNE_C(0x0009CB)}, + [1227] = {UINT64_C(0x0000007200000327), RUNE_C(0x000157)}, + [1228] = {UINT64_C(0x00001F2300000345), RUNE_C(0x001F93)}, + [1231] = {UINT64_C(0x000000EA00000309), RUNE_C(0x001EC3)}, + [1234] = {UINT64_C(0x000030D20000309A), RUNE_C(0x0030D4)}, + [1235] = {UINT64_C(0x000030F000003099), RUNE_C(0x0030F8)}, + [1237] = {UINT64_C(0x0000007500000323), RUNE_C(0x001EE5)}, + [1238] = {UINT64_C(0x00001F6800000301), RUNE_C(0x001F6C)}, + [1239] = {UINT64_C(0x00001F6800000345), RUNE_C(0x001FA8)}, + [1240] = {UINT64_C(0x0000006C0000032D), RUNE_C(0x001E3D)}, + [1242] = {UINT64_C(0x000000C600000304), RUNE_C(0x0001E2)}, + [1243] = {UINT64_C(0x0000004500000328), RUNE_C(0x000118)}, + [1244] = {UINT64_C(0x000000550000030C), RUNE_C(0x0001D3)}, + [1245] = {UINT64_C(0x0000004500000304), RUNE_C(0x000112)}, + [1248] = {UINT64_C(0x000030D500003099), RUNE_C(0x0030D6)}, + [1253] = {UINT64_C(0x0000004400000307), RUNE_C(0x001E0A)}, + [1255] = {UINT64_C(0x0000005400000307), RUNE_C(0x001E6A)}, + [1256] = {UINT64_C(0x00001ECC00000302), RUNE_C(0x001ED8)}, + [1257] = {UINT64_C(0x0000005900000307), RUNE_C(0x001E8E)}, + [1258] = {UINT64_C(0x0000004200000307), RUNE_C(0x001E02)}, + [1261] = {UINT64_C(0x0000007600000303), RUNE_C(0x001E7D)}, + [1265] = {UINT64_C(0x0000228700000338), RUNE_C(0x002289)}, + [1266] = {UINT64_C(0x0000004500000301), RUNE_C(0x0000C9)}, + [1269] = {UINT64_C(0x0000004500000311), RUNE_C(0x000206)}, + [1270] = {UINT64_C(0x00001F1000000301), RUNE_C(0x001F14)}, + [1274] = {UINT64_C(0x0000306800003099), RUNE_C(0x003069)}, + [1277] = {UINT64_C(0x0000227B00000338), RUNE_C(0x002281)}, + [1279] = {UINT64_C(0x000000450000030C), RUNE_C(0x00011A)}, + [1282] = {UINT64_C(0x0000004900000301), RUNE_C(0x0000CD)}, + [1284] = {UINT64_C(0x0000041700000308), RUNE_C(0x0004DE)}, + [1289] = {UINT64_C(0x0000044D00000308), RUNE_C(0x0004ED)}, + [1290] = {UINT64_C(0x0000005200000307), RUNE_C(0x001E58)}, + [1291] = {UINT64_C(0x0000039100000306), RUNE_C(0x001FB8)}, + [1292] = {UINT64_C(0x0000006F00000311), RUNE_C(0x00020F)}, + [1295] = {UINT64_C(0x000003AE00000345), RUNE_C(0x001FC4)}, + [1298] = {UINT64_C(0x0000004100000307), RUNE_C(0x000226)}, + [1302] = {UINT64_C(0x0000227700000338), RUNE_C(0x002279)}, + [1303] = {UINT64_C(0x00001E5B00000304), RUNE_C(0x001E5D)}, + [1304] = {UINT64_C(0x00001F5000000301), RUNE_C(0x001F54)}, + [1305] = {UINT64_C(0x000003B100000313), RUNE_C(0x001F00)}, + [1306] = {UINT64_C(0x0000043800000306), RUNE_C(0x000439)}, + [1311] = {UINT64_C(0x0000022600000304), RUNE_C(0x0001E0)}, + [1312] = {UINT64_C(0x0000005500000328), RUNE_C(0x000172)}, + [1316] = {UINT64_C(0x000030BF00003099), RUNE_C(0x0030C0)}, + [1318] = {UINT64_C(0x0000004E00000323), RUNE_C(0x001E46)}, + [1321] = {UINT64_C(0x0000010200000303), RUNE_C(0x001EB4)}, + [1325] = {UINT64_C(0x000003C500000306), RUNE_C(0x001FE0)}, + [1329] = {UINT64_C(0x0000005500000309), RUNE_C(0x001EE6)}, + [1332] = {UINT64_C(0x00000DD900000DDF), RUNE_C(0x000DDE)}, + [1333] = {UINT64_C(0x0000006500000309), RUNE_C(0x001EBB)}, + [1336] = {UINT64_C(0x0000004500000303), RUNE_C(0x001EBC)}, + [1337] = {UINT64_C(0x0000043E00000308), RUNE_C(0x0004E7)}, + [1339] = {UINT64_C(0x0000006F00000308), RUNE_C(0x0000F6)}, + [1340] = {UINT64_C(0x000006D200000654), RUNE_C(0x0006D3)}, + [1344] = {UINT64_C(0x00001F6100000300), RUNE_C(0x001F63)}, + [1347] = {UINT64_C(0x0000044B00000308), RUNE_C(0x0004F9)}, + [1348] = {UINT64_C(0x000022A800000338), RUNE_C(0x0022AD)}, + [1352] = {UINT64_C(0x000000FC00000304), RUNE_C(0x0001D6)}, + [1354] = {UINT64_C(0x000000F400000301), RUNE_C(0x001ED1)}, + [1356] = {UINT64_C(0x000001B000000300), RUNE_C(0x001EEB)}, + [1364] = {UINT64_C(0x000000650000032D), RUNE_C(0x001E19)}, + [1365] = {UINT64_C(0x0000007500000300), RUNE_C(0x0000F9)}, + [1366] = {UINT64_C(0x0000007900000302), RUNE_C(0x000177)}, + [1367] = {UINT64_C(0x0000004900000300), RUNE_C(0x0000CC)}, + [1368] = {UINT64_C(0x000030F200003099), RUNE_C(0x0030FA)}, + [1369] = {UINT64_C(0x0000004F00000300), RUNE_C(0x0000D2)}, + [1371] = {UINT64_C(0x00001F0800000342), RUNE_C(0x001F0E)}, + [1373] = {UINT64_C(0x000003CA00000301), RUNE_C(0x000390)}, + [1375] = {UINT64_C(0x0000004F0000030C), RUNE_C(0x0001D1)}, + [1376] = {UINT64_C(0x000000410000030C), RUNE_C(0x0001CD)}, + [1378] = {UINT64_C(0x000001A000000323), RUNE_C(0x001EE2)}, + [1380] = {UINT64_C(0x00001F4900000301), RUNE_C(0x001F4D)}, + [1381] = {UINT64_C(0x00001F2500000345), RUNE_C(0x001F95)}, + [1383] = {UINT64_C(0x0000006100000304), RUNE_C(0x000101)}, + [1384] = {UINT64_C(0x000000540000030C), RUNE_C(0x000164)}, + [1388] = {UINT64_C(0x0000006700000302), RUNE_C(0x00011D)}, + [1391] = {UINT64_C(0x0000004C0000030C), RUNE_C(0x00013D)}, + [1393] = {UINT64_C(0x00001F0400000345), RUNE_C(0x001F84)}, + [1395] = {UINT64_C(0x0000044700000308), RUNE_C(0x0004F5)}, + [1400] = {UINT64_C(0x0000006800000302), RUNE_C(0x000125)}, + [1404] = {UINT64_C(0x0000005500000323), RUNE_C(0x001EE4)}, + [1405] = {UINT64_C(0x000115B8000115AF), RUNE_C(0x0115BA)}, + [1408] = {UINT64_C(0x00001F2B00000345), RUNE_C(0x001F9B)}, + [1409] = {UINT64_C(0x00001F6C00000345), RUNE_C(0x001FAC)}, + [1410] = {UINT64_C(0x0000006F00000301), RUNE_C(0x0000F3)}, + [1412] = {UINT64_C(0x00000CC600000CD5), RUNE_C(0x000CC7)}, + [1413] = {UINT64_C(0x0000004900000307), RUNE_C(0x000130)}, + [1415] = {UINT64_C(0x0000304600003099), RUNE_C(0x003094)}, + [1419] = {UINT64_C(0x00001F5900000300), RUNE_C(0x001F5B)}, + [1420] = {UINT64_C(0x00001B1100001B35), RUNE_C(0x001B12)}, + [1421] = {UINT64_C(0x000030750000309A), RUNE_C(0x003077)}, + [1423] = {UINT64_C(0x0000229200000338), RUNE_C(0x0022E3)}, + [1427] = {UINT64_C(0x0000004F00000304), RUNE_C(0x00014C)}, + [1431] = {UINT64_C(0x0000006400000331), RUNE_C(0x001E0F)}, + [1433] = {UINT64_C(0x00001F6300000345), RUNE_C(0x001FA3)}, + [1445] = {UINT64_C(0x0000224300000338), RUNE_C(0x002244)}, + [1450] = {UINT64_C(0x000003C900000342), RUNE_C(0x001FF6)}, + [1451] = {UINT64_C(0x0000228200000338), RUNE_C(0x002284)}, + [1452] = {UINT64_C(0x000003D200000301), RUNE_C(0x0003D3)}, + [1456] = {UINT64_C(0x0000006F00000302), RUNE_C(0x0000F4)}, + [1458] = {UINT64_C(0x0000006100000325), RUNE_C(0x001E01)}, + [1459] = {UINT64_C(0x0000005000000307), RUNE_C(0x001E56)}, + [1460] = {UINT64_C(0x0000305900003099), RUNE_C(0x00305A)}, + [1461] = {UINT64_C(0x00001F5000000342), RUNE_C(0x001F56)}, + [1464] = {UINT64_C(0x000000CF00000301), RUNE_C(0x001E2E)}, + [1481] = {UINT64_C(0x0000006100000300), RUNE_C(0x0000E0)}, + [1482] = {UINT64_C(0x000000490000030F), RUNE_C(0x000208)}, + [1484] = {UINT64_C(0x00001F0100000301), RUNE_C(0x001F05)}, + [1485] = {UINT64_C(0x0000007300000327), RUNE_C(0x00015F)}, + [1487] = {UINT64_C(0x000000750000030B), RUNE_C(0x000171)}, + [1491] = {UINT64_C(0x0000007000000301), RUNE_C(0x001E55)}, + [1496] = {UINT64_C(0x0000062700000653), RUNE_C(0x000622)}, + [1498] = {UINT64_C(0x00001F0C00000345), RUNE_C(0x001F8C)}, + [1499] = {UINT64_C(0x000003AC00000345), RUNE_C(0x001FB4)}, + [1504] = {UINT64_C(0x0000005500000304), RUNE_C(0x00016A)}, + [1505] = {UINT64_C(0x0000039900000300), RUNE_C(0x001FDA)}, + [1506] = {UINT64_C(0x00001F2900000300), RUNE_C(0x001F2B)}, + [1516] = {UINT64_C(0x0000004F00000302), RUNE_C(0x0000D4)}, + [1517] = {UINT64_C(0x0000043000000306), RUNE_C(0x0004D1)}, + [1520] = {UINT64_C(0x0000010300000303), RUNE_C(0x001EB5)}, + [1523] = {UINT64_C(0x0000006F0000030F), RUNE_C(0x00020D)}, + [1524] = {UINT64_C(0x0001134700011357), RUNE_C(0x01134C)}, + [1528] = {UINT64_C(0x0000007900000308), RUNE_C(0x0000FF)}, + [1531] = {UINT64_C(0x0000305300003099), RUNE_C(0x003054)}, + [1533] = {UINT64_C(0x000003A900000345), RUNE_C(0x001FFC)}, + [1537] = {UINT64_C(0x0000004500000309), RUNE_C(0x001EBA)}, + [1540] = {UINT64_C(0x0000005900000323), RUNE_C(0x001EF4)}, + [1541] = {UINT64_C(0x00001F6A00000345), RUNE_C(0x001FAA)}, + [1542] = {UINT64_C(0x000000EA00000300), RUNE_C(0x001EC1)}, + [1543] = {UINT64_C(0x00001F6400000345), RUNE_C(0x001FA4)}, + [1544] = {UINT64_C(0x0000039500000314), RUNE_C(0x001F19)}, + [1546] = {UINT64_C(0x0000042D00000308), RUNE_C(0x0004EC)}, + [1549] = {UINT64_C(0x0000006700000304), RUNE_C(0x001E21)}, + [1551] = {UINT64_C(0x0000004D00000307), RUNE_C(0x001E40)}, + [1552] = {UINT64_C(0x000000D500000301), RUNE_C(0x001E4C)}, + [1555] = {UINT64_C(0x000000D500000308), RUNE_C(0x001E4E)}, + [1557] = {UINT64_C(0x0000004E00000301), RUNE_C(0x000143)}, + [1562] = {UINT64_C(0x0000006E0000032D), RUNE_C(0x001E4B)}, + [1564] = {UINT64_C(0x00001F0000000342), RUNE_C(0x001F06)}, + [1565] = {UINT64_C(0x0000005300000323), RUNE_C(0x001E62)}, + [1567] = {UINT64_C(0x0000006800000308), RUNE_C(0x001E27)}, + [1569] = {UINT64_C(0x00001F0200000345), RUNE_C(0x001F82)}, + [1570] = {UINT64_C(0x000000670000030C), RUNE_C(0x0001E7)}, + [1571] = {UINT64_C(0x0000041800000304), RUNE_C(0x0004E2)}, + [1572] = {UINT64_C(0x0000039F00000301), RUNE_C(0x00038C)}, + [1574] = {UINT64_C(0x0000011300000300), RUNE_C(0x001E15)}, + [1576] = {UINT64_C(0x0000004F00000311), RUNE_C(0x00020E)}, + [1579] = {UINT64_C(0x0000004100000325), RUNE_C(0x001E00)}, + [1580] = {UINT64_C(0x0000004E0000030C), RUNE_C(0x000147)}, + [1581] = {UINT64_C(0x0000004500000323), RUNE_C(0x001EB8)}, + [1582] = {UINT64_C(0x000022B400000338), RUNE_C(0x0022EC)}, + [1585] = {UINT64_C(0x000000E700000301), RUNE_C(0x001E09)}, + [1586] = {UINT64_C(0x00001F4100000300), RUNE_C(0x001F43)}, + [1587] = {UINT64_C(0x000009330000093C), RUNE_C(0x000934)}, + [1589] = {UINT64_C(0x0000006F00000328), RUNE_C(0x0001EB)}, + [1591] = {UINT64_C(0x000001EB00000304), RUNE_C(0x0001ED)}, + [1593] = {UINT64_C(0x000003A500000301), RUNE_C(0x00038E)}, + [1595] = {UINT64_C(0x0000309D00003099), RUNE_C(0x00309E)}, + [1596] = {UINT64_C(0x00001F6E00000345), RUNE_C(0x001FAE)}, + [1599] = {UINT64_C(0x00001F2800000301), RUNE_C(0x001F2C)}, + [1602] = {UINT64_C(0x000003C500000308), RUNE_C(0x0003CB)}, + [1603] = {UINT64_C(0x0000006E00000301), RUNE_C(0x000144)}, + [1604] = {UINT64_C(0x00001F5100000342), RUNE_C(0x001F57)}, + [1606] = {UINT64_C(0x0000004C00000331), RUNE_C(0x001E3A)}, + [1608] = {UINT64_C(0x000030A600003099), RUNE_C(0x0030F4)}, + [1609] = {UINT64_C(0x0000306600003099), RUNE_C(0x003067)}, + [1610] = {UINT64_C(0x0000007A00000323), RUNE_C(0x001E93)}, + [1612] = {UINT64_C(0x000000F800000301), RUNE_C(0x0001FF)}, + [1613] = {UINT64_C(0x0000041500000300), RUNE_C(0x000400)}, + [1615] = {UINT64_C(0x000001B000000301), RUNE_C(0x001EE9)}, + [1616] = {UINT64_C(0x0000010200000300), RUNE_C(0x001EB0)}, + [1617] = {UINT64_C(0x0000039700000313), RUNE_C(0x001F28)}, + [1619] = {UINT64_C(0x0000307B0000309A), RUNE_C(0x00307D)}, + [1624] = {UINT64_C(0x0000006F00000323), RUNE_C(0x001ECD)}, + [1625] = {UINT64_C(0x000000610000030F), RUNE_C(0x000201)}, + [1627] = {UINT64_C(0x0000004100000304), RUNE_C(0x000100)}, + [1629] = {UINT64_C(0x000004E900000308), RUNE_C(0x0004EB)}, + [1630] = {UINT64_C(0x00001B0700001B35), RUNE_C(0x001B08)}, + [1633] = {UINT64_C(0x0000004F00000309), RUNE_C(0x001ECE)}, + [1634] = {UINT64_C(0x0000004F0000031B), RUNE_C(0x0001A0)}, + [1635] = {UINT64_C(0x0000006500000306), RUNE_C(0x000115)}, + [1637] = {UINT64_C(0x0000227D00000338), RUNE_C(0x0022E1)}, + [1639] = {UINT64_C(0x0000039900000306), RUNE_C(0x001FD8)}, + [1641] = {UINT64_C(0x00001F0000000301), RUNE_C(0x001F04)}, + [1645] = {UINT64_C(0x0000007900000303), RUNE_C(0x001EF9)}, + [1650] = {UINT64_C(0x0000219400000338), RUNE_C(0x0021AE)}, + [1651] = {UINT64_C(0x0000304B00003099), RUNE_C(0x00304C)}, + [1654] = {UINT64_C(0x0000005800000308), RUNE_C(0x001E8C)}, + [1655] = {UINT64_C(0x000001A100000301), RUNE_C(0x001EDB)}, + [1658] = {UINT64_C(0x0000006100000302), RUNE_C(0x0000E2)}, + [1662] = {UINT64_C(0x000000DC0000030C), RUNE_C(0x0001D9)}, + [1664] = {UINT64_C(0x00001F1100000300), RUNE_C(0x001F13)}, + [1666] = {UINT64_C(0x00011099000110BA), RUNE_C(0x01109A)}, + [1668] = {UINT64_C(0x0000006D00000307), RUNE_C(0x001E41)}, + [1670] = {UINT64_C(0x0000005500000301), RUNE_C(0x0000DA)}, + [1671] = {UINT64_C(0x000000C200000309), RUNE_C(0x001EA8)}, + [1673] = {UINT64_C(0x0000039100000301), RUNE_C(0x000386)}, + [1674] = {UINT64_C(0x000000DC00000301), RUNE_C(0x0001D7)}, + [1675] = {UINT64_C(0x0000006300000302), RUNE_C(0x000109)}, + [1676] = {UINT64_C(0x0000007800000307), RUNE_C(0x001E8B)}, + [1678] = {UINT64_C(0x0000014C00000301), RUNE_C(0x001E52)}, + [1681] = {UINT64_C(0x000003A100000314), RUNE_C(0x001FEC)}, + [1684] = {UINT64_C(0x0000004300000327), RUNE_C(0x0000C7)}, + [1686] = {UINT64_C(0x00001B0900001B35), RUNE_C(0x001B0A)}, + [1688] = {UINT64_C(0x000003B100000304), RUNE_C(0x001FB1)}, + [1691] = {UINT64_C(0x0000006500000311), RUNE_C(0x000207)}, + [1692] = {UINT64_C(0x00001FBF00000300), RUNE_C(0x001FCD)}, + [1694] = {UINT64_C(0x0000004100000311), RUNE_C(0x000202)}, + [1695] = {UINT64_C(0x000003C500000314), RUNE_C(0x001F51)}, + [1696] = {UINT64_C(0x0000006E00000303), RUNE_C(0x0000F1)}, + [1698] = {UINT64_C(0x0000227200000338), RUNE_C(0x002274)}, + [1699] = {UINT64_C(0x0000004900000330), RUNE_C(0x001E2C)}, + [1700] = {UINT64_C(0x0000044300000304), RUNE_C(0x0004EF)}, + [1703] = {UINT64_C(0x00001F1800000301), RUNE_C(0x001F1C)}, + [1705] = {UINT64_C(0x0000005700000307), RUNE_C(0x001E86)}, + [1706] = {UINT64_C(0x0000006100000301), RUNE_C(0x0000E1)}, + [1708] = {UINT64_C(0x0000003E00000338), RUNE_C(0x00226F)}, + [1709] = {UINT64_C(0x000000750000032D), RUNE_C(0x001E77)}, + [1710] = {UINT64_C(0x0000004800000323), RUNE_C(0x001E24)}, + [1712] = {UINT64_C(0x0000305D00003099), RUNE_C(0x00305E)}, + [1713] = {UINT64_C(0x00001F0D00000345), RUNE_C(0x001F8D)}, + [1714] = {UINT64_C(0x000003B700000313), RUNE_C(0x001F20)}, + [1715] = {UINT64_C(0x0000304D00003099), RUNE_C(0x00304E)}, + [1719] = {UINT64_C(0x000001AF00000303), RUNE_C(0x001EEE)}, + [1721] = {UINT64_C(0x0000004500000330), RUNE_C(0x001E1A)}, + [1722] = {UINT64_C(0x0000006300000301), RUNE_C(0x000107)}, + [1723] = {UINT64_C(0x000000D600000304), RUNE_C(0x00022A)}, + [1724] = {UINT64_C(0x00001EB900000302), RUNE_C(0x001EC7)}, + [1726] = {UINT64_C(0x0000022F00000304), RUNE_C(0x000231)}, + [1733] = {UINT64_C(0x00001F0900000342), RUNE_C(0x001F0F)}, + [1735] = {UINT64_C(0x00001F6800000342), RUNE_C(0x001F6E)}, + [1739] = {UINT64_C(0x000000E500000301), RUNE_C(0x0001FB)}, + [1741] = {UINT64_C(0x000115B9000115AF), RUNE_C(0x0115BB)}, + [1744] = {UINT64_C(0x0000006500000304), RUNE_C(0x000113)}, + [1747] = {UINT64_C(0x000004740000030F), RUNE_C(0x000476)}, + [1748] = {UINT64_C(0x000000740000030C), RUNE_C(0x000165)}, + [1750] = {UINT64_C(0x0000005500000300), RUNE_C(0x0000D9)}, + [1752] = {UINT64_C(0x000022AB00000338), RUNE_C(0x0022AF)}, + [1753] = {UINT64_C(0x0000005500000311), RUNE_C(0x000216)}, + [1754] = {UINT64_C(0x0000004D00000323), RUNE_C(0x001E42)}, + [1755] = {UINT64_C(0x00001F6D00000345), RUNE_C(0x001FAD)}, + [1756] = {UINT64_C(0x000000540000032D), RUNE_C(0x001E70)}, + [1757] = {UINT64_C(0x000022B300000338), RUNE_C(0x0022EB)}, + [1761] = {UINT64_C(0x000000CA00000309), RUNE_C(0x001EC2)}, + [1762] = {UINT64_C(0x0000043500000306), RUNE_C(0x0004D7)}, + [1763] = {UINT64_C(0x0000004900000306), RUNE_C(0x00012C)}, + [1764] = {UINT64_C(0x000000550000030B), RUNE_C(0x000170)}, + [1765] = {UINT64_C(0x000000F600000304), RUNE_C(0x00022B)}, + [1766] = {UINT64_C(0x000030DB00003099), RUNE_C(0x0030DC)}, + [1767] = {UINT64_C(0x0000039900000314), RUNE_C(0x001F39)}, + [1768] = {UINT64_C(0x000030DB0000309A), RUNE_C(0x0030DD)}, + [1771] = {UINT64_C(0x00001F6F00000345), RUNE_C(0x001FAF)}, + [1774] = {UINT64_C(0x0000004300000302), RUNE_C(0x000108)}, + [1775] = {UINT64_C(0x00001F0100000345), RUNE_C(0x001F81)}, + [1777] = {UINT64_C(0x000000C500000301), RUNE_C(0x0001FA)}, + [1780] = {UINT64_C(0x0000006400000327), RUNE_C(0x001E11)}, + [1784] = {UINT64_C(0x000003C500000342), RUNE_C(0x001FE6)}, + [1786] = {UINT64_C(0x0000227C00000338), RUNE_C(0x0022E0)}, + [1787] = {UINT64_C(0x0000004700000301), RUNE_C(0x0001F4)}, + [1788] = {UINT64_C(0x000000450000030F), RUNE_C(0x000204)}, + [1790] = {UINT64_C(0x0000227600000338), RUNE_C(0x002278)}, + [1791] = {UINT64_C(0x0000006700000306), RUNE_C(0x00011F)}, + [1794] = {UINT64_C(0x0000016100000307), RUNE_C(0x001E67)}, + [1795] = {UINT64_C(0x00001F2200000345), RUNE_C(0x001F92)}, + [1797] = {UINT64_C(0x000000550000031B), RUNE_C(0x0001AF)}, + [1798] = {UINT64_C(0x0000004500000327), RUNE_C(0x000228)}, + [1799] = {UINT64_C(0x0000039100000314), RUNE_C(0x001F09)}, + [1800] = {UINT64_C(0x000004750000030F), RUNE_C(0x000477)}, + [1802] = {UINT64_C(0x0000004A00000302), RUNE_C(0x000134)}, + [1803] = {UINT64_C(0x0000006700000301), RUNE_C(0x0001F5)}, + [1804] = {UINT64_C(0x00001F0800000301), RUNE_C(0x001F0C)}, + [1808] = {UINT64_C(0x000000C700000301), RUNE_C(0x001E08)}, + [1809] = {UINT64_C(0x0000006100000306), RUNE_C(0x000103)}, + [1810] = {UINT64_C(0x00001F6500000345), RUNE_C(0x001FA5)}, + [1814] = {UINT64_C(0x000006D500000654), RUNE_C(0x0006C0)}, + [1815] = {UINT64_C(0x000003B700000301), RUNE_C(0x0003AE)}, + [1816] = {UINT64_C(0x0000039500000300), RUNE_C(0x001FC8)}, + [1817] = {UINT64_C(0x00001F3900000342), RUNE_C(0x001F3F)}, + [1823] = {UINT64_C(0x00001F6100000301), RUNE_C(0x001F65)}, + [1825] = {UINT64_C(0x000030D200003099), RUNE_C(0x0030D3)}, + [1828] = {UINT64_C(0x0000005900000309), RUNE_C(0x001EF6)}, + [1829] = {UINT64_C(0x000114B9000114BD), RUNE_C(0x0114BE)}, + [1834] = {UINT64_C(0x000000750000030A), RUNE_C(0x00016F)}, + [1835] = {UINT64_C(0x0000005000000301), RUNE_C(0x001E54)}, + [1836] = {UINT64_C(0x0000222300000338), RUNE_C(0x002224)}, + [1837] = {UINT64_C(0x0000014D00000300), RUNE_C(0x001E51)}, + [1841] = {UINT64_C(0x0000064A00000654), RUNE_C(0x000626)}, + [1845] = {UINT64_C(0x000000A800000301), RUNE_C(0x000385)}, + [1847] = {UINT64_C(0x0000004F00000307), RUNE_C(0x00022E)}, + [1848] = {UINT64_C(0x00000CCA00000CD5), RUNE_C(0x000CCB)}, + [1849] = {UINT64_C(0x0000004D00000301), RUNE_C(0x001E3E)}, + [1850] = {UINT64_C(0x0000006F0000030B), RUNE_C(0x000151)}, + [1852] = {UINT64_C(0x0000006500000330), RUNE_C(0x001E1B)}, + [1857] = {UINT64_C(0x0000006500000307), RUNE_C(0x000117)}, + [1858] = {UINT64_C(0x0000007500000309), RUNE_C(0x001EE7)}, + [1860] = {UINT64_C(0x000003B900000304), RUNE_C(0x001FD1)}, + [1861] = {UINT64_C(0x000000E600000301), RUNE_C(0x0001FD)}, + [1866] = {UINT64_C(0x00001F6700000345), RUNE_C(0x001FA7)}, + [1869] = {UINT64_C(0x00001F0600000345), RUNE_C(0x001F86)}, + [1878] = {UINT64_C(0x0000007900000301), RUNE_C(0x0000FD)}, + [1879] = {UINT64_C(0x0000004100000306), RUNE_C(0x000102)}, + [1881] = {UINT64_C(0x000001A100000300), RUNE_C(0x001EDD)}, + [1883] = {UINT64_C(0x0000220300000338), RUNE_C(0x002204)}, + [1886] = {UINT64_C(0x000003C500000300), RUNE_C(0x001F7A)}, + [1887] = {UINT64_C(0x000003B700000300), RUNE_C(0x001F74)}, + [1888] = {UINT64_C(0x00001F3900000300), RUNE_C(0x001F3B)}, + [1890] = {UINT64_C(0x0000007200000311), RUNE_C(0x000213)}, + [1891] = {UINT64_C(0x00001F4800000301), RUNE_C(0x001F4C)}, + [1893] = {UINT64_C(0x000003C900000313), RUNE_C(0x001F60)}, + [1896] = {UINT64_C(0x0000307200003099), RUNE_C(0x003073)}, + [1897] = {UINT64_C(0x0000064800000654), RUNE_C(0x000624)}, + [1902] = {UINT64_C(0x000003B100000301), RUNE_C(0x0003AC)}, + [1906] = {UINT64_C(0x00001F2600000345), RUNE_C(0x001F96)}, + [1907] = {UINT64_C(0x0000004900000323), RUNE_C(0x001ECA)}, + [1908] = {UINT64_C(0x0000223C00000338), RUNE_C(0x002241)}, + [1909] = {UINT64_C(0x00001F2900000301), RUNE_C(0x001F2D)}, + [1911] = {UINT64_C(0x0000004F00000328), RUNE_C(0x0001EA)}, + [1912] = {UINT64_C(0x00001E3700000304), RUNE_C(0x001E39)}, + [1914] = {UINT64_C(0x0000010300000301), RUNE_C(0x001EAF)}, + [1918] = {UINT64_C(0x0000043500000300), RUNE_C(0x000450)}, + [1919] = {UINT64_C(0x0000041800000306), RUNE_C(0x000419)}, + [1921] = {UINT64_C(0x000110A5000110BA), RUNE_C(0x0110AB)}, + [1922] = {UINT64_C(0x000001A000000309), RUNE_C(0x001EDE)}, + [1924] = {UINT64_C(0x0000007400000331), RUNE_C(0x001E6F)}, + [1925] = {UINT64_C(0x000000CA00000303), RUNE_C(0x001EC4)}, + [1927] = {UINT64_C(0x00000D4600000D3E), RUNE_C(0x000D4A)}, + [1928] = {UINT64_C(0x00001F2900000345), RUNE_C(0x001F99)}, + [1932] = {UINT64_C(0x000030F100003099), RUNE_C(0x0030F9)}, + [1935] = {UINT64_C(0x0000004C00000301), RUNE_C(0x000139)}, + [1936] = {UINT64_C(0x000000F500000304), RUNE_C(0x00022D)}, + [1939] = {UINT64_C(0x000022A200000338), RUNE_C(0x0022AC)}, + [1940] = {UINT64_C(0x0000005800000307), RUNE_C(0x001E8A)}, + [1941] = {UINT64_C(0x0000011200000301), RUNE_C(0x001E16)}, + [1948] = {UINT64_C(0x00000BC700000BBE), RUNE_C(0x000BCB)}, + [1951] = {UINT64_C(0x0000007700000307), RUNE_C(0x001E87)}, + [1953] = {UINT64_C(0x0000004B00000331), RUNE_C(0x001E34)}, + [1955] = {UINT64_C(0x000001A100000303), RUNE_C(0x001EE1)}, + [1958] = {UINT64_C(0x0000307500003099), RUNE_C(0x003076)}, + [1959] = {UINT64_C(0x0000007400000326), RUNE_C(0x00021B)}, + [1960] = {UINT64_C(0x0000005900000302), RUNE_C(0x000176)}, + [1961] = {UINT64_C(0x00001F2000000345), RUNE_C(0x001F90)}, + [1965] = {UINT64_C(0x00001F6000000300), RUNE_C(0x001F62)}, + [1967] = {UINT64_C(0x0000006700000307), RUNE_C(0x000121)}, + [1968] = {UINT64_C(0x00001EA100000306), RUNE_C(0x001EB7)}, + [1969] = {UINT64_C(0x0000011300000301), RUNE_C(0x001E17)}, + [1970] = {UINT64_C(0x00001F6900000342), RUNE_C(0x001F6F)}, + [1971] = {UINT64_C(0x0000004C0000032D), RUNE_C(0x001E3C)}, + [1972] = {UINT64_C(0x000003B100000342), RUNE_C(0x001FB6)}, + [1978] = {UINT64_C(0x0000006F00000304), RUNE_C(0x00014D)}, + [1988] = {UINT64_C(0x0000041800000300), RUNE_C(0x00040D)}, + [1990] = {UINT64_C(0x00001B0D00001B35), RUNE_C(0x001B0E)}, + [1991] = {UINT64_C(0x00001F6B00000345), RUNE_C(0x001FAB)}, + [1992] = {UINT64_C(0x0000004100000323), RUNE_C(0x001EA0)}, + [1994] = {UINT64_C(0x00001E5A00000304), RUNE_C(0x001E5C)}, + [1998] = {UINT64_C(0x0000224500000338), RUNE_C(0x002247)}, + [1999] = {UINT64_C(0x0000044300000308), RUNE_C(0x0004F1)}, + [2001] = {UINT64_C(0x0000004B0000030C), RUNE_C(0x0001E8)}, + [2002] = {UINT64_C(0x0000006800000307), RUNE_C(0x001E23)}, + [2003] = {UINT64_C(0x0000006B0000030C), RUNE_C(0x0001E9)}, + [2004] = {UINT64_C(0x000001B000000309), RUNE_C(0x001EED)}, + [2006] = {UINT64_C(0x00001F7000000345), RUNE_C(0x001FB2)}, + [2007] = {UINT64_C(0x0000004C00000327), RUNE_C(0x00013B)}, + [2010] = {UINT64_C(0x000003CA00000300), RUNE_C(0x001FD2)}, + [2011] = {UINT64_C(0x000004230000030B), RUNE_C(0x0004F2)}, + [2015] = {UINT64_C(0x0000007A00000307), RUNE_C(0x00017C)}, + [2016] = {UINT64_C(0x0000010300000309), RUNE_C(0x001EB3)}, + [2018] = {UINT64_C(0x000003B500000314), RUNE_C(0x001F11)}, + [2019] = {UINT64_C(0x000000550000032D), RUNE_C(0x001E76)}, + [2021] = {UINT64_C(0x0000006500000303), RUNE_C(0x001EBD)}, + [2022] = {UINT64_C(0x0000005900000308), RUNE_C(0x000178)}, + [2026] = {UINT64_C(0x0000006C0000030C), RUNE_C(0x00013E)}, + [2028] = {UINT64_C(0x0000004C00000323), RUNE_C(0x001E36)}, + [2031] = {UINT64_C(0x00001F0000000345), RUNE_C(0x001F80)}, + [2032] = {UINT64_C(0x000003C900000300), RUNE_C(0x001F7C)}, + [2034] = {UINT64_C(0x000000E200000303), RUNE_C(0x001EAB)}, + [2036] = {UINT64_C(0x00001B3F00001B35), RUNE_C(0x001B41)}, + [2039] = {UINT64_C(0x0000007600000323), RUNE_C(0x001E7F)}, + [2041] = {UINT64_C(0x0000006B00000331), RUNE_C(0x001E35)}, + [2044] = {UINT64_C(0x0000004F00000308), RUNE_C(0x0000D6)}, + [2047] = {UINT64_C(0x0000006200000323), RUNE_C(0x001E05)}, +}; + +[[_mlib_pure, _mlib_inline]] +static uint64_t +hash(uint64_t x) +{ + x ^= x >> 30; + x *= 0xbf58476d1ce4e5b9U; + x ^= x >> 27; + x *= 0x94d049bb133111ebU; + x ^= x >> 31; + return x; +} + +[[_mlib_pure, _mlib_inline]] +static unsigned int +lookup(uint64_t hash, unsigned int idx) +{ + unsigned int mask = (1U << HT_EXP) - 1; + unsigned int step = (hash >> (64 - HT_EXP)) | 1; + return (idx + step) & mask; +} + +static rune +uprop_get_cm(rune a, rune b) +{ + uint64_t k, h; + k = (uint64_t)a << 32 | b; + h = hash(k); + for (unsigned int i = h;;) { + i = lookup(h, i); + auto e = uprop_cm_ht[i]; + if (e.k == 0 || e.k == k) + return e.v; + } +} diff --git a/include/unicode/string.h b/include/unicode/string.h index 06edb6c..17ce561 100644 --- a/include/unicode/string.h +++ b/include/unicode/string.h @@ -18,6 +18,16 @@ enum [[clang::flag_enum]] caseflags { CF_ẞ = 1 << 3, /* Use ‘ẞ’ as the uppercase of ‘ß’; alias for CF_SS */ }; +enum normtype { + /* If bit 0 is set, then composition is performed after decomposition. If + bit-1 is set then compatibility (de)composition is used as opposed to + canonical (de)composition. */ + NT_NFD = 0b00, + NT_NFC = 0b01, + NT_NFKD = 0b10, + NT_NFKC = 0b11, +}; + /* clang-format on */ [[nodiscard]] size_t u8gcnt(struct u8view); @@ -34,8 +44,8 @@ size_t u8wnext_human(struct u8view *, struct u8view *); alloc_fn, void *); [[nodiscard]] char8_t *u8upper(size_t *, struct u8view, enum caseflags, alloc_fn, void *); -[[nodiscard]] char8_t *u8norm_nfd(size_t *, struct u8view, alloc_fn, void *); -[[nodiscard]] char8_t *u8norm_nfkd(size_t *, struct u8view, alloc_fn, void *); +[[nodiscard]] char8_t *u8norm(size_t *, struct u8view, alloc_fn, void *, + enum normtype); /* Encoding-generic macros */ #define ucsgcnt(sv) _Generic((sv), struct u8view: u8gcnt)((sv)) @@ -57,10 +67,8 @@ size_t u8wnext_human(struct u8view *, struct u8view *); #define ucsupper(dstn, sv, flags, alloc, ctx) \ _Generic((sv), struct u8view: u8upper)((dstn), (sv), (flags), (alloc), \ (ctx)) -#define ucsnorm_nfd(dstn, sv, alloc, ctx) \ - _Generic((sv), struct u8view: u8norm_nfd)((dstn), (sv), (alloc), (ctx)) -#define ucsnorm_nfkd(dstn, sv, alloc, ctx) \ - _Generic((sv), struct u8view: u8norm_nfkd)((dstn), (sv), (alloc), (ctx)) +#define ucsnorm(dstn, sv, alloc, ctx, nt) \ + _Generic((sv), struct u8view: u8norm)((dstn), (sv), (alloc), (ctx), (nt)) constexpr double U8CASEFOLD_SCALE = 3; constexpr double U8LOWER_SCALE = 1.5; |