text:
Module:Unicode data/control

local Cc, Cf, Cs, Co, Cn = "control", "format", "surrogate", "private-use", "unassigned" local Zs, Zl, Zp = "space-separator", "line-separator", "paragraph-separator"

local data = { singles = { [0x000020] = Zs, [0x0000A0] = Zs, [0x0000AD] = Cf, [0x00038B] = Cn, [0x00038D] = Cn, [0x0003A2] = Cn, [0x000530] = Cn, [0x000590] = Cn, [0x00061C] = Cf, [0x0006DD] = Cf, [0x00070E] = Cn, [0x00070F] = Cf, [0x00083F] = Cn, [0x00085F] = Cn, [0x00088F] = Cn, [0x0008E2] = Cf, [0x000984] = Cn, [0x0009A9] = Cn, [0x0009B1] = Cn, [0x0009DE] = Cn, [0x000A04] = Cn, [0x000A29] = Cn, [0x000A31] = Cn, [0x000A34] = Cn, [0x000A37] = Cn, [0x000A3D] = Cn, [0x000A5D] = Cn, [0x000A84] = Cn, [0x000A8E] = Cn, [0x000A92] = Cn, [0x000AA9] = Cn, [0x000AB1] = Cn, [0x000AB4] = Cn, [0x000AC6] = Cn, [0x000ACA] = Cn, [0x000B00] = Cn, [0x000B04] = Cn, [0x000B29] = Cn, [0x000B31] = Cn, [0x000B34] = Cn, [0x000B5E] = Cn, [0x000B84] = Cn, [0x000B91] = Cn, [0x000B9B] = Cn, [0x000B9D] = Cn, [0x000BC9] = Cn, [0x000C0D] = Cn, [0x000C11] = Cn, [0x000C29] = Cn, [0x000C45] = Cn, [0x000C49] = Cn, [0x000C57] = Cn, [0x000C8D] = Cn, [0x000C91] = Cn, [0x000CA9] = Cn, [0x000CB4] = Cn, [0x000CC5] = Cn, [0x000CC9] = Cn, [0x000CDF] = Cn, [0x000CF0] = Cn, [0x000D0D] = Cn, [0x000D11] = Cn, [0x000D45] = Cn, [0x000D49] = Cn, [0x000D80] = Cn, [0x000D84] = Cn, [0x000DB2] = Cn, [0x000DBC] = Cn, [0x000DD5] = Cn, [0x000DD7] = Cn, [0x000E83] = Cn, [0x000E85] = Cn, [0x000E8B] = Cn, [0x000EA4] = Cn, [0x000EA6] = Cn, [0x000EC5] = Cn, [0x000EC7] = Cn, [0x000ECF] = Cn, [0x000F48] = Cn, [0x000F98] = Cn, [0x000FBD] = Cn, [0x000FCD] = Cn, [0x0010C6] = Cn, [0x001249] = Cn, [0x001257] = Cn, [0x001259] = Cn, [0x001289] = Cn, [0x0012B1] = Cn, [0x0012BF] = Cn, [0x0012C1] = Cn, [0x0012D7] = Cn, [0x001311] = Cn, [0x001680] = Zs, [0x00176D] = Cn, [0x001771] = Cn, [0x00180E] = Cf, [0x00191F] = Cn, [0x001A5F] = Cn, [0x001B7F] = Cn, [0x001F58] = Cn, [0x001F5A] = Cn, [0x001F5C] = Cn, [0x001F5E] = Cn, [0x001FB5] = Cn, [0x001FC5] = Cn, [0x001FDC] = Cn, [0x001FF5] = Cn, [0x001FFF] = Cn, [0x002028] = Zl, [0x002029] = Zp, [0x00202F] = Zs, [0x00205F] = Zs, [0x002065] = Cn, [0x00208F] = Cn, [0x002B96] = Cn, [0x002D26] = Cn, [0x002DA7] = Cn, [0x002DAF] = Cn, [0x002DB7] = Cn, [0x002DBF] = Cn, [0x002DC7] = Cn, [0x002DCF] = Cn, [0x002DD7] = Cn, [0x002DDF] = Cn, [0x002E9A] = Cn, [0x003000] = Zs, [0x003040] = Cn, [0x003130] = Cn, [0x00318F] = Cn, [0x00321F] = Cn, [0x00A7D2] = Cn, [0x00A7D4] = Cn, [0x00A9CE] = Cn, [0x00A9FF] = Cn, [0x00AB27] = Cn, [0x00AB2F] = Cn, [0x00FB37] = Cn, [0x00FB3D] = Cn, [0x00FB3F] = Cn, [0x00FB42] = Cn, [0x00FB45] = Cn, [0x00FE53] = Cn, [0x00FE67] = Cn, [0x00FE75] = Cn, [0x00FEFF] = Cf, [0x00FF00] = Cn, [0x00FFE7] = Cn, [0x01000C] = Cn, [0x010027] = Cn, [0x01003B] = Cn, [0x01003E] = Cn, [0x01018F] = Cn, [0x01039E] = Cn, [0x01057B] = Cn, [0x01058B] = Cn, [0x010593] = Cn, [0x010596] = Cn, [0x0105A2] = Cn, [0x0105B2] = Cn, [0x0105BA] = Cn, [0x010786] = Cn, [0x0107B1] = Cn, [0x010809] = Cn, [0x010836] = Cn, [0x010856] = Cn, [0x0108F3] = Cn, [0x010A04] = Cn, [0x010A14] = Cn, [0x010A18] = Cn, [0x010E7F] = Cn, [0x010EAA] = Cn, [0x0110BD] = Cf, [0x0110CD] = Cf, [0x011135] = Cn, [0x0111E0] = Cn, [0x011212] = Cn, [0x011287] = Cn, [0x011289] = Cn, [0x01128E] = Cn, [0x01129E] = Cn, [0x011304] = Cn, [0x011329] = Cn, [0x011331] = Cn, [0x011334] = Cn, [0x01133A] = Cn, [0x01145C] = Cn, [0x011914] = Cn, [0x011917] = Cn, [0x011936] = Cn, [0x011C09] = Cn, [0x011C37] = Cn, [0x011CA8] = Cn, [0x011D07] = Cn, [0x011D0A] = Cn, [0x011D3B] = Cn, [0x011D3E] = Cn, [0x011D66] = Cn, [0x011D69] = Cn, [0x011D8F] = Cn, [0x011D92] = Cn, [0x011F11] = Cn, [0x01246F] = Cn, [0x016A5F] = Cn, [0x016ABF] = Cn, [0x016B5A] = Cn, [0x016B62] = Cn, [0x01AFF4] = Cn, [0x01AFFC] = Cn, [0x01AFFF] = Cn, [0x01D455] = Cn, [0x01D49D] = Cn, [0x01D4AD] = Cn, [0x01D4BA] = Cn, [0x01D4BC] = Cn, [0x01D4C4] = Cn, [0x01D506] = Cn, [0x01D515] = Cn, [0x01D51D] = Cn, [0x01D53A] = Cn, [0x01D53F] = Cn, [0x01D545] = Cn, [0x01D551] = Cn, [0x01DAA0] = Cn, [0x01E007] = Cn, [0x01E022] = Cn, [0x01E025] = Cn, [0x01E7E7] = Cn, [0x01E7EC] = Cn, [0x01E7EF] = Cn, [0x01E7FF] = Cn, [0x01EE04] = Cn, [0x01EE20] = Cn, [0x01EE23] = Cn, [0x01EE28] = Cn, [0x01EE33] = Cn, [0x01EE38] = Cn, [0x01EE3A] = Cn, [0x01EE48] = Cn, [0x01EE4A] = Cn, [0x01EE4C] = Cn, [0x01EE50] = Cn, [0x01EE53] = Cn, [0x01EE58] = Cn, [0x01EE5A] = Cn, [0x01EE5C] = Cn, [0x01EE5E] = Cn, [0x01EE60] = Cn, [0x01EE63] = Cn, [0x01EE6B] = Cn, [0x01EE73] = Cn, [0x01EE78] = Cn, [0x01EE7D] = Cn, [0x01EE7F] = Cn, [0x01EE8A] = Cn, [0x01EEA4] = Cn, [0x01EEAA] = Cn, [0x01F0C0] = Cn, [0x01F0D0] = Cn, [0x01FABE] = Cn, [0x01FB93] = Cn, [0x0E0001] = Cf, };	ranges = { { 0x000000, 0x00001F, Cc }, { 0x00007F, 0x00009F, Cc }, { 0x000378, 0x000379, Cn }, { 0x000380, 0x000383, Cn }, { 0x000557, 0x000558, Cn }, { 0x00058B, 0x00058C, Cn }, { 0x0005C8, 0x0005CF, Cn }, { 0x0005EB, 0x0005EE, Cn }, { 0x0005F5, 0x0005FF, Cn }, { 0x000600, 0x000605, Cf }, { 0x00074B, 0x00074C, Cn }, { 0x0007B2, 0x0007BF, Cn }, { 0x0007FB, 0x0007FC, Cn }, { 0x00082E, 0x00082F, Cn }, { 0x00085C, 0x00085D, Cn }, { 0x00086B, 0x00086F, Cn }, { 0x000890, 0x000891, Cf }, { 0x000892, 0x000897, Cn }, { 0x00098D, 0x00098E, Cn }, { 0x000991, 0x000992, Cn }, { 0x0009B3, 0x0009B5, Cn }, { 0x0009BA, 0x0009BB, Cn }, { 0x0009C5, 0x0009C6, Cn }, { 0x0009C9, 0x0009CA, Cn }, { 0x0009CF, 0x0009D6, Cn }, { 0x0009D8, 0x0009DB, Cn }, { 0x0009E4, 0x0009E5, Cn }, { 0x0009FF, 0x000A00, Cn }, { 0x000A0B, 0x000A0E, Cn }, { 0x000A11, 0x000A12, Cn }, { 0x000A3A, 0x000A3B, Cn }, { 0x000A43, 0x000A46, Cn }, { 0x000A49, 0x000A4A, Cn }, { 0x000A4E, 0x000A50, Cn }, { 0x000A52, 0x000A58, Cn }, { 0x000A5F, 0x000A65, Cn }, { 0x000A77, 0x000A80, Cn }, { 0x000ABA, 0x000ABB, Cn }, { 0x000ACE, 0x000ACF, Cn }, { 0x000AD1, 0x000ADF, Cn }, { 0x000AE4, 0x000AE5, Cn }, { 0x000AF2, 0x000AF8, Cn }, { 0x000B0D, 0x000B0E, Cn }, { 0x000B11, 0x000B12, Cn }, { 0x000B3A, 0x000B3B, Cn }, { 0x000B45, 0x000B46, Cn }, { 0x000B49, 0x000B4A, Cn }, { 0x000B4E, 0x000B54, Cn }, { 0x000B58, 0x000B5B, Cn }, { 0x000B64, 0x000B65, Cn }, { 0x000B78, 0x000B81, Cn }, { 0x000B8B, 0x000B8D, Cn }, { 0x000B96, 0x000B98, Cn }, { 0x000BA0, 0x000BA2, Cn }, { 0x000BA5, 0x000BA7, Cn }, { 0x000BAB, 0x000BAD, Cn }, { 0x000BBA, 0x000BBD, Cn }, { 0x000BC3, 0x000BC5, Cn }, { 0x000BCE, 0x000BCF, Cn }, { 0x000BD1, 0x000BD6, Cn }, { 0x000BD8, 0x000BE5, Cn }, { 0x000BFB, 0x000BFF, Cn }, { 0x000C3A, 0x000C3B, Cn }, { 0x000C4E, 0x000C54, Cn }, { 0x000C5B, 0x000C5C, Cn }, { 0x000C5E, 0x000C5F, Cn }, { 0x000C64, 0x000C65, Cn }, { 0x000C70, 0x000C76, Cn }, { 0x000CBA, 0x000CBB, Cn }, { 0x000CCE, 0x000CD4, Cn }, { 0x000CD7, 0x000CDC, Cn }, { 0x000CE4, 0x000CE5, Cn }, { 0x000CF4, 0x000CFF, Cn }, { 0x000D50, 0x000D53, Cn }, { 0x000D64, 0x000D65, Cn }, { 0x000D97, 0x000D99, Cn }, { 0x000DBE, 0x000DBF, Cn }, { 0x000DC7, 0x000DC9, Cn }, { 0x000DCB, 0x000DCE, Cn }, { 0x000DE0, 0x000DE5, Cn }, { 0x000DF0, 0x000DF1, Cn }, { 0x000DF5, 0x000E00, Cn }, { 0x000E3B, 0x000E3E, Cn }, { 0x000E5C, 0x000E80, Cn }, { 0x000EBE, 0x000EBF, Cn }, { 0x000EDA, 0x000EDB, Cn }, { 0x000EE0, 0x000EFF, Cn }, { 0x000F6D, 0x000F70, Cn }, { 0x000FDB, 0x000FFF, Cn }, { 0x0010C8, 0x0010CC, Cn }, { 0x0010CE, 0x0010CF, Cn }, { 0x00124E, 0x00124F, Cn }, { 0x00125E, 0x00125F, Cn }, { 0x00128E, 0x00128F, Cn }, { 0x0012B6, 0x0012B7, Cn }, { 0x0012C6, 0x0012C7, Cn }, { 0x001316, 0x001317, Cn }, { 0x00135B, 0x00135C, Cn }, { 0x00137D, 0x00137F, Cn }, { 0x00139A, 0x00139F, Cn }, { 0x0013F6, 0x0013F7, Cn }, { 0x0013FE, 0x0013FF, Cn }, { 0x00169D, 0x00169F, Cn }, { 0x0016F9, 0x0016FF, Cn }, { 0x001716, 0x00171E, Cn }, { 0x001737, 0x00173F, Cn }, { 0x001754, 0x00175F, Cn }, { 0x001774, 0x00177F, Cn }, { 0x0017DE, 0x0017DF, Cn }, { 0x0017EA, 0x0017EF, Cn }, { 0x0017FA, 0x0017FF, Cn }, { 0x00181A, 0x00181F, Cn }, { 0x001879, 0x00187F, Cn }, { 0x0018AB, 0x0018AF, Cn }, { 0x0018F6, 0x0018FF, Cn }, { 0x00192C, 0x00192F, Cn }, { 0x00193C, 0x00193F, Cn }, { 0x001941, 0x001943, Cn }, { 0x00196E, 0x00196F, Cn }, { 0x001975, 0x00197F, Cn }, { 0x0019AC, 0x0019AF, Cn }, { 0x0019CA, 0x0019CF, Cn }, { 0x0019DB, 0x0019DD, Cn }, { 0x001A1C, 0x001A1D, Cn }, { 0x001A7D, 0x001A7E, Cn }, { 0x001A8A, 0x001A8F, Cn }, { 0x001A9A, 0x001A9F, Cn }, { 0x001AAE, 0x001AAF, Cn }, { 0x001ACF, 0x001AFF, Cn }, { 0x001B4D, 0x001B4F, Cn }, { 0x001BF4, 0x001BFB, Cn }, { 0x001C38, 0x001C3A, Cn }, { 0x001C4A, 0x001C4C, Cn }, { 0x001C89, 0x001C8F, Cn }, { 0x001CBB, 0x001CBC, Cn }, { 0x001CC8, 0x001CCF, Cn }, { 0x001CFB, 0x001CFF, Cn }, { 0x001F16, 0x001F17, Cn }, { 0x001F1E, 0x001F1F, Cn }, { 0x001F46, 0x001F47, Cn }, { 0x001F4E, 0x001F4F, Cn }, { 0x001F7E, 0x001F7F, Cn }, { 0x001FD4, 0x001FD5, Cn }, { 0x001FF0, 0x001FF1, Cn }, { 0x002000, 0x00200A, Zs }, { 0x00200B, 0x00200F, Cf }, { 0x00202A, 0x00202E, Cf }, { 0x002060, 0x002064, Cf }, { 0x002066, 0x00206F, Cf }, { 0x002072, 0x002073, Cn }, { 0x00209D, 0x00209F, Cn }, { 0x0020C1, 0x0020CF, Cn }, { 0x0020F1, 0x0020FF, Cn }, { 0x00218C, 0x00218F, Cn }, { 0x002427, 0x00243F, Cn }, { 0x00244B, 0x00245F, Cn }, { 0x002B74, 0x002B75, Cn }, { 0x002CF4, 0x002CF8, Cn }, { 0x002D28, 0x002D2C, Cn }, { 0x002D2E, 0x002D2F, Cn }, { 0x002D68, 0x002D6E, Cn }, { 0x002D71, 0x002D7E, Cn }, { 0x002D97, 0x002D9F, Cn }, { 0x002E5E, 0x002E7F, Cn }, { 0x002EF4, 0x002EFF, Cn }, { 0x002FD6, 0x002FEF, Cn }, { 0x002FFC, 0x002FFF, Cn }, { 0x003097, 0x003098, Cn }, { 0x003100, 0x003104, Cn }, { 0x0031E4, 0x0031EF, Cn }, { 0x00A48D, 0x00A48F, Cn }, { 0x00A4C7, 0x00A4CF, Cn }, { 0x00A62C, 0x00A63F, Cn }, { 0x00A6F8, 0x00A6FF, Cn }, { 0x00A7CB, 0x00A7CF, Cn }, { 0x00A7DA, 0x00A7F1, Cn }, { 0x00A82D, 0x00A82F, Cn }, { 0x00A83A, 0x00A83F, Cn }, { 0x00A878, 0x00A87F, Cn }, { 0x00A8C6, 0x00A8CD, Cn }, { 0x00A8DA, 0x00A8DF, Cn }, { 0x00A954, 0x00A95E, Cn }, { 0x00A97D, 0x00A97F, Cn }, { 0x00A9DA, 0x00A9DD, Cn }, { 0x00AA37, 0x00AA3F, Cn }, { 0x00AA4E, 0x00AA4F, Cn }, { 0x00AA5A, 0x00AA5B, Cn }, { 0x00AAC3, 0x00AADA, Cn }, { 0x00AAF7, 0x00AB00, Cn }, { 0x00AB07, 0x00AB08, Cn }, { 0x00AB0F, 0x00AB10, Cn }, { 0x00AB17, 0x00AB1F, Cn }, { 0x00AB6C, 0x00AB6F, Cn }, { 0x00ABEE, 0x00ABEF, Cn }, { 0x00ABFA, 0x00ABFF, Cn }, { 0x00D7A4, 0x00D7AF, Cn }, { 0x00D7C7, 0x00D7CA, Cn }, { 0x00D7FC, 0x00D7FF, Cn }, { 0x00D800, 0x00DFFF, Cs }, { 0x00E000, 0x00F8FF, Co }, { 0x00FA6E, 0x00FA6F, Cn }, { 0x00FADA, 0x00FAFF, Cn }, { 0x00FB07, 0x00FB12, Cn }, { 0x00FB18, 0x00FB1C, Cn }, { 0x00FBC3, 0x00FBD2, Cn }, { 0x00FD90, 0x00FD91, Cn }, { 0x00FDC8, 0x00FDCE, Cn }, { 0x00FDD0, 0x00FDEF, Cn }, { 0x00FE1A, 0x00FE1F, Cn }, { 0x00FE6C, 0x00FE6F, Cn }, { 0x00FEFD, 0x00FEFE, Cn }, { 0x00FFBF, 0x00FFC1, Cn }, { 0x00FFC8, 0x00FFC9, Cn }, { 0x00FFD0, 0x00FFD1, Cn }, { 0x00FFD8, 0x00FFD9, Cn }, { 0x00FFDD, 0x00FFDF, Cn }, { 0x00FFEF, 0x00FFF8, Cn }, { 0x00FFF9, 0x00FFFB, Cf }, { 0x00FFFE, 0x00FFFF, Cn }, { 0x01004E, 0x01004F, Cn }, { 0x01005E, 0x01007F, Cn }, { 0x0100FB, 0x0100FF, Cn }, { 0x010103, 0x010106, Cn }, { 0x010134, 0x010136, Cn }, { 0x01019D, 0x01019F, Cn }, { 0x0101A1, 0x0101CF, Cn }, { 0x0101FE, 0x01027F, Cn }, { 0x01029D, 0x01029F, Cn }, { 0x0102D1, 0x0102DF, Cn }, { 0x0102FC, 0x0102FF, Cn }, { 0x010324, 0x01032C, Cn }, { 0x01034B, 0x01034F, Cn }, { 0x01037B, 0x01037F, Cn }, { 0x0103C4, 0x0103C7, Cn }, { 0x0103D6, 0x0103FF, Cn }, { 0x01049E, 0x01049F, Cn }, { 0x0104AA, 0x0104AF, Cn }, { 0x0104D4, 0x0104D7, Cn }, { 0x0104FC, 0x0104FF, Cn }, { 0x010528, 0x01052F, Cn }, { 0x010564, 0x01056E, Cn }, { 0x0105BD, 0x0105FF, Cn }, { 0x010737, 0x01073F, Cn }, { 0x010756, 0x01075F, Cn }, { 0x010768, 0x01077F, Cn }, { 0x0107BB, 0x0107FF, Cn }, { 0x010806, 0x010807, Cn }, { 0x010839, 0x01083B, Cn }, { 0x01083D, 0x01083E, Cn }, { 0x01089F, 0x0108A6, Cn }, { 0x0108B0, 0x0108DF, Cn }, { 0x0108F6, 0x0108FA, Cn }, { 0x01091C, 0x01091E, Cn }, { 0x01093A, 0x01093E, Cn }, { 0x010940, 0x01097F, Cn }, { 0x0109B8, 0x0109BB, Cn }, { 0x0109D0, 0x0109D1, Cn }, { 0x010A07, 0x010A0B, Cn }, { 0x010A36, 0x010A37, Cn }, { 0x010A3B, 0x010A3E, Cn }, { 0x010A49, 0x010A4F, Cn }, { 0x010A59, 0x010A5F, Cn }, { 0x010AA0, 0x010ABF, Cn }, { 0x010AE7, 0x010AEA, Cn }, { 0x010AF7, 0x010AFF, Cn }, { 0x010B36, 0x010B38, Cn }, { 0x010B56, 0x010B57, Cn }, { 0x010B73, 0x010B77, Cn }, { 0x010B92, 0x010B98, Cn }, { 0x010B9D, 0x010BA8, Cn }, { 0x010BB0, 0x010BFF, Cn }, { 0x010C49, 0x010C7F, Cn }, { 0x010CB3, 0x010CBF, Cn }, { 0x010CF3, 0x010CF9, Cn }, { 0x010D28, 0x010D2F, Cn }, { 0x010D3A, 0x010E5F, Cn }, { 0x010EAE, 0x010EAF, Cn }, { 0x010EB2, 0x010EFC, Cn }, { 0x010F28, 0x010F2F, Cn }, { 0x010F5A, 0x010F6F, Cn }, { 0x010F8A, 0x010FAF, Cn }, { 0x010FCC, 0x010FDF, Cn }, { 0x010FF7, 0x010FFF, Cn }, { 0x01104E, 0x011051, Cn }, { 0x011076, 0x01107E, Cn }, { 0x0110C3, 0x0110CC, Cn }, { 0x0110CE, 0x0110CF, Cn }, { 0x0110E9, 0x0110EF, Cn }, { 0x0110FA, 0x0110FF, Cn }, { 0x011148, 0x01114F, Cn }, { 0x011177, 0x01117F, Cn }, { 0x0111F5, 0x0111FF, Cn }, { 0x011242, 0x01127F, Cn }, { 0x0112AA, 0x0112AF, Cn }, { 0x0112EB, 0x0112EF, Cn }, { 0x0112FA, 0x0112FF, Cn }, { 0x01130D, 0x01130E, Cn }, { 0x011311, 0x011312, Cn }, { 0x011345, 0x011346, Cn }, { 0x011349, 0x01134A, Cn }, { 0x01134E, 0x01134F, Cn }, { 0x011351, 0x011356, Cn }, { 0x011358, 0x01135C, Cn }, { 0x011364, 0x011365, Cn }, { 0x01136D, 0x01136F, Cn }, { 0x011375, 0x0113FF, Cn }, { 0x011462, 0x01147F, Cn }, { 0x0114C8, 0x0114CF, Cn }, { 0x0114DA, 0x01157F, Cn }, { 0x0115B6, 0x0115B7, Cn }, { 0x0115DE, 0x0115FF, Cn }, { 0x011645, 0x01164F, Cn }, { 0x01165A, 0x01165F, Cn }, { 0x01166D, 0x01167F, Cn }, { 0x0116BA, 0x0116BF, Cn }, { 0x0116CA, 0x0116FF, Cn }, { 0x01171B, 0x01171C, Cn }, { 0x01172C, 0x01172F, Cn }, { 0x011747, 0x0117FF, Cn }, { 0x01183C, 0x01189F, Cn }, { 0x0118F3, 0x0118FE, Cn }, { 0x011907, 0x011908, Cn }, { 0x01190A, 0x01190B, Cn }, { 0x011939, 0x01193A, Cn }, { 0x011947, 0x01194F, Cn }, { 0x01195A, 0x01199F, Cn }, { 0x0119A8, 0x0119A9, Cn }, { 0x0119D8, 0x0119D9, Cn }, { 0x0119E5, 0x0119FF, Cn }, { 0x011A48, 0x011A4F, Cn }, { 0x011AA3, 0x011AAF, Cn }, { 0x011AF9, 0x011AFF, Cn }, { 0x011B0A, 0x011BFF, Cn }, { 0x011C46, 0x011C4F, Cn }, { 0x011C6D, 0x011C6F, Cn }, { 0x011C90, 0x011C91, Cn }, { 0x011CB7, 0x011CFF, Cn }, { 0x011D37, 0x011D39, Cn }, { 0x011D48, 0x011D4F, Cn }, { 0x011D5A, 0x011D5F, Cn }, { 0x011D99, 0x011D9F, Cn }, { 0x011DAA, 0x011EDF, Cn }, { 0x011EF9, 0x011EFF, Cn }, { 0x011F3B, 0x011F3D, Cn }, { 0x011F5A, 0x011FAF, Cn }, { 0x011FB1, 0x011FBF, Cn }, { 0x011FF2, 0x011FFE, Cn }, { 0x01239A, 0x0123FF, Cn }, { 0x012475, 0x01247F, Cn }, { 0x012544, 0x012F8F, Cn }, { 0x012FF3, 0x012FFF, Cn }, { 0x013430, 0x01343F, Cf }, { 0x013456, 0x0143FF, Cn }, { 0x014647, 0x0167FF, Cn }, { 0x016A39, 0x016A3F, Cn }, { 0x016A6A, 0x016A6D, Cn }, { 0x016ACA, 0x016ACF, Cn }, { 0x016AEE, 0x016AEF, Cn }, { 0x016AF6, 0x016AFF, Cn }, { 0x016B46, 0x016B4F, Cn }, { 0x016B78, 0x016B7C, Cn }, { 0x016B90, 0x016E3F, Cn }, { 0x016E9B, 0x016EFF, Cn }, { 0x016F4B, 0x016F4E, Cn }, { 0x016F88, 0x016F8E, Cn }, { 0x016FA0, 0x016FDF, Cn }, { 0x016FE5, 0x016FEF, Cn }, { 0x016FF2, 0x016FFF, Cn }, { 0x0187F8, 0x0187FF, Cn }, { 0x018CD6, 0x018CFF, Cn }, { 0x018D09, 0x01AFEF, Cn }, { 0x01B123, 0x01B131, Cn }, { 0x01B133, 0x01B14F, Cn }, { 0x01B153, 0x01B154, Cn }, { 0x01B156, 0x01B163, Cn }, { 0x01B168, 0x01B16F, Cn }, { 0x01B2FC, 0x01BBFF, Cn }, { 0x01BC6B, 0x01BC6F, Cn }, { 0x01BC7D, 0x01BC7F, Cn }, { 0x01BC89, 0x01BC8F, Cn }, { 0x01BC9A, 0x01BC9B, Cn }, { 0x01BCA0, 0x01BCA3, Cf }, { 0x01BCA4, 0x01CEFF, Cn }, { 0x01CF2E, 0x01CF2F, Cn }, { 0x01CF47, 0x01CF4F, Cn }, { 0x01CFC4, 0x01CFFF, Cn }, { 0x01D0F6, 0x01D0FF, Cn }, { 0x01D127, 0x01D128, Cn }, { 0x01D173, 0x01D17A, Cf }, { 0x01D1EB, 0x01D1FF, Cn }, { 0x01D246, 0x01D2BF, Cn }, { 0x01D2D4, 0x01D2DF, Cn }, { 0x01D2F4, 0x01D2FF, Cn }, { 0x01D357, 0x01D35F, Cn }, { 0x01D379, 0x01D3FF, Cn }, { 0x01D4A0, 0x01D4A1, Cn }, { 0x01D4A3, 0x01D4A4, Cn }, { 0x01D4A7, 0x01D4A8, Cn }, { 0x01D50B, 0x01D50C, Cn }, { 0x01D547, 0x01D549, Cn }, { 0x01D6A6, 0x01D6A7, Cn }, { 0x01D7CC, 0x01D7CD, Cn }, { 0x01DA8C, 0x01DA9A, Cn }, { 0x01DAB0, 0x01DEFF, Cn }, { 0x01DF1F, 0x01DF24, Cn }, { 0x01DF2B, 0x01DFFF, Cn }, { 0x01E019, 0x01E01A, Cn }, { 0x01E02B, 0x01E02F, Cn }, { 0x01E06E, 0x01E08E, Cn }, { 0x01E090, 0x01E0FF, Cn }, { 0x01E12D, 0x01E12F, Cn }, { 0x01E13E, 0x01E13F, Cn }, { 0x01E14A, 0x01E14D, Cn }, { 0x01E150, 0x01E28F, Cn }, { 0x01E2AF, 0x01E2BF, Cn }, { 0x01E2FA, 0x01E2FE, Cn }, { 0x01E300, 0x01E4CF, Cn }, { 0x01E4FA, 0x01E7DF, Cn }, { 0x01E8C5, 0x01E8C6, Cn }, { 0x01E8D7, 0x01E8FF, Cn }, { 0x01E94C, 0x01E94F, Cn }, { 0x01E95A, 0x01E95D, Cn }, { 0x01E960, 0x01EC70, Cn }, { 0x01ECB5, 0x01ED00, Cn }, { 0x01ED3E, 0x01EDFF, Cn }, { 0x01EE25, 0x01EE26, Cn }, { 0x01EE3C, 0x01EE41, Cn }, { 0x01EE43, 0x01EE46, Cn }, { 0x01EE55, 0x01EE56, Cn }, { 0x01EE65, 0x01EE66, Cn }, { 0x01EE9C, 0x01EEA0, Cn }, { 0x01EEBC, 0x01EEEF, Cn }, { 0x01EEF2, 0x01EFFF, Cn }, { 0x01F02C, 0x01F02F, Cn }, { 0x01F094, 0x01F09F, Cn }, { 0x01F0AF, 0x01F0B0, Cn }, { 0x01F0F6, 0x01F0FF, Cn }, { 0x01F1AE, 0x01F1E5, Cn }, { 0x01F203, 0x01F20F, Cn }, { 0x01F23C, 0x01F23F, Cn }, { 0x01F249, 0x01F24F, Cn }, { 0x01F252, 0x01F25F, Cn }, { 0x01F266, 0x01F2FF, Cn }, { 0x01F6D8, 0x01F6DB, Cn }, { 0x01F6ED, 0x01F6EF, Cn }, { 0x01F6FD, 0x01F6FF, Cn }, { 0x01F777, 0x01F77A, Cn }, { 0x01F7DA, 0x01F7DF, Cn }, { 0x01F7EC, 0x01F7EF, Cn }, { 0x01F7F1, 0x01F7FF, Cn }, { 0x01F80C, 0x01F80F, Cn }, { 0x01F848, 0x01F84F, Cn }, { 0x01F85A, 0x01F85F, Cn }, { 0x01F888, 0x01F88F, Cn }, { 0x01F8AE, 0x01F8AF, Cn }, { 0x01F8B2, 0x01F8FF, Cn }, { 0x01FA54, 0x01FA5F, Cn }, { 0x01FA6E, 0x01FA6F, Cn }, { 0x01FA7D, 0x01FA7F, Cn }, { 0x01FA89, 0x01FA8F, Cn }, { 0x01FAC6, 0x01FACD, Cn }, { 0x01FADC, 0x01FADF, Cn }, { 0x01FAE9, 0x01FAEF, Cn }, { 0x01FAF9, 0x01FAFF, Cn }, { 0x01FBCB, 0x01FBEF, Cn }, { 0x01FBFA, 0x01FFFF, Cn }, { 0x02A6E0, 0x02A6FF, Cn }, { 0x02B73A, 0x02B73F, Cn }, { 0x02B81E, 0x02B81F, Cn }, { 0x02CEA2, 0x02CEAF, Cn }, { 0x02EBE1, 0x02F7FF, Cn }, { 0x02FA1E, 0x02FFFF, Cn }, { 0x03134B, 0x03134F, Cn }, { 0x0323B0, 0x0E0000, Cn }, { 0x0E0002, 0x0E001F, Cn }, { 0x0E0020, 0x0E007F, Cf }, { 0x0E0080, 0x0E00FF, Cn }, { 0x0E01F0, 0x0EFFFF, Cn }, { 0x0F0000, 0x0FFFFD, Co }, { 0x0FFFFE, 0x0FFFFF, Cn }, { 0x100000, 0x10FFFD, Co }, { 0x10FFFE, 0x10FFFF, Cn }, }; }

