diff options
author | Iwan Kawrakow <iwan.kawrakow@gmail.com> | 2024-06-25 11:32:48 +0300 |
---|---|---|
committer | Iwan Kawrakow <iwan.kawrakow@gmail.com> | 2024-06-25 11:32:48 +0300 |
commit | aa14a06b44ff12be7e4461a6e169a657275a5b20 (patch) | |
tree | c0ab2e1cd51a778594f0dd226d3e54c102c81b39 | |
parent | cc44d4a5c3368801f1de0d68096619a6746d47a4 (diff) |
Bitnet: trying an alternative iq1_bn grid
Faster on CUDA. The scalar version is faster too.
The issue with CUDA is that now I see wild performance
fluctuations. Running llama-bench I can get 220 t/s
for TG-128 one time, and 190 t/s another time, with
uncertaintiers of 1-2 t/s. Same for PP, results are
jumping back-and-fort between ~9500 t/s and ~8900 t/s.
So, basically no reliable measurement at this point,
but for sure faster than the previous version, which was
at around 170-180 t/s.
-rw-r--r-- | ggml-common.h | 623 | ||||
-rw-r--r-- | ggml-cuda/convert.cu | 19 | ||||
-rw-r--r-- | ggml-cuda/vecdotq.cuh | 38 | ||||
-rw-r--r-- | ggml-quants.h | 1 | ||||
-rw-r--r-- | iqk-quantize.cpp | 77 | ||||
-rw-r--r-- | iqk_mul_mat.cpp | 1 |
6 files changed, 475 insertions, 284 deletions
diff --git a/ggml-common.h b/ggml-common.h index 4de80794..81175c64 100644 --- a/ggml-common.h +++ b/ggml-common.h @@ -1847,213 +1847,213 @@ GGML_TABLE_BEGIN(uint32_t, iq1s_grid_gpu, NGRID_IQ1S) GGML_TABLE_END() #endif -GGML_TABLE_BEGIN(uint16_t, iq1bn_grid_u16, 3281) - 0x0000, 0x0001, 0x0002, 0x0004, 0x0005, 0x0006, 0x0008, 0x0009, 0x000a, 0x0010, 0x0011, 0x0012, 0x0014, 0x0015, 0x0016, 0x0018, - 0x0019, 0x001a, 0x0020, 0x0021, 0x0022, 0x0024, 0x0025, 0x0026, 0x0028, 0x0029, 0x002a, 0x0040, 0x0041, 0x0042, 0x0044, 0x0045, - 0x0046, 0x0048, 0x0049, 0x004a, 0x0050, 0x0051, 0x0052, 0x0054, 0x0055, 0x0056, 0x0058, 0x0059, 0x005a, 0x0060, 0x0061, 0x0062, - 0x0064, 0x0065, 0x0066, 0x0068, 0x0069, 0x006a, 0x0080, 0x0081, 0x0082, 0x0084, 0x0085, 0x0086, 0x0088, 0x0089, 0x008a, 0x0090, - 0x0091, 0x0092, 0x0094, 0x0095, 0x0096, 0x0098, 0x0099, 0x009a, 0x00a0, 0x00a1, 0x00a2, 0x00a4, 0x00a5, 0x00a6, 0x00a8, 0x00a9, - 0x00aa, 0x0100, 0x0101, 0x0102, 0x0104, 0x0105, 0x0106, 0x0108, 0x0109, 0x010a, 0x0110, 0x0111, 0x0112, 0x0114, 0x0115, 0x0116, - 0x0118, 0x0119, 0x011a, 0x0120, 0x0121, 0x0122, 0x0124, 0x0125, 0x0126, 0x0128, 0x0129, 0x012a, 0x0140, 0x0141, 0x0142, 0x0144, - 0x0145, 0x0146, 0x0148, 0x0149, 0x014a, 0x0150, 0x0151, 0x0152, 0x0154, 0x0155, 0x0156, 0x0158, 0x0159, 0x015a, 0x0160, 0x0161, - 0x0162, 0x0164, 0x0165, 0x0166, 0x0168, 0x0169, 0x016a, 0x0180, 0x0181, 0x0182, 0x0184, 0x0185, 0x0186, 0x0188, 0x0189, 0x018a, - 0x0190, 0x0191, 0x0192, 0x0194, 0x0195, 0x0196, 0x0198, 0x0199, 0x019a, 0x01a0, 0x01a1, 0x01a2, 0x01a4, 0x01a5, 0x01a6, 0x01a8, - 0x01a9, 0x01aa, 0x0200, 0x0201, 0x0202, 0x0204, 0x0205, 0x0206, 0x0208, 0x0209, 0x020a, 0x0210, 0x0211, 0x0212, 0x0214, 0x0215, - 0x0216, 0x0218, 0x0219, 0x021a, 0x0220, 0x0221, 0x0222, 0x0224, 0x0225, 0x0226, 0x0228, 0x0229, 0x022a, 0x0240, 0x0241, 0x0242, - 0x0244, 0x0245, 0x0246, 0x0248, 0x0249, 0x024a, 0x0250, 0x0251, 0x0252, 0x0254, 0x0255, 0x0256, 0x0258, 0x0259, 0x025a, 0x0260, - 0x0261, 0x0262, 0x0264, 0x0265, 0x0266, 0x0268, 0x0269, 0x026a, 0x0280, 0x0281, 0x0282, 0x0284, 0x0285, 0x0286, 0x0288, 0x0289, - 0x028a, 0x0290, 0x0291, 0x0292, 0x0294, 0x0295, 0x0296, 0x0298, 0x0299, 0x029a, 0x02a0, 0x02a1, 0x02a2, 0x02a4, 0x02a5, 0x02a6, - 0x02a8, 0x02a9, 0x02aa, 0x0400, 0x0401, 0x0402, 0x0404, 0x0405, 0x0406, 0x0408, 0x0409, 0x040a, 0x0410, 0x0411, 0x0412, 0x0414, - 0x0415, 0x0416, 0x0418, 0x0419, 0x041a, 0x0420, 0x0421, 0x0422, 0x0424, 0x0425, 0x0426, 0x0428, 0x0429, 0x042a, 0x0440, 0x0441, - 0x0442, 0x0444, 0x0445, 0x0446, 0x0448, 0x0449, 0x044a, 0x0450, 0x0451, 0x0452, 0x0454, 0x0455, 0x0456, 0x0458, 0x0459, 0x045a, - 0x0460, 0x0461, 0x0462, 0x0464, 0x0465, 0x0466, 0x0468, 0x0469, 0x046a, 0x0480, 0x0481, 0x0482, 0x0484, 0x0485, 0x0486, 0x0488, - 0x0489, 0x048a, 0x0490, 0x0491, 0x0492, 0x0494, 0x0495, 0x0496, 0x0498, 0x0499, 0x049a, 0x04a0, 0x04a1, 0x04a2, 0x04a4, 0x04a5, - 0x04a6, 0x04a8, 0x04a9, 0x04aa, 0x0500, 0x0501, 0x0502, 0x0504, 0x0505, 0x0506, 0x0508, 0x0509, 0x050a, 0x0510, 0x0511, 0x0512, - 0x0514, 0x0515, 0x0516, 0x0518, 0x0519, 0x051a, 0x0520, 0x0521, 0x0522, 0x0524, 0x0525, 0x0526, 0x0528, 0x0529, 0x052a, 0x0540, - 0x0541, 0x0542, 0x0544, 0x0545, 0x0546, 0x0548, 0x0549, 0x054a, 0x0550, 0x0551, 0x0552, 0x0554, 0x0555, 0x0556, 0x0558, 0x0559, - 0x055a, 0x0560, 0x0561, 0x0562, 0x0564, 0x0565, 0x0566, 0x0568, 0x0569, 0x056a, 0x0580, 0x0581, 0x0582, 0x0584, 0x0585, 0x0586, - 0x0588, 0x0589, 0x058a, 0x0590, 0x0591, 0x0592, 0x0594, 0x0595, 0x0596, 0x0598, 0x0599, 0x059a, 0x05a0, 0x05a1, 0x05a2, 0x05a4, - 0x05a5, 0x05a6, 0x05a8, 0x05a9, 0x05aa, 0x0600, 0x0601, 0x0602, 0x0604, 0x0605, 0x0606, 0x0608, 0x0609, 0x060a, 0x0610, 0x0611, - 0x0612, 0x0614, 0x0615, 0x0616, 0x0618, 0x0619, 0x061a, 0x0620, 0x0621, 0x0622, 0x0624, 0x0625, 0x0626, 0x0628, 0x0629, 0x062a, - 0x0640, 0x0641, 0x0642, 0x0644, 0x0645, 0x0646, 0x0648, 0x0649, 0x064a, 0x0650, 0x0651, 0x0652, 0x0654, 0x0655, 0x0656, 0x0658, - 0x0659, 0x065a, 0x0660, 0x0661, 0x0662, 0x0664, 0x0665, 0x0666, 0x0668, 0x0669, 0x066a, 0x0680, 0x0681, 0x0682, 0x0684, 0x0685, - 0x0686, 0x0688, 0x0689, 0x068a, 0x0690, 0x0691, 0x0692, 0x0694, 0x0695, 0x0696, 0x0698, 0x0699, 0x069a, 0x06a0, 0x06a1, 0x06a2, - 0x06a4, 0x06a5, 0x06a6, 0x06a8, 0x06a9, 0x06aa, 0x0800, 0x0801, 0x0802, 0x0804, 0x0805, 0x0806, 0x0808, 0x0809, 0x080a, 0x0810, - 0x0811, 0x0812, 0x0814, 0x0815, 0x0816, 0x0818, 0x0819, 0x081a, 0x0820, 0x0821, 0x0822, 0x0824, 0x0825, 0x0826, 0x0828, 0x0829, - 0x082a, 0x0840, 0x0841, 0x0842, 0x0844, 0x0845, 0x0846, 0x0848, 0x0849, 0x084a, 0x0850, 0x0851, 0x0852, 0x0854, 0x0855, 0x0856, - 0x0858, 0x0859, 0x085a, 0x0860, 0x0861, 0x0862, 0x0864, 0x0865, 0x0866, 0x0868, 0x0869, 0x086a, 0x0880, 0x0881, 0x0882, 0x0884, - 0x0885, 0x0886, 0x0888, 0x0889, 0x088a, 0x0890, 0x0891, 0x0892, 0x0894, 0x0895, 0x0896, 0x0898, 0x0899, 0x089a, 0x08a0, 0x08a1, - 0x08a2, 0x08a4, 0x08a5, 0x08a6, 0x08a8, 0x08a9, 0x08aa, 0x0900, 0x0901, 0x0902, 0x0904, 0x0905, 0x0906, 0x0908, 0x0909, 0x090a, - 0x0910, 0x0911, 0x0912, 0x0914, 0x0915, 0x0916, 0x0918, 0x0919, 0x091a, 0x0920, 0x0921, 0x0922, 0x0924, 0x0925, 0x0926, 0x0928, - 0x0929, 0x092a, 0x0940, 0x0941, 0x0942, 0x0944, 0x0945, 0x0946, 0x0948, 0x0949, 0x094a, 0x0950, 0x0951, 0x0952, 0x0954, 0x0955, - 0x0956, 0x0958, 0x0959, 0x095a, 0x0960, 0x0961, 0x0962, 0x0964, 0x0965, 0x0966, 0x0968, 0x0969, 0x096a, 0x0980, 0x0981, 0x0982, - 0x0984, 0x0985, 0x0986, 0x0988, 0x0989, 0x098a, 0x0990, 0x0991, 0x0992, 0x0994, 0x0995, 0x0996, 0x0998, 0x0999, 0x099a, 0x09a0, - 0x09a1, 0x09a2, 0x09a4, 0x09a5, 0x09a6, 0x09a8, 0x09a9, 0x09aa, 0x0a00, 0x0a01, 0x0a02, 0x0a04, 0x0a05, 0x0a06, 0x0a08, 0x0a09, - 0x0a0a, 0x0a10, 0x0a11, 0x0a12, 0x0a14, 0x0a15, 0x0a16, 0x0a18, 0x0a19, 0x0a1a, 0x0a20, 0x0a21, 0x0a22, 0x0a24, 0x0a25, 0x0a26, - 0x0a28, 0x0a29, 0x0a2a, 0x0a40, 0x0a41, 0x0a42, 0x0a44, 0x0a45, 0x0a46, 0x0a48, 0x0a49, 0x0a4a, 0x0a50, 0x0a51, 0x0a52, 0x0a54, - 0x0a55, 0x0a56, 0x0a58, 0x0a59, 0x0a5a, 0x0a60, 0x0a61, 0x0a62, 0x0a64, 0x0a65, 0x0a66, 0x0a68, 0x0a69, 0x0a6a, 0x0a80, 0x0a81, - 0x0a82, 0x0a84, 0x0a85, 0x0a86, 0x0a88, 0x0a89, 0x0a8a, 0x0a90, 0x0a91, 0x0a92, 0x0a94, 0x0a95, 0x0a96, 0x0a98, 0x0a99, 0x0a9a, - 0x0aa0, 0x0aa1, 0x0aa2, 0x0aa4, 0x0aa5, 0x0aa6, 0x0aa8, 0x0aa9, 0x0aaa, 0x1000, 0x1001, 0x1002, 0x1004, 0x1005, 0x1006, 0x1008, - 0x1009, 0x100a, 0x1010, 0x1011, 0x1012, 0x1014, 0x1015, 0x1016, 0x1018, 0x1019, 0x101a, 0x1020, 0x1021, 0x1022, 0x1024, 0x1025, - 0x1026, 0x1028, 0x1029, 0x102a, 0x1040, 0x1041, 0x1042, 0x1044, 0x1045, 0x1046, 0x1048, 0x1049, 0x104a, 0x1050, 0x1051, 0x1052, - 0x1054, 0x1055, 0x1056, 0x1058, 0x1059, 0x105a, 0x1060, 0x1061, 0x1062, 0x1064, 0x1065, 0x1066, 0x1068, 0x1069, 0x106a, 0x1080, - 0x1081, 0x1082, 0x1084, 0x1085, 0x1086, 0x1088, 0x1089, 0x108a, 0x1090, 0x1091, 0x1092, 0x1094, 0x1095, 0x1096, 0x1098, 0x1099, - 0x109a, 0x10a0, 0x10a1, 0x10a2, 0x10a4, 0x10a5, 0x10a6, 0x10a8, 0x10a9, 0x10aa, 0x1100, 0x1101, 0x1102, 0x1104, 0x1105, 0x1106, - 0x1108, 0x1109, 0x110a, 0x1110, 0x1111, 0x1112, 0x1114, 0x1115, 0x1116, 0x1118, 0x1119, 0x111a, 0x1120, 0x1121, 0x1122, 0x1124, - 0x1125, 0x1126, 0x1128, 0x1129, 0x112a, 0x1140, 0x1141, 0x1142, 0x1144, 0x1145, 0x1146, 0x1148, 0x1149, 0x114a, 0x1150, 0x1151, - 0x1152, 0x1154, 0x1155, 0x1156, 0x1158, 0x1159, 0x115a, 0x1160, 0x1161, 0x1162, 0x1164, 0x1165, 0x1166, 0x1168, 0x1169, 0x116a, - 0x1180, 0x1181, 0x1182, 0x1184, 0x1185, 0x1186, 0x1188, 0x1189, 0x118a, 0x1190, 0x1191, 0x1192, 0x1194, 0x1195, 0x1196, 0x1198, - 0x1199, 0x119a, 0x11a0, 0x11a1, 0x11a2, 0x11a4, 0x11a5, 0x11a6, 0x11a8, 0x11a9, 0x11aa, 0x1200, 0x1201, 0x1202, 0x1204, 0x1205, - 0x1206, 0x1208, 0x1209, 0x120a, 0x1210, 0x1211, 0x1212, 0x1214, 0x1215, 0x1216, 0x1218, 0x1219, 0x121a, 0x1220, 0x1221, 0x1222, - 0x1224, 0x1225, 0x1226, 0x1228, 0x1229, 0x122a, 0x1240, 0x1241, 0x1242, 0x1244, 0x1245, 0x1246, 0x1248, 0x1249, 0x124a, 0x1250, - 0x1251, 0x1252, 0x1254, 0x1255, 0x1256, 0x1258, 0x1259, 0x125a, 0x1260, 0x1261, 0x1262, 0x1264, 0x1265, 0x1266, 0x1268, 0x1269, - 0x126a, 0x1280, 0x1281, 0x1282, 0x1284, 0x1285, 0x1286, 0x1288, 0x1289, 0x128a, 0x1290, 0x1291, 0x1292, 0x1294, 0x1295, 0x1296, - 0x1298, 0x1299, 0x129a, 0x12a0, 0x12a1, 0x12a2, 0x12a4, 0x12a5, 0x12a6, 0x12a8, 0x12a9, 0x12aa, 0x1400, 0x1401, 0x1402, 0x1404, - 0x1405, 0x1406, 0x1408, 0x1409, 0x140a, 0x1410, 0x1411, 0x1412, 0x1414, 0x1415, 0x1416, 0x1418, 0x1419, 0x141a, 0x1420, 0x1421, - 0x1422, 0x1424, 0x1425, 0x1426, 0x1428, 0x1429, 0x142a, 0x1440, 0x1441, 0x1442, 0x1444, 0x1445, 0x1446, 0x1448, 0x1449, 0x144a, - 0x1450, 0x1451, 0x1452, 0x1454, 0x1455, 0x1456, 0x1458, 0x1459, 0x145a, 0x1460, 0x1461, 0x1462, 0x1464, 0x1465, 0x1466, 0x1468, - 0x1469, 0x146a, 0x1480, 0x1481, 0x1482, 0x1484, 0x1485, 0x1486, 0x1488, 0x1489, 0x148a, 0x1490, 0x1491, 0x1492, 0x1494, 0x1495, - 0x1496, 0x1498, 0x1499, 0x149a, 0x14a0, 0x14a1, 0x14a2, 0x14a4, 0x14a5, 0x14a6, 0x14a8, 0x14a9, 0x14aa, 0x1500, 0x1501, 0x1502, - 0x1504, 0x1505, 0x1506, 0x1508, 0x1509, 0x150a, 0x1510, 0x1511, 0x1512, 0x1514, 0x1515, 0x1516, 0x1518, 0x1519, 0x151a, 0x1520, - 0x1521, 0x1522, 0x1524, 0x1525, 0x1526, 0x1528, 0x1529, 0x152a, 0x1540, 0x1541, 0x1542, 0x1544, 0x1545, 0x1546, 0x1548, 0x1549, - 0x154a, 0x1550, 0x1551, 0x1552, 0x1554, 0x1555, 0x1556, 0x1558, 0x1559, 0x155a, 0x1560, 0x1561, 0x1562, 0x1564, 0x1565, 0x1566, - 0x1568, 0x1569, 0x156a, 0x1580, 0x1581, 0x1582, 0x1584, 0x1585, 0x1586, 0x1588, 0x1589, 0x158a, 0x1590, 0x1591, 0x1592, 0x1594, - 0x1595, 0x1596, 0x1598, 0x1599, 0x159a, 0x15a0, 0x15a1, 0x15a2, 0x15a4, 0x15a5, 0x15a6, 0x15a8, 0x15a9, 0x15aa, 0x1600, 0x1601, - 0x1602, 0x1604, 0x1605, 0x1606, 0x1608, 0x1609, 0x160a, 0x1610, 0x1611, 0x1612, 0x1614, 0x1615, 0x1616, 0x1618, 0x1619, 0x161a, - 0x1620, 0x1621, 0x1622, 0x1624, 0x1625, 0x1626, 0x1628, 0x1629, 0x162a, 0x1640, 0x1641, 0x1642, 0x1644, 0x1645, 0x1646, 0x1648, - 0x1649, 0x164a, 0x1650, 0x1651, 0x1652, 0x1654, 0x1655, 0x1656, 0x1658, 0x1659, 0x165a, 0x1660, 0x1661, 0x1662, 0x1664, 0x1665, - 0x1666, 0x1668, 0x1669, 0x166a, 0x1680, 0x1681, 0x1682, 0x1684, 0x1685, 0x1686, 0x1688, 0x1689, 0x168a, 0x1690, 0x1691, 0x1692, - 0x1694, 0x1695, 0x1696, 0x1698, 0x1699, 0x169a, 0x16a0, 0x16a1, 0x16a2, 0x16a4, 0x16a5, 0x16a6, 0x16a8, 0x16a9, 0x16aa, 0x1800, - 0x1801, 0x1802, 0x1804, 0x1805, 0x1806, 0x1808, 0x1809, 0x180a, 0x1810, 0x1811, 0x1812, 0x1814, 0x1815, 0x1816, 0x1818, 0x1819, - 0x181a, 0x1820, 0x1821, 0x1822, 0x1824, 0x1825, 0x1826, 0x1828, 0x1829, 0x182a, 0x1840, 0x1841, 0x1842, 0x1844, 0x1845, 0x1846, - 0x1848, 0x1849, 0x184a, 0x1850, 0x1851, 0x1852, 0x1854, 0x1855, 0x1856, 0x1858, 0x1859, 0x185a, 0x1860, 0x1861, 0x1862, 0x1864, - 0x1865, 0x1866, 0x1868, 0x1869, 0x186a, 0x1880, 0x1881, 0x1882, 0x1884, 0x1885, 0x1886, 0x1888, 0x1889, 0x188a, 0x1890, 0x1891, - 0x1892, 0x1894, 0x1895, 0x1896, 0x1898, 0x1899, 0x189a, 0x18a0, 0x18a1, 0x18a2, 0x18a4, 0x18a5, 0x18a6, 0x18a8, 0x18a9, 0x18aa, - 0x1900, 0x1901, 0x1902, 0x1904, 0x1905, 0x1906, 0x1908, 0x1909, 0x190a, 0x1910, 0x1911, 0x1912, 0x1914, 0x1915, 0x1916, 0x1918, - 0x1919, 0x191a, 0x1920, 0x1921, 0x1922, 0x1924, 0x1925, 0x1926, 0x1928, 0x1929, 0x192a, 0x1940, 0x1941, 0x1942, 0x1944, 0x1945, - 0x1946, 0x1948, 0x1949, 0x194a, 0x1950, 0x1951, 0x1952, 0x1954, 0x1955, 0x1956, 0x1958, 0x1959, 0x195a, 0x1960, 0x1961, 0x1962, - 0x1964, 0x1965, 0x1966, 0x1968, 0x1969, 0x196a, 0x1980, 0x1981, 0x1982, 0x1984, 0x1985, 0x1986, 0x1988, 0x1989, 0x198a, 0x1990, - 0x1991, 0x1992, 0x1994, 0x1995, 0x1996, 0x1998, 0x1999, 0x199a, 0x19a0, 0x19a1, 0x19a2, 0x19a4, 0x19a5, 0x19a6, 0x19a8, 0x19a9, - 0x19aa, 0x1a00, 0x1a01, 0x1a02, 0x1a04, 0x1a05, 0x1a06, 0x1a08, 0x1a09, 0x1a0a, 0x1a10, 0x1a11, 0x1a12, 0x1a14, 0x1a15, 0x1a16, - 0x1a18, 0x1a19, 0x1a1a, 0x1a20, 0x1a21, 0x1a22, 0x1a24, 0x1a25, 0x1a26, 0x1a28, 0x1a29, 0x1a2a, 0x1a40, 0x1a41, 0x1a42, 0x1a44, - 0x1a45, 0x1a46, 0x1a48, 0x1a49, 0x1a4a, 0x1a50, 0x1a51, 0x1a52, 0x1a54, 0x1a55, 0x1a56, 0x1a58, 0x1a59, 0x1a5a, 0x1a60, 0x1a61, - 0x1a62, 0x1a64, 0x1a65, 0x1a66, 0x1a68, 0x1a69, 0x1a6a, 0x1a80, 0x1a81, 0x1a82, 0x1a84, 0x1a85, 0x1a86, 0x1a88, 0x1a89, 0x1a8a, - 0x1a90, 0x1a91, 0x1a92, 0x1a94, 0x1a95, 0x1a96, 0x1a98, 0x1a99, 0x1a9a, 0x1aa0, 0x1aa1, 0x1aa2, 0x1aa4, 0x1aa5, 0x1aa6, 0x1aa8, - 0x1aa9, 0x1aaa, 0x2000, 0x2001, 0x2002, 0x2004, 0x2005, 0x2006, 0x2008, 0x2009, 0x200a, 0x2010, 0x2011, 0x2012, 0x2014, 0x2015, - 0x2016, 0x2018, 0x2019, 0x201a, 0x2020, 0x2021, 0x2022, 0x2024, 0x2025, 0x2026, 0x2028, 0x2029, 0x202a, 0x2040, 0x2041, 0x2042, - 0x2044, 0x2045, 0x2046, 0x2048, 0x2049, 0x204a, 0x2050, 0x2051, 0x2052, 0x2054, 0x2055, 0x2056, 0x2058, 0x2059, 0x205a, 0x2060, - 0x2061, 0x2062, 0x2064, 0x2065, 0x2066, 0x2068, 0x2069, 0x206a, 0x2080, 0x2081, 0x2082, 0x2084, 0x2085, 0x2086, 0x2088, 0x2089, - 0x208a, 0x2090, 0x2091, 0x2092, 0x2094, 0x2095, 0x2096, 0x2098, 0x2099, 0x209a, 0x20a0, 0x20a1, 0x20a2, 0x20a4, 0x20a5, 0x20a6, - 0x20a8, 0x20a9, 0x20aa, 0x2100, 0x2101, 0x2102, 0x2104, 0x2105, 0x2106, 0x2108, 0x2109, 0x210a, 0x2110, 0x2111, 0x2112, 0x2114, - 0x2115, 0x2116, 0x2118, 0x2119, 0x211a, 0x2120, 0x2121, 0x2122, 0x2124, 0x2125, 0x2126, 0x2128, 0x2129, 0x212a, 0x2140, 0x2141, - 0x2142, 0x2144, 0x2145, 0x2146, 0x2148, 0x2149, 0x214a, 0x2150, 0x2151, 0x2152, 0x2154, 0x2155, 0x2156, 0x2158, 0x2159, 0x215a, - 0x2160, 0x2161, 0x2162, 0x2164, 0x2165, 0x2166, 0x2168, 0x2169, 0x216a, 0x2180, 0x2181, 0x2182, 0x2184, 0x2185, 0x2186, 0x2188, - 0x2189, 0x218a, 0x2190, 0x2191, 0x2192, 0x2194, 0x2195, 0x2196, 0x2198, 0x2199, 0x219a, 0x21a0, 0x21a1, 0x21a2, 0x21a4, 0x21a5, - 0x21a6, 0x21a8, 0x21a9, 0x21aa, 0x2200, 0x2201, 0x2202, 0x2204, 0x2205, 0x2206, 0x2208, 0x2209, 0x220a, 0x2210, 0x2211, 0x2212, - 0x2214, 0x2215, 0x2216, 0x2218, 0x2219, 0x221a, 0x2220, 0x2221, 0x2222, 0x2224, 0x2225, 0x2226, 0x2228, 0x2229, 0x222a, 0x2240, - 0x2241, 0x2242, 0x2244, 0x2245, 0x2246, 0x2248, 0x2249, 0x224a, 0x2250, 0x2251, 0x2252, 0x2254, 0x2255, 0x2256, 0x2258, 0x2259, - 0x225a, 0x2260, 0x2261, 0x2262, 0x2264, 0x2265, 0x2266, 0x2268, 0x2269, 0x226a, 0x2280, 0x2281, 0x2282, 0x2284, 0x2285, 0x2286, - 0x2288, 0x2289, 0x228a, 0x2290, 0x2291, 0x2292, 0x2294, 0x2295, 0x2296, 0x2298, 0x2299, 0x229a, 0x22a0, 0x22a1, 0x22a2, 0x22a4, - 0x22a5, 0x22a6, 0x22a8, 0x22a9, 0x22aa, 0x2400, 0x2401, 0x2402, 0x2404, 0x2405, 0x2406, 0x2408, 0x2409, 0x240a, 0x2410, 0x2411, - 0x2412, 0x2414, 0x2415, 0x2416, 0x2418, 0x2419, 0x241a, 0x2420, 0x2421, 0x2422, 0x2424, 0x2425, 0x2426, 0x2428, 0x2429, 0x242a, - 0x2440, 0x2441, 0x2442, 0x2444, 0x2445, 0x2446, 0x2448, 0x2449, 0x244a, 0x2450, 0x2451, 0x2452, 0x2454, 0x2455, 0x2456, 0x2458, - 0x2459, 0x245a, 0x2460, 0x2461, 0x2462, 0x2464, 0x2465, 0x2466, 0x2468, 0x2469, 0x246a, 0x2480, 0x2481, 0x2482, 0x2484, 0x2485, - 0x2486, 0x2488, 0x2489, 0x248a, 0x2490, 0x2491, 0x2492, 0x2494, 0x2495, 0x2496, 0x2498, 0x2499, 0x249a, 0x24a0, 0x24a1, 0x24a2, - 0x24a4, 0x24a5, 0x24a6, 0x24a8, 0x24a9, 0x24aa, 0x2500, 0x2501, 0x2502, 0x2504, 0x2505, 0x2506, 0x2508, 0x2509, 0x250a, 0x2510, - 0x2511, 0x2512, 0x2514, 0x2515, 0x2516, 0x2518, 0x2519, 0x251a, 0x2520, 0x2521, 0x2522, 0x2524, 0x2525, 0x2526, 0x2528, 0x2529, - 0x252a, 0x2540, 0x2541, 0x2542, 0x2544, 0x2545, 0x2546, 0x2548, 0x2549, 0x254a, 0x2550, 0x2551, 0x2552, 0x2554, 0x2555, 0x2556, - 0x2558, 0x2559, 0x255a, 0x2560, 0x2561, 0x2562, 0x2564, 0x2565, 0x2566, 0x2568, 0x2569, 0x256a, 0x2580, 0x2581, 0x2582, 0x2584, - 0x2585, 0x2586, 0x2588, 0x2589, 0x258a, 0x2590, 0x2591, 0x2592, 0x2594, 0x2595, 0x2596, 0x2598, 0x2599, 0x259a, 0x25a0, 0x25a1, - 0x25a2, 0x25a4, 0x25a5, 0x25a6, 0x25a8, 0x25a9, 0x25aa, 0x2600, 0x2601, 0x2602, 0x2604, 0x2605, 0x2606, 0x2608, 0x2609, 0x260a, - 0x2610, 0x2611, 0x2612, 0x2614, 0x2615, 0x2616, 0x2618, 0x2619, 0x261a, 0x2620, 0x2621, 0x2622, 0x2624, 0x2625, 0x2626, 0x2628, - 0x2629, 0x262a, 0x2640, 0x2641, 0x2642, 0x2644, 0x2645, 0x2646, 0x2648, 0x2649, 0x264a, 0x2650, 0x2651, 0x2652, 0x2654, 0x2655, - 0x2656, 0x2658, 0x2659, 0x265a, 0x2660, 0x2661, 0x2662, 0x2664, 0x2665, 0x2666, 0x2668, 0x2669, 0x266a, 0x2680, 0x2681, 0x2682, - 0x2684, 0x2685, 0x2686, 0x2688, 0x2689, 0x268a, 0x2690, 0x2691, 0x2692, 0x2694, 0x2695, 0x2696, 0x2698, 0x2699, 0x269a, 0x26a0, - 0x26a1, 0x26a2, 0x26a4, 0x26a5, 0x26a6, 0x26a8, 0x26a9, 0x26aa, 0x2800, 0x2801, 0x2802, 0x2804, 0x2805, 0x2806, 0x2808, 0x2809, - 0x280a, 0x2810, 0x2811, 0x2812, 0x2814, 0x2815, 0x2816, 0x2818, 0x2819, 0x281a, 0x2820, 0x2821, 0x2822, 0x2824, 0x2825, 0x2826, - 0x2828, 0x2829, 0x282a, 0x2840, 0x2841, 0x2842, 0x2844, 0x2845, 0x2846, 0x2848, 0x2849, 0x284a, 0x2850, 0x2851, 0x2852, 0x2854, - 0x2855, 0x2856, 0x2858, 0x2859, 0x285a, 0x2860, 0x2861, 0x2862, 0x2864, 0x2865, 0x2866, 0x2868, 0x2869, 0x286a, 0x2880, 0x2881, - 0x2882, 0x2884, 0x2885, 0x2886, 0x2888, 0x2889, 0x288a, 0x2890, 0x2891, 0x2892, 0x2894, 0x2895, 0x2896, 0x2898, 0x2899, 0x289a, - 0x28a0, 0x28a1, 0x28a2, 0x28a4, 0x28a5, 0x28a6, 0x28a8, 0x28a9, 0x28aa, 0x2900, 0x2901, 0x2902, 0x2904, 0x2905, 0x2906, 0x2908, - 0x2909, 0x290a, 0x2910, 0x2911, 0x2912, 0x2914, 0x2915, 0x2916, 0x2918, 0x2919, 0x291a, 0x2920, 0x2921, 0x2922, 0x2924, 0x2925, - 0x2926, 0x2928, 0x2929, 0x292a, 0x2940, 0x2941, 0x2942, 0x2944, 0x2945, 0x2946, 0x2948, 0x2949, 0x294a, 0x2950, 0x2951, 0x2952, - 0x2954, 0x2955, 0x2956, 0x2958, 0x2959, 0x295a, 0x2960, 0x2961, 0x2962, 0x2964, 0x2965, 0x2966, 0x2968, 0x2969, 0x296a, 0x2980, - 0x2981, 0x2982, 0x2984, 0x2985, 0x2986, 0x2988, 0x2989, 0x298a, 0x2990, 0x2991, 0x2992, 0x2994, 0x2995, 0x2996, 0x2998, 0x2999, - 0x299a, 0x29a0, 0x29a1, 0x29a2, 0x29a4, 0x29a5, 0x29a6, 0x29a8, 0x29a9, 0x29aa, 0x2a00, 0x2a01, 0x2a02, 0x2a04, 0x2a05, 0x2a06, - 0x2a08, 0x2a09, 0x2a0a, 0x2a10, 0x2a11, 0x2a12, 0x2a14, 0x2a15, 0x2a16, 0x2a18, 0x2a19, 0x2a1a, 0x2a20, 0x2a21, 0x2a22, 0x2a24, - 0x2a25, 0x2a26, 0x2a28, 0x2a29, 0x2a2a, 0x2a40, 0x2a41, 0x2a42, 0x2a44, 0x2a45, 0x2a46, 0x2a48, 0x2a49, 0x2a4a, 0x2a50, 0x2a51, - 0x2a52, 0x2a54, 0x2a55, 0x2a56, 0x2a58, 0x2a59, 0x2a5a, 0x2a60, 0x2a61, 0x2a62, 0x2a64, 0x2a65, 0x2a66, 0x2a68, 0x2a69, 0x2a6a, - 0x2a80, 0x2a81, 0x2a82, 0x2a84, 0x2a85, 0x2a86, 0x2a88, 0x2a89, 0x2a8a, 0x2a90, 0x2a91, 0x2a92, 0x2a94, 0x2a95, 0x2a96, 0x2a98, - 0x2a99, 0x2a9a, 0x2aa0, 0x2aa1, 0x2aa2, 0x2aa4, 0x2aa5, 0x2aa6, 0x2aa8, 0x2aa9, 0x2aaa, 0x4000, 0x4001, 0x4002, 0x4004, 0x4005, - 0x4006, 0x4008, 0x4009, 0x400a, 0x4010, 0x4011, 0x4012, 0x4014, 0x4015, 0x4016, 0x4018, 0x4019, 0x401a, 0x4020, 0x4021, 0x4022, - 0x4024, 0x4025, 0x4026, 0x4028, 0x4029, 0x402a, 0x4040, 0x4041, 0x4042, 0x4044, 0x4045, 0x4046, 0x4048, 0x4049, 0x404a, 0x4050, - 0x4051, 0x4052, 0x4054, 0x4055, 0x4056, 0x4058, 0x4059, 0x405a, 0x4060, 0x4061, 0x4062, 0x4064, 0x4065, 0x4066, 0x4068, 0x4069, - 0x406a, 0x4080, 0x4081, 0x4082, 0x4084, 0x4085, 0x4086, 0x4088, 0x4089, 0x408a, 0x4090, 0x4091, 0x4092, 0x4094, 0x4095, 0x4096, - 0x4098, 0x4099, 0x409a, 0x40a0, 0x40a1, 0x40a2, 0x40a4, 0x40a5, 0x40a6, 0x40a8, 0x40a9, 0x40aa, 0x4100, 0x4101, 0x4102, 0x4104, - 0x4105, 0x4106, 0x4108, 0x4109, 0x410a, 0x4110, 0x4111, 0x4112, 0x4114, 0x4115, 0x4116, 0x4118, 0x4119, 0x411a, 0x4120, 0x4121, - 0x4122, 0x4124, 0x4125, 0x4126, 0x4128, 0x4129, 0x412a, 0x4140, 0x4141, 0x4142, 0x4144, 0x4145, 0x4146, 0x4148, 0x4149, 0x414a, - 0x4150, 0x4151, 0x4152, 0x4154, 0x4155, 0x4156, 0x4158, 0x4159, 0x415a, 0x4160, 0x4161, 0x4162, 0x4164, 0x4165, 0x4166, 0x4168, - 0x4169, 0x416a, 0x4180, 0x4181, 0x4182, 0x4184, 0x4185, 0x4186, 0x4188, 0x4189, 0x418a, 0x4190, 0x4191, 0x4192, 0x4194, 0x4195, - 0x4196, 0x4198, 0x4199, 0x419a, 0x41a0, 0x41a1, 0x41a2, 0x41a4, 0x41a5, 0x41a6, 0x41a8, 0x41a9, 0x41aa, 0x4200, 0x4201, 0x4202, - 0x4204, 0x4205, 0x4206, 0x4208, 0x4209, 0x420a, 0x4210, 0x4211, 0x4212, 0x4214, 0x4215, 0x4216, 0x4218, 0x4219, 0x421a, 0x4220, - 0x4221, 0x4222, 0x4224, 0x4225, 0x4226, 0x4228, 0x4229, 0x422a, 0x4240, 0x4241, 0x4242, 0x4244, 0x4245, 0x4246, 0x4248, 0x4249, - 0x424a, 0x4250, 0x4251, 0x4252, 0x4254, 0x4255, 0x4256, 0x4258, 0x4259, 0x425a, 0x4260, 0x4261, 0x4262, 0x4264, 0x4265, 0x4266, - 0x4268, 0x4269, 0x426a, 0x4280, 0x4281, 0x4282, 0x4284, 0x4285, 0x4286, 0x4288, 0x4289, 0x428a, 0x4290, 0x4291, 0x4292, 0x4294, - 0x4295, 0x4296, 0x4298, 0x4299, 0x429a, 0x42a0, 0x42a1, 0x42a2, 0x42a4, 0x42a5, 0x42a6, 0x42a8, 0x42a9, 0x42aa, 0x4400, 0x4401, - 0x4402, 0x4404, 0x4405, 0x4406, 0x4408, 0x4409, 0x440a, 0x4410, 0x4411, 0x4412, 0x4414, 0x4415, 0x4416, 0x4418, 0x4419, 0x441a, - 0x4420, 0x4421, 0x4422, 0x4424, 0x4425, 0x4426, 0x4428, 0x4429, 0x442a, 0x4440, 0x4441, 0x4442, 0x4444, 0x4445, 0x4446, 0x4448, - 0x4449, 0x444a, 0x4450, 0x4451, 0x4452, 0x4454, 0x4455, 0x4456, 0x4458, 0x4459, 0x445a, 0x4460, 0x4461, 0x4462, 0x4464, 0x4465, - 0x4466, 0x4468, 0x4469, 0x446a, 0x4480, 0x4481, 0x4482, 0x4484, 0x4485, 0x4486, 0x4488, 0x4489, 0x448a, 0x4490, 0x4491, 0x4492, - 0x4494, 0x4495, 0x4496, 0x4498, 0x4499, 0x449a, 0x44a0, 0x44a1, 0x44a2, 0x44a4, 0x44a5, 0x44a6, 0x44a8, 0x44a9, 0x44aa, 0x4500, - 0x4501, 0x4502, 0x4504, 0x4505, 0x4506, 0x4508, 0x4509, 0x450a, 0x4510, 0x4511, 0x4512, 0x4514, 0x4515, 0x4516, 0x4518, 0x4519, - 0x451a, 0x4520, 0x4521, 0x4522, 0x4524, 0x4525, 0x4526, 0x4528, 0x4529, 0x452a, 0x4540, 0x4541, 0x4542, 0x4544, 0x4545, 0x4546, - 0x4548, 0x4549, 0x454a, 0x4550, 0x4551, 0x4552, 0x4554, 0x4555, 0x4556, 0x4558, 0x4559, 0x455a, 0x4560, 0x4561, 0x4562, 0x4564, - 0x4565, 0x4566, 0x4568, 0x4569, 0x456a, 0x4580, 0x4581, 0x4582, 0x4584, 0x4585, 0x4586, 0x4588, 0x4589, 0x458a, 0x4590, 0x4591, - 0x4592, 0x4594, 0x4595, 0x4596, 0x4598, 0x4599, 0x459a, 0x45a0, 0x45a1, 0x45a2, 0x45a4, 0x45a5, 0x45a6, 0x45a8, 0x45a9, 0x45aa, - 0x4600, 0x4601, 0x4602, 0x4604, 0x4605, 0x4606, 0x4608, 0x4609, 0x460a, 0x4610, 0x4611, 0x4612, 0x4614, 0x4615, 0x4616, 0x4618, - 0x4619, 0x461a, 0x4620, 0x4621, 0x4622, 0x4624, 0x4625, 0x4626, 0x4628, 0x4629, 0x462a, 0x4640, 0x4641, 0x4642, 0x4644, 0x4645, - 0x4646, 0x4648, 0x4649, 0x464a, 0x4650, 0x4651, 0x4652, 0x4654, 0x4655, 0x4656, 0x4658, 0x4659, 0x465a, 0x4660, 0x4661, 0x4662, - 0x4664, 0x4665, 0x4666, 0x4668, 0x4669, 0x466a, 0x4680, 0x4681, 0x4682, 0x4684, 0x4685, 0x4686, 0x4688, 0x4689, 0x468a, 0x4690, - 0x4691, 0x4692, 0x4694, 0x4695, 0x4696, 0x4698, 0x4699, 0x469a, 0x46a0, 0x46a1, 0x46a2, 0x46a4, 0x46a5, 0x46a6, 0x46a8, 0x46a9, - 0x46aa, 0x4800, 0x4801, 0x4802, 0x4804, 0x4805, 0x4806, 0x4808, 0x4809, 0x480a, 0x4810, 0x4811, 0x4812, 0x4814, 0x4815, 0x4816, - 0x4818, 0x4819, 0x481a, 0x4820, 0x4821, 0x4822, 0x4824, 0x4825, 0x4826, 0x4828, 0x4829, 0x482a, 0x4840, 0x4841, 0x4842, 0x4844, - 0x4845, 0x4846, 0x4848, 0x4849, 0x484a, 0x4850, 0x4851, 0x4852, 0x4854, 0x4855, 0x4856, 0x4858, 0x4859, 0x485a, 0x4860, 0x4861, - 0x4862, 0x4864, 0x4865, 0x4866, 0x4868, 0x4869, 0x486a, 0x4880, 0x4881, 0x4882, 0x4884, 0x4885, 0x4886, 0x4888, 0x4889, 0x488a, - 0x4890, 0x4891, 0x4892, 0x4894, 0x4895, 0x4896, 0x4898, 0x4899, 0x489a, 0x48a0, 0x48a1, 0x48a2, 0x48a4, 0x48a5, 0x48a6, 0x48a8, - 0x48a9, 0x48aa, 0x4900, 0x4901, 0x4902, 0x4904, 0x4905, 0x4906, 0x4908, 0x4909, 0x490a, 0x4910, 0x4911, 0x4912, 0x4914, 0x4915, - 0x4916, 0x4918, 0x4919, 0x491a, 0x4920, 0x4921, 0x4922, 0x4924, 0x4925, 0x4926, 0x4928, 0x4929, 0x492a, 0x4940, 0x4941, 0x4942, - 0x4944, 0x4945, 0x4946, 0x4948, 0x4949, 0x494a, 0x4950, 0x4951, 0x4952, 0x4954, 0x4955, 0x4956, 0x4958, 0x4959, 0x495a, 0x4960, - 0x4961, 0x4962, 0x4964, 0x4965, 0x4966, 0x4968, 0x4969, 0x496a, 0x4980, 0x4981, 0x4982, 0x4984, 0x4985, 0x4986, 0x4988, 0x4989, - 0x498a, 0x4990, 0x4991, 0x4992, 0x4994, 0x4995, 0x4996, 0x4998, 0x4999, 0x499a, 0x49a0, 0x49a1, 0x49a2, 0x49a4, 0x49a5, 0x49a6, - 0x49a8, 0x49a9, 0x49aa, 0x4a00, 0x4a01, 0x4a02, 0x4a04, 0x4a05, 0x4a06, 0x4a08, 0x4a09, 0x4a0a, 0x4a10, 0x4a11, 0x4a12, 0x4a14, - 0x4a15, 0x4a16, 0x4a18, 0x4a19, 0x4a1a, 0x4a20, 0x4a21, 0x4a22, 0x4a24, 0x4a25, 0x4a26, 0x4a28, 0x4a29, 0x4a2a, 0x4a40, 0x4a41, - 0x4a42, 0x4a44, 0x4a45, 0x4a46, 0x4a48, 0x4a49, 0x4a4a, 0x4a50, 0x4a51, 0x4a52, 0x4a54, 0x4a55, 0x4a56, 0x4a58, 0x4a59, 0x4a5a, - 0x4a60, 0x4a61, 0x4a62, 0x4a64, 0x4a65, 0x4a66, 0x4a68, 0x4a69, 0x4a6a, 0x4a80, 0x4a81, 0x4a82, 0x4a84, 0x4a85, 0x4a86, 0x4a88, - 0x4a89, 0x4a8a, 0x4a90, 0x4a91, 0x4a92, 0x4a94, 0x4a95, 0x4a96, 0x4a98, 0x4a99, 0x4a9a, 0x4aa0, 0x4aa1, 0x4aa2, 0x4aa4, 0x4aa5, - 0x4aa6, 0x4aa8, 0x4aa9, 0x4aaa, 0x5000, 0x5001, 0x5002, 0x5004, 0x5005, 0x5006, 0x5008, 0x5009, 0x500a, 0x5010, 0x5011, 0x5012, - 0x5014, 0x5015, 0x5016, 0x5018, 0x5019, 0x501a, 0x5020, 0x5021, 0x5022, 0x5024, 0x5025, 0x5026, 0x5028, 0x5029, 0x502a, 0x5040, - 0x5041, 0x5042, 0x5044, 0x5045, 0x5046, 0x5048, 0x5049, 0x504a, 0x5050, 0x5051, 0x5052, 0x5054, 0x5055, 0x5056, 0x5058, 0x5059, - 0x505a, 0x5060, 0x5061, 0x5062, 0x5064, 0x5065, 0x5066, 0x5068, 0x5069, 0x506a, 0x5080, 0x5081, 0x5082, 0x5084, 0x5085, 0x5086, - 0x5088, 0x5089, 0x508a, 0x5090, 0x5091, 0x5092, 0x5094, 0x5095, 0x5096, 0x5098, 0x5099, 0x509a, 0x50a0, 0x50a1, 0x50a2, 0x50a4, - 0x50a5, 0x50a6, 0x50a8, 0x50a9, 0x50aa, 0x5100, 0x5101, 0x5102, 0x5104, 0x5105, 0x5106, 0x5108, 0x5109, 0x510a, 0x5110, 0x5111, - 0x5112, 0x5114, 0x5115, 0x5116, 0x5118, 0x5119, 0x511a, 0x5120, 0x5121, 0x5122, 0x5124, 0x5125, 0x5126, 0x5128, 0x5129, 0x512a, - 0x5140, 0x5141, 0x5142, 0x5144, 0x5145, 0x5146, 0x5148, 0x5149, 0x514a, 0x5150, 0x5151, 0x5152, 0x5154, 0x5155, 0x5156, 0x5158, - 0x5159, 0x515a, 0x5160, 0x5161, 0x5162, 0x5164, 0x5165, 0x5166, 0x5168, 0x5169, 0x516a, 0x5180, 0x5181, 0x5182, 0x5184, 0x5185, - 0x5186, 0x5188, 0x5189, 0x518a, 0x5190, 0x5191, 0x5192, 0x5194, 0x5195, 0x5196, 0x5198, 0x5199, 0x519a, 0x51a0, 0x51a1, 0x51a2, - 0x51a4, 0x51a5, 0x51a6, 0x51a8, 0x51a9, 0x51aa, 0x5200, 0x5201, 0x5202, 0x5204, 0x5205, 0x5206, 0x5208, 0x5209, 0x520a, 0x5210, - 0x5211, 0x5212, 0x5214, 0x5215, 0x5216, 0x5218, 0x5219, 0x521a, 0x5220, 0x5221, 0x5222, 0x5224, 0x5225, 0x5226, 0x5228, 0x5229, - 0x522a, 0x5240, 0x5241, 0x5242, 0x5244, 0x5245, 0x5246, 0x5248, 0x5249, 0x524a, 0x5250, 0x5251, 0x5252, 0x5254, 0x5255, 0x5256, - 0x5258, 0x5259, 0x525a, 0x5260, 0x5261, 0x5262, 0x5264, 0x5265, 0x5266, 0x5268, 0x5269, 0x526a, 0x5280, 0x5281, 0x5282, 0x5284, - 0x5285, 0x5286, 0x5288, 0x5289, 0x528a, 0x5290, 0x5291, 0x5292, 0x5294, 0x5295, 0x5296, 0x5298, 0x5299, 0x529a, 0x52a0, 0x52a1, - 0x52a2, 0x52a4, 0x52a5, 0x52a6, 0x52a8, 0x52a9, 0x52aa, 0x5400, 0x5401, 0x5402, 0x5404, 0x5405, 0x5406, 0x5408, 0x5409, 0x540a, - 0x5410, 0x5411, 0x5412, 0x5414, 0x5415, 0x5416, 0x5418, 0x5419, 0x541a, 0x5420, 0x5421, 0x5422, 0x5424, 0x5425, 0x5426, 0x5428, - 0x5429, 0x542a, 0x5440, 0x5441, 0x5442, 0x5444, 0x5445, 0x5446, 0x5448, 0x5449, 0x544a, 0x5450, 0x5451, 0x5452, 0x5454, 0x5455, - 0x5456, 0x5458, 0x5459, 0x545a, 0x5460, 0x5461, 0x5462, 0x5464, 0x5465, 0x5466, 0x5468, 0x5469, 0x546a, 0x5480, 0x5481, 0x5482, - 0x5484, 0x5485, 0x5486, 0x5488, 0x5489, 0x548a, 0x5490, 0x5491, 0x5492, 0x5494, 0x5495, 0x5496, 0x5498, 0x5499, 0x549a, 0x54a0, - 0x54a1, 0x54a2, 0x54a4, 0x54a5, 0x54a6, 0x54a8, 0x54a9, 0x54aa, 0x5500, 0x5501, 0x5502, 0x5504, 0x5505, 0x5506, 0x5508, 0x5509, - 0x550a, 0x5510, 0x5511, 0x5512, 0x5514, 0x5515, 0x5516, 0x5518, 0x5519, 0x551a, 0x5520, 0x5521, 0x5522, 0x5524, 0x5525, 0x5526, - 0x5528, 0x5529, 0x552a, 0x5540, 0x5541, 0x5542, 0x5544, 0x5545, 0x5546, 0x5548, 0x5549, 0x554a, 0x5550, 0x5551, 0x5552, 0x5554, 0x5555, -GGML_TABLE_END() +//GGML_TABLE_BEGIN(uint16_t, iq1bn_grid_u16, 3281) +// 0x0000, 0x0001, 0x0002, 0x0004, 0x0005, 0x0006, 0x0008, 0x0009, 0x000a, 0x0010, 0x0011, 0x0012, 0x0014, 0x0015, 0x0016, 0x0018, +// 0x0019, 0x001a, 0x0020, 0x0021, 0x0022, 0x0024, 0x0025, 0x0026, 0x0028, 0x0029, 0x002a, 0x0040, 0x0041, 0x0042, 0x0044, 0x0045, +// 0x0046, 0x0048, 0x0049, 0x004a, 0x0050, 0x0051, 0x0052, 0x0054, 0x0055, 0x0056, 0x0058, 0x0059, 0x005a, 0x0060, 0x0061, 0x0062, +// 0x0064, 0x0065, 0x0066, 0x0068, 0x0069, 0x006a, 0x0080, 0x0081, 0x0082, 0x0084, 0x0085, 0x0086, 0x0088, 0x0089, 0x008a, 0x0090, +// 0x0091, 0x0092, 0x0094, 0x0095, 0x0096, 0x0098, 0x0099, 0x009a, 0x00a0, 0x00a1, 0x00a2, 0x00a4, 0x00a5, 0x00a6, 0x00a8, 0x00a9, +// 0x00aa, 0x0100, 0x0101, 0x0102, 0x0104, 0x0105, 0x0106, 0x0108, 0x0109, 0x010a, 0x0110, 0x0111, 0x0112, 0x0114, 0x0115, 0x0116, +// 0x0118, 0x0119, 0x011a, 0x0120, 0x0121, 0x0122, 0x0124, 0x0125, 0x0126, 0x0128, 0x0129, 0x012a, 0x0140, 0x0141, 0x0142, 0x0144, +// 0x0145, 0x0146, 0x0148, 0x0149, 0x014a, 0x0150, 0x0151, 0x0152, 0x0154, 0x0155, 0x0156, 0x0158, 0x0159, 0x015a, 0x0160, 0x0161, +// 0x0162, 0x0164, 0x0165, 0x0166, 0x0168, 0x0169, 0x016a, 0x0180, 0x0181, 0x0182, 0x0184, 0x0185, 0x0186, 0x0188, 0x0189, 0x018a, +// 0x0190, 0x0191, 0x0192, 0x0194, 0x0195, 0x0196, 0x0198, 0x0199, 0x019a, 0x01a0, 0x01a1, 0x01a2, 0x01a4, 0x01a5, 0x01a6, 0x01a8, +// 0x01a9, 0x01aa, 0x0200, 0x0201, 0x0202, 0x0204, 0x0205, 0x0206, 0x0208, 0x0209, 0x020a, 0x0210, 0x0211, 0x0212, 0x0214, 0x0215, +// 0x0216, 0x0218, 0x0219, 0x021a, 0x0220, 0x0221, 0x0222, 0x0224, 0x0225, 0x0226, 0x0228, 0x0229, 0x022a, 0x0240, 0x0241, 0x0242, +// 0x0244, 0x0245, 0x0246, 0x0248, 0x0249, 0x024a, 0x0250, 0x0251, 0x0252, 0x0254, 0x0255, 0x0256, 0x0258, 0x0259, 0x025a, 0x0260, +// 0x0261, 0x0262, 0x0264, 0x0265, 0x0266, 0x0268, 0x0269, 0x026a, 0x0280, 0x0281, 0x0282, 0x0284, 0x0285, 0x0286, 0x0288, 0x0289, +// 0x028a, 0x0290, 0x0291, 0x0292, 0x0294, 0x0295, 0x0296, 0x0298, 0x0299, 0x029a, 0x02a0, 0x02a1, 0x02a2, 0x02a4, 0x02a5, 0x02a6, +// 0x02a8, 0x02a9, 0x02aa, 0x0400, 0x0401, 0x0402, 0x0404, 0x0405, 0x0406, 0x0408, 0x0409, 0x040a, 0x0410, 0x0411, 0x0412, 0x0414, +// 0x0415, 0x0416, 0x0418, 0x0419, 0x041a, 0x0420, 0x0421, 0x0422, 0x0424, 0x0425, 0x0426, 0x0428, 0x0429, 0x042a, 0x0440, 0x0441, +// 0x0442, 0x0444, 0x0445, 0x0446, 0x0448, 0x0449, 0x044a, 0x0450, 0x0451, 0x0452, 0x0454, 0x0455, 0x0456, 0x0458, 0x0459, 0x045a, +// 0x0460, 0x0461, 0x0462, 0x0464, 0x0465, 0x0466, 0x0468, 0x0469, 0x046a, 0x0480, 0x0481, 0x0482, 0x0484, 0x0485, 0x0486, 0x0488, +// 0x0489, 0x048a, 0x0490, 0x0491, 0x0492, 0x0494, 0x0495, 0x0496, 0x0498, 0x0499, 0x049a, 0x04a0, 0x04a1, 0x04a2, 0x04a4, 0x04a5, +// 0x04a6, 0x04a8, 0x04a9, 0x04aa, 0x0500, 0x0501, 0x0502, 0x0504, 0x0505, 0x0506, 0x0508, 0x0509, 0x050a, 0x0510, 0x0511, 0x0512, +// 0x0514, 0x0515, 0x0516, 0x0518, 0x0519, 0x051a, 0x0520, 0x0521, 0x0522, 0x0524, 0x0525, 0x0526, 0x0528, 0x0529, 0x052a, 0x0540, +// 0x0541, 0x0542, 0x0544, 0x0545, 0x0546, 0x0548, 0x0549, 0x054a, 0x0550, 0x0551, 0x0552, 0x0554, 0x0555, 0x0556, 0x0558, 0x0559, +// 0x055a, 0x0560, 0x0561, 0x0562, 0x0564, 0x0565, 0x0566, 0x0568, 0x0569, 0x056a, 0x0580, 0x0581, 0x0582, 0x0584, 0x0585, 0x0586, +// 0x0588, 0x0589, 0x058a, 0x0590, 0x0591, 0x0592, 0x0594, 0x0595, 0x0596, 0x0598, 0x0599, 0x059a, 0x05a0, 0x05a1, 0x05a2, 0x05a4, +// 0x05a5, 0x05a6, 0x05a8, 0x05a9, 0x05aa, 0x0600, 0x0601, 0x0602, 0x0604, 0x0605, 0x0606, 0x0608, 0x0609, 0x060a, 0x0610, 0x0611, +// 0x0612, 0x0614, 0x0615, 0x0616, 0x0618, 0x0619, 0x061a, 0x0620, 0x0621, 0x0622, 0x0624, 0x0625, 0x0626, 0x0628, 0x0629, 0x062a, +// 0x0640, 0x0641, 0x0642, 0x0644, 0x0645, 0x0646, 0x0648, 0x0649, 0x064a, 0x0650, 0x0651, 0x0652, 0x0654, 0x0655, 0x0656, 0x0658, +// 0x0659, 0x065a, 0x0660, 0x0661, 0x0662, 0x0664, 0x0665, 0x0666, 0x0668, 0x0669, 0x066a, 0x0680, 0x0681, 0x0682, 0x0684, 0x0685, +// 0x0686, 0x0688, 0x0689, 0x068a, 0x0690, 0x0691, 0x0692, 0x0694, 0x0695, 0x0696, 0x0698, 0x0699, 0x069a, 0x06a0, 0x06a1, 0x06a2, +// 0x06a4, 0x06a5, 0x06a6, 0x06a8, 0x06a9, 0x06aa, 0x0800, 0x0801, 0x0802, 0x0804, 0x0805, 0x0806, 0x0808, 0x0809, 0x080a, 0x0810, +// 0x0811, 0x0812, 0x0814, 0x0815, 0x0816, 0x0818, 0x0819, 0x081a, 0x0820, 0x0821, 0x0822, 0x0824, 0x0825, 0x0826, 0x0828, 0x0829, +// 0x082a, 0x0840, 0x0841, 0x0842, 0x0844, 0x0845, 0x0846, 0x0848, 0x0849, 0x084a, 0x0850, 0x0851, 0x0852, 0x0854, 0x0855, 0x0856, +// 0x0858, 0x0859, 0x085a, 0x0860, 0x0861, 0x0862, 0x0864, 0x0865, 0x0866, 0x0868, 0x0869, 0x086a, 0x0880, 0x0881, 0x0882, 0x0884, +// 0x0885, 0x0886, 0x0888, 0x0889, 0x088a, 0x0890, 0x0891, 0x0892, 0x0894, 0x0895, 0x0896, 0x0898, 0x0899, 0x089a, 0x08a0, 0x08a1, +// 0x08a2, 0x08a4, 0x08a5, 0x08a6, 0x08a8, 0x08a9, 0x08aa, 0x0900, 0x0901, 0x0902, 0x0904, 0x0905, 0x0906, 0x0908, 0x0909, 0x090a, +// 0x0910, 0x0911, 0x0912, 0x0914, 0x0915, 0x0916, 0x0918, 0x0919, 0x091a, 0x0920, 0x0921, 0x0922, 0x0924, 0x0925, 0x0926, 0x0928, +// 0x0929, 0x092a, 0x0940, 0x0941, 0x0942, 0x0944, 0x0945, 0x0946, 0x0948, 0x0949, 0x094a, 0x0950, 0x0951, 0x0952, 0x0954, 0x0955, +// 0x0956, 0x0958, 0x0959, 0x095a, 0x0960, 0x0961, 0x0962, 0x0964, 0x0965, 0x0966, 0x0968, 0x0969, 0x096a, 0x0980, 0x0981, 0x0982, +// 0x0984, 0x0985, 0x0986, 0x0988, 0x0989, 0x098a, 0x0990, 0x0991, 0x0992, 0x0994, 0x0995, 0x0996, 0x0998, 0x0999, 0x099a, 0x09a0, +// 0x09a1, 0x09a2, 0x09a4, 0x09a5, 0x09a6, 0x09a8, 0x09a9, 0x09aa, 0x0a00, 0x0a01, 0x0a02, 0x0a04, 0x0a05, 0x0a06, 0x0a08, 0x0a09, +// 0x0a0a, 0x0a10, 0x0a11, 0x0a12, 0x0a14, 0x0a15, 0x0a16, 0x0a18, 0x0a19, 0x0a1a, 0x0a20, 0x0a21, 0x0a22, 0x0a24, 0x0a25, 0x0a26, +// 0x0a28, 0x0a29, 0x0a2a, 0x0a40, 0x0a41, 0x0a42, 0x0a44, 0x0a45, 0x0a46, 0x0a48, 0x0a49, 0x0a4a, 0x0a50, 0x0a51, 0x0a52, 0x0a54, +// 0x0a55, 0x0a56, 0x0a58, 0x0a59, 0x0a5a, 0x0a60, 0x0a61, 0x0a62, 0x0a64, 0x0a65, 0x0a66, 0x0a68, 0x0a69, 0x0a6a, 0x0a80, 0x0a81, +// 0x0a82, 0x0a84, 0x0a85, 0x0a86, 0x0a88, 0x0a89, 0x0a8a, 0x0a90, 0x0a91, 0x0a92, 0x0a94, 0x0a95, 0x0a96, 0x0a98, 0x0a99, 0x0a9a, +// 0x0aa0, 0x0aa1, 0x0aa2, 0x0aa4, 0x0aa5, 0x0aa6, 0x0aa8, 0x0aa9, 0x0aaa, 0x1000, 0x1001, 0x1002, 0x1004, 0x1005, 0x1006, 0x1008, +// 0x1009, 0x100a, 0x1010, 0x1011, 0x1012, 0x1014, 0x1015, 0x1016, 0x1018, 0x1019, 0x101a, 0x1020, 0x1021, 0x1022, 0x1024, 0x1025, +// 0x1026, 0x1028, 0x1029, 0x102a, 0x1040, 0x1041, 0x1042, 0x1044, 0x1045, 0x1046, 0x1048, 0x1049, 0x104a, 0x1050, 0x1051, 0x1052, +// 0x1054, 0x1055, 0x1056, 0x1058, 0x1059, 0x105a, 0x1060, 0x1061, 0x1062, 0x1064, 0x1065, 0x1066, 0x1068, 0x1069, 0x106a, 0x1080, +// 0x1081, 0x1082, 0x1084, 0x1085, 0x1086, 0x1088, 0x1089, 0x108a, 0x1090, 0x1091, 0x1092, 0x1094, 0x1095, 0x1096, 0x1098, 0x1099, +// 0x109a, 0x10a0, 0x10a1, 0x10a2, 0x10a4, 0x10a5, 0x10a6, 0x10a8, 0x10a9, 0x10aa, 0x1100, 0x1101, 0x1102, 0x1104, 0x1105, 0x1106, +// 0x1108, 0x1109, 0x110a, 0x1110, 0x1111, 0x1112, 0x1114, 0x1115, 0x1116, 0x1118, 0x1119, 0x111a, 0x1120, 0x1121, 0x1122, 0x1124, +// 0x1125, 0x1126, 0x1128, 0x1129, 0x112a, 0x1140, 0x1141, 0x1142, 0x1144, 0x1145, 0x1146, 0x1148, 0x1149, 0x114a, 0x1150, 0x1151, +// 0x1152, 0x1154, 0x1155, 0x1156, 0x1158, 0x1159, 0x115a, 0x1160, 0x1161, 0x1162, 0x1164, 0x1165, 0x1166, 0x1168, 0x1169, 0x116a, +// 0x1180, 0x1181, 0x1182, 0x1184, 0x1185, 0x1186, 0x1188, 0x1189, 0x118a, 0x1190, 0x1191, 0x1192, 0x1194, 0x1195, 0x1196, 0x1198, +// 0x1199, 0x119a, 0x11a0, 0x11a1, 0x11a2, 0x11a4, 0x11a5, 0x11a6, 0x11a8, 0x11a9, 0x11aa, 0x1200, 0x1201, 0x1202, 0x1204, 0x1205, +// 0x1206, 0x1208, 0x1209, 0x120a, 0x1210, 0x1211, 0x1212, 0x1214, 0x1215, 0x1216, 0x1218, 0x1219, 0x121a, 0x1220, 0x1221, 0x1222, +// 0x1224, 0x1225, 0x1226, 0x1228, 0x1229, 0x122a, 0x1240, 0x1241, 0x1242, 0x1244, 0x1245, 0x1246, 0x1248, 0x1249, 0x124a, 0x1250, +// 0x1251, 0x1252, 0x1254, 0x1255, 0x1256, 0x1258, 0x1259, 0x125a, 0x1260, 0x1261, 0x1262, 0x1264, 0x1265, 0x1266, 0x1268, 0x1269, +// 0x126a, 0x1280, 0x1281, 0x1282, 0x1284, 0x1285, 0x1286, 0x1288, 0x1289, 0x128a, 0x1290, 0x1291, 0x1292, 0x1294, 0x1295, 0x1296, +// 0x1298, 0x1299, 0x129a, 0x12a0, 0x12a1, 0x12a2, 0x12a4, 0x12a5, 0x12a6, 0x12a8, 0x12a9, 0x12aa, 0x1400, 0x1401, 0x1402, 0x1404, +// 0x1405, 0x1406, 0x1408, 0x1409, 0x140a, 0x1410, 0x1411, 0x1412, 0x1414, 0x1415, 0x1416, 0x1418, 0x1419, 0x141a, 0x1420, 0x1421, +// 0x1422, 0x1424, 0x1425, 0x1426, 0x1428, 0x1429, 0x142a, 0x1440, 0x1441, 0x1442, 0x1444, 0x1445, 0x1446, 0x1448, 0x1449, 0x144a, +// 0x1450, 0x1451, 0x1452, 0x1454, 0x1455, 0x1456, 0x1458, 0x1459, 0x145a, 0x1460, 0x1461, 0x1462, 0x1464, 0x1465, 0x1466, 0x1468, +// 0x1469, 0x146a, 0x1480, 0x1481, 0x1482, 0x1484, 0x1485, 0x1486, 0x1488, 0x1489, 0x148a, 0x1490, 0x1491, 0x1492, 0x1494, 0x1495, +// 0x1496, 0x1498, 0x1499, 0x149a, 0x14a0, 0x14a1, 0x14a2, 0x14a4, 0x14a5, 0x14a6, 0x14a8, 0x14a9, 0x14aa, 0x1500, 0x1501, 0x1502, +// 0x1504, 0x1505, 0x1506, 0x1508, 0x1509, 0x150a, 0x1510, 0x1511, 0x1512, 0x1514, 0x1515, 0x1516, 0x1518, 0x1519, 0x151a, 0x1520, +// 0x1521, 0x1522, 0x1524, 0x1525, 0x1526, 0x1528, 0x1529, 0x152a, 0x1540, 0x1541, 0x1542, 0x1544, 0x1545, 0x1546, 0x1548, 0x1549, +// 0x154a, 0x1550, 0x1551, 0x1552, 0x1554, 0x1555, 0x1556, 0x1558, 0x1559, 0x155a, 0x1560, 0x1561, 0x1562, 0x1564, 0x1565, 0x1566, +// 0x1568, 0x1569, 0x156a, 0x1580, 0x1581, 0x1582, 0x1584, 0x1585, 0x1586, 0x1588, 0x1589, 0x158a, 0x1590, 0x1591, 0x1592, 0x1594, +// 0x1595, 0x1596, 0x1598, 0x1599, 0x159a, 0x15a0, 0x15a1, 0x15a2, 0x15a4, 0x15a5, 0x15a6, 0x15a8, 0x15a9, 0x15aa, 0x1600, 0x1601, +// 0x1602, 0x1604, 0x1605, 0x1606, 0x1608, 0x1609, 0x160a, 0x1610, 0x1611, 0x1612, 0x1614, 0x1615, 0x1616, 0x1618, 0x1619, 0x161a, +// 0x1620, 0x1621, 0x1622, 0x1624, 0x1625, 0x1626, 0x1628, 0x1629, 0x162a, 0x1640, 0x1641, 0x1642, 0x1644, 0x1645, 0x1646, 0x1648, +// 0x1649, 0x164a, 0x1650, 0x1651, 0x1652, 0x1654, 0x1655, 0x1656, 0x1658, 0x1659, 0x165a, 0x1660, 0x1661, 0x1662, 0x1664, 0x1665, +// 0x1666, 0x1668, 0x1669, 0x166a, 0x1680, 0x1681, 0x1682, 0x1684, 0x1685, 0x1686, 0x1688, 0x1689, 0x168a, 0x1690, 0x1691, 0x1692, +// 0x1694, 0x1695, 0x1696, 0x1698, 0x1699, 0x169a, 0x16a0, 0x16a1, 0x16a2, 0x16a4, 0x16a5, 0x16a6, 0x16a8, 0x16a9, 0x16aa, 0x1800, +// 0x1801, 0x1802, 0x1804, 0x1805, 0x1806, 0x1808, 0x1809, 0x180a, 0x1810, 0x1811, 0x1812, 0x1814, 0x1815, 0x1816, 0x1818, 0x1819, +// 0x181a, 0x1820, 0x1821, 0x1822, 0x1824, 0x1825, 0x1826, 0x1828, 0x1829, 0x182a, 0x1840, 0x1841, 0x1842, 0x1844, 0x1845, 0x1846, +// 0x1848, 0x1849, 0x184a, 0x1850, 0x1851, 0x1852, 0x1854, 0x1855, 0x1856, 0x1858, 0x1859, 0x185a, 0x1860, 0x1861, 0x1862, 0x1864, +// 0x1865, 0x1866, 0x1868, 0x1869, 0x186a, 0x1880, 0x1881, 0x1882, 0x1884, 0x1885, 0x1886, 0x1888, 0x1889, 0x188a, 0x1890, 0x1891, +// 0x1892, 0x1894, 0x1895, 0x1896, 0x1898, 0x1899, 0x189a, 0x18a0, 0x18a1, 0x18a2, 0x18a4, 0x18a5, 0x18a6, 0x18a8, 0x18a9, 0x18aa, +// 0x1900, 0x1901, 0x1902, 0x1904, 0x1905, 0x1906, 0x1908, 0x1909, 0x190a, 0x1910, 0x1911, 0x1912, 0x1914, 0x1915, 0x1916, 0x1918, +// 0x1919, 0x191a, 0x1920, 0x1921, 0x1922, 0x1924, 0x1925, 0x1926, 0x1928, 0x1929, 0x192a, 0x1940, 0x1941, 0x1942, 0x1944, 0x1945, +// 0x1946, 0x1948, 0x1949, 0x194a, 0x1950, 0x1951, 0x1952, 0x1954, 0x1955, 0x1956, 0x1958, 0x1959, 0x195a, 0x1960, 0x1961, 0x1962, +// 0x1964, 0x1965, 0x1966, 0x1968, 0x1969, 0x196a, 0x1980, 0x1981, 0x1982, 0x1984, 0x1985, 0x1986, 0x1988, 0x1989, 0x198a, 0x1990, +// 0x1991, 0x1992, 0x1994, 0x1995, 0x1996, 0x1998, 0x1999, 0x199a, 0x19a0, 0x19a1, 0x19a2, 0x19a4, 0x19a5, 0x19a6, 0x19a8, 0x19a9, +// 0x19aa, 0x1a00, 0x1a01, 0x1a02, 0x1a04, 0x1a05, 0x1a06, 0x1a08, 0x1a09, 0x1a0a, 0x1a10, 0x1a11, 0x1a12, 0x1a14, 0x1a15, 0x1a16, +// 0x1a18, 0x1a19, 0x1a1a, 0x1a20, 0x1a21, 0x1a22, 0x1a24, 0x1a25, 0x1a26, 0x1a28, 0x1a29, 0x1a2a, 0x1a40, 0x1a41, 0x1a42, 0x1a44, +// 0x1a45, 0x1a46, 0x1a48, 0x1a49, 0x1a4a, 0x1a50, 0x1a51, 0x1a52, 0x1a54, 0x1a55, 0x1a56, 0x1a58, 0x1a59, 0x1a5a, 0x1a60, 0x1a61, +// 0x1a62, 0x1a64, 0x1a65, 0x1a66, 0x1a68, 0x1a69, 0x1a6a, 0x1a80, 0x1a81, 0x1a82, 0x1a84, 0x1a85, 0x1a86, 0x1a88, 0x1a89, 0x1a8a, +// 0x1a90, 0x1a91, 0x1a92, 0x1a94, 0x1a95, 0x1a96, 0x1a98, 0x1a99, 0x1a9a, 0x1aa0, 0x1aa1, 0x1aa2, 0x1aa4, 0x1aa5, 0x1aa6, 0x1aa8, +// 0x1aa9, 0x1aaa, 0x2000, 0x2001, 0x2002, 0x2004, 0x2005, 0x2006, 0x2008, 0x2009, 0x200a, 0x2010, 0x2011, 0x2012, 0x2014, 0x2015, +// 0x2016, 0x2018, 0x2019, 0x201a, 0x2020, 0x2021, 0x2022, 0x2024, 0x2025, 0x2026, 0x2028, 0x2029, 0x202a, 0x2040, 0x2041, 0x2042, +// 0x2044, 0x2045, 0x2046, 0x2048, 0x2049, 0x204a, 0x2050, 0x2051, 0x2052, 0x2054, 0x2055, 0x2056, 0x2058, 0x2059, 0x205a, 0x2060, +// 0x2061, 0x2062, 0x2064, 0x2065, 0x2066, 0x2068, 0x2069, 0x206a, 0x2080, 0x2081, 0x2082, 0x2084, 0x2085, 0x2086, 0x2088, 0x2089, +// 0x208a, 0x2090, 0x2091, 0x2092, 0x2094, 0x2095, 0x2096, 0x2098, 0x2099, 0x209a, 0x20a0, 0x20a1, 0x20a2, 0x20a4, 0x20a5, 0x20a6, +// 0x20a8, 0x20a9, 0x20aa, 0x2100, 0x2101, 0x2102, 0x2104, 0x2105, 0x2106, 0x2108, 0x2109, 0x210a, 0x2110, 0x2111, 0x2112, 0x2114, +// 0x2115, 0x2116, 0x2118, 0x2119, 0x211a, 0x2120, 0x2121, 0x2122, 0x2124, 0x2125, 0x2126, 0x2128, 0x2129, 0x212a, 0x2140, 0x2141, +// 0x2142, 0x2144, 0x2145, 0x2146, 0x2148, 0x2149, 0x214a, 0x2150, 0x2151, 0x2152, 0x2154, 0x2155, 0x2156, 0x2158, 0x2159, 0x215a, +// 0x2160, 0x2161, 0x2162, 0x2164, 0x2165, 0x2166, 0x2168, 0x2169, 0x216a, 0x2180, 0x2181, 0x2182, 0x2184, 0x2185, 0x2186, 0x2188, +// 0x2189, 0x218a, 0x2190, 0x2191, 0x2192, 0x2194, 0x2195, 0x2196, 0x2198, 0x2199, 0x219a, 0x21a0, 0x21a1, 0x21a2, 0x21a4, 0x21a5, +// 0x21a6, 0x21a8, 0x21a9, 0x21aa, 0x2200, 0x2201, 0x2202, 0x2204, 0x2205, 0x2206, 0x2208, 0x2209, 0x220a, 0x2210, 0x2211, 0x2212, +// 0x2214, 0x2215, 0x2216, 0x2218, 0x2219, 0x221a, 0x2220, 0x2221, 0x2222, 0x2224, 0x2225, 0x2226, 0x2228, 0x2229, 0x222a, 0x2240, +// 0x2241, 0x2242, 0x2244, 0x2245, 0x2246, 0x2248, 0x2249, 0x224a, 0x2250, 0x2251, 0x2252, 0x2254, 0x2255, 0x2256, 0x2258, 0x2259, +// 0x225a, 0x2260, 0x2261, 0x2262, 0x2264, 0x2265, 0x2266, 0x2268, 0x2269, 0x226a, 0x2280, 0x2281, 0x2282, 0x2284, 0x2285, 0x2286, +// 0x2288, 0x2289, 0x228a, 0x2290, 0x2291, 0x2292, 0x2294, 0x2295, 0x2296, 0x2298, 0x2299, 0x229a, 0x22a0, 0x22a1, 0x22a2, 0x22a4, +// 0x22a5, 0x22a6, 0x22a8, 0x22a9, 0x22aa, 0x2400, 0x2401, 0x2402, 0x2404, 0x2405, 0x2406, 0x2408, 0x2409, 0x240a, 0x2410, 0x2411, +// 0x2412, 0x2414, 0x2415, 0x2416, 0x2418, 0x2419, 0x241a, 0x2420, 0x2421, 0x2422, 0x2424, 0x2425, 0x2426, 0x2428, 0x2429, 0x242a, +// 0x2440, 0x2441, 0x2442, 0x2444, 0x2445, 0x2446, 0x2448, 0x2449, 0x244a, 0x2450, 0x2451, 0x2452, 0x2454, 0x2455, 0x2456, 0x2458, +// 0x2459, 0x245a, 0x2460, 0x2461, 0x2462, 0x2464, 0x2465, 0x2466, 0x2468, 0x2469, 0x246a, 0x2480, 0x2481, 0x2482, 0x2484, 0x2485, +// 0x2486, 0x2488, 0x2489, 0x248a, 0x2490, 0x2491, 0x2492, 0x2494, 0x2495, 0x2496, 0x2498, 0x2499, 0x249a, 0x24a0, 0x24a1, 0x24a2, +// 0x24a4, 0x24a5, 0x24a6, 0x24a8, 0x24a9, 0x24aa, 0x2500, 0x2501, 0x2502, 0x2504, 0x2505, 0x2506, 0x2508, 0x2509, 0x250a, 0x2510, +// 0x2511, 0x2512, 0x2514, 0x2515, 0x2516, 0x2518, 0x2519, 0x251a, 0x2520, 0x2521, 0x2522, 0x2524, 0x2525, 0x2526, 0x2528, 0x2529, +// 0x252a, 0x2540, 0x2541, 0x2542, 0x2544, 0x2545, 0x2546, 0x2548, 0x2549, 0x254a, 0x2550, 0x2551, 0x2552, 0x2554, 0x2555, 0x2556, +// 0x2558, 0x2559, 0x255a, 0x2560, 0x2561, 0x2562, 0x2564, 0x2565, 0x2566, 0x2568, 0x2569, 0x256a, 0x2580, 0x2581, 0x2582, 0x2584, +// 0x2585, 0x2586, 0x2588, 0x2589, 0x258a, 0x2590, 0x2591, 0x2592, 0x2594, 0x2595, 0x2596, 0x2598, 0x2599, 0x259a, 0x25a0, 0x25a1, +// 0x25a2, 0x25a4, 0x25a5, 0x25a6, 0x25a8, 0x25a9, 0x25aa, 0x2600, 0x2601, 0x2602, 0x2604, 0x2605, 0x2606, 0x2608, 0x2609, 0x260a, +// 0x2610, 0x2611, 0x2612, 0x2614, 0x2615, 0x2616, 0x2618, 0x2619, 0x261a, 0x2620, 0x2621, 0x2622, 0x2624, 0x2625, 0x2626, 0x2628, +// 0x2629, 0x262a, 0x2640, 0x2641, 0x2642, 0x2644, 0x2645, 0x2646, 0x2648, 0x2649, 0x264a, 0x2650, 0x2651, 0x2652, 0x2654, 0x2655, +// 0x2656, 0x2658, 0x2659, 0x265a, 0x2660, 0x2661, 0x2662, 0x2664, 0x2665, 0x2666, 0x2668, 0x2669, 0x266a, 0x2680, 0x2681, 0x2682, +// 0x2684, 0x2685, 0x2686, 0x2688, 0x2689, 0x268a, 0x2690, 0x2691, 0x2692, 0x2694, 0x2695, 0x2696, 0x2698, 0x2699, 0x269a, 0x26a0, +// 0x26a1, 0x26a2, 0x26a4, 0x26a5, 0x26a6, 0x26a8, 0x26a9, 0x26aa, 0x2800, 0x2801, 0x2802, 0x2804, 0x2805, 0x2806, 0x2808, 0x2809, +// 0x280a, 0x2810, 0x2811, 0x2812, 0x2814, 0x2815, 0x2816, 0x2818, 0x2819, 0x281a, 0x2820, 0x2821, 0x2822, 0x2824, 0x2825, 0x2826, +// 0x2828, 0x2829, 0x282a, 0x2840, 0x2841, 0x2842, 0x2844, 0x2845, 0x2846, 0x2848, 0x2849, 0x284a, 0x2850, 0x2851, 0x2852, 0x2854, +// 0x2855, 0x2856, 0x2858, 0x2859, 0x285a, 0x2860, 0x2861, 0x2862, 0x2864, 0x2865, 0x2866, 0x2868, 0x2869, 0x286a, 0x2880, 0x2881, +// 0x2882, 0x2884, 0x2885, 0x2886, 0x2888, 0x2889, 0x288a, 0x2890, 0x2891, 0x2892, 0x2894, 0x2895, 0x2896, 0x2898, 0x2899, 0x289a, +// 0x28a0, 0x28a1, 0x28a2, 0x28a4, 0x28a5, 0x28a6, 0x28a8, 0x28a9, 0x28aa, 0x2900, 0x2901, 0x2902, 0x2904, 0x2905, 0x2906, 0x2908, +// 0x2909, 0x290a, 0x2910, 0x2911, 0x2912, 0x2914, 0x2915, 0x2916, 0x2918, 0x2919, 0x291a, 0x2920, 0x2921, 0x2922, 0x2924, 0x2925, +// 0x2926, 0x2928, 0x2929, 0x292a, 0x2940, 0x2941, 0x2942, 0x2944, 0x2945, 0x2946, 0x2948, 0x2949, 0x294a, 0x2950, 0x2951, 0x2952, +// 0x2954, 0x2955, 0x2956, 0x2958, 0x2959, 0x295a, 0x2960, 0x2961, 0x2962, 0x2964, 0x2965, 0x2966, 0x2968, 0x2969, 0x296a, 0x2980, +// 0x2981, 0x2982, 0x2984, 0x2985, 0x2986, 0x2988, 0x2989, 0x298a, 0x2990, 0x2991, 0x2992, 0x2994, 0x2995, 0x2996, 0x2998, 0x2999, +// 0x299a, 0x29a0, 0x29a1, 0x29a2, 0x29a4, 0x29a5, 0x29a6, 0x29a8, 0x29a9, 0x29aa, 0x2a00, 0x2a01, 0x2a02, 0x2a04, 0x2a05, 0x2a06, +// 0x2a08, 0x2a09, 0x2a0a, 0x2a10, 0x2a11, 0x2a12, 0x2a14, 0x2a15, 0x2a16, 0x2a18, 0x2a19, 0x2a1a, 0x2a20, 0x2a21, 0x2a22, 0x2a24, +// 0x2a25, 0x2a26, 0x2a28, 0x2a29, 0x2a2a, 0x2a40, 0x2a41, 0x2a42, 0x2a44, 0x2a45, 0x2a46, 0x2a48, 0x2a49, 0x2a4a, 0x2a50, 0x2a51, +// 0x2a52, 0x2a54, 0x2a55, 0x2a56, 0x2a58, 0x2a59, 0x2a5a, 0x2a60, 0x2a61, 0x2a62, 0x2a64, 0x2a65, 0x2a66, 0x2a68, 0x2a69, 0x2a6a, +// 0x2a80, 0x2a81, 0x2a82, 0x2a84, 0x2a85, 0x2a86, 0x2a88, 0x2a89, 0x2a8a, 0x2a90, 0x2a91, 0x2a92, 0x2a94, 0x2a95, 0x2a96, 0x2a98, +// 0x2a99, 0x2a9a, 0x2aa0, 0x2aa1, 0x2aa2, 0x2aa4, 0x2aa5, 0x2aa6, 0x2aa8, 0x2aa9, 0x2aaa, 0x4000, 0x4001, 0x4002, 0x4004, 0x4005, +// 0x4006, 0x4008, 0x4009, 0x400a, 0x4010, 0x4011, 0x4012, 0x4014, 0x4015, 0x4016, 0x4018, 0x4019, 0x401a, 0x4020, 0x4021, 0x4022, +// 0x4024, 0x4025, 0x4026, 0x4028, 0x4029, 0x402a, 0x4040, 0x4041, 0x4042, 0x4044, 0x4045, 0x4046, 0x4048, 0x4049, 0x404a, 0x4050, +// 0x4051, 0x4052, 0x4054, 0x4055, 0x4056, 0x4058, 0x4059, 0x405a, 0x4060, 0x4061, 0x4062, 0x4064, 0x4065, 0x4066, 0x4068, 0x4069, +// 0x406a, 0x4080, 0x4081, 0x4082, 0x4084, 0x4085, 0x4086, 0x4088, 0x4089, 0x408a, 0x4090, 0x4091, 0x4092, 0x4094, 0x4095, 0x4096, +// 0x4098, 0x4099, 0x409a, 0x40a0, 0x40a1, 0x40a2, 0x40a4, 0x40a5, 0x40a6, 0x40a8, 0x40a9, 0x40aa, 0x4100, 0x4101, 0x4102, 0x4104, +// 0x4105, 0x4106, 0x4108, 0x4109, 0x410a, 0x4110, 0x4111, 0x4112, 0x4114, 0x4115, 0x4116, 0x4118, 0x4119, 0x411a, 0x4120, 0x4121, +// 0x4122, 0x4124, 0x4125, 0x4126, 0x4128, 0x4129, 0x412a, 0x4140, 0x4141, 0x4142, 0x4144, 0x4145, 0x4146, 0x4148, 0x4149, 0x414a, +// 0x4150, 0x4151, 0x4152, 0x4154, 0x4155, 0x4156, 0x4158, 0x4159, 0x415a, 0x4160, 0x4161, 0x4162, 0x4164, 0x4165, 0x4166, 0x4168, +// 0x4169, 0x416a, 0x4180, 0x4181, 0x4182, 0x4184, 0x4185, 0x4186, 0x4188, 0x4189, 0x418a, 0x4190, 0x4191, 0x4192, 0x4194, 0x4195, +// 0x4196, 0x4198, 0x4199, 0x419a, 0x41a0, 0x41a1, 0x41a2, 0x41a4, 0x41a5, 0x41a6, 0x41a8, 0x41a9, 0x41aa, 0x4200, 0x4201, 0x4202, +// 0x4204, 0x4205, 0x4206, 0x4208, 0x4209, 0x420a, 0x4210, 0x4211, 0x4212, 0x4214, 0x4215, 0x4216, 0x4218, 0x4219, 0x421a, 0x4220, +// 0x4221, 0x4222, 0x4224, 0x4225, 0x4226, 0x4228, 0x4229, 0x422a, 0x4240, 0x4241, 0x4242, 0x4244, 0x4245, 0x4246, 0x4248, 0x4249, +// 0x424a, 0x4250, 0x4251, 0x4252, 0x4254, 0x4255, 0x4256, 0x4258, 0x4259, 0x425a, 0x4260, 0x4261, 0x4262, 0x4264, 0x4265, 0x4266, +// 0x4268, 0x4269, 0x426a, 0x4280, 0x4281, 0x4282, 0x4284, 0x4285, 0x4286, 0x4288, 0x4289, 0x428a, 0x4290, 0x4291, 0x4292, 0x4294, +// 0x4295, 0x4296, 0x4298, 0x4299, 0x429a, 0x42a0, 0x42a1, 0x42a2, 0x42a4, 0x42a5, 0x42a6, 0x42a8, 0x42a9, 0x42aa, 0x4400, 0x4401, +// 0x4402, 0x4404, 0x4405, 0x4406, 0x4408, 0x4409, 0x440a, 0x4410, 0x4411, 0x4412, 0x4414, 0x4415, 0x4416, 0x4418, 0x4419, 0x441a, +// 0x4420, 0x4421, 0x4422, 0x4424, 0x4425, 0x4426, 0x4428, 0x4429, 0x442a, 0x4440, 0x4441, 0x4442, 0x4444, 0x4445, 0x4446, 0x4448, +// 0x4449, 0x444a, 0x4450, 0x4451, 0x4452, 0x4454, 0x4455, 0x4456, 0x4458, 0x4459, 0x445a, 0x4460, 0x4461, 0x4462, 0x4464, 0x4465, +// 0x4466, 0x4468, 0x4469, 0x446a, 0x4480, 0x4481, 0x4482, 0x4484, 0x4485, 0x4486, 0x4488, 0x4489, 0x448a, 0x4490, 0x4491, 0x4492, +// 0x4494, 0x4495, 0x4496, 0x4498, 0x4499, 0x449a, 0x44a0, 0x44a1, 0x44a2, 0x44a4, 0x44a5, 0x44a6, 0x44a8, 0x44a9, 0x44aa, 0x4500, +// 0x4501, 0x4502, 0x4504, 0x4505, 0x4506, 0x4508, 0x4509, 0x450a, 0x4510, 0x4511, 0x4512, 0x4514, 0x4515, 0x4516, 0x4518, 0x4519, +// 0x451a, 0x4520, 0x4521, 0x4522, 0x4524, 0x4525, 0x4526, 0x4528, 0x4529, 0x452a, 0x4540, 0x4541, 0x4542, 0x4544, 0x4545, 0x4546, +// 0x4548, 0x4549, 0x454a, 0x4550, 0x4551, 0x4552, 0x4554, 0x4555, 0x4556, 0x4558, 0x4559, 0x455a, 0x4560, 0x4561, 0x4562, 0x4564, +// 0x4565, 0x4566, 0x4568, 0x4569, 0x456a, 0x4580, 0x4581, 0x4582, 0x4584, 0x4585, 0x4586, 0x4588, 0x4589, 0x458a, 0x4590, 0x4591, +// 0x4592, 0x4594, 0x4595, 0x4596, 0x4598, 0x4599, 0x459a, 0x45a0, 0x45a1, 0x45a2, 0x45a4, 0x45a5, 0x45a6, 0x45a8, 0x45a9, 0x45aa, +// 0x4600, 0x4601, 0x4602, 0x4604, 0x4605, 0x4606, 0x4608, 0x4609, 0x460a, 0x4610, 0x4611, 0x4612, 0x4614, 0x4615, 0x4616, 0x4618, +// 0x4619, 0x461a, 0x4620, 0x4621, 0x4622, 0x4624, 0x4625, 0x4626, 0x4628, 0x4629, 0x462a, 0x4640, 0x4641, 0x4642, 0x4644, 0x4645, +// 0x4646, 0x4648, 0x4649, 0x464a, 0x4650, 0x4651, 0x4652, 0x4654, 0x4655, 0x4656, 0x4658, 0x4659, 0x465a, 0x4660, 0x4661, 0x4662, +// 0x4664, 0x4665, 0x4666, 0x4668, 0x4669, 0x466a, 0x4680, 0x4681, 0x4682, 0x4684, 0x4685, 0x4686, 0x4688, 0x4689, 0x468a, 0x4690, +// 0x4691, 0x4692, 0x4694, 0x4695, 0x4696, 0x4698, 0x4699, 0x469a, 0x46a0, 0x46a1, 0x46a2, 0x46a4, 0x46a5, 0x46a6, 0x46a8, 0x46a9, +// 0x46aa, 0x4800, 0x4801, 0x4802, 0x4804, 0x4805, 0x4806, 0x4808, 0x4809, 0x480a, 0x4810, 0x4811, 0x4812, 0x4814, 0x4815, 0x4816, +// 0x4818, 0x4819, 0x481a, 0x4820, 0x4821, 0x4822, 0x4824, 0x4825, 0x4826, 0x4828, 0x4829, 0x482a, 0x4840, 0x4841, 0x4842, 0x4844, +// 0x4845, 0x4846, 0x4848, 0x4849, 0x484a, 0x4850, 0x4851, 0x4852, 0x4854, 0x4855, 0x4856, 0x4858, 0x4859, 0x485a, 0x4860, 0x4861, +// 0x4862, 0x4864, 0x4865, 0x4866, 0x4868, 0x4869, 0x486a, 0x4880, 0x4881, 0x4882, 0x4884, 0x4885, 0x4886, 0x4888, 0x4889, 0x488a, +// 0x4890, 0x4891, 0x4892, 0x4894, 0x4895, 0x4896, 0x4898, 0x4899, 0x489a, 0x48a0, 0x48a1, 0x48a2, 0x48a4, 0x48a5, 0x48a6, 0x48a8, +// 0x48a9, 0x48aa, 0x4900, 0x4901, 0x4902, 0x4904, 0x4905, 0x4906, 0x4908, 0x4909, 0x490a, 0x4910, 0x4911, 0x4912, 0x4914, 0x4915, +// 0x4916, 0x4918, 0x4919, 0x491a, 0x4920, 0x4921, 0x4922, 0x4924, 0x4925, 0x4926, 0x4928, 0x4929, 0x492a, 0x4940, 0x4941, 0x4942, +// 0x4944, 0x4945, 0x4946, 0x4948, 0x4949, 0x494a, 0x4950, 0x4951, 0x4952, 0x4954, 0x4955, 0x4956, 0x4958, 0x4959, 0x495a, 0x4960, +// 0x4961, 0x4962, 0x4964, 0x4965, 0x4966, 0x4968, 0x4969, 0x496a, 0x4980, 0x4981, 0x4982, 0x4984, 0x4985, 0x4986, 0x4988, 0x4989, +// 0x498a, 0x4990, 0x4991, 0x4992, 0x4994, 0x4995, 0x4996, 0x4998, 0x4999, 0x499a, 0x49a0, 0x49a1, 0x49a2, 0x49a4, 0x49a5, 0x49a6, +// 0x49a8, 0x49a9, 0x49aa, 0x4a00, 0x4a01, 0x4a02, 0x4a04, 0x4a05, 0x4a06, 0x4a08, 0x4a09, 0x4a0a, 0x4a10, 0x4a11, 0x4a12, 0x4a14, +// 0x4a15, 0x4a16, 0x4a18, 0x4a19, 0x4a1a, 0x4a20, 0x4a21, 0x4a22, 0x4a24, 0x4a25, 0x4a26, 0x4a28, 0x4a29, 0x4a2a, 0x4a40, 0x4a41, +// 0x4a42, 0x4a44, 0x4a45, 0x4a46, 0x4a48, 0x4a49, 0x4a4a, 0x4a50, 0x4a51, 0x4a52, 0x4a54, 0x4a55, 0x4a56, 0x4a58, 0x4a59, 0x4a5a, +// 0x4a60, 0x4a61, 0x4a62, 0x4a64, 0x4a65, 0x4a66, 0x4a68, 0x4a69, 0x4a6a, 0x4a80, 0x4a81, 0x4a82, 0x4a84, 0x4a85, 0x4a86, 0x4a88, +// 0x4a89, 0x4a8a, 0x4a90, 0x4a91, 0x4a92, 0x4a94, 0x4a95, 0x4a96, 0x4a98, 0x4a99, 0x4a9a, 0x4aa0, 0x4aa1, 0x4aa2, 0x4aa4, 0x4aa5, +// 0x4aa6, 0x4aa8, 0x4aa9, 0x4aaa, 0x5000, 0x5001, 0x5002, 0x5004, 0x5005, 0x5006, 0x5008, 0x5009, 0x500a, 0x5010, 0x5011, 0x5012, +// 0x5014, 0x5015, 0x5016, 0x5018, 0x5019, 0x501a, 0x5020, 0x5021, 0x5022, 0x5024, 0x5025, 0x5026, 0x5028, 0x5029, 0x502a, 0x5040, +// 0x5041, 0x5042, 0x5044, 0x5045, 0x5046, 0x5048, 0x5049, 0x504a, 0x5050, 0x5051, 0x5052, 0x5054, 0x5055, 0x5056, 0x5058, 0x5059, +// 0x505a, 0x5060, 0x5061, 0x5062, 0x5064, 0x5065, 0x5066, 0x5068, 0x5069, 0x506a, 0x5080, 0x5081, 0x5082, 0x5084, 0x5085, 0x5086, +// 0x5088, 0x5089, 0x508a, 0x5090, 0x5091, 0x5092, 0x5094, 0x5095, 0x5096, 0x5098, 0x5099, 0x509a, 0x50a0, 0x50a1, 0x50a2, 0x50a4, +// 0x50a5, 0x50a6, 0x50a8, 0x50a9, 0x50aa, 0x5100, 0x5101, 0x5102, 0x5104, 0x5105, 0x5106, 0x5108, 0x5109, 0x510a, 0x5110, 0x5111, +// 0x5112, 0x5114, 0x5115, 0x5116, 0x5118, 0x5119, 0x511a, 0x5120, 0x5121, 0x5122, 0x5124, 0x5125, 0x5126, 0x5128, 0x5129, 0x512a, +// 0x5140, 0x5141, 0x5142, 0x5144, 0x5145, 0x5146, 0x5148, 0x5149, 0x514a, 0x5150, 0x5151, 0x5152, 0x5154, 0x5155, 0x5156, 0x5158, +// 0x5159, 0x515a, 0x5160, 0x5161, 0x5162, 0x5164, 0x5165, 0x5166, 0x5168, 0x5169, 0x516a, 0x5180, 0x5181, 0x5182, 0x5184, 0x5185, +// 0x5186, 0x5188, 0x5189, 0x518a, 0x5190, 0x5191, 0x5192, 0x5194, 0x5195, 0x5196, 0x5198, 0x5199, 0x519a, 0x51a0, 0x51a1, 0x51a2, +// 0x51a4, 0x51a5, 0x51a6, 0x51a8, 0x51a9, 0x51aa, 0x5200, 0x5201, 0x5202, 0x5204, 0x5205, 0x5206, 0x5208, 0x5209, 0x520a, 0x5210, +// 0x5211, 0x5212, 0x5214, 0x5215, 0x5216, 0x5218, 0x5219, 0x521a, 0x5220, 0x5221, 0x5222, 0x5224, 0x5225, 0x5226, 0x5228, 0x5229, +// 0x522a, 0x5240, 0x5241, 0x5242, 0x5244, 0x5245, 0x5246, 0x5248, 0x5249, 0x524a, 0x5250, 0x5251, 0x5252, 0x5254, 0x5255, 0x5256, +// 0x5258, 0x5259, 0x525a, 0x5260, 0x5261, 0x5262, 0x5264, 0x5265, 0x5266, 0x5268, 0x5269, 0x526a, 0x5280, 0x5281, 0x5282, 0x5284, +// 0x5285, 0x5286, 0x5288, 0x5289, 0x528a, 0x5290, 0x5291, 0x5292, 0x5294, 0x5295, 0x5296, 0x5298, 0x5299, 0x529a, 0x52a0, 0x52a1, +// 0x52a2, 0x52a4, 0x52a5, 0x52a6, 0x52a8, 0x52a9, 0x52aa, 0x5400, 0x5401, 0x5402, 0x5404, 0x5405, 0x5406, 0x5408, 0x5409, 0x540a, +// 0x5410, 0x5411, 0x5412, 0x5414, 0x5415, 0x5416, 0x5418, 0x5419, 0x541a, 0x5420, 0x5421, 0x5422, 0x5424, 0x5425, 0x5426, 0x5428, +// 0x5429, 0x542a, 0x5440, 0x5441, 0x5442, 0x5444, 0x5445, 0x5446, 0x5448, 0x5449, 0x544a, 0x5450, 0x5451, 0x5452, 0x5454, 0x5455, +// 0x5456, 0x5458, 0x5459, 0x545a, 0x5460, 0x5461, 0x5462, 0x5464, 0x5465, 0x5466, 0x5468, 0x5469, 0x546a, 0x5480, 0x5481, 0x5482, +// 0x5484, 0x5485, 0x5486, 0x5488, 0x5489, 0x548a, 0x5490, 0x5491, 0x5492, 0x5494, 0x5495, 0x5496, 0x5498, 0x5499, 0x549a, 0x54a0, +// 0x54a1, 0x54a2, 0x54a4, 0x54a5, 0x54a6, 0x54a8, 0x54a9, 0x54aa, 0x5500, 0x5501, 0x5502, 0x5504, 0x5505, 0x5506, 0x5508, 0x5509, +// 0x550a, 0x5510, 0x5511, 0x5512, 0x5514, 0x5515, 0x5516, 0x5518, 0x5519, 0x551a, 0x5520, 0x5521, 0x5522, 0x5524, 0x5525, 0x5526, +// 0x5528, 0x5529, 0x552a, 0x5540, 0x5541, 0x5542, 0x5544, 0x5545, 0x5546, 0x5548, 0x5549, 0x554a, 0x5550, 0x5551, 0x5552, 0x5554, 0x5555, +//GGML_TABLE_END() GGML_TABLE_BEGIN(uint16_t, iq1bn_grid_xxx, 3281) 0xff00, 0xfe00, 0xfe01, 0xfd00, 0xfc00, 0xfc01, 0xfd02, 0xfc02, 0xfc03, 0xfb00, 0xfa00, 0xfa01, 0xf900, 0xf800, 0xf801, 0xf902, @@ -2263,5 +2263,214 @@ GGML_TABLE_BEGIN(uint16_t, iq1bn_grid_xxx, 3281) 0x0906, 0x0806, 0x0807, 0x0700, 0x0600, 0x0601, 0x0500, 0x0400, 0x0401, 0x0502, 0x0402, 0x0403, 0x0300, 0x0200, 0x0201, 0x0100, 0x0000, GGML_TABLE_END() +GGML_TABLE_BEGIN(uint16_t, iq1bn_grid_zzz, 3281) + 0x0000, 0x0001, 0x0002, 0x0100, 0x0101, 0x0102, 0x0200, 0x0201, 0x0202, 0x0004, 0x0005, 0x0006, 0x0104, 0x0105, 0x0106, 0x0204, + 0x0205, 0x0206, 0x0008, 0x0009, 0x000a, 0x0108, 0x0109, 0x010a, 0x0208, 0x0209, 0x020a, 0x0400, 0x0401, 0x0402, 0x0500, 0x0501, + 0x0502, 0x0600, 0x0601, 0x0602, 0x0404, 0x0405, 0x0406, 0x0504, 0x0505, 0x0506, 0x0604, 0x0605, 0x0606, 0x0408, 0x0409, 0x040a, + 0x0508, 0x0509, 0x050a, 0x0608, 0x0609, 0x060a, 0x0800, 0x0801, 0x0802, 0x0900, 0x0901, 0x0902, 0x0a00, 0x0a01, 0x0a02, 0x0804, + 0x0805, 0x0806, 0x0904, 0x0905, 0x0906, 0x0a04, 0x0a05, 0x0a06, 0x0808, 0x0809, 0x080a, 0x0908, 0x0909, 0x090a, 0x0a08, 0x0a09, + 0x0a0a, 0x0010, 0x0011, 0x0012, 0x0110, 0x0111, 0x0112, 0x0210, 0x0211, 0x0212, 0x0014, 0x0015, 0x0016, 0x0114, 0x0115, 0x0116, + 0x0214, 0x0215, 0x0216, 0x0018, 0x0019, 0x001a, 0x0118, 0x0119, 0x011a, 0x0218, 0x0219, 0x021a, 0x0410, 0x0411, 0x0412, 0x0510, + 0x0511, 0x0512, 0x0610, 0x0611, 0x0612, 0x0414, 0x0415, 0x0416, 0x0514, 0x0515, 0x0516, 0x0614, 0x0615, 0x0616, 0x0418, 0x0419, + 0x041a, 0x0518, 0x0519, 0x051a, 0x0618, 0x0619, 0x061a, 0x0810, 0x0811, 0x0812, 0x0910, 0x0911, 0x0912, 0x0a10, 0x0a11, 0x0a12, + 0x0814, 0x0815, 0x0816, 0x0914, 0x0915, 0x0916, 0x0a14, 0x0a15, 0x0a16, 0x0818, 0x0819, 0x081a, 0x0918, 0x0919, 0x091a, 0x0a18, + 0x0a19, 0x0a1a, 0x0020, 0x0021, 0x0022, 0x0120, 0x0121, 0x0122, 0x0220, 0x0221, 0x0222, 0x0024, 0x0025, 0x0026, 0x0124, 0x0125, + 0x0126, 0x0224, 0x0225, 0x0226, 0x0028, 0x0029, 0x002a, 0x0128, 0x0129, 0x012a, 0x0228, 0x0229, 0x022a, 0x0420, 0x0421, 0x0422, + 0x0520, 0x0521, 0x0522, 0x0620, 0x0621, 0x0622, 0x0424, 0x0425, 0x0426, 0x0524, 0x0525, 0x0526, 0x0624, 0x0625, 0x0626, 0x0428, + 0x0429, 0x042a, 0x0528, 0x0529, 0x052a, 0x0628, 0x0629, 0x062a, 0x0820, 0x0821, 0x0822, 0x0920, 0x0921, 0x0922, 0x0a20, 0x0a21, + 0x0a22, 0x0824, 0x0825, 0x0826, 0x0924, 0x0925, 0x0926, 0x0a24, 0x0a25, 0x0a26, 0x0828, 0x0829, 0x082a, 0x0928, 0x0929, 0x092a, + 0x0a28, 0x0a29, 0x0a2a, 0x1000, 0x1001, 0x1002, 0x1100, 0x1101, 0x1102, 0x1200, 0x1201, 0x1202, 0x1004, 0x1005, 0x1006, 0x1104, + 0x1105, 0x1106, 0x1204, 0x1205, 0x1206, 0x1008, 0x1009, 0x100a, 0x1108, 0x1109, 0x110a, 0x1208, 0x1209, 0x120a, 0x1400, 0x1401, + 0x1402, 0x1500, 0x1501, 0x1502, 0x1600, 0x1601, 0x1602, 0x1404, 0x1405, 0x1406, 0x1504, 0x1505, 0x1506, 0x1604, 0x1605, 0x1606, + 0x1408, 0x1409, 0x140a, 0x1508, 0x1509, 0x150a, 0x1608, 0x1609, 0x160a, 0x1800, 0x1801, 0x1802, 0x1900, 0x1901, 0x1902, 0x1a00, + 0x1a01, 0x1a02, 0x1804, 0x1805, 0x1806, 0x1904, 0x1905, 0x1906, 0x1a04, 0x1a05, 0x1a06, 0x1808, 0x1809, 0x180a, 0x1908, 0x1909, + 0x190a, 0x1a08, 0x1a09, 0x1a0a, 0x1010, 0x1011, 0x1012, 0x1110, 0x1111, 0x1112, 0x1210, 0x1211, 0x1212, 0x1014, 0x1015, 0x1016, + 0x1114, 0x1115, 0x1116, 0x1214, 0x1215, 0x1216, 0x1018, 0x1019, 0x101a, 0x1118, 0x1119, 0x111a, 0x1218, 0x1219, 0x121a, 0x1410, + 0x1411, 0x1412, 0x1510, 0x1511, 0x1512, 0x1610, 0x1611, 0x1612, 0x1414, 0x1415, 0x1416, 0x1514, 0x1515, 0x1516, 0x1614, 0x1615, + 0x1616, 0x1418, 0x1419, 0x141a, 0x1518, 0x1519, 0x151a, 0x1618, 0x1619, 0x161a, 0x1810, 0x1811, 0x1812, 0x1910, 0x1911, 0x1912, + 0x1a10, 0x1a11, 0x1a12, 0x1814, 0x1815, 0x1816, 0x1914, 0x1915, 0x1916, 0x1a14, 0x1a15, 0x1a16, 0x1818, 0x1819, 0x181a, 0x1918, + 0x1919, 0x191a, 0x1a18, 0x1a19, 0x1a1a, 0x1020, 0x1021, 0x1022, 0x1120, 0x1121, 0x1122, 0x1220, 0x1221, 0x1222, 0x1024, 0x1025, + 0x1026, 0x1124, 0x1125, 0x1126, 0x1224, 0x1225, 0x1226, 0x1028, 0x1029, 0x102a, 0x1128, 0x1129, 0x112a, 0x1228, 0x1229, 0x122a, + 0x1420, 0x1421, 0x1422, 0x1520, 0x1521, 0x1522, 0x1620, 0x1621, 0x1622, 0x1424, 0x1425, 0x1426, 0x1524, 0x1525, 0x1526, 0x1624, + 0x1625, 0x1626, 0x1428, 0x1429, 0x142a, 0x1528, 0x1529, 0x152a, 0x1628, 0x1629, 0x162a, 0x1820, 0x1821, 0x1822, 0x1920, 0x1921, + 0x1922, 0x1a20, 0x1a21, 0x1a22, 0x1824, 0x1825, 0x1826, 0x1924, 0x1925, 0x1926, 0x1a24, 0x1a25, 0x1a26, 0x1828, 0x1829, 0x182a, + 0x1928, 0x1929, 0x192a, 0x1a28, 0x1a29, 0x1a2a, 0x2000, 0x2001, 0x2002, 0x2100, 0x2101, 0x2102, 0x2200, 0x2201, 0x2202, 0x2004, + 0x2005, 0x2006, 0x2104, 0x2105, 0x2106, 0x2204, 0x2205, 0x2206, 0x2008, 0x2009, 0x200a, 0x2108, 0x2109, 0x210a, 0x2208, 0x2209, + 0x220a, 0x2400, 0x2401, 0x2402, 0x2500, 0x2501, 0x2502, 0x2600, 0x2601, 0x2602, 0x2404, 0x2405, 0x2406, 0x2504, 0x2505, 0x2506, + 0x2604, 0x2605, 0x2606, 0x2408, 0x2409, 0x240a, 0x2508, 0x2509, 0x250a, 0x2608, 0x2609, 0x260a, 0x2800, 0x2801, 0x2802, 0x2900, + 0x2901, 0x2902, 0x2a00, 0x2a01, 0x2a02, 0x2804, 0x2805, 0x2806, 0x2904, 0x2905, 0x2906, 0x2a04, 0x2a05, 0x2a06, 0x2808, 0x2809, + 0x280a, 0x2908, 0x2909, 0x290a, 0x2a08, 0x2a09, 0x2a0a, 0x2010, 0x2011, 0x2012, 0x2110, 0x2111, 0x2112, 0x2210, 0x2211, 0x2212, + 0x2014, 0x2015, 0x2016, 0x2114, 0x2115, 0x2116, 0x2214, 0x2215, 0x2216, 0x2018, 0x2019, 0x201a, 0x2118, 0x2119, 0x211a, 0x2218, + 0x2219, 0x221a, 0x2410, 0x2411, 0x2412, 0x2510, 0x2511, 0x2512, 0x2610, 0x2611, 0x2612, 0x2414, 0x2415, 0x2416, 0x2514, 0x2515, + 0x2516, 0x2614, 0x2615, 0x2616, 0x2418, 0x2419, 0x241a, 0x2518, 0x2519, 0x251a, 0x2618, 0x2619, 0x261a, 0x2810, 0x2811, 0x2812, + 0x2910, 0x2911, 0x2912, 0x2a10, 0x2a11, 0x2a12, 0x2814, 0x2815, 0x2816, 0x2914, 0x2915, 0x2916, 0x2a14, 0x2a15, 0x2a16, 0x2818, + 0x2819, 0x281a, 0x2918, 0x2919, 0x291a, 0x2a18, 0x2a19, 0x2a1a, 0x2020, 0x2021, 0x2022, 0x2120, 0x2121, 0x2122, 0x2220, 0x2221, + 0x2222, 0x2024, 0x2025, 0x2026, 0x2124, 0x2125, 0x2126, 0x2224, 0x2225, 0x2226, 0x2028, 0x2029, 0x202a, 0x2128, 0x2129, 0x212a, + 0x2228, 0x2229, 0x222a, 0x2420, 0x2421, 0x2422, 0x2520, 0x2521, 0x2522, 0x2620, 0x2621, 0x2622, 0x2424, 0x2425, 0x2426, 0x2524, + 0x2525, 0x2526, 0x2624, 0x2625, 0x2626, 0x2428, 0x2429, 0x242a, 0x2528, 0x2529, 0x252a, 0x2628, 0x2629, 0x262a, 0x2820, 0x2821, + 0x2822, 0x2920, 0x2921, 0x2922, 0x2a20, 0x2a21, 0x2a22, 0x2824, 0x2825, 0x2826, 0x2924, 0x2925, 0x2926, 0x2a24, 0x2a25, 0x2a26, + 0x2828, 0x2829, 0x282a, 0x2928, 0x2929, 0x292a, 0x2a28, 0x2a29, 0x2a2a, 0x0040, 0x0041, 0x0042, 0x0140, 0x0141, 0x0142, 0x0240, + 0x0241, 0x0242, 0x0044, 0x0045, 0x0046, 0x0144, 0x0145, 0x0146, 0x0244, 0x0245, 0x0246, 0x0048, 0x0049, 0x004a, 0x0148, 0x0149, + 0x014a, 0x0248, 0x0249, 0x024a, 0x0440, 0x0441, 0x0442, 0x0540, 0x0541, 0x0542, 0x0640, 0x0641, 0x0642, 0x0444, 0x0445, 0x0446, + 0x0544, 0x0545, 0x0546, 0x0644, 0x0645, 0x0646, 0x0448, 0x0449, 0x044a, 0x0548, 0x0549, 0x054a, 0x0648, 0x0649, 0x064a, 0x0840, + 0x0841, 0x0842, 0x0940, 0x0941, 0x0942, 0x0a40, 0x0a41, 0x0a42, 0x0844, 0x0845, 0x0846, 0x0944, 0x0945, 0x0946, 0x0a44, 0x0a45, + 0x0a46, 0x0848, 0x0849, 0x084a, 0x0948, 0x0949, 0x094a, 0x0a48, 0x0a49, 0x0a4a, 0x0050, 0x0051, 0x0052, 0x0150, 0x0151, 0x0152, + 0x0250, 0x0251, 0x0252, 0x0054, 0x0055, 0x0056, 0x0154, 0x0155, 0x0156, 0x0254, 0x0255, 0x0256, 0x0058, 0x0059, 0x005a, 0x0158, + 0x0159, 0x015a, 0x0258, 0x0259, 0x025a, 0x0450, 0x0451, 0x0452, 0x0550, 0x0551, 0x0552, 0x0650, 0x0651, 0x0652, 0x0454, 0x0455, + 0x0456, 0x0554, 0x0555, 0x0556, 0x0654, 0x0655, 0x0656, 0x0458, 0x0459, 0x045a, 0x0558, 0x0559, 0x055a, 0x0658, 0x0659, 0x065a, + 0x0850, 0x0851, 0x0852, 0x0950, 0x0951, 0x0952, 0x0a50, 0x0a51, 0x0a52, 0x0854, 0x0855, 0x0856, 0x0954, 0x0955, 0x0956, 0x0a54, + 0x0a55, 0x0a56, 0x0858, 0x0859, 0x085a, 0x0958, 0x0959, 0x095a, 0x0a58, 0x0a59, 0x0a5a, 0x0060, 0x0061, 0x0062, 0x0160, 0x0161, + 0x0162, 0x0260, 0x0261, 0x0262, 0x0064, 0x0065, 0x0066, 0x0164, 0x0165, 0x0166, 0x0264, 0x0265, 0x0266, 0x0068, 0x0069, 0x006a, + 0x0168, 0x0169, 0x016a, 0x0268, 0x0269, 0x026a, 0x0460, 0x0461, 0x0462, 0x0560, 0x0561, 0x0562, 0x0660, 0x0661, 0x0662, 0x0464, + 0x0465, 0x0466, 0x0564, 0x0565, 0x0566, 0x0664, 0x0665, 0x0666, 0x0468, 0x0469, 0x046a, 0x0568, 0x0569, 0x056a, 0x0668, 0x0669, + 0x066a, 0x0860, 0x0861, 0x0862, 0x0960, 0x0961, 0x0962, 0x0a60, 0x0a61, 0x0a62, 0x0864, 0x0865, 0x0866, 0x0964, 0x0965, 0x0966, + 0x0a64, 0x0a65, 0x0a66, 0x0868, 0x0869, 0x086a, 0x0968, 0x0969, 0x096a, 0x0a68, 0x0a69, 0x0a6a, 0x1040, 0x1041, 0x1042, 0x1140, + 0x1141, 0x1142, 0x1240, 0x1241, 0x1242, 0x1044, 0x1045, 0x1046, 0x1144, 0x1145, 0x1146, 0x1244, 0x1245, 0x1246, 0x1048, 0x1049, + 0x104a, 0x1148, 0x1149, 0x114a, 0x1248, 0x1249, 0x124a, 0x1440, 0x1441, 0x1442, 0x1540, 0x1541, 0x1542, 0x1640, 0x1641, 0x1642, + 0x1444, 0x1445, 0x1446, 0x1544, 0x1545, 0x1546, 0x1644, 0x1645, 0x1646, 0x1448, 0x1449, 0x144a, 0x1548, 0x1549, 0x154a, 0x1648, + 0x1649, 0x164a, 0x1840, 0x1841, 0x1842, 0x1940, 0x1941, 0x1942, 0x1a40, 0x1a41, 0x1a42, 0x1844, 0x1845, 0x1846, 0x1944, 0x1945, + 0x1946, 0x1a44, 0x1a45, 0x1a46, 0x1848, 0x1849, 0x184a, 0x1948, 0x1949, 0x194a, 0x1a48, 0x1a49, 0x1a4a, 0x1050, 0x1051, 0x1052, + 0x1150, 0x1151, 0x1152, 0x1250, 0x1251, 0x1252, 0x1054, 0x1055, 0x1056, 0x1154, 0x1155, 0x1156, 0x1254, 0x1255, 0x1256, 0x1058, + 0x1059, 0x105a, 0x1158, 0x1159, 0x115a, 0x1258, 0x1259, 0x125a, 0x1450, 0x1451, 0x1452, 0x1550, 0x1551, 0x1552, 0x1650, 0x1651, + 0x1652, 0x1454, 0x1455, 0x1456, 0x1554, 0x1555, 0x1556, 0x1654, 0x1655, 0x1656, 0x1458, 0x1459, 0x145a, 0x1558, 0x1559, 0x155a, + 0x1658, 0x1659, 0x165a, 0x1850, 0x1851, 0x1852, 0x1950, 0x1951, 0x1952, 0x1a50, 0x1a51, 0x1a52, 0x1854, 0x1855, 0x1856, 0x1954, + 0x1955, 0x1956, 0x1a54, 0x1a55, 0x1a56, 0x1858, 0x1859, 0x185a, 0x1958, 0x1959, 0x195a, 0x1a58, 0x1a59, 0x1a5a, 0x1060, 0x1061, + 0x1062, 0x1160, 0x1161, 0x1162, 0x1260, 0x1261, 0x1262, 0x1064, 0x1065, 0x1066, 0x1164, 0x1165, 0x1166, 0x1264, 0x1265, 0x1266, + 0x1068, 0x1069, 0x106a, 0x1168, 0x1169, 0x116a, 0x1268, 0x1269, 0x126a, 0x1460, 0x1461, 0x1462, 0x1560, 0x1561, 0x1562, 0x1660, + 0x1661, 0x1662, 0x1464, 0x1465, 0x1466, 0x1564, 0x1565, 0x1566, 0x1664, 0x1665, 0x1666, 0x1468, 0x1469, 0x146a, 0x1568, 0x1569, + 0x156a, 0x1668, 0x1669, 0x166a, 0x1860, 0x1861, 0x1862, 0x1960, 0x1961, 0x1962, 0x1a60, 0x1a61, 0x1a62, 0x1864, 0x1865, 0x1866, + 0x1964, 0x1965, 0x1966, 0x1a64, 0x1a65, 0x1a66, 0x1868, 0x1869, 0x186a, 0x1968, 0x1969, 0x196a, 0x1a68, 0x1a69, 0x1a6a, 0x2040, + 0x2041, 0x2042, 0x2140, 0x2141, 0x2142, 0x2240, 0x2241, 0x2242, 0x2044, 0x2045, 0x2046, 0x2144, 0x2145, 0x2146, 0x2244, 0x2245, + 0x2246, 0x2048, 0x2049, 0x204a, 0x2148, 0x2149, 0x214a, 0x2248, 0x2249, 0x224a, 0x2440, 0x2441, 0x2442, 0x2540, 0x2541, 0x2542, + 0x2640, 0x2641, 0x2642, 0x2444, 0x2445, 0x2446, 0x2544, 0x2545, 0x2546, 0x2644, 0x2645, 0x2646, 0x2448, 0x2449, 0x244a, 0x2548, + 0x2549, 0x254a, 0x2648, 0x2649, 0x264a, 0x2840, 0x2841, 0x2842, 0x2940, 0x2941, 0x2942, 0x2a40, 0x2a41, 0x2a42, 0x2844, 0x2845, + 0x2846, 0x2944, 0x2945, 0x2946, 0x2a44, 0x2a45, 0x2a46, 0x2848, 0x2849, 0x284a, 0x2948, 0x2949, 0x294a, 0x2a48, 0x2a49, 0x2a4a, + 0x2050, 0x2051, 0x2052, 0x2150, 0x2151, 0x2152, 0x2250, 0x2251, 0x2252, 0x2054, 0x2055, 0x2056, 0x2154, 0x2155, 0x2156, 0x2254, + 0x2255, 0x2256, 0x2058, 0x2059, 0x205a, 0x2158, 0x2159, 0x215a, 0x2258, 0x2259, 0x225a, 0x2450, 0x2451, 0x2452, 0x2550, 0x2551, + 0x2552, 0x2650, 0x2651, 0x2652, 0x2454, 0x2455, 0x2456, 0x2554, 0x2555, 0x2556, 0x2654, 0x2655, 0x2656, 0x2458, 0x2459, 0x245a, + 0x2558, 0x2559, 0x255a, 0x2658, 0x2659, 0x265a, 0x2850, 0x2851, 0x2852, 0x2950, 0x2951, 0x2952, 0x2a50, 0x2a51, 0x2a52, 0x2854, + 0x2855, 0x2856, 0x2954, 0x2955, 0x2956, 0x2a54, 0x2a55, 0x2a56, 0x2858, 0x2859, 0x285a, 0x2958, 0x2959, 0x295a, 0x2a58, 0x2a59, + 0x2a5a, 0x2060, 0x2061, 0x2062, 0x2160, 0x2161, 0x2162, 0x2260, 0x2261, 0x2262, 0x2064, 0x2065, 0x2066, 0x2164, 0x2165, 0x2166, + 0x2264, 0x2265, 0x2266, 0x2068, 0x2069, 0x206a, 0x2168, 0x2169, 0x216a, 0x2268, 0x2269, 0x226a, 0x2460, 0x2461, 0x2462, 0x2560, + 0x2561, 0x2562, 0x2660, 0x2661, 0x2662, 0x2464, 0x2465, 0x2466, 0x2564, 0x2565, 0x2566, 0x2664, 0x2665, 0x2666, 0x2468, 0x2469, + 0x246a, 0x2568, 0x2569, 0x256a, 0x2668, 0x2669, 0x266a, 0x2860, 0x2861, 0x2862, 0x2960, 0x2961, 0x2962, 0x2a60, 0x2a61, 0x2a62, + 0x2864, 0x2865, 0x2866, 0x2964, 0x2965, 0x2966, 0x2a64, 0x2a65, 0x2a66, 0x2868, 0x2869, 0x286a, 0x2968, 0x2969, 0x296a, 0x2a68, + 0x2a69, 0x2a6a, 0x0080, 0x0081, 0x0082, 0x0180, 0x0181, 0x0182, 0x0280, 0x0281, 0x0282, 0x0084, 0x0085, 0x0086, 0x0184, 0x0185, + 0x0186, 0x0284, 0x0285, 0x0286, 0x0088, 0x0089, 0x008a, 0x0188, 0x0189, 0x018a, 0x0288, 0x0289, 0x028a, 0x0480, 0x0481, 0x0482, + 0x0580, 0x0581, 0x0582, 0x0680, 0x0681, 0x0682, 0x0484, 0x0485, 0x0486, 0x0584, 0x0585, 0x0586, 0x0684, 0x0685, 0x0686, 0x0488, + 0x0489, 0x048a, 0x0588, 0x0589, 0x058a, 0x0688, 0x0689, 0x068a, 0x0880, 0x0881, 0x0882, 0x0980, 0x0981, 0x0982, 0x0a80, 0x0a81, + 0x0a82, 0x0884, 0x0885, 0x0886, 0x0984, 0x0985, 0x0986, 0x0a84, 0x0a85, 0x0a86, 0x0888, 0x0889, 0x088a, 0x0988, 0x0989, 0x098a, + 0x0a88, 0x0a89, 0x0a8a, 0x0090, 0x0091, 0x0092, 0x0190, 0x0191, 0x0192, 0x0290, 0x0291, 0x0292, 0x0094, 0x0095, 0x0096, 0x0194, + 0x0195, 0x0196, 0x0294, 0x0295, 0x0296, 0x0098, 0x0099, 0x009a, 0x0198, 0x0199, 0x019a, 0x0298, 0x0299, 0x029a, 0x0490, 0x0491, + 0x0492, 0x0590, 0x0591, 0x0592, 0x0690, 0x0691, 0x0692, 0x0494, 0x0495, 0x0496, 0x0594, 0x0595, 0x0596, 0x0694, 0x0695, 0x0696, + 0x0498, 0x0499, 0x049a, 0x0598, 0x0599, 0x059a, 0x0698, 0x0699, 0x069a, 0x0890, 0x0891, 0x0892, 0x0990, 0x0991, 0x0992, 0x0a90, + 0x0a91, 0x0a92, 0x0894, 0x0895, 0x0896, 0x0994, 0x0995, 0x0996, 0x0a94, 0x0a95, 0x0a96, 0x0898, 0x0899, 0x089a, 0x0998, 0x0999, + 0x099a, 0x0a98, 0x0a99, 0x0a9a, 0x00a0, 0x00a1, 0x00a2, 0x01a0, 0x01a1, 0x01a2, 0x02a0, 0x02a1, 0x02a2, 0x00a4, 0x00a5, 0x00a6, + 0x01a4, 0x01a5, 0x01a6, 0x02a4, 0x02a5, 0x02a6, 0x00a8, 0x00a9, 0x00aa, 0x01a8, 0x01a9, 0x01aa, 0x02a8, 0x02a9, 0x02aa, 0x04a0, + 0x04a1, 0x04a2, 0x05a0, 0x05a1, 0x05a2, 0x06a0, 0x06a1, 0x06a2, 0x04a4, 0x04a5, 0x04a6, 0x05a4, 0x05a5, 0x05a6, 0x06a4, 0x06a5, + 0x06a6, 0x04a8, 0x04a9, 0x04aa, 0x05a8, 0x05a9, 0x05aa, 0x06a8, 0x06a9, 0x06aa, 0x08a0, 0x08a1, 0x08a2, 0x09a0, 0x09a1, 0x09a2, + 0x0aa0, 0x0aa1, 0x0aa2, 0x08a4, 0x08a5, 0x08a6, 0x09a4, 0x09a5, 0x09a6, 0x0aa4, 0x0aa5, 0x0aa6, 0x08a8, 0x08a9, 0x08aa, 0x09a8, + 0x09a9, 0x09aa, 0x0aa8, 0x0aa9, 0x0aaa, 0x1080, 0x1081, 0x1082, 0x1180, 0x1181, 0x1182, 0x1280, 0x1281, 0x1282, 0x1084, 0x1085, + 0x1086, 0x1184, 0x1185, 0x1186, 0x1284, 0x1285, 0x1286, 0x1088, 0x1089, 0x108a, 0x1188, 0x1189, 0x118a, 0x1288, 0x1289, 0x128a, + 0x1480, 0x1481, 0x1482, 0x1580, 0x1581, 0x1582, 0x1680, 0x1681, 0x1682, 0x1484, 0x1485, 0x1486, 0x1584, 0x1585, 0x1586, 0x1684, + 0x1685, 0x1686, 0x1488, 0x1489, 0x148a, 0x1588, 0x1589, 0x158a, 0x1688, 0x1689, 0x168a, 0x1880, 0x1881, 0x1882, 0x1980, 0x1981, + 0x1982, 0x1a80, 0x1a81, 0x1a82, 0x1884, 0x1885, 0x1886, 0x1984, 0x1985, 0x1986, 0x1a84, 0x1a85, 0x1a86, 0x1888, 0x1889, 0x188a, + 0x1988, 0x1989, 0x198a, 0x1a88, 0x1a89, 0x1a8a, 0x1090, 0x1091, 0x1092, 0x1190, 0x1191, 0x1192, 0x1290, 0x1291, 0x1292, 0x1094, + 0x1095, 0x1096, 0x1194, 0x1195, 0x1196, 0x1294, 0x1295, 0x1296, 0x1098, 0x1099, 0x109a, 0x1198, 0x1199, 0x119a, 0x1298, 0x1299, + 0x129a, 0x1490, 0x1491, 0x1492, 0x1590, 0x1591, 0x1592, 0x1690, 0x1691, 0x1692, 0x1494, 0x1495, 0x1496, 0x1594, 0x1595, 0x1596, + 0x1694, 0x1695, 0x1696, 0x1498, 0x1499, 0x149a, 0x1598, 0x1599, 0x159a, 0x1698, 0x1699, 0x169a, 0x1890, 0x1891, 0x1892, 0x1990, + 0x1991, 0x1992, 0x1a90, 0x1a91, 0x1a92, 0x1894, 0x1895, 0x1896, 0x1994, 0x1995, 0x1996, 0x1a94, 0x1a95, 0x1a96, 0x1898, 0x1899, + 0x189a, 0x1998, 0x1999, 0x199a, 0x1a98, 0x1a99, 0x1a9a, 0x10a0, 0x10a1, 0x10a2, 0x11a0, 0x11a1, 0x11a2, 0x12a0, 0x12a1, 0x12a2, + 0x10a4, 0x10a5, 0x10a6, 0x11a4, 0x11a5, 0x11a6, 0x12a4, 0x12a5, 0x12a6, 0x10a8, 0x10a9, 0x10aa, 0x11a8, 0x11a9, 0x11aa, 0x12a8, + 0x12a9, 0x12aa, 0x14a0, 0x14a1, 0x14a2, 0x15a0, 0x15a1, 0x15a2, 0x16a0, 0x16a1, 0x16a2, 0x14a4, 0x14a5, 0x14a6, 0x15a4, 0x15a5, + 0x15a6, 0x16a4, 0x16a5, 0x16a6, 0x14a8, 0x14a9, 0x14aa, 0x15a8, 0x15a9, 0x15aa, 0x16a8, 0x16a9, 0x16aa, 0x18a0, 0x18a1, 0x18a2, + 0x19a0, 0x19a1, 0x19a2, 0x1aa0, 0x1aa1, 0x1aa2, 0x18a4, 0x18a5, 0x18a6, 0x19a4, 0x19a5, 0x19a6, 0x1aa4, 0x1aa5, 0x1aa6, 0x18a8, + 0x18a9, 0x18aa, 0x19a8, 0x19a9, 0x19aa, 0x1aa8, 0x1aa9, 0x1aaa, 0x2080, 0x2081, 0x2082, 0x2180, 0x2181, 0x2182, 0x2280, 0x2281, + 0x2282, 0x2084, 0x2085, 0x2086, 0x2184, 0x2185, 0x2186, 0x2284, 0x2285, 0x2286, 0x2088, 0x2089, 0x208a, 0x2188, 0x2189, 0x218a, + 0x2288, 0x2289, 0x228a, 0x2480, 0x2481, 0x2482, 0x2580, 0x2581, 0x2582, 0x2680, 0x2681, 0x2682, 0x2484, 0x2485, 0x2486, 0x2584, + 0x2585, 0x2586, 0x2684, 0x2685, 0x2686, 0x2488, 0x2489, 0x248a, 0x2588, 0x2589, 0x258a, 0x2688, 0x2689, 0x268a, 0x2880, 0x2881, + 0x2882, 0x2980, 0x2981, 0x2982, 0x2a80, 0x2a81, 0x2a82, 0x2884, 0x2885, 0x2886, 0x2984, 0x2985, 0x2986, 0x2a84, 0x2a85, 0x2a86, + 0x2888, 0x2889, 0x288a, 0x2988, 0x2989, 0x298a, 0x2a88, 0x2a89, 0x2a8a, 0x2090, 0x2091, 0x2092, 0x2190, 0x2191, 0x2192, 0x2290, + 0x2291, 0x2292, 0x2094, 0x2095, 0x2096, 0x2194, 0x2195, 0x2196, 0x2294, 0x2295, 0x2296, 0x2098, 0x2099, 0x209a, 0x2198, 0x2199, + 0x219a, 0x2298, 0x2299, 0x229a, 0x2490, 0x2491, 0x2492, 0x2590, 0x2591, 0x2592, 0x2690, 0x2691, 0x2692, 0x2494, 0x2495, 0x2496, + 0x2594, 0x2595, 0x2596, 0x2694, 0x2695, 0x2696, 0x2498, 0x2499, 0x249a, 0x2598, 0x2599, 0x259a, 0x2698, 0x2699, 0x269a, 0x2890, + 0x2891, 0x2892, 0x2990, 0x2991, 0x2992, 0x2a90, 0x2a91, 0x2a92, 0x2894, 0x2895, 0x2896, 0x2994, 0x2995, 0x2996, 0x2a94, 0x2a95, + 0x2a96, 0x2898, 0x2899, 0x289a, 0x2998, 0x2999, 0x299a, 0x2a98, 0x2a99, 0x2a9a, 0x20a0, 0x20a1, 0x20a2, 0x21a0, 0x21a1, 0x21a2, + 0x22a0, 0x22a1, 0x22a2, 0x20a4, 0x20a5, 0x20a6, 0x21a4, 0x21a5, 0x21a6, 0x22a4, 0x22a5, 0x22a6, 0x20a8, 0x20a9, 0x20aa, 0x21a8, + 0x21a9, 0x21aa, 0x22a8, 0x22a9, 0x22aa, 0x24a0, 0x24a1, 0x24a2, 0x25a0, 0x25a1, 0x25a2, 0x26a0, 0x26a1, 0x26a2, 0x24a4, 0x24a5, + 0x24a6, 0x25a4, 0x25a5, 0x25a6, 0x26a4, 0x26a5, 0x26a6, 0x24a8, 0x24a9, 0x24aa, 0x25a8, 0x25a9, 0x25aa, 0x26a8, 0x26a9, 0x26aa, + 0x28a0, 0x28a1, 0x28a2, 0x29a0, 0x29a1, 0x29a2, 0x2aa0, 0x2aa1, 0x2aa2, 0x28a4, 0x28a5, 0x28a6, 0x29a4, 0x29a5, 0x29a6, 0x2aa4, + 0x2aa5, 0x2aa6, 0x28a8, 0x28a9, 0x28aa, 0x29a8, 0x29a9, 0x29aa, 0x2aa8, 0x2aa9, 0x2aaa, 0x4000, 0x4001, 0x4002, 0x4100, 0x4101, + 0x4102, 0x4200, 0x4201, 0x4202, 0x4004, 0x4005, 0x4006, 0x4104, 0x4105, 0x4106, 0x4204, 0x4205, 0x4206, 0x4008, 0x4009, 0x400a, + 0x4108, 0x4109, 0x410a, 0x4208, 0x4209, 0x420a, 0x4400, 0x4401, 0x4402, 0x4500, 0x4501, 0x4502, 0x4600, 0x4601, 0x4602, 0x4404, + 0x4405, 0x4406, 0x4504, 0x4505, 0x4506, 0x4604, 0x4605, 0x4606, 0x4408, 0x4409, 0x440a, 0x4508, 0x4509, 0x450a, 0x4608, 0x4609, + 0x460a, 0x4800, 0x4801, 0x4802, 0x4900, 0x4901, 0x4902, 0x4a00, 0x4a01, 0x4a02, 0x4804, 0x4805, 0x4806, 0x4904, 0x4905, 0x4906, + 0x4a04, 0x4a05, 0x4a06, 0x4808, 0x4809, 0x480a, 0x4908, 0x4909, 0x490a, 0x4a08, 0x4a09, 0x4a0a, 0x4010, 0x4011, 0x4012, 0x4110, + 0x4111, 0x4112, 0x4210, 0x4211, 0x4212, 0x4014, 0x4015, 0x4016, 0x4114, 0x4115, 0x4116, 0x4214, 0x4215, 0x4216, 0x4018, 0x4019, + 0x401a, 0x4118, 0x4119, 0x411a, 0x4218, 0x4219, 0x421a, 0x4410, 0x4411, 0x4412, 0x4510, 0x4511, 0x4512, 0x4610, 0x4611, 0x4612, + 0x4414, 0x4415, 0x4416, 0x4514, 0x4515, 0x4516, 0x4614, 0x4615, 0x4616, 0x4418, 0x4419, 0x441a, 0x4518, 0x4519, 0x451a, 0x4618, + 0x4619, 0x461a, 0x4810, 0x4811, 0x4812, 0x4910, 0x4911, 0x4912, 0x4a10, 0x4a11, 0x4a12, 0x4814, 0x4815, 0x4816, 0x4914, 0x4915, + 0x4916, 0x4a14, 0x4a15, 0x4a16, 0x4818, 0x4819, 0x481a, 0x4918, 0x4919, 0x491a, 0x4a18, 0x4a19, 0x4a1a, 0x4020, 0x4021, 0x4022, + 0x4120, 0x4121, 0x4122, 0x4220, 0x4221, 0x4222, 0x4024, 0x4025, 0x4026, 0x4124, 0x4125, 0x4126, 0x4224, 0x4225, 0x4226, 0x4028, + 0x4029, 0x402a, 0x4128, 0x4129, 0x412a, 0x4228, 0x4229, 0x422a, 0x4420, 0x4421, 0x4422, 0x4520, 0x4521, 0x4522, 0x4620, 0x4621, + 0x4622, 0x4424, 0x4425, 0x4426, 0x4524, 0x4525, 0x4526, 0x4624, 0x4625, 0x4626, 0x4428, 0x4429, 0x442a, 0x4528, 0x4529, 0x452a, + 0x4628, 0x4629, 0x462a, 0x4820, 0x4821, 0x4822, 0x4920, 0x4921, 0x4922, 0x4a20, 0x4a21, 0x4a22, 0x4824, 0x4825, 0x4826, 0x4924, + 0x4925, 0x4926, 0x4a24, 0x4a25, 0x4a26, 0x4828, 0x4829, 0x482a, 0x4928, 0x4929, 0x492a, 0x4a28, 0x4a29, 0x4a2a, 0x5000, 0x5001, + 0x5002, 0x5100, 0x5101, 0x5102, 0x5200, 0x5201, 0x5202, 0x5004, 0x5005, 0x5006, 0x5104, 0x5105, 0x5106, 0x5204, 0x5205, 0x5206, + 0x5008, 0x5009, 0x500a, 0x5108, 0x5109, 0x510a, 0x5208, 0x5209, 0x520a, 0x5400, 0x5401, 0x5402, 0x5500, 0x5501, 0x5502, 0x5600, + 0x5601, 0x5602, 0x5404, 0x5405, 0x5406, 0x5504, 0x5505, 0x5506, 0x5604, 0x5605, 0x5606, 0x5408, 0x5409, 0x540a, 0x5508, 0x5509, + 0x550a, 0x5608, 0x5609, 0x560a, 0x5800, 0x5801, 0x5802, 0x5900, 0x5901, 0x5902, 0x5a00, 0x5a01, 0x5a02, 0x5804, 0x5805, 0x5806, + 0x5904, 0x5905, 0x5906, 0x5a04, 0x5a05, 0x5a06, 0x5808, 0x5809, 0x580a, 0x5908, 0x5909, 0x590a, 0x5a08, 0x5a09, 0x5a0a, 0x5010, + 0x5011, 0x5012, 0x5110, 0x5111, 0x5112, 0x5210, 0x5211, 0x5212, 0x5014, 0x5015, 0x5016, 0x5114, 0x5115, 0x5116, 0x5214, 0x5215, + 0x5216, 0x5018, 0x5019, 0x501a, 0x5118, 0x5119, 0x511a, 0x5218, 0x5219, 0x521a, 0x5410, 0x5411, 0x5412, 0x5510, 0x5511, 0x5512, + 0x5610, 0x5611, 0x5612, 0x5414, 0x5415, 0x5416, 0x5514, 0x5515, 0x5516, 0x5614, 0x5615, 0x5616, 0x5418, 0x5419, 0x541a, 0x5518, + 0x5519, 0x551a, 0x5618, 0x5619, 0x561a, 0x5810, 0x5811, 0x5812, 0x5910, 0x5911, 0x5912, 0x5a10, 0x5a11, 0x5a12, 0x5814, 0x5815, + 0x5816, 0x5914, 0x5915, 0x5916, 0x5a14, 0x5a15, 0x5a16, 0x5818, 0x5819, 0x581a, 0x5918, 0x5919, 0x591a, 0x5a18, 0x5a19, 0x5a1a, + 0x5020, 0x5021, 0x5022, 0x5120, 0x5121, 0x5122, 0x5220, 0x5221, 0x5222, 0x5024, 0x5025, 0x5026, 0x5124, 0x5125, 0x5126, 0x5224, + 0x5225, 0x5226, 0x5028, 0x5029, 0x502a, 0x5128, 0x5129, 0x512a, 0x5228, 0x5229, 0x522a, 0x5420, 0x5421, 0x5422, 0x5520, 0x5521, + 0x5522, 0x5620, 0x5621, 0x5622, 0x5424, 0x5425, 0x5426, 0x5524, 0x5525, 0x5526, 0x5624, 0x5625, 0x5626, 0x5428, 0x5429, 0x542a, + 0x5528, 0x5529, 0x552a, 0x5628, 0x5629, 0x562a, 0x5820, 0x5821, 0x5822, 0x5920, 0x5921, 0x5922, 0x5a20, 0x5a21, 0x5a22, 0x5824, + 0x5825, 0x5826, 0x5924, 0x5925, 0x5926, 0x5a24, 0x5a25, 0x5a26, 0x5828, 0x5829, 0x582a, 0x5928, 0x5929, 0x592a, 0x5a28, 0x5a29, + 0x5a2a, 0x6000, 0x6001, 0x6002, 0x6100, 0x6101, 0x6102, 0x6200, 0x6201, 0x6202, 0x6004, 0x6005, 0x6006, 0x6104, 0x6105, 0x6106, + 0x6204, 0x6205, 0x6206, 0x6008, 0x6009, 0x600a, 0x6108, 0x6109, 0x610a, 0x6208, 0x6209, 0x620a, 0x6400, 0x6401, 0x6402, 0x6500, + 0x6501, 0x6502, 0x6600, 0x6601, 0x6602, 0x6404, 0x6405, 0x6406, 0x6504, 0x6505, 0x6506, 0x6604, 0x6605, 0x6606, 0x6408, 0x6409, + 0x640a, 0x6508, 0x6509, 0x650a, 0x6608, 0x6609, 0x660a, 0x6800, 0x6801, 0x6802, 0x6900, 0x6901, 0x6902, 0x6a00, 0x6a01, 0x6a02, + 0x6804, 0x6805, 0x6806, 0x6904, 0x6905, 0x6906, 0x6a04, 0x6a05, 0x6a06, 0x6808, 0x6809, 0x680a, 0x6908, 0x6909, 0x690a, 0x6a08, + 0x6a09, 0x6a0a, 0x6010, 0x6011, 0x6012, 0x6110, 0x6111, 0x6112, 0x6210, 0x6211, 0x6212, 0x6014, 0x6015, 0x6016, 0x6114, 0x6115, + 0x6116, 0x6214, 0x6215, 0x6216, 0x6018, 0x6019, 0x601a, 0x6118, 0x6119, 0x611a, 0x6218, 0x6219, 0x621a, 0x6410, 0x6411, 0x6412, + 0x6510, 0x6511, 0x6512, 0x6610, 0x6611, 0x6612, 0x6414, 0x6415, 0x6416, 0x6514, 0x6515, 0x6516, 0x6614, 0x6615, 0x6616, 0x6418, + 0x6419, 0x641a, 0x6518, 0x6519, 0x651a, 0x6618, 0x6619, 0x661a, 0x6810, 0x6811, 0x6812, 0x6910, 0x6911, 0x6912, 0x6a10, 0x6a11, + 0x6a12, 0x6814, 0x6815, 0x6816, 0x6914, 0x6915, 0x6916, 0x6a14, 0x6a15, 0x6a16, 0x6818, 0x6819, 0x681a, 0x6918, 0x6919, 0x691a, + 0x6a18, 0x6a19, 0x6a1a, 0x6020, 0x6021, 0x6022, 0x6120, 0x6121, 0x6122, 0x6220, 0x6221, 0x6222, 0x6024, 0x6025, 0x6026, 0x6124, + 0x6125, 0x6126, 0x6224, 0x6225, 0x6226, 0x6028, 0x6029, 0x602a, 0x6128, 0x6129, 0x612a, 0x6228, 0x6229, 0x622a, 0x6420, 0x6421, + 0x6422, 0x6520, 0x6521, 0x6522, 0x6620, 0x6621, 0x6622, 0x6424, 0x6425, 0x6426, 0x6524, 0x6525, 0x6526, 0x6624, 0x6625, 0x6626, + 0x6428, 0x6429, 0x642a, 0x6528, 0x6529, 0x652a, 0x6628, 0x6629, 0x662a, 0x6820, 0x6821, 0x6822, 0x6920, 0x6921, 0x6922, 0x6a20, + 0x6a21, 0x6a22, 0x6824, 0x6825, 0x6826, 0x6924, 0x6925, 0x6926, 0x6a24, 0x6a25, 0x6a26, 0x6828, 0x6829, 0x682a, 0x6928, 0x6929, + 0x692a, 0x6a28, 0x6a29, 0x6a2a, 0x4040, 0x4041, 0x4042, 0x4140, 0x4141, 0x4142, 0x4240, 0x4241, 0x4242, 0x4044, 0x4045, 0x4046, + 0x4144, 0x4145, 0x4146, 0x4244, 0x4245, 0x4246, 0x4048, 0x4049, 0x404a, 0x4148, 0x4149, 0x414a, 0x4248, 0x4249, 0x424a, 0x4440, + 0x4441, 0x4442, 0x4540, 0x4541, 0x4542, 0x4640, 0x4641, 0x4642, 0x4444, 0x4445, 0x4446, 0x4544, 0x4545, 0x4546, 0x4644, 0x4645, + 0x4646, 0x4448, 0x4449, 0x444a, 0x4548, 0x4549, 0x454a, 0x4648, 0x4649, 0x464a, 0x4840, 0x4841, 0x4842, 0x4940, 0x4941, 0x4942, + 0x4a40, 0x4a41, 0x4a42, 0x4844, 0x4845, 0x4846, 0x4944, 0x4945, 0x4946, 0x4a44, 0x4a45, 0x4a46, 0x4848, 0x4849, 0x484a, 0x4948, + 0x4949, 0x494a, 0x4a48, 0x4a49, 0x4a4a, 0x4050, 0x4051, 0x4052, 0x4150, 0x4151, 0x4152, 0x4250, 0x4251, 0x4252, 0x4054, 0x4055, + 0x4056, 0x4154, 0x4155, 0x4156, 0x4254, 0x4255, 0x4256, 0x4058, 0x4059, 0x405a, 0x4158, 0x4159, 0x415a, 0x4258, 0x4259, 0x425a, + 0x4450, 0x4451, 0x4452, 0x4550, 0x4551, 0x4552, 0x4650, 0x4651, 0x4652, 0x4454, 0x4455, 0x4456, 0x4554, 0x4555, 0x4556, 0x4654, + 0x4655, 0x4656, 0x4458, 0x4459, 0x445a, 0x4558, 0x4559, 0x455a, 0x4658, 0x4659, 0x465a, 0x4850, 0x4851, 0x4852, 0x4950, 0x4951, + 0x4952, 0x4a50, 0x4a51, 0x4a52, 0x4854, 0x4855, 0x4856, 0x4954, 0x4955, 0x4956, 0x4a54, 0x4a55, 0x4a56, 0x4858, 0x4859, 0x485a, + 0x4958, 0x4959, 0x495a, 0x4a58, 0x4a59, 0x4a5a, 0x4060, 0x4061, 0x4062, 0x4160, 0x4161, 0x4162, 0x4260, 0x4261, 0x4262, 0x4064, + 0x4065, 0x4066, 0x4164, 0x4165, 0x4166, 0x4264, 0x4265, 0x4266, 0x4068, 0x4069, 0x406a, 0x4168, 0x4169, 0x416a, 0x4268, 0x4269, + 0x426a, 0x4460, 0x4461, 0x4462, 0x4560, 0x4561, 0x4562, 0x4660, 0x4661, 0x4662, 0x4464, 0x4465, 0x4466, 0x4564, 0x4565, 0x4566, + 0x4664, 0x4665, 0x4666, 0x4468, 0x4469, 0x446a, 0x4568, 0x4569, 0x456a, 0x4668, 0x4669, 0x466a, 0x4860, 0x4861, 0x4862, 0x4960, + 0x4961, 0x4962, 0x4a60, 0x4a61, 0x4a62, 0x4864, 0x4865, 0x4866, 0x4964, 0x4965, 0x4966, 0x4a64, 0x4a65, 0x4a66, 0x4868, 0x4869, + 0x486a, 0x4968, 0x4969, 0x496a, 0x4a68, 0x4a69, 0x4a6a, 0x5040, 0x5041, 0x5042, 0x5140, 0x5141, 0x5142, 0x5240, 0x5241, 0x5242, + 0x5044, 0x5045, 0x5046, 0x5144, 0x5145, 0x5146, 0x5244, 0x5245, 0x5246, 0x5048, 0x5049, 0x504a, 0x5148, 0x5149, 0x514a, 0x5248, + 0x5249, 0x524a, 0x5440, 0x5441, 0x5442, 0x5540, 0x5541, 0x5542, 0x5640, 0x5641, 0x5642, 0x5444, 0x5445, 0x5446, 0x5544, 0x5545, + 0x5546, 0x5644, 0x5645, 0x5646, 0x5448, 0x5449, 0x544a, 0x5548, 0x5549, 0x554a, 0x5648, 0x5649, 0x564a, 0x5840, 0x5841, 0x5842, + 0x5940, 0x5941, 0x5942, 0x5a40, 0x5a41, 0x5a42, 0x5844, 0x5845, 0x5846, 0x5944, 0x5945, 0x5946, 0x5a44, 0x5a45, 0x5a46, 0x5848, + 0x5849, 0x584a, 0x5948, 0x5949, 0x594a, 0x5a48, 0x5a49, 0x5a4a, 0x5050, 0x5051, 0x5052, 0x5150, 0x5151, 0x5152, 0x5250, 0x5251, + 0x5252, 0x5054, 0x5055, 0x5056, 0x5154, 0x5155, 0x5156, 0x5254, 0x5255, 0x5256, 0x5058, 0x5059, 0x505a, 0x5158, 0x5159, 0x515a, + 0x5258, 0x5259, 0x525a, 0x5450, 0x5451, 0x5452, 0x5550, 0x5551, 0x5552, 0x5650, 0x5651, 0x5652, 0x5454, 0x5455, 0x5456, 0x5554, 0x5555, +GGML_TABLE_END() + + #endif // GGML_COMMON_IMPL #endif // GGML_COMMON_IMPL diff --git a/ggml-cuda/convert.cu b/ggml-cuda/convert.cu index 2be03a3e..888c8452 100644 --- a/ggml-cuda/convert.cu +++ b/ggml-cuda/convert.cu @@ -432,13 +432,20 @@ static __global__ void dequantize_block_iq1_bn(const void * __restrict__ vx, dst int64_t i = QK_K/QK_IQ1BN * ii + ib/(QK_IQ1BN/32); if (i >= nb64) return; ib = ib%(QK_IQ1BN/32); - const float dl = x[i].extra & (1 << (4*ib + il)) ? -1 : 1; - const float ml = -dl; uint16_t idx = x[i].ql[4*ib + il] | ((x[i].qh[2*ib + il/2] << (8 - 4*(il%2))) & 0x0f00); - const uint16_t gp = iq1bn_grid_u16[idx]; - for (int j = 0; j < 8; ++j) { - y[j] = dl * ((gp >> 2*j) & 3) + ml; - } + uint16_t val = x[i].extra & (1 << (4*ib + il)) ? 0xaaaa - iq1bn_grid_zzz[idx] : iq1bn_grid_zzz[idx]; + uint32_t aux32[2]; + const int8_t * aux8 = (const int8_t *)aux32; + aux32[0] = val | (val << 14); +//#if __CUDA_ARCH__ >= MIN_CC_DP4A // lowest compute capability for integer intrinsics +// aux32[1] = __vsub4((aux32[0] >> 4) & 0x03030303, 0x01010101); +// aux32[0] = __vsub4(aux32[0] & 0x03030303, 0x01010101); +// for (int j = 0; j < 8; ++j) y[j] = aux8[j]; +//#else + aux32[1] = (aux32[0] >> 4) & 0x03030303; + aux32[0] &= 0x03030303; + for (int j = 0; j < 8; ++j) y[j] = aux8[j] - 1; +//#endif } template<typename dst_t> diff --git a/ggml-cuda/vecdotq.cuh b/ggml-cuda/vecdotq.cuh index 6b831cf6..bce2c154 100644 --- a/ggml-cuda/vecdotq.cuh +++ b/ggml-cuda/vecdotq.cuh @@ -1082,27 +1082,35 @@ static __device__ __forceinline__ float vec_dot_iq1_bn_q8_1( int sumi = 0; #if __CUDA_ARCH__ >= MIN_CC_DP4A // lowest compute capability for integer intrinsics const int * q8 = (const int *)bq8_1[iqs].qs; - for (int l = 0; l < 4; ++l) { - uint16_t val = iq1bn_grid_xxx[bq1->ql[4*iqs + l] | ((bq1->qh[2*iqs + l/2] << (8 - 4*(l%2))) & 0x0f00)]; - uint8_t vp = val & 0xff, vm = val >> 8; - int32_t vp1 = __vcmpeq4(((vp & 0xf) * 0x01010101) & 0x08040201, 0x08040201); - int32_t vp2 = __vcmpeq4(((vp >> 4) * 0x01010101) & 0x08040201, 0x08040201); - int32_t vm1 = __vcmpeq4(((vm & 0xf) * 0x01010101) & 0x08040201, 0x08040201); - int32_t vm2 = __vcmpeq4(((vm >> 4) * 0x01010101) & 0x08040201, 0x08040201); - int32_t pm = __dp4a(q8[2*l+0], vm1, __dp4a(q8[2*l+1], vm2, 0)); - int32_t pp = __dp4a(q8[2*l+0], vp1, __dp4a(q8[2*l+1], vp2, 0)); - sumi += extra & (1 << l) ? pp - pm : pm - pp; + int val32, v1, v2; + for (int l = 0; l < 2; ++l) { + uint16_t idx1 = bq1->ql[4*iqs + 2*l+0] | ((bq1->qh[2*iqs + l] << 8) & 0x0f00); + uint16_t idx2 = bq1->ql[4*iqs + 2*l+1] | ((bq1->qh[2*iqs + l] << 4) & 0x0f00); + uint16_t val1 = extra & 1 ? 0xaaaa - iq1bn_grid_zzz[idx1] : iq1bn_grid_zzz[idx1]; + uint16_t val2 = extra & 2 ? 0xaaaa - iq1bn_grid_zzz[idx2] : iq1bn_grid_zzz[idx2]; + val32 = val1 | (val1 << 14); + v1 = __vsub4(val32 & 0x03030303, 0x01010101); + v2 = __vsub4((val32 >> 4) & 0x03030303, 0x01010101); + sumi = __dp4a(v1, q8[4*l+0], __dp4a(v2, q8[4*l+1], sumi)); + val32 = val2 | (val2 << 14); + v1 = __vsub4(val32 & 0x03030303, 0x01010101); + v2 = __vsub4((val32 >> 4) & 0x03030303, 0x01010101); + sumi = __dp4a(v1, q8[4*l+2], __dp4a(v2, q8[4*l+3], sumi)); + extra >>= 2; } #else + uint32_t aux32[2]; + const int8_t * aux8 = (const int8_t *)aux32; const int8_t * q8 = bq8_1[iqs].qs; for (int l = 0; l < 4; ++l) { - uint16_t val = iq1bn_grid_u16[bq1->ql[4*iqs + l] | ((bq1->qh[2*iqs + l/2] << (8 - 4*(l%2))) & 0x0f00)]; - int s1 = 0, s2 = 0; + uint16_t idx = bq1->ql[4*iqs + l] | ((bq1->qh[2*iqs + l/2] << (8 - 4*(l%2))) & 0x0f00); + uint16_t val = extra & 1 ? 0xaaaa - iq1bn_grid_zzz[idx] : iq1bn_grid_zzz[idx]; + aux32[0] = val | (val << 14); + aux32[1] = (aux32[0] >> 4) & 0x03030303; + aux32[0] &= 0x03030303; for (int j = 0; j < 8; ++j) { - s1 += q8[j] * ((val >> 2*j) & 3); - s2 += q8[j]; + sumi += q8[j] * (aux8[j] - 1); } - sumi += extra & (1 << l) ? s2 - s1 : s1 - s2; q8 += 8; } #endif diff --git a/ggml-quants.h b/ggml-quants.h index cc677207..3535f178 100644 --- a/ggml-quants.h +++ b/ggml-quants.h @@ -107,7 +107,6 @@ void ggml_vec_dot_iq1_m_q8_K (int n, float * GGML_RESTRICT s, size_t bs, const void ggml_vec_dot_iq4_nl_q8_0 (int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); void ggml_vec_dot_iq4_xs_q8_K (int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); void ggml_vec_dot_iq3_s_q8_K (int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); -void ggml_vec_dot_iq1_bn_q8_0 (int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); void ggml_vec_dot_iq1_bn_q8_K64(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); void ggml_vec_dot_iq2_bn_q8_K64(int n, float * GGML_RESTRICT s, size_t bs, const void * GGML_RESTRICT vx, size_t bx, const void * GGML_RESTRICT vy, size_t by, int nrc); diff --git a/iqk-quantize.cpp b/iqk-quantize.cpp index 350f9062..b7cb14ad 100644 --- a/iqk-quantize.cpp +++ b/iqk-quantize.cpp @@ -182,16 +182,21 @@ void dequantize_row_iq1_bn(const block_iq1_bn * x, float * y, int64_t k) { assert(k%QK_IQ1BN == 0); int nblock = k / QK_IQ1BN; + uint32_t aux32[2]; + const int8_t * aux8 = (const int8_t *)aux32; for (int i = 0; i < nblock; ++i) { uint8_t extra = x[i].extra; auto qh = x[i].qh; auto ql = x[i].ql; for (int k = 0; k < QK_IQ1BN/8; ++k) { uint16_t idx = ql[k] | ((qh[k/2] << (8 - 4*(k%2))) & 0x0f00); - uint16_t val = iq1bn_grid_u16[idx]; - float dls = extra & (1 << k) ? -1 : 1; - for (int j = 0; j < 8; ++j) y[j] = dls * (((val >> 2*j) & 3) - 1); + uint16_t val = extra & 1 ? 0xaaaa - iq1bn_grid_zzz[idx] : iq1bn_grid_zzz[idx]; + aux32[0] = val | (val << 14); + aux32[1] = (aux32[0] >> 4) & 0x03030303; + aux32[0] &= 0x03030303; + for (int j = 0; j < 8; ++j) y[j] = aux8[j] - 1; y += 8; + extra >>= 1; } } } @@ -233,51 +238,6 @@ void dequantize_row_iq2_bn(const block_iq2_bn * x, float * y, int64_t k) { } } -void ggml_vec_dot_iq1_bn_q8_0 (int n, float * s, size_t bs, const void * vx, size_t bx, const void * vy, size_t by, int nrc) { - - GGML_UNUSED(bs); - GGML_UNUSED(bx); - GGML_UNUSED(by); - GGML_UNUSED(nrc); - - static_assert(QK_IQ1BN == 64, "This dot product implementation for iq1_bn requires a block size of 64"); - - const block_iq1_bn * x = (const block_iq1_bn *)vx; - const block_q8_0 * y = (const block_q8_0 *)vy; - int nblock = n / QK_IQ1BN; - - float sumf = 0; - - for (int i = 0; i < nblock; ++i) { - auto qh = x[i].qh; - auto ql = x[i].ql; - auto q8 = y[2*i+0].qs; - int16_t sumi1 = 0; - for (int k = 0; k < 4; ++k) { - uint16_t idx = ql[k] | ((qh[k/2] << (8 - 4*(k%2))) & 0x0f00); - uint16_t val = iq1bn_grid_u16[idx]; - int16_t sl = 0; - for (int j = 0; j < 8; ++j) sl += q8[j] * (((val >> 2*j) & 3) - 1); - sumi1 += x[i].extra & (1 << k) ? -sl : sl; - q8 += 8; - } - q8 = y[2*i+1].qs; - int16_t sumi2 = 0; - for (int k = 4; k < 8; ++k) { - uint16_t idx = ql[k] | ((qh[k/2] << (8 - 4*(k%2))) & 0x0f00); - uint16_t val = iq1bn_grid_u16[idx]; - int16_t sl = 0; - for (int j = 0; j < 8; ++j) sl += q8[j] * (((val >> 2*j) & 3) - 1); - sumi2 += x[i].extra & (1 << k) ? -sl : sl; - q8 += 8; - } - sumf += GGML_FP16_TO_FP32(y[2*i+0].d) * sumi1 + GGML_FP16_TO_FP32(y[2*i+1].d) * sumi2; - } - - *s = sumf; - -} - void ggml_vec_dot_iq1_bn_q8_K64(int n, float * s, size_t bs, const void * vx, size_t bx, const void * vy, size_t by, int nrc) { GGML_UNUSED(bs); @@ -300,6 +260,8 @@ void ggml_vec_dot_iq1_bn_q8_K64(int n, float * s, size_t bs, const void * vx, si int nblock = n / QK_IQ1BN; int sumi[8] = {}; + uint32_t aux32[2]; + const int8_t * aux8 = (const int8_t *)aux32; for (int i = 0; i < nblock; ++i) { auto qh = x[i].qh; @@ -308,14 +270,19 @@ void ggml_vec_dot_iq1_bn_q8_K64(int n, float * s, size_t bs, const void * vx, si for (int j = 0; j < QK_IQ1BN/16; ++j) { uint16_t idx1 = ql[2*j+0] | ((qh[j] << 8) & 0x0f00); uint16_t idx2 = ql[2*j+1] | ((qh[j] << 4) & 0x0f00); - uint16_t val1 = extra & 1 ? k_magic - iq1bn_grid_u16[idx1] : iq1bn_grid_u16[idx1]; - uint16_t val2 = extra & 2 ? k_magic - iq1bn_grid_u16[idx2] : iq1bn_grid_u16[idx2]; + uint16_t val1 = extra & 1 ? k_magic - iq1bn_grid_zzz[idx1] : iq1bn_grid_zzz[idx1]; + uint16_t val2 = extra & 2 ? k_magic - iq1bn_grid_zzz[idx2] : iq1bn_grid_zzz[idx2]; extra >>= 2; - for (int k = 0; k < 8; ++k) { - sumi[k] += q8[k+0] * (((val1 >> 2*k) & 3) - 1); - sumi[k] += q8[k+8] * (((val2 >> 2*k) & 3) - 1); - } - q8 += 16; + aux32[0] = val1 | (val1 << 14); + aux32[1] = (aux32[0] >> 4) & 0x03030303; + aux32[0] &= 0x03030303; + for (int k = 0; k < 8; ++k) sumi[k] += q8[k] * (aux8[k] - 1); + q8 += 8; + aux32[0] = val2 | (val2 << 14); + aux32[1] = (aux32[0] >> 4) & 0x03030303; + aux32[0] &= 0x03030303; + for (int k = 0; k < 8; ++k) sumi[k] += q8[k] * (aux8[k] - 1); + q8 += 8; } } diff --git a/iqk_mul_mat.cpp b/iqk_mul_mat.cpp index 1e195ec2..907b0d19 100644 --- a/iqk_mul_mat.cpp +++ b/iqk_mul_mat.cpp @@ -2788,6 +2788,7 @@ bool MulMat::prepare(int typeA, int typeB, int ne00, MulMat& mm, int Ny) { MulMat::set_functions<DequantizerIQ2XXS>(mm); break; case GGML_TYPE_IQ1_BN: + return false; assert (ne00 % QK_IQ1BN == 0); mm.funcs[0] = mul_mat_iq1bn_q8_K64<1>; mm.funcs[1] = mul_mat_iq1bn_q8_K64<2>; |