// Generated Go 1.26.3 Unicode 15.0.0 simple case data (BSD-3-Clause).
// See vendor/go-unicode-1.26.3/LICENSE; tools/generate-string-unicode.py.
// Columns: first, last, upper delta, lower delta. 0x110000 denotes alternating pairs.

///|
let unicode_string_ranges : Array[(Int, Int, Int, Int)] = [
  (65, 90, 0, 32),
  (97, 122, -32, 0),
  (181, 181, 743, 0),
  (192, 214, 0, 32),
  (216, 222, 0, 32),
  (224, 246, -32, 0),
  (248, 254, -32, 0),
  (255, 255, 121, 0),
  (256, 303, 1114112, 1114112),
  (304, 304, 0, -199),
  (305, 305, -232, 0),
  (306, 311, 1114112, 1114112),
  (313, 328, 1114112, 1114112),
  (330, 375, 1114112, 1114112),
  (376, 376, 0, -121),
  (377, 382, 1114112, 1114112),
  (383, 383, -300, 0),
  (384, 384, 195, 0),
  (385, 385, 0, 210),
  (386, 389, 1114112, 1114112),
  (390, 390, 0, 206),
  (391, 392, 1114112, 1114112),
  (393, 394, 0, 205),
  (395, 396, 1114112, 1114112),
  (398, 398, 0, 79),
  (399, 399, 0, 202),
  (400, 400, 0, 203),
  (401, 402, 1114112, 1114112),
  (403, 403, 0, 205),
  (404, 404, 0, 207),
  (405, 405, 97, 0),
  (406, 406, 0, 211),
  (407, 407, 0, 209),
  (408, 409, 1114112, 1114112),
  (410, 410, 163, 0),
  (412, 412, 0, 211),
  (413, 413, 0, 213),
  (414, 414, 130, 0),
  (415, 415, 0, 214),
  (416, 421, 1114112, 1114112),
  (422, 422, 0, 218),
  (423, 424, 1114112, 1114112),
  (425, 425, 0, 218),
  (428, 429, 1114112, 1114112),
  (430, 430, 0, 218),
  (431, 432, 1114112, 1114112),
  (433, 434, 0, 217),
  (435, 438, 1114112, 1114112),
  (439, 439, 0, 219),
  (440, 441, 1114112, 1114112),
  (444, 445, 1114112, 1114112),
  (447, 447, 56, 0),
  (452, 452, 0, 2),
  (453, 453, -1, 1),
  (454, 454, -2, 0),
  (455, 455, 0, 2),
  (456, 456, -1, 1),
  (457, 457, -2, 0),
  (458, 458, 0, 2),
  (459, 459, -1, 1),
  (460, 460, -2, 0),
  (461, 476, 1114112, 1114112),
  (477, 477, -79, 0),
  (478, 495, 1114112, 1114112),
  (497, 497, 0, 2),
  (498, 498, -1, 1),
  (499, 499, -2, 0),
  (500, 501, 1114112, 1114112),
  (502, 502, 0, -97),
  (503, 503, 0, -56),
  (504, 543, 1114112, 1114112),
  (544, 544, 0, -130),
  (546, 563, 1114112, 1114112),
  (570, 570, 0, 10795),
  (571, 572, 1114112, 1114112),
  (573, 573, 0, -163),
  (574, 574, 0, 10792),
  (575, 576, 10815, 0),
  (577, 578, 1114112, 1114112),
  (579, 579, 0, -195),
  (580, 580, 0, 69),
  (581, 581, 0, 71),
  (582, 591, 1114112, 1114112),
  (592, 592, 10783, 0),
  (593, 593, 10780, 0),
  (594, 594, 10782, 0),
  (595, 595, -210, 0),
  (596, 596, -206, 0),
  (598, 599, -205, 0),
  (601, 601, -202, 0),
  (603, 603, -203, 0),
  (604, 604, 42319, 0),
  (608, 608, -205, 0),
  (609, 609, 42315, 0),
  (611, 611, -207, 0),
  (613, 613, 42280, 0),
  (614, 614, 42308, 0),
  (616, 616, -209, 0),
  (617, 617, -211, 0),
  (618, 618, 42308, 0),
  (619, 619, 10743, 0),
  (620, 620, 42305, 0),
  (623, 623, -211, 0),
  (625, 625, 10749, 0),
  (626, 626, -213, 0),
  (629, 629, -214, 0),
  (637, 637, 10727, 0),
  (640, 640, -218, 0),
  (642, 642, 42307, 0),
  (643, 643, -218, 0),
  (647, 647, 42282, 0),
  (648, 648, -218, 0),
  (649, 649, -69, 0),
  (650, 651, -217, 0),
  (652, 652, -71, 0),
  (658, 658, -219, 0),
  (669, 669, 42261, 0),
  (670, 670, 42258, 0),
  (837, 837, 84, 0),
  (880, 883, 1114112, 1114112),
  (886, 887, 1114112, 1114112),
  (891, 893, 130, 0),
  (895, 895, 0, 116),
  (902, 902, 0, 38),
  (904, 906, 0, 37),
  (908, 908, 0, 64),
  (910, 911, 0, 63),
  (913, 929, 0, 32),
  (931, 939, 0, 32),
  (940, 940, -38, 0),
  (941, 943, -37, 0),
  (945, 961, -32, 0),
  (962, 962, -31, 0),
  (963, 971, -32, 0),
  (972, 972, -64, 0),
  (973, 974, -63, 0),
  (975, 975, 0, 8),
  (976, 976, -62, 0),
  (977, 977, -57, 0),
  (981, 981, -47, 0),
  (982, 982, -54, 0),
  (983, 983, -8, 0),
  (984, 1007, 1114112, 1114112),
  (1008, 1008, -86, 0),
  (1009, 1009, -80, 0),
  (1010, 1010, 7, 0),
  (1011, 1011, -116, 0),
  (1012, 1012, 0, -60),
  (1013, 1013, -96, 0),
  (1015, 1016, 1114112, 1114112),
  (1017, 1017, 0, -7),
  (1018, 1019, 1114112, 1114112),
  (1021, 1023, 0, -130),
  (1024, 1039, 0, 80),
  (1040, 1071, 0, 32),
  (1072, 1103, -32, 0),
  (1104, 1119, -80, 0),
  (1120, 1153, 1114112, 1114112),
  (1162, 1215, 1114112, 1114112),
  (1216, 1216, 0, 15),
  (1217, 1230, 1114112, 1114112),
  (1231, 1231, -15, 0),
  (1232, 1327, 1114112, 1114112),
  (1329, 1366, 0, 48),
  (1377, 1414, -48, 0),
  (4256, 4293, 0, 7264),
  (4295, 4295, 0, 7264),
  (4301, 4301, 0, 7264),
  (4304, 4346, 3008, 0),
  (4349, 4351, 3008, 0),
  (5024, 5103, 0, 38864),
  (5104, 5109, 0, 8),
  (5112, 5117, -8, 0),
  (7296, 7296, -6254, 0),
  (7297, 7297, -6253, 0),
  (7298, 7298, -6244, 0),
  (7299, 7300, -6242, 0),
  (7301, 7301, -6243, 0),
  (7302, 7302, -6236, 0),
  (7303, 7303, -6181, 0),
  (7304, 7304, 35266, 0),
  (7312, 7354, 0, -3008),
  (7357, 7359, 0, -3008),
  (7545, 7545, 35332, 0),
  (7549, 7549, 3814, 0),
  (7566, 7566, 35384, 0),
  (7680, 7829, 1114112, 1114112),
  (7835, 7835, -59, 0),
  (7838, 7838, 0, -7615),
  (7840, 7935, 1114112, 1114112),
  (7936, 7943, 8, 0),
  (7944, 7951, 0, -8),
  (7952, 7957, 8, 0),
  (7960, 7965, 0, -8),
  (7968, 7975, 8, 0),
  (7976, 7983, 0, -8),
  (7984, 7991, 8, 0),
  (7992, 7999, 0, -8),
  (8000, 8005, 8, 0),
  (8008, 8013, 0, -8),
  (8017, 8017, 8, 0),
  (8019, 8019, 8, 0),
  (8021, 8021, 8, 0),
  (8023, 8023, 8, 0),
  (8025, 8025, 0, -8),
  (8027, 8027, 0, -8),
  (8029, 8029, 0, -8),
  (8031, 8031, 0, -8),
  (8032, 8039, 8, 0),
  (8040, 8047, 0, -8),
  (8048, 8049, 74, 0),
  (8050, 8053, 86, 0),
  (8054, 8055, 100, 0),
  (8056, 8057, 128, 0),
  (8058, 8059, 112, 0),
  (8060, 8061, 126, 0),
  (8064, 8071, 8, 0),
  (8072, 8079, 0, -8),
  (8080, 8087, 8, 0),
  (8088, 8095, 0, -8),
  (8096, 8103, 8, 0),
  (8104, 8111, 0, -8),
  (8112, 8113, 8, 0),
  (8115, 8115, 9, 0),
  (8120, 8121, 0, -8),
  (8122, 8123, 0, -74),
  (8124, 8124, 0, -9),
  (8126, 8126, -7205, 0),
  (8131, 8131, 9, 0),
  (8136, 8139, 0, -86),
  (8140, 8140, 0, -9),
  (8144, 8145, 8, 0),
  (8152, 8153, 0, -8),
  (8154, 8155, 0, -100),
  (8160, 8161, 8, 0),
  (8165, 8165, 7, 0),
  (8168, 8169, 0, -8),
  (8170, 8171, 0, -112),
  (8172, 8172, 0, -7),
  (8179, 8179, 9, 0),
  (8184, 8185, 0, -128),
  (8186, 8187, 0, -126),
  (8188, 8188, 0, -9),
  (8486, 8486, 0, -7517),
  (8490, 8490, 0, -8383),
  (8491, 8491, 0, -8262),
  (8498, 8498, 0, 28),
  (8526, 8526, -28, 0),
  (8544, 8559, 0, 16),
  (8560, 8575, -16, 0),
  (8579, 8580, 1114112, 1114112),
  (9398, 9423, 0, 26),
  (9424, 9449, -26, 0),
  (11264, 11311, 0, 48),
  (11312, 11359, -48, 0),
  (11360, 11361, 1114112, 1114112),
  (11362, 11362, 0, -10743),
  (11363, 11363, 0, -3814),
  (11364, 11364, 0, -10727),
  (11365, 11365, -10795, 0),
  (11366, 11366, -10792, 0),
  (11367, 11372, 1114112, 1114112),
  (11373, 11373, 0, -10780),
  (11374, 11374, 0, -10749),
  (11375, 11375, 0, -10783),
  (11376, 11376, 0, -10782),
  (11378, 11379, 1114112, 1114112),
  (11381, 11382, 1114112, 1114112),
  (11390, 11391, 0, -10815),
  (11392, 11491, 1114112, 1114112),
  (11499, 11502, 1114112, 1114112),
  (11506, 11507, 1114112, 1114112),
  (11520, 11557, -7264, 0),
  (11559, 11559, -7264, 0),
  (11565, 11565, -7264, 0),
  (42560, 42605, 1114112, 1114112),
  (42624, 42651, 1114112, 1114112),
  (42786, 42799, 1114112, 1114112),
  (42802, 42863, 1114112, 1114112),
  (42873, 42876, 1114112, 1114112),
  (42877, 42877, 0, -35332),
  (42878, 42887, 1114112, 1114112),
  (42891, 42892, 1114112, 1114112),
  (42893, 42893, 0, -42280),
  (42896, 42899, 1114112, 1114112),
  (42900, 42900, 48, 0),
  (42902, 42921, 1114112, 1114112),
  (42922, 42922, 0, -42308),
  (42923, 42923, 0, -42319),
  (42924, 42924, 0, -42315),
  (42925, 42925, 0, -42305),
  (42926, 42926, 0, -42308),
  (42928, 42928, 0, -42258),
  (42929, 42929, 0, -42282),
  (42930, 42930, 0, -42261),
  (42931, 42931, 0, 928),
  (42932, 42947, 1114112, 1114112),
  (42948, 42948, 0, -48),
  (42949, 42949, 0, -42307),
  (42950, 42950, 0, -35384),
  (42951, 42954, 1114112, 1114112),
  (42960, 42961, 1114112, 1114112),
  (42966, 42969, 1114112, 1114112),
  (42997, 42998, 1114112, 1114112),
  (43859, 43859, -928, 0),
  (43888, 43967, -38864, 0),
  (65313, 65338, 0, 32),
  (65345, 65370, -32, 0),
  (66560, 66599, 0, 40),
  (66600, 66639, -40, 0),
  (66736, 66771, 0, 40),
  (66776, 66811, -40, 0),
  (66928, 66938, 0, 39),
  (66940, 66954, 0, 39),
  (66956, 66962, 0, 39),
  (66964, 66965, 0, 39),
  (66967, 66977, -39, 0),
  (66979, 66993, -39, 0),
  (66995, 67001, -39, 0),
  (67003, 67004, -39, 0),
  (68736, 68786, 0, 64),
  (68800, 68850, -64, 0),
  (71840, 71871, 0, 32),
  (71872, 71903, -32, 0),
  (93760, 93791, 0, 32),
  (93792, 93823, -32, 0),
  (125184, 125217, 0, 34),
  (125218, 125251, -34, 0),
]