-- Needed for binary search. data.ranges.length = #data.ranges

return data

title: Module:Unicode data/control


text:
Module:Unicode data/derived core properties

local data = {}

data.default_ignorable = { singles = { [0x000AD] = true, [0x0034F] = true, [0x0061C] = true, [0x03164] = true, [0x0FEFF] = true, [0x0FFA0] = true, },	ranges = { { 0x0115F, 0x01160 }, { 0x017B4, 0x017B5 }, { 0x0180B, 0x0180F }, { 0x0200B, 0x0200F }, { 0x0202A, 0x0202E }, { 0x02060, 0x0206F }, { 0x0FE00, 0x0FE0F }, { 0x0FFF0, 0x0FFF8 }, { 0x1BCA0, 0x1BCA3 }, { 0x1D173, 0x1D17A }, { 0xE0000, 0xE0FFF }, }, }

return data

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Module:Unicode data/derived core properties/doc

Contains data for the  property, which is used by the function   in Module:Unicode data/sandbox. Generated by Module:Unicode data/derived core properties/make from DerivedCoreProperties.txt in the Unicode Character Database.


text:
Module:Unicode data/Hangul

-- Data used to generate the names of characters in the Hangul Syllables block -- (U+AC00 to U+D7A3). local Hangul = {}

-- The following leads, vowels, and trails come from here: -- http://www.unicode.org/Public/UNIDATA/Jamo.txt Hangul.leads = { [0] = "G", "GG", "N", "D", "DD", "R", "M", "B", "BB", "S", "SS", "", "J", "JJ", "C", "K", "T", "P", "H" } -- not actually used: Hangul.lead_count = #Hangul.leads + 1

Hangul.vowels = { [0] = "A", "AE", "YA", "YAE", "EO", "E", "YEO", "YE", "O", "WA", "WAE", "OE", "YO", "U", "WEO", "WE", "WI", "YU", "EU", "YI", "I" } Hangul.vowel_count = #Hangul.vowels + 1

Hangul.trails = { [0] = "", "G", "GG", "GS", "N", "NJ", "NH", "D", "L", "LG", "LM", "LB", "LS", "LT", "LP", "LH", "M", "B", "BS", "S", "SS", "NG", "J", "C", "K", "T", "P", "H" } Hangul.trail_count = #Hangul.trails + 1

--For the term "final", see Syllable. Hangul.final_count = Hangul.vowel_count * Hangul.trail_count

return Hangul

title: Module:Unicode data/Hangul


text:
Module:Unicode data/Hangul/doc

Contains data used by Module:Unicode data to generate the names of characters in the Hangul Syllables Unicode block.

title: Module:Unicode data/Hangul/doc


text:
Module:Unicode data/scripts

--[=[ -- Official Unicode script values for individual codepoints and ranges of -- codepoints.

-- https://www.unicode.org/Public/UNIDATA/Scripts.txt provided -- the script names, and https://www.unicode.org/Public/UNIDATA/PropertyValueAliases.txt -- provided script codes corresponding to the names (see Script (Unicode)). --]=]

local data = { singles = { [0x000AA] = "Latn", [0x000BA] = "Latn", [0x000D7] = "Zyyy", [0x000F7] = "Zyyy", [0x00374] = "Zyyy", [0x0037E] = "Zyyy", [0x0037F] = "Grek", [0x00384] = "Grek", [0x00385] = "Zyyy", [0x00386] = "Grek", [0x00387] = "Zyyy", [0x0038C] = "Grek", [0x00605] = "Zyyy", [0x0060C] = "Zyyy", [0x0061B] = "Zyyy", [0x0061F] = "Zyyy", [0x00640] = "Zyyy", [0x00670] = "Zinh", [0x006DD] = "Zyyy", [0x0085E] = "Mand", [0x008E2] = "Zyyy", [0x009B2] = "Beng", [0x009D7] = "Beng", [0x00A3C] = "Guru", [0x00A51] = "Guru", [0x00A5E] = "Guru", [0x00AD0] = "Gujr", [0x00B9C] = "Taml", [0x00BD0] = "Taml", [0x00BD7] = "Taml", [0x00C5D] = "Telu", [0x00DBD] = "Sinh", [0x00DCA] = "Sinh", [0x00DD6] = "Sinh", [0x00E3F] = "Zyyy", [0x00E84] = "Laoo", [0x00EA5] = "Laoo", [0x00EC6] = "Laoo", [0x010C7] = "Geor", [0x010CD] = "Geor", [0x010FB] = "Zyyy", [0x01258] = "Ethi", [0x012C0] = "Ethi", [0x0171F] = "Tglg", [0x01804] = "Mong", [0x01805] = "Zyyy", [0x01940] = "Limb", [0x01CD3] = "Zyyy", [0x01CE1] = "Zyyy", [0x01CED] = "Zinh", [0x01CF4] = "Zinh", [0x01CFA] = "Zyyy", [0x01D2B] = "Cyrl", [0x01D78] = "Cyrl", [0x01DBF] = "Grek", [0x01F59] = "Grek", [0x01F5B] = "Grek", [0x01F5D] = "Grek", [0x02071] = "Latn", [0x0207F] = "Latn", [0x02126] = "Grek", [0x02132] = "Latn", [0x0214E] = "Latn", [0x02D27] = "Geor", [0x02D2D] = "Geor", [0x02D7F] = "Tfng", [0x03005] = "Hani", [0x03006] = "Zyyy", [0x03007] = "Hani", [0x030A0] = "Zyyy", [0x032FF] = "Zyyy", [0x0A7D3] = "Latn", [0x0A92E] = "Zyyy", [0x0A92F] = "Kali", [0x0A95F] = "Rjng", [0x0A9CF] = "Zyyy", [0x0AB5B] = "Zyyy", [0x0AB65] = "Grek", [0x0FB3E] = "Hebr", [0x0FDCF] = "Arab", [0x0FEFF] = "Zyyy", [0x0FF70] = "Zyyy", [0x101A0] = "Grek", [0x101FD] = "Zinh", [0x102E0] = "Zinh", [0x1039F] = "Ugar", [0x1056F] = "Aghb", [0x10808] = "Cprt", [0x1083C] = "Cprt", [0x1083F] = "Cprt", [0x1091F] = "Phnx", [0x1093F] = "Lydi", [0x1107F] = "Brah", [0x110CD] = "Kthi", [0x11288] = "Mult", [0x1133B] = "Zinh", [0x11350] = "Gran", [0x11357] = "Gran", [0x118FF] = "Wara", [0x11909] = "Diak", [0x11D3A] = "Gonm", [0x11FB0] = "Lisu", [0x11FFF] = "Taml", [0x16FE0] = "Tang", [0x16FE1] = "Nshu", [0x16FE4] = "Kits", [0x1B000] = "Kana", [0x1B132] = "Hira", [0x1B155] = "Kana", [0x1D4A2] = "Zyyy", [0x1D4BB] = "Zyyy", [0x1D546] = "Zyyy", [0x1E08F] = "Cyrl", [0x1E2FF] = "Wcho", [0x1EE24] = "Arab", [0x1EE27] = "Arab", [0x1EE39] = "Arab", [0x1EE3B] = "Arab", [0x1EE42] = "Arab", [0x1EE47] = "Arab", [0x1EE49] = "Arab", [0x1EE4B] = "Arab", [0x1EE54] = "Arab", [0x1EE57] = "Arab", [0x1EE59] = "Arab", [0x1EE5B] = "Arab", [0x1EE5D] = "Arab", [0x1EE5F] = "Arab", [0x1EE64] = "Arab", [0x1EE7E] = "Arab", [0x1F200] = "Hira", [0x1F7F0] = "Zyyy", [0xE0001] = "Zyyy", },	ranges = { { 0x00000, 0x00040, "Zyyy" }, { 0x00041, 0x0005A, "Latn" }, { 0x0005B, 0x00060, "Zyyy" }, { 0x00061, 0x0007A, "Latn" }, { 0x0007B, 0x000A9, "Zyyy" }, { 0x000AB, 0x000B9, "Zyyy" }, { 0x000BB, 0x000BF, "Zyyy" }, { 0x000C0, 0x000D6, "Latn" }, { 0x000D8, 0x000F6, "Latn" }, { 0x000F8, 0x002B8, "Latn" }, { 0x002B9, 0x002DF, "Zyyy" }, { 0x002E0, 0x002E4, "Latn" }, { 0x002E5, 0x002E9, "Zyyy" }, { 0x002EA, 0x002EB, "Bopo" }, { 0x002EC, 0x002FF, "Zyyy" }, { 0x00300, 0x0036F, "Zinh" }, { 0x00370, 0x00373, "Grek" }, { 0x00375, 0x00377, "Grek" }, { 0x0037A, 0x0037D, "Grek" }, { 0x00388, 0x0038A, "Grek" }, { 0x0038E, 0x003A1, "Grek" }, { 0x003A3, 0x003E1, "Grek" }, { 0x003E2, 0x003EF, "Copt" }, { 0x003F0, 0x003FF, "Grek" }, { 0x00400, 0x00484, "Cyrl" }, { 0x00485, 0x00486, "Zinh" }, { 0x00487, 0x0052F, "Cyrl" }, { 0x00531, 0x00556, "Armn" }, { 0x00559, 0x0058A, "Armn" }, { 0x0058D, 0x0058F, "Armn" }, { 0x00591, 0x005C7, "Hebr" }, { 0x005D0, 0x005EA, "Hebr" }, { 0x005EF, 0x005F4, "Hebr" }, { 0x00600, 0x00604, "Arab" }, { 0x00606, 0x0060B, "Arab" }, { 0x0060D, 0x0061A, "Arab" }, { 0x0061C, 0x0061E, "Arab" }, { 0x00620, 0x0063F, "Arab" }, { 0x00641, 0x0064A, "Arab" }, { 0x0064B, 0x00655, "Zinh" }, { 0x00656, 0x0066F, "Arab" }, { 0x00671, 0x006DC, "Arab" }, { 0x006DE, 0x006FF, "Arab" }, { 0x00700, 0x0070D, "Syrc" }, { 0x0070F, 0x0074A, "Syrc" }, { 0x0074D, 0x0074F, "Syrc" }, { 0x00750, 0x0077F, "Arab" }, { 0x00780, 0x007B1, "Thaa" }, { 0x007C0, 0x007FA, "Nkoo" }, { 0x007FD, 0x007FF, "Nkoo" }, { 0x00800, 0x0082D, "Samr" }, { 0x00830, 0x0083E, "Samr" }, { 0x00840, 0x0085B, "Mand" }, { 0x00860, 0x0086A, "Syrc" }, { 0x00870, 0x0088E, "Arab" }, { 0x00890, 0x00891, "Arab" }, { 0x00898, 0x008E1, "Arab" }, { 0x008E3, 0x008FF, "Arab" }, { 0x00900, 0x00950, "Deva" }, { 0x00951, 0x00954, "Zinh" }, { 0x00955, 0x00963, "Deva" }, { 0x00964, 0x00965, "Zyyy" }, { 0x00966, 0x0097F, "Deva" }, { 0x00980, 0x00983, "Beng" }, { 0x00985, 0x0098C, "Beng" }, { 0x0098F, 0x00990, "Beng" }, { 0x00993, 0x009A8, "Beng" }, { 0x009AA, 0x009B0, "Beng" }, { 0x009B6, 0x009B9, "Beng" }, { 0x009BC, 0x009C4, "Beng" }, { 0x009C7, 0x009C8, "Beng" }, { 0x009CB, 0x009CE, "Beng" }, { 0x009DC, 0x009DD, "Beng" }, { 0x009DF, 0x009E3, "Beng" }, { 0x009E6, 0x009FE, "Beng" }, { 0x00A01, 0x00A03, "Guru" }, { 0x00A05, 0x00A0A, "Guru" }, { 0x00A0F, 0x00A10, "Guru" }, { 0x00A13, 0x00A28, "Guru" }, { 0x00A2A, 0x00A30, "Guru" }, { 0x00A32, 0x00A33, "Guru" }, { 0x00A35, 0x00A36, "Guru" }, { 0x00A38, 0x00A39, "Guru" }, { 0x00A3E, 0x00A42, "Guru" }, { 0x00A47, 0x00A48, "Guru" }, { 0x00A4B, 0x00A4D, "Guru" }, { 0x00A59, 0x00A5C, "Guru" }, { 0x00A66, 0x00A76, "Guru" }, { 0x00A81, 0x00A83, "Gujr" }, { 0x00A85, 0x00A8D, "Gujr" }, { 0x00A8F, 0x00A91, "Gujr" }, { 0x00A93, 0x00AA8, "Gujr" }, { 0x00AAA, 0x00AB0, "Gujr" }, { 0x00AB2, 0x00AB3, "Gujr" }, { 0x00AB5, 0x00AB9, "Gujr" }, { 0x00ABC, 0x00AC5, "Gujr" }, { 0x00AC7, 0x00AC9, "Gujr" }, { 0x00ACB, 0x00ACD, "Gujr" }, { 0x00AE0, 0x00AE3, "Gujr" }, { 0x00AE6, 0x00AF1, "Gujr" }, { 0x00AF9, 0x00AFF, "Gujr" }, { 0x00B01, 0x00B03, "Orya" }, { 0x00B05, 0x00B0C, "Orya" }, { 0x00B0F, 0x00B10, "Orya" }, { 0x00B13, 0x00B28, "Orya" }, { 0x00B2A, 0x00B30, "Orya" }, { 0x00B32, 0x00B33, "Orya" }, { 0x00B35, 0x00B39, "Orya" }, { 0x00B3C, 0x00B44, "Orya" }, { 0x00B47, 0x00B48, "Orya" }, { 0x00B4B, 0x00B4D, "Orya" }, { 0x00B55, 0x00B57, "Orya" }, { 0x00B5C, 0x00B5D, "Orya" }, { 0x00B5F, 0x00B63, "Orya" }, { 0x00B66, 0x00B77, "Orya" }, { 0x00B82, 0x00B83, "Taml" }, { 0x00B85, 0x00B8A, "Taml" }, { 0x00B8E, 0x00B90, "Taml" }, { 0x00B92, 0x00B95, "Taml" }, { 0x00B99, 0x00B9A, "Taml" }, { 0x00B9E, 0x00B9F, "Taml" }, { 0x00BA3, 0x00BA4, "Taml" }, { 0x00BA8, 0x00BAA, "Taml" }, { 0x00BAE, 0x00BB9, "Taml" }, { 0x00BBE, 0x00BC2, "Taml" }, { 0x00BC6, 0x00BC8, "Taml" }, { 0x00BCA, 0x00BCD, "Taml" }, { 0x00BE6, 0x00BFA, "Taml" }, { 0x00C00, 0x00C0C, "Telu" }, { 0x00C0E, 0x00C10, "Telu" }, { 0x00C12, 0x00C28, "Telu" }, { 0x00C2A, 0x00C39, "Telu" }, { 0x00C3C, 0x00C44, "Telu" }, { 0x00C46, 0x00C48, "Telu" }, { 0x00C4A, 0x00C4D, "Telu" }, { 0x00C55, 0x00C56, "Telu" }, { 0x00C58, 0x00C5A, "Telu" }, { 0x00C60, 0x00C63, "Telu" }, { 0x00C66, 0x00C6F, "Telu" }, { 0x00C77, 0x00C7F, "Telu" }, { 0x00C80, 0x00C8C, "Knda" }, { 0x00C8E, 0x00C90, "Knda" }, { 0x00C92, 0x00CA8, "Knda" }, { 0x00CAA, 0x00CB3, "Knda" }, { 0x00CB5, 0x00CB9, "Knda" }, { 0x00CBC, 0x00CC4, "Knda" }, { 0x00CC6, 0x00CC8, "Knda" }, { 0x00CCA, 0x00CCD, "Knda" }, { 0x00CD5, 0x00CD6, "Knda" }, { 0x00CDD, 0x00CDE, "Knda" }, { 0x00CE0, 0x00CE3, "Knda" }, { 0x00CE6, 0x00CEF, "Knda" }, { 0x00CF1, 0x00CF3, "Knda" }, { 0x00D00, 0x00D0C, "Mlym" }, { 0x00D0E, 0x00D10, "Mlym" }, { 0x00D12, 0x00D44, "Mlym" }, { 0x00D46, 0x00D48, "Mlym" }, { 0x00D4A, 0x00D4F, "Mlym" }, { 0x00D54, 0x00D63, "Mlym" }, { 0x00D66, 0x00D7F, "Mlym" }, { 0x00D81, 0x00D83, "Sinh" }, { 0x00D85, 0x00D96, "Sinh" }, { 0x00D9A, 0x00DB1, "Sinh" }, { 0x00DB3, 0x00DBB, "Sinh" }, { 0x00DC0, 0x00DC6, "Sinh" }, { 0x00DCF, 0x00DD4, "Sinh" }, { 0x00DD8, 0x00DDF, "Sinh" }, { 0x00DE6, 0x00DEF, "Sinh" }, { 0x00DF2, 0x00DF4, "Sinh" }, { 0x00E01, 0x00E3A, "Thai" }, { 0x00E40, 0x00E5B, "Thai" }, { 0x00E81, 0x00E82, "Laoo" }, { 0x00E86, 0x00E8A, "Laoo" }, { 0x00E8C, 0x00EA3, "Laoo" }, { 0x00EA7, 0x00EBD, "Laoo" }, { 0x00EC0, 0x00EC4, "Laoo" }, { 0x00EC8, 0x00ECE, "Laoo" }, { 0x00ED0, 0x00ED9, "Laoo" }, { 0x00EDC, 0x00EDF, "Laoo" }, { 0x00F00, 0x00F47, "Tibt" }, { 0x00F49, 0x00F6C, "Tibt" }, { 0x00F71, 0x00F97, "Tibt" }, { 0x00F99, 0x00FBC, "Tibt" }, { 0x00FBE, 0x00FCC, "Tibt" }, { 0x00FCE, 0x00FD4, "Tibt" }, { 0x00FD5, 0x00FD8, "Zyyy" }, { 0x00FD9, 0x00FDA, "Tibt" }, { 0x01000, 0x0109F, "Mymr" }, { 0x010A0, 0x010C5, "Geor" }, { 0x010D0, 0x010FA, "Geor" }, { 0x010FC, 0x010FF, "Geor" }, { 0x01100, 0x011FF, "Hang" }, { 0x01200, 0x01248, "Ethi" }, { 0x0124A, 0x0124D, "Ethi" }, { 0x01250, 0x01256, "Ethi" }, { 0x0125A, 0x0125D, "Ethi" }, { 0x01260, 0x01288, "Ethi" }, { 0x0128A, 0x0128D, "Ethi" }, { 0x01290, 0x012B0, "Ethi" }, { 0x012B2, 0x012B5, "Ethi" }, { 0x012B8, 0x012BE, "Ethi" }, { 0x012C2, 0x012C5, "Ethi" }, { 0x012C8, 0x012D6, "Ethi" }, { 0x012D8, 0x01310, "Ethi" }, { 0x01312, 0x01315, "Ethi" }, { 0x01318, 0x0135A, "Ethi" }, { 0x0135D, 0x0137C, "Ethi" }, { 0x01380, 0x01399, "Ethi" }, { 0x013A0, 0x013F5, "Cher" }, { 0x013F8, 0x013FD, "Cher" }, { 0x01400, 0x0167F, "Cans" }, { 0x01680, 0x0169C, "Ogam" }, { 0x016A0, 0x016EA, "Runr" }, { 0x016EB, 0x016ED, "Zyyy" }, { 0x016EE, 0x016F8, "Runr" }, { 0x01700, 0x01715, "Tglg" }, { 0x01720, 0x01734, "Hano" }, { 0x01735, 0x01736, "Zyyy" }, { 0x01740, 0x01753, "Buhd" }, { 0x01760, 0x0176C, "Tagb" }, { 0x0176E, 0x01770, "Tagb" }, { 0x01772, 0x01773, "Tagb" }, { 0x01780, 0x017DD, "Khmr" }, { 0x017E0, 0x017E9, "Khmr" }, { 0x017F0, 0x017F9, "Khmr" }, { 0x01800, 0x01801, "Mong" }, { 0x01802, 0x01803, "Zyyy" }, { 0x01806, 0x01819, "Mong" }, { 0x01820, 0x01878, "Mong" }, { 0x01880, 0x018AA, "Mong" }, { 0x018B0, 0x018F5, "Cans" }, { 0x01900, 0x0191E, "Limb" }, { 0x01920, 0x0192B, "Limb" }, { 0x01930, 0x0193B, "Limb" }, { 0x01944, 0x0194F, "Limb" }, { 0x01950, 0x0196D, "Tale" }, { 0x01970, 0x01974, "Tale" }, { 0x01980, 0x019AB, "Talu" }, { 0x019B0, 0x019C9, "Talu" }, { 0x019D0, 0x019DA, "Talu" }, { 0x019DE, 0x019DF, "Talu" }, { 0x019E0, 0x019FF, "Khmr" }, { 0x01A00, 0x01A1B, "Bugi" }, { 0x01A1E, 0x01A1F, "Bugi" }, { 0x01A20, 0x01A5E, "Lana" }, { 0x01A60, 0x01A7C, "Lana" }, { 0x01A7F, 0x01A89, "Lana" }, { 0x01A90, 0x01A99, "Lana" }, { 0x01AA0, 0x01AAD, "Lana" }, { 0x01AB0, 0x01ACE, "Zinh" }, { 0x01B00, 0x01B4C, "Bali" }, { 0x01B50, 0x01B7E, "Bali" }, { 0x01B80, 0x01BBF, "Sund" }, { 0x01BC0, 0x01BF3, "Batk" }, { 0x01BFC, 0x01BFF, "Batk" }, { 0x01C00, 0x01C37, "Lepc" }, { 0x01C3B, 0x01C49, "Lepc" }, { 0x01C4D, 0x01C4F, "Lepc" }, { 0x01C50, 0x01C7F, "Olck" }, { 0x01C80, 0x01C88, "Cyrl" }, { 0x01C90, 0x01CBA, "Geor" }, { 0x01CBD, 0x01CBF, "Geor" }, { 0x01CC0, 0x01CC7, "Sund" }, { 0x01CD0, 0x01CD2, "Zinh" }, { 0x01CD4, 0x01CE0, "Zinh" }, { 0x01CE2, 0x01CE8, "Zinh" }, { 0x01CE9, 0x01CEC, "Zyyy" }, { 0x01CEE, 0x01CF3, "Zyyy" }, { 0x01CF5, 0x01CF7, "Zyyy" }, { 0x01CF8, 0x01CF9, "Zinh" }, { 0x01D00, 0x01D25, "Latn" }, { 0x01D26, 0x01D2A, "Grek" }, { 0x01D2C, 0x01D5C, "Latn" }, { 0x01D5D, 0x01D61, "Grek" }, { 0x01D62, 0x01D65, "Latn" }, { 0x01D66, 0x01D6A, "Grek" }, { 0x01D6B, 0x01D77, "Latn" }, { 0x01D79, 0x01DBE, "Latn" }, { 0x01DC0, 0x01DFF, "Zinh" }, { 0x01E00, 0x01EFF, "Latn" }, { 0x01F00, 0x01F15, "Grek" }, { 0x01F18, 0x01F1D, "Grek" }, { 0x01F20, 0x01F45, "Grek" }, { 0x01F48, 0x01F4D, "Grek" }, { 0x01F50, 0x01F57, "Grek" }, { 0x01F5F, 0x01F7D, "Grek" }, { 0x01F80, 0x01FB4, "Grek" }, { 0x01FB6, 0x01FC4, "Grek" }, { 0x01FC6, 0x01FD3, "Grek" }, { 0x01FD6, 0x01FDB, "Grek" }, { 0x01FDD, 0x01FEF, "Grek" }, { 0x01FF2, 0x01FF4, "Grek" }, { 0x01FF6, 0x01FFE, "Grek" }, { 0x02000, 0x0200B, "Zyyy" }, { 0x0200C, 0x0200D, "Zinh" }, { 0x0200E, 0x02064, "Zyyy" }, { 0x02066, 0x02070, "Zyyy" }, { 0x02074, 0x0207E, "Zyyy" }, { 0x02080, 0x0208E, "Zyyy" }, { 0x02090, 0x0209C, "Latn" }, { 0x020A0, 0x020C0, "Zyyy" }, { 0x020D0, 0x020F0, "Zinh" }, { 0x02100, 0x02125, "Zyyy" }, { 0x02127, 0x02129, "Zyyy" }, { 0x0212A, 0x0212B, "Latn" }, { 0x0212C, 0x02131, "Zyyy" }, { 0x02133, 0x0214D, "Zyyy" }, { 0x0214F, 0x0215F, "Zyyy" }, { 0x02160, 0x02188, "Latn" }, { 0x02189, 0x0218B, "Zyyy" }, { 0x02190, 0x02426, "Zyyy" }, { 0x02440, 0x0244A, "Zyyy" }, { 0x02460, 0x027FF, "Zyyy" }, { 0x02800, 0x028FF, "Brai" }, { 0x02900, 0x02B73, "Zyyy" }, { 0x02B76, 0x02B95, "Zyyy" }, { 0x02B97, 0x02BFF, "Zyyy" }, { 0x02C00, 0x02C5F, "Glag" }, { 0x02C60, 0x02C7F, "Latn" }, { 0x02C80, 0x02CF3, "Copt" }, { 0x02CF9, 0x02CFF, "Copt" }, { 0x02D00, 0x02D25, "Geor" }, { 0x02D30, 0x02D67, "Tfng" }, { 0x02D6F, 0x02D70, "Tfng" }, { 0x02D80, 0x02D96, "Ethi" }, { 0x02DA0, 0x02DA6, "Ethi" }, { 0x02DA8, 0x02DAE, "Ethi" }, { 0x02DB0, 0x02DB6, "Ethi" }, { 0x02DB8, 0x02DBE, "Ethi" }, { 0x02DC0, 0x02DC6, "Ethi" }, { 0x02DC8, 0x02DCE, "Ethi" }, { 0x02DD0, 0x02DD6, "Ethi" }, { 0x02DD8, 0x02DDE, "Ethi" }, { 0x02DE0, 0x02DFF, "Cyrl" }, { 0x02E00, 0x02E5D, "Zyyy" }, { 0x02E80, 0x02E99, "Hani" }, { 0x02E9B, 0x02EF3, "Hani" }, { 0x02F00, 0x02FD5, "Hani" }, { 0x02FF0, 0x02FFB, "Zyyy" }, { 0x03000, 0x03004, "Zyyy" }, { 0x03008, 0x03020, "Zyyy" }, { 0x03021, 0x03029, "Hani" }, { 0x0302A, 0x0302D, "Zinh" }, { 0x0302E, 0x0302F, "Hang" }, { 0x03030, 0x03037, "Zyyy" }, { 0x03038, 0x0303B, "Hani" }, { 0x0303C, 0x0303F, "Zyyy" }, { 0x03041, 0x03096, "Hira" }, { 0x03099, 0x0309A, "Zinh" }, { 0x0309B, 0x0309C, "Zyyy" }, { 0x0309D, 0x0309F, "Hira" }, { 0x030A1, 0x030FA, "Kana" }, { 0x030FB, 0x030FC, "Zyyy" }, { 0x030FD, 0x030FF, "Kana" }, { 0x03105, 0x0312F, "Bopo" }, { 0x03131, 0x0318E, "Hang" }, { 0x03190, 0x0319F, "Zyyy" }, { 0x031A0, 0x031BF, "Bopo" }, { 0x031C0, 0x031E3, "Zyyy" }, { 0x031F0, 0x031FF, "Kana" }, { 0x03200, 0x0321E, "Hang" }, { 0x03220, 0x0325F, "Zyyy" }, { 0x03260, 0x0327E, "Hang" }, { 0x0327F, 0x032CF, "Zyyy" }, { 0x032D0, 0x032FE, "Kana" }, { 0x03300, 0x03357, "Kana" }, { 0x03358, 0x033FF, "Zyyy" }, { 0x03400, 0x04DBF, "Hani" }, { 0x04DC0, 0x04DFF, "Zyyy" }, { 0x04E00, 0x09FFF, "Hani" }, { 0x0A000, 0x0A48C, "Yiii" }, { 0x0A490, 0x0A4C6, "Yiii" }, { 0x0A4D0, 0x0A4FF, "Lisu" }, { 0x0A500, 0x0A62B, "Vaii" }, { 0x0A640, 0x0A69F, "Cyrl" }, { 0x0A6A0, 0x0A6F7, "Bamu" }, { 0x0A700, 0x0A721, "Zyyy" }, { 0x0A722, 0x0A787, "Latn" }, { 0x0A788, 0x0A78A, "Zyyy" }, { 0x0A78B, 0x0A7CA, "Latn" }, { 0x0A7D0, 0x0A7D1, "Latn" }, { 0x0A7D5, 0x0A7D9, "Latn" }, { 0x0A7F2, 0x0A7FF, "Latn" }, { 0x0A800, 0x0A82C, "Sylo" }, { 0x0A830, 0x0A839, "Zyyy" }, { 0x0A840, 0x0A877, "Phag" }, { 0x0A880, 0x0A8C5, "Saur" }, { 0x0A8CE, 0x0A8D9, "Saur" }, { 0x0A8E0, 0x0A8FF, "Deva" }, { 0x0A900, 0x0A92D, "Kali" }, { 0x0A930, 0x0A953, "Rjng" }, { 0x0A960, 0x0A97C, "Hang" }, { 0x0A980, 0x0A9CD, "Java" }, { 0x0A9D0, 0x0A9D9, "Java" }, { 0x0A9DE, 0x0A9DF, "Java" }, { 0x0A9E0, 0x0A9FE, "Mymr" }, { 0x0AA00, 0x0AA36, "Cham" }, { 0x0AA40, 0x0AA4D, "Cham" }, { 0x0AA50, 0x0AA59, "Cham" }, { 0x0AA5C, 0x0AA5F, "Cham" }, { 0x0AA60, 0x0AA7F, "Mymr" }, { 0x0AA80, 0x0AAC2, "Tavt" }, { 0x0AADB, 0x0AADF, "Tavt" }, { 0x0AAE0, 0x0AAF6, "Mtei" }, { 0x0AB01, 0x0AB06, "Ethi" }, { 0x0AB09, 0x0AB0E, "Ethi" }, { 0x0AB11, 0x0AB16, "Ethi" }, { 0x0AB20, 0x0AB26, "Ethi" }, { 0x0AB28, 0x0AB2E, "Ethi" }, { 0x0AB30, 0x0AB5A, "Latn" }, { 0x0AB5C, 0x0AB64, "Latn" }, { 0x0AB66, 0x0AB69, "Latn" }, { 0x0AB6A, 0x0AB6B, "Zyyy" }, { 0x0AB70, 0x0ABBF, "Cher" }, { 0x0ABC0, 0x0ABED, "Mtei" }, { 0x0ABF0, 0x0ABF9, "Mtei" }, { 0x0AC00, 0x0D7A3, "Hang" }, { 0x0D7B0, 0x0D7C6, "Hang" }, { 0x0D7CB, 0x0D7FB, "Hang" }, { 0x0F900, 0x0FA6D, "Hani" }, { 0x0FA70, 0x0FAD9, "Hani" }, { 0x0FB00, 0x0FB06, "Latn" }, { 0x0FB13, 0x0FB17, "Armn" }, { 0x0FB1D, 0x0FB36, "Hebr" }, { 0x0FB38, 0x0FB3C, "Hebr" }, { 0x0FB40, 0x0FB41, "Hebr" }, { 0x0FB43, 0x0FB44, "Hebr" }, { 0x0FB46, 0x0FB4F, "Hebr" }, { 0x0FB50, 0x0FBC2, "Arab" }, { 0x0FBD3, 0x0FD3D, "Arab" }, { 0x0FD3E, 0x0FD3F, "Zyyy" }, { 0x0FD40, 0x0FD8F, "Arab" }, { 0x0FD92, 0x0FDC7, "Arab" }, { 0x0FDF0, 0x0FDFF, "Arab" }, { 0x0FE00, 0x0FE0F, "Zinh" }, { 0x0FE10, 0x0FE19, "Zyyy" }, { 0x0FE20, 0x0FE2D, "Zinh" }, { 0x0FE2E, 0x0FE2F, "Cyrl" }, { 0x0FE30, 0x0FE52, "Zyyy" }, { 0x0FE54, 0x0FE66, "Zyyy" }, { 0x0FE68, 0x0FE6B, "Zyyy" }, { 0x0FE70, 0x0FE74, "Arab" }, { 0x0FE76, 0x0FEFC, "Arab" }, { 0x0FF01, 0x0FF20, "Zyyy" }, { 0x0FF21, 0x0FF3A, "Latn" }, { 0x0FF3B, 0x0FF40, "Zyyy" }, { 0x0FF41, 0x0FF5A, "Latn" }, { 0x0FF5B, 0x0FF65, "Zyyy" }, { 0x0FF66, 0x0FF6F, "Kana" }, { 0x0FF71, 0x0FF9D, "Kana" }, { 0x0FF9E, 0x0FF9F, "Zyyy" }, { 0x0FFA0, 0x0FFBE, "Hang" }, { 0x0FFC2, 0x0FFC7, "Hang" }, { 0x0FFCA, 0x0FFCF, "Hang" }, { 0x0FFD2, 0x0FFD7, "Hang" }, { 0x0FFDA, 0x0FFDC, "Hang" }, { 0x0FFE0, 0x0FFE6, "Zyyy" }, { 0x0FFE8, 0x0FFEE, "Zyyy" }, { 0x0FFF9, 0x0FFFD, "Zyyy" }, { 0x10000, 0x1000B, "Linb" }, { 0x1000D, 0x10026, "Linb" }, { 0x10028, 0x1003A, "Linb" }, { 0x1003C, 0x1003D, "Linb" }, { 0x1003F, 0x1004D, "Linb" }, { 0x10050, 0x1005D, "Linb" }, { 0x10080, 0x100FA, "Linb" }, { 0x10100, 0x10102, "Zyyy" }, { 0x10107, 0x10133, "Zyyy" }, { 0x10137, 0x1013F, "Zyyy" }, { 0x10140, 0x1018E, "Grek" }, { 0x10190, 0x1019C, "Zyyy" }, { 0x101D0, 0x101FC, "Zyyy" }, { 0x10280, 0x1029C, "Lyci" }, { 0x102A0, 0x102D0, "Cari" }, { 0x102E1, 0x102FB, "Zyyy" }, { 0x10300, 0x10323, "Ital" }, { 0x1032D, 0x1032F, "Ital" }, { 0x10330, 0x1034A, "Goth" }, { 0x10350, 0x1037A, "Perm" }, { 0x10380, 0x1039D, "Ugar" }, { 0x103A0, 0x103C3, "Xpeo" }, { 0x103C8, 0x103D5, "Xpeo" }, { 0x10400, 0x1044F, "Dsrt" }, { 0x10450, 0x1047F, "Shaw" }, { 0x10480, 0x1049D, "Osma" }, { 0x104A0, 0x104A9, "Osma" }, { 0x104B0, 0x104D3, "Osge" }, { 0x104D8, 0x104FB, "Osge" }, { 0x10500, 0x10527, "Elba" }, { 0x10530, 0x10563, "Aghb" }, { 0x10570, 0x1057A, "Vith" }, { 0x1057C, 0x1058A, "Vith" }, { 0x1058C, 0x10592, "Vith" }, { 0x10594, 0x10595, "Vith" }, { 0x10597, 0x105A1, "Vith" }, { 0x105A3, 0x105B1, "Vith" }, { 0x105B3, 0x105B9, "Vith" }, { 0x105BB, 0x105BC, "Vith" }, { 0x10600, 0x10736, "Lina" }, { 0x10740, 0x10755, "Lina" }, { 0x10760, 0x10767, "Lina" }, { 0x10780, 0x10785, "Latn" }, { 0x10787, 0x107B0, "Latn" }, { 0x107B2, 0x107BA, "Latn" }, { 0x10800, 0x10805, "Cprt" }, { 0x1080A, 0x10835, "Cprt" }, { 0x10837, 0x10838, "Cprt" }, { 0x10840, 0x10855, "Armi" }, { 0x10857, 0x1085F, "Armi" }, { 0x10860, 0x1087F, "Palm" }, { 0x10880, 0x1089E, "Nbat" }, { 0x108A7, 0x108AF, "Nbat" }, { 0x108E0, 0x108F2, "Hatr" }, { 0x108F4, 0x108F5, "Hatr" }, { 0x108FB, 0x108FF, "Hatr" }, { 0x10900, 0x1091B, "Phnx" }, { 0x10920, 0x10939, "Lydi" }, { 0x10980, 0x1099F, "Mero" }, { 0x109A0, 0x109B7, "Merc" }, { 0x109BC, 0x109CF, "Merc" }, { 0x109D2, 0x109FF, "Merc" }, { 0x10A00, 0x10A03, "Khar" }, { 0x10A05, 0x10A06, "Khar" }, { 0x10A0C, 0x10A13, "Khar" }, { 0x10A15, 0x10A17, "Khar" }, { 0x10A19, 0x10A35, "Khar" }, { 0x10A38, 0x10A3A, "Khar" }, { 0x10A3F, 0x10A48, "Khar" }, { 0x10A50, 0x10A58, "Khar" }, { 0x10A60, 0x10A7F, "Sarb" }, { 0x10A80, 0x10A9F, "Narb" }, { 0x10AC0, 0x10AE6, "Mani" }, { 0x10AEB, 0x10AF6, "Mani" }, { 0x10B00, 0x10B35, "Avst" }, { 0x10B39, 0x10B3F, "Avst" }, { 0x10B40, 0x10B55, "Prti" }, { 0x10B58, 0x10B5F, "Prti" }, { 0x10B60, 0x10B72, "Phli" }, { 0x10B78, 0x10B7F, "Phli" }, { 0x10B80, 0x10B91, "Phlp" }, { 0x10B99, 0x10B9C, "Phlp" }, { 0x10BA9, 0x10BAF, "Phlp" }, { 0x10C00, 0x10C48, "Orkh" }, { 0x10C80, 0x10CB2, "Hung" }, { 0x10CC0, 0x10CF2, "Hung" }, { 0x10CFA, 0x10CFF, "Hung" }, { 0x10D00, 0x10D27, "Rohg" }, { 0x10D30, 0x10D39, "Rohg" }, { 0x10E60, 0x10E7E, "Arab" }, { 0x10E80, 0x10EA9, "Yezi" }, { 0x10EAB, 0x10EAD, "Yezi" }, { 0x10EB0, 0x10EB1, "Yezi" }, { 0x10EFD, 0x10EFF, "Arab" }, { 0x10F00, 0x10F27, "Sogo" }, { 0x10F30, 0x10F59, "Sogd" }, { 0x10F70, 0x10F89, "Ougr" }, { 0x10FB0, 0x10FCB, "Chrs" }, { 0x10FE0, 0x10FF6, "Elym" }, { 0x11000, 0x1104D, "Brah" }, { 0x11052, 0x11075, "Brah" }, { 0x11080, 0x110C2, "Kthi" }, { 0x110D0, 0x110E8, "Sora" }, { 0x110F0, 0x110F9, "Sora" }, { 0x11100, 0x11134, "Cakm" }, { 0x11136, 0x11147, "Cakm" }, { 0x11150, 0x11176, "Mahj" }, { 0x11180, 0x111DF, "Shrd" }, { 0x111E1, 0x111F4, "Sinh" }, { 0x11200, 0x11211, "Khoj" }, { 0x11213, 0x11241, "Khoj" }, { 0x11280, 0x11286, "Mult" }, { 0x1128A, 0x1128D, "Mult" }, { 0x1128F, 0x1129D, "Mult" }, { 0x1129F, 0x112A9, "Mult" }, { 0x112B0, 0x112EA, "Sind" }, { 0x112F0, 0x112F9, "Sind" }, { 0x11300, 0x11303, "Gran" }, { 0x11305, 0x1130C, "Gran" }, { 0x1130F, 0x11310, "Gran" }, { 0x11313, 0x11328, "Gran" }, { 0x1132A, 0x11330, "Gran" }, { 0x11332, 0x11333, "Gran" }, { 0x11335, 0x11339, "Gran" }, { 0x1133C, 0x11344, "Gran" }, { 0x11347, 0x11348, "Gran" }, { 0x1134B, 0x1134D, "Gran" }, { 0x1135D, 0x11363, "Gran" }, { 0x11366, 0x1136C, "Gran" }, { 0x11370, 0x11374, "Gran" }, { 0x11400, 0x1145B, "Newa" }, { 0x1145D, 0x11461, "Newa" }, { 0x11480, 0x114C7, "Tirh" }, { 0x114D0, 0x114D9, "Tirh" }, { 0x11580, 0x115B5, "Sidd" }, { 0x115B8, 0x115DD, "Sidd" }, { 0x11600, 0x11644, "Modi" }, { 0x11650, 0x11659, "Modi" }, { 0x11660, 0x1166C, "Mong" }, { 0x11680, 0x116B9, "Takr" }, { 0x116C0, 0x116C9, "Takr" }, { 0x11700, 0x1171A, "Ahom" }, { 0x1171D, 0x1172B, "Ahom" }, { 0x11730, 0x11746, "Ahom" }, { 0x11800, 0x1183B, "Dogr" }, { 0x118A0, 0x118F2, "Wara" }, { 0x11900, 0x11906, "Diak" }, { 0x1190C, 0x11913, "Diak" }, { 0x11915, 0x11916, "Diak" }, { 0x11918, 0x11935, "Diak" }, { 0x11937, 0x11938, "Diak" }, { 0x1193B, 0x11946, "Diak" }, { 0x11950, 0x11959, "Diak" }, { 0x119A0, 0x119A7, "Nand" }, { 0x119AA, 0x119D7, "Nand" }, { 0x119DA, 0x119E4, "Nand" }, { 0x11A00, 0x11A47, "Zanb" }, { 0x11A50, 0x11AA2, "Soyo" }, { 0x11AB0, 0x11ABF, "Cans" }, { 0x11AC0, 0x11AF8, "Pauc" }, { 0x11B00, 0x11B09, "Deva" }, { 0x11C00, 0x11C08, "Bhks" }, { 0x11C0A, 0x11C36, "Bhks" }, { 0x11C38, 0x11C45, "Bhks" }, { 0x11C50, 0x11C6C, "Bhks" }, { 0x11C70, 0x11C8F, "Marc" }, { 0x11C92, 0x11CA7, "Marc" }, { 0x11CA9, 0x11CB6, "Marc" }, { 0x11D00, 0x11D06, "Gonm" }, { 0x11D08, 0x11D09, "Gonm" }, { 0x11D0B, 0x11D36, "Gonm" }, { 0x11D3C, 0x11D3D, "Gonm" }, { 0x11D3F, 0x11D47, "Gonm" }, { 0x11D50, 0x11D59, "Gonm" }, { 0x11D60, 0x11D65, "Gong" }, { 0x11D67, 0x11D68, "Gong" }, { 0x11D6A, 0x11D8E, "Gong" }, { 0x11D90, 0x11D91, "Gong" }, { 0x11D93, 0x11D98, "Gong" }, { 0x11DA0, 0x11DA9, "Gong" }, { 0x11EE0, 0x11EF8, "Maka" }, { 0x11F00, 0x11F10, "Kawi" }, { 0x11F12, 0x11F3A, "Kawi" }, { 0x11F3E, 0x11F59, "Kawi" }, { 0x11FC0, 0x11FF1, "Taml" }, { 0x12000, 0x12399, "Xsux" }, { 0x12400, 0x1246E, "Xsux" }, { 0x12470, 0x12474, "Xsux" }, { 0x12480, 0x12543, "Xsux" }, { 0x12F90, 0x12FF2, "Cpmn" }, { 0x13000, 0x13455, "Egyp" }, { 0x14400, 0x14646, "Hluw" }, { 0x16800, 0x16A38, "Bamu" }, { 0x16A40, 0x16A5E, "Mroo" }, { 0x16A60, 0x16A69, "Mroo" }, { 0x16A6E, 0x16A6F, "Mroo" }, { 0x16A70, 0x16ABE, "Tnsa" }, { 0x16AC0, 0x16AC9, "Tnsa" }, { 0x16AD0, 0x16AED, "Bass" }, { 0x16AF0, 0x16AF5, "Bass" }, { 0x16B00, 0x16B45, "Hmng" }, { 0x16B50, 0x16B59, "Hmng" }, { 0x16B5B, 0x16B61, "Hmng" }, { 0x16B63, 0x16B77, "Hmng" }, { 0x16B7D, 0x16B8F, "Hmng" }, { 0x16E40, 0x16E9A, "Medf" }, { 0x16F00, 0x16F4A, "Plrd" }, { 0x16F4F, 0x16F87, "Plrd" }, { 0x16F8F, 0x16F9F, "Plrd" }, { 0x16FE2, 0x16FE3, "Hani" }, { 0x16FF0, 0x16FF1, "Hani" }, { 0x17000, 0x187F7, "Tang" }, { 0x18800, 0x18AFF, "Tang" }, { 0x18B00, 0x18CD5, "Kits" }, { 0x18D00, 0x18D08, "Tang" }, { 0x1AFF0, 0x1AFF3, "Kana" }, { 0x1AFF5, 0x1AFFB, "Kana" }, { 0x1AFFD, 0x1AFFE, "Kana" }, { 0x1B001, 0x1B11F, "Hira" }, { 0x1B120, 0x1B122, "Kana" }, { 0x1B150, 0x1B152, "Hira" }, { 0x1B164, 0x1B167, "Kana" }, { 0x1B170, 0x1B2FB, "Nshu" }, { 0x1BC00, 0x1BC6A, "Dupl" }, { 0x1BC70, 0x1BC7C, "Dupl" }, { 0x1BC80, 0x1BC88, "Dupl" }, { 0x1BC90, 0x1BC99, "Dupl" }, { 0x1BC9C, 0x1BC9F, "Dupl" }, { 0x1BCA0, 0x1BCA3, "Zyyy" }, { 0x1CF00, 0x1CF2D, "Zinh" }, { 0x1CF30, 0x1CF46, "Zinh" }, { 0x1CF50, 0x1CFC3, "Zyyy" }, { 0x1D000, 0x1D0F5, "Zyyy" }, { 0x1D100, 0x1D126, "Zyyy" }, { 0x1D129, 0x1D166, "Zyyy" }, { 0x1D167, 0x1D169, "Zinh" }, { 0x1D16A, 0x1D17A, "Zyyy" }, { 0x1D17B, 0x1D182, "Zinh" }, { 0x1D183, 0x1D184, "Zyyy" }, { 0x1D185, 0x1D18B, "Zinh" }, { 0x1D18C, 0x1D1A9, "Zyyy" }, { 0x1D1AA, 0x1D1AD, "Zinh" }, { 0x1D1AE, 0x1D1EA, "Zyyy" }, { 0x1D200, 0x1D245, "Grek" }, { 0x1D2C0, 0x1D2D3, "Zyyy" }, { 0x1D2E0, 0x1D2F3, "Zyyy" }, { 0x1D300, 0x1D356, "Zyyy" }, { 0x1D360, 0x1D378, "Zyyy" }, { 0x1D400, 0x1D454, "Zyyy" }, { 0x1D456, 0x1D49C, "Zyyy" }, { 0x1D49E, 0x1D49F, "Zyyy" }, { 0x1D4A5, 0x1D4A6, "Zyyy" }, { 0x1D4A9, 0x1D4AC, "Zyyy" }, { 0x1D4AE, 0x1D4B9, "Zyyy" }, { 0x1D4BD, 0x1D4C3, "Zyyy" }, { 0x1D4C5, 0x1D505, "Zyyy" }, { 0x1D507, 0x1D50A, "Zyyy" }, { 0x1D50D, 0x1D514, "Zyyy" }, { 0x1D516, 0x1D51C, "Zyyy" }, { 0x1D51E, 0x1D539, "Zyyy" }, { 0x1D53B, 0x1D53E, "Zyyy" }, { 0x1D540, 0x1D544, "Zyyy" }, { 0x1D54A, 0x1D550, "Zyyy" }, { 0x1D552, 0x1D6A5, "Zyyy" }, { 0x1D6A8, 0x1D7CB, "Zyyy" }, { 0x1D7CE, 0x1D7FF, "Zyyy" }, { 0x1D800, 0x1DA8B, "Sgnw" }, { 0x1DA9B, 0x1DA9F, "Sgnw" }, { 0x1DAA1, 0x1DAAF, "Sgnw" }, { 0x1DF00, 0x1DF1E, "Latn" }, { 0x1DF25, 0x1DF2A, "Latn" }, { 0x1E000, 0x1E006, "Glag" }, { 0x1E008, 0x1E018, "Glag" }, { 0x1E01B, 0x1E021, "Glag" }, { 0x1E023, 0x1E024, "Glag" }, { 0x1E026, 0x1E02A, "Glag" }, { 0x1E030, 0x1E06D, "Cyrl" }, { 0x1E100, 0x1E12C, "Hmnp" }, { 0x1E130, 0x1E13D, "Hmnp" }, { 0x1E140, 0x1E149, "Hmnp" }, { 0x1E14E, 0x1E14F, "Hmnp" }, { 0x1E290, 0x1E2AE, "Toto" }, { 0x1E2C0, 0x1E2F9, "Wcho" }, { 0x1E4D0, 0x1E4F9, "Nagm" }, { 0x1E7E0, 0x1E7E6, "Ethi" }, { 0x1E7E8, 0x1E7EB, "Ethi" }, { 0x1E7ED, 0x1E7EE, "Ethi" }, { 0x1E7F0, 0x1E7FE, "Ethi" }, { 0x1E800, 0x1E8C4, "Mend" }, { 0x1E8C7, 0x1E8D6, "Mend" }, { 0x1E900, 0x1E94B, "Adlm" }, { 0x1E950, 0x1E959, "Adlm" }, { 0x1E95E, 0x1E95F, "Adlm" }, { 0x1EC71, 0x1ECB4, "Zyyy" }, { 0x1ED01, 0x1ED3D, "Zyyy" }, { 0x1EE00, 0x1EE03, "Arab" }, { 0x1EE05, 0x1EE1F, "Arab" }, { 0x1EE21, 0x1EE22, "Arab" }, { 0x1EE29, 0x1EE32, "Arab" }, { 0x1EE34, 0x1EE37, "Arab" }, { 0x1EE4D, 0x1EE4F, "Arab" }, { 0x1EE51, 0x1EE52, "Arab" }, { 0x1EE61, 0x1EE62, "Arab" }, { 0x1EE67, 0x1EE6A, "Arab" }, { 0x1EE6C, 0x1EE72, "Arab" }, { 0x1EE74, 0x1EE77, "Arab" }, { 0x1EE79, 0x1EE7C, "Arab" }, { 0x1EE80, 0x1EE89, "Arab" }, { 0x1EE8B, 0x1EE9B, "Arab" }, { 0x1EEA1, 0x1EEA3, "Arab" }, { 0x1EEA5, 0x1EEA9, "Arab" }, { 0x1EEAB, 0x1EEBB, "Arab" }, { 0x1EEF0, 0x1EEF1, "Arab" }, { 0x1F000, 0x1F02B, "Zyyy" }, { 0x1F030, 0x1F093, "Zyyy" }, { 0x1F0A0, 0x1F0AE, "Zyyy" }, { 0x1F0B1, 0x1F0BF, "Zyyy" }, { 0x1F0C1, 0x1F0CF, "Zyyy" }, { 0x1F0D1, 0x1F0F5, "Zyyy" }, { 0x1F100, 0x1F1AD, "Zyyy" }, { 0x1F1E6, 0x1F1FF, "Zyyy" }, { 0x1F201, 0x1F202, "Zyyy" }, { 0x1F210, 0x1F23B, "Zyyy" }, { 0x1F240, 0x1F248, "Zyyy" }, { 0x1F250, 0x1F251, "Zyyy" }, { 0x1F260, 0x1F265, "Zyyy" }, { 0x1F300, 0x1F6D7, "Zyyy" }, { 0x1F6DC, 0x1F6EC, "Zyyy" }, { 0x1F6F0, 0x1F6FC, "Zyyy" }, { 0x1F700, 0x1F776, "Zyyy" }, { 0x1F77B, 0x1F7D9, "Zyyy" }, { 0x1F7E0, 0x1F7EB, "Zyyy" }, { 0x1F800, 0x1F80B, "Zyyy" }, { 0x1F810, 0x1F847, "Zyyy" }, { 0x1F850, 0x1F859, "Zyyy" }, { 0x1F860, 0x1F887, "Zyyy" }, { 0x1F890, 0x1F8AD, "Zyyy" }, { 0x1F8B0, 0x1F8B1, "Zyyy" }, { 0x1F900, 0x1FA53, "Zyyy" }, { 0x1FA60, 0x1FA6D, "Zyyy" }, { 0x1FA70, 0x1FA7C, "Zyyy" }, { 0x1FA80, 0x1FA88, "Zyyy" }, { 0x1FA90, 0x1FABD, "Zyyy" }, { 0x1FABF, 0x1FAC5, "Zyyy" }, { 0x1FACE, 0x1FADB, "Zyyy" }, { 0x1FAE0, 0x1FAE8, "Zyyy" }, { 0x1FAF0, 0x1FAF8, "Zyyy" }, { 0x1FB00, 0x1FB92, "Zyyy" }, { 0x1FB94, 0x1FBCA, "Zyyy" }, { 0x1FBF0, 0x1FBF9, "Zyyy" }, { 0x20000, 0x2A6DF, "Hani" }, { 0x2A700, 0x2B739, "Hani" }, { 0x2B740, 0x2B81D, "Hani" }, { 0x2B820, 0x2CEA1, "Hani" }, { 0x2CEB0, 0x2EBE0, "Hani" }, { 0x2F800, 0x2FA1D, "Hani" }, { 0x30000, 0x3134A, "Hani" }, { 0x31350, 0x323AF, "Hani" }, { 0xE0020, 0xE007F, "Zyyy" }, { 0xE0100, 0xE01EF, "Zinh" }, },	-- Scripts.txt gives full names; here we consider them aliases to save space. aliases = { Adlm = "Adlam", Aghb = "Caucasian Albanian", Ahom = "Ahom", Arab = "Arabic", Armi = "Imperial Aramaic", Armn = "Armenian", Avst = "Avestan", Bali = "Balinese", Bamu = "Bamum", Bass = "Bassa Vah", Batk = "Batak", Beng = "Bengali", Bhks = "Bhaiksuki", Bopo = "Bopomofo", Brah = "Brahmi", Brai = "Braille", Bugi = "Buginese", Buhd = "Buhid", Cakm = "Chakma", Cans = "Canadian Aboriginal", Cari = "Carian", Cham = "Cham", Cher = "Cherokee", Chrs = "Chorasmian", Copt = "Coptic", Cpmn = "Cypro Minoan", Cprt = "Cypriot", Cyrl = "Cyrillic", Deva = "Devanagari", Diak = "Dives Akuru", Dogr = "Dogra", Dsrt = "Deseret", Dupl = "Duployan", Egyp = "Egyptian Hieroglyphs", Elba = "Elbasan", Elym = "Elymaic", Ethi = "Ethiopic", Geor = "Georgian", Glag = "Glagolitic", Gong = "Gunjala Gondi", Gonm = "Masaram Gondi", Goth = "Gothic", Gran = "Grantha", Grek = "Greek", Gujr = "Gujarati", Guru = "Gurmukhi", Hang = "Hangul", Hani = "Han", Hano = "Hanunoo", Hatr = "Hatran", Hebr = "Hebrew", Hira = "Hiragana", Hluw = "Anatolian Hieroglyphs", Hmng = "Pahawh Hmong", Hmnp = "Nyiakeng Puachue Hmong", Hrkt = "Katakana Or Hiragana", Hung = "Old Hungarian", Ital = "Old Italic", Java = "Javanese", Kali = "Kayah Li", Kana = "Katakana", Kawi = "Kawi", Khar = "Kharoshthi", Khmr = "Khmer", Khoj = "Khojki", Kits = "Khitan Small Script", Knda = "Kannada", Kthi = "Kaithi", Lana = "Tai Tham", Laoo = "Lao", Latn = "Latin", Lepc = "Lepcha", Limb = "Limbu", Lina = "Linear A", Linb = "Linear B", Lisu = "Lisu", Lyci = "Lycian", Lydi = "Lydian", Mahj = "Mahajani", Maka = "Makasar", Mand = "Mandaic", Mani = "Manichaean", Marc = "Marchen", Medf = "Medefaidrin", Mend = "Mende Kikakui", Merc = "Meroitic Cursive", Mero = "Meroitic Hieroglyphs", Mlym = "Malayalam", Modi = "Modi", Mong = "Mongolian", Mroo = "Mro", Mtei = "Meetei Mayek", Mult = "Multani", Mymr = "Myanmar", Nagm = "Nag Mundari", Nand = "Nandinagari", Narb = "Old North Arabian", Nbat = "Nabataean", Newa = "Newa", Nkoo = "NKo", Nshu = "Nushu", Ogam = "Ogham", Olck = "Ol Chiki", Orkh = "Old Turkic", Orya = "Oriya", Osge = "Osage", Osma = "Osmanya", Ougr = "Old Uyghur", Palm = "Palmyrene", Pauc = "Pau Cin Hau", Perm = "Old Permic", Phag = "Phags Pa", Phli = "Inscriptional Pahlavi", Phlp = "Psalter Pahlavi", Phnx = "Phoenician", Plrd = "Miao", Prti = "Inscriptional Parthian", Rjng = "Rejang", Rohg = "Hanifi Rohingya", Runr = "Runic", Samr = "Samaritan", Sarb = "Old South Arabian", Saur = "Saurashtra", Sgnw = "SignWriting", Shaw = "Shavian", Shrd = "Sharada", Sidd = "Siddham", Sind = "Khudawadi", Sinh = "Sinhala", Sogd = "Sogdian", Sogo = "Old Sogdian", Sora = "Sora Sompeng", Soyo = "Soyombo", Sund = "Sundanese", Sylo = "Syloti Nagri", Syrc = "Syriac", Tagb = "Tagbanwa", Takr = "Takri", Tale = "Tai Le", Talu = "New Tai Lue", Taml = "Tamil", Tang = "Tangut", Tavt = "Tai Viet", Telu = "Telugu", Tfng = "Tifinagh", Tglg = "Tagalog", Thaa = "Thaana", Thai = "Thai", Tibt = "Tibetan", Tirh = "Tirhuta", Tnsa = "Tangsa", Toto = "Toto", Ugar = "Ugaritic", Vaii = "Vai", Vith = "Vithkuqi", Wara = "Warang Citi", Wcho = "Wancho", Xpeo = "Old Persian", Xsux = "Cuneiform", Yezi = "Yezidi", Yiii = "Yi", Zanb = "Zanabazar Square", Zinh = "Inherited", Zyyy = "Common", Zzzz = "Unknown", }, }

-- Required for binary search function in Module:Language/scripts. -- Cannot get length of module loaded with mw.loadData. data.ranges.length = #data.ranges

data.rtl = {}

for _, script in ipairs(mw.loadData "Module:Lang/data".rtl_scripts) do	-- Module:Lang/data has script codes in lowercase; -- this module has script codes with the first letter capitalized. data.rtl[script:gsub("^%a", string.upper)] = true end

return data

title: Module:Unicode data/scripts


text:
Module:Unicode data/scripts/doc

This module contains data that is used by Module:Unicode data to determine the Unicode script code for a code point and to determine if a Unicode script is written right-to-left. The right-to-left script data is sourced from Module:Lang/data. The main table in the module is generated by Module:Unicode data/scripts/make from Scripts.txt and PropertyValueAliases.txt in the Unicode Character Database (version 15.0).

title: Module:Unicode data/scripts/doc


text:
Module:Exponential search

-- This module provides a generic exponential search algorithm. requirestrict

local checkType = require('libraryUtil').checkType local floor = math.floor

local function midPoint(lower, upper) return floor(lower + (upper - lower) / 2) end

local function search(testFunc, i, lower, upper) if testFunc(i) then if i + 1 == upper then return i		end lower = i		if upper then i = midPoint(lower, upper) else i = i * 2 end return search(testFunc, i, lower, upper) else upper = i		i = midPoint(lower, upper) return search(testFunc, i, lower, upper) end end

return function (testFunc, init) checkType('Exponential search', 1, testFunc, 'function') checkType('Exponential search', 2, init, 'number', true) if init and (init < 1 or init ~= floor(init) or init == math.huge) then error(string.format( "invalid init value '%s' detected in argument #2 to " .. "'Exponential search' (init value must be a positive integer)", tostring(init) ), 2)	end init = init or 2 if not testFunc(1) then return nil end return search(testFunc, init, 1, nil) end

title: Module:Exponential search


text:
Module:Exponential search/doc

This module provides a generic exponential search algorithm. This kind of search can be useful when you want to find a key in some kind of sorted array, and you want to do it by checking as few array elements as possible. This could include situations like:
 * Finding the highest archive number in a set of archives without checking whether they all exist.
 * Finding the number of positional arguments in frame.args without having to expand the wikitext for each of them.

You shouldn't use this module if any of the following apply:
 * 1) You can use the Lua length operator to find what you need.
 * 2) Your array has any gaps in it. (In other words, any of the items before the final item is , e.g.  .) If you try and use this module on a sparse array, you might get an erroneous value.
 * 3) Your array has less then about 10 items in it. It's possible to use this module for those arrays, but you will access most of the array elements anyway (perhaps some of them twice), and your code will be more complicated than if you just used a for loop.

Usage
First, load the module.

You can then use the expSearch function with the following syntax:

Parameters:
 * testFunc - a test function for your array. This function should take a positive integer i as its first parameter. If the element corresponding to i is not in the array, then the function should return false or nil; and if it is in the array, then the function should return a truthy value (anything other than false or nil). (required)
 * init - the initial value of i to check. For advanced users. (optional)

expSearch will return the highest value of i for which testFunc was truthy. If no values were truthy, the function will return nil.

Jimbo's talk archives
User talk:Jimbo Wales has archives at User talk:Jimbo Wales/Archive 1, User talk:Jimbo Wales/Archive 2, ... To find the highest archive number, you would use code like this:

Village pump archives
Village pump (proposals) has old archives at Village pump (proposals)/Archive A, Village pump (proposals)/Archive B, etc. After they go through to Archive Z, the next archive is Archive AA. Although these archives aren't being updated anymore, as a demonstration we can find the highest one using this module; all we need is a function that converts from an integer to the corresponding archive name.

title: Module:Exponential search/doc