Răsfoiți Sursa

refactor: Avoid doing unnecessary bit operations in rust's const eval

Markus Westerlind 8 ani în urmă
părinte
comite
5dfd1ec477
3 a modificat fișierele cu 1589 adăugiri și 1582 ștergeri
  1. 6 2
      idna/src/make_uts46_mapping_table.py
  2. 5 2
      idna/src/uts46.rs
  3. 1578 1578
      idna/src/uts46_mapping_table.rs

+ 6 - 2
idna/src/make_uts46_mapping_table.py

@@ -162,11 +162,15 @@ print("];\n")
 
 
 print("static INDEX_TABLE: &'static [u16] = &[")
 print("static INDEX_TABLE: &'static [u16] = &[")
 
 
+SINGLE_MARKER = 1 << 15
+
 offset = 0
 offset = 0
 for ranges in optimized_ranges:
 for ranges in optimized_ranges:
+    assert offset < SINGLE_MARKER
+
     block_len = len(ranges)
     block_len = len(ranges)
-    single = (1 << 15) if block_len == 1 else 0 
-    print("    %s | %s, " % (offset, single))
+    single = SINGLE_MARKER if block_len == 1 else 0
+    print("    %s," % (offset | single))
     offset += block_len
     offset += block_len
 
 
 print("];\n")
 print("];\n")

+ 5 - 2
idna/src/uts46.rs

@@ -69,9 +69,12 @@ fn find_char(codepoint: char) -> &'static Mapping {
         }
         }
     });
     });
     r.ok().map(|i| {
     r.ok().map(|i| {
+        const SINGLE_MARKER: u16 = 1 << 15;
+
         let x = INDEX_TABLE[i];
         let x = INDEX_TABLE[i];
-        let single = (x & (1 << 15)) != 0;
-        let offset = !(1 << 15) & x;
+        let single = (x & SINGLE_MARKER) != 0;
+        let offset = !SINGLE_MARKER & x;
+
         if single {
         if single {
             &MAPPING_TABLE[offset as usize]
             &MAPPING_TABLE[offset as usize]
         } else {
         } else {

+ 1578 - 1578
idna/src/uts46_mapping_table.rs

@@ -1590,1584 +1590,1584 @@ static TABLE: &'static [Range] = &[
 ];
 ];
 
 
 static INDEX_TABLE: &'static [u16] = &[
 static INDEX_TABLE: &'static [u16] = &[
-    0 | 32768, 
-    1 | 32768, 
-    2 | 32768, 
-    3 | 32768, 
-    4 | 32768, 
-    5 | 0, 
-    31 | 32768, 
-    32 | 32768, 
-    33 | 32768, 
-    34 | 32768, 
-    35 | 32768, 
-    36 | 32768, 
-    37 | 0, 
-    40 | 32768, 
-    41 | 0, 
-    44 | 32768, 
-    45 | 0, 
-    49 | 32768, 
-    50 | 0, 
-    90 | 32768, 
-    91 | 0, 
-    141 | 32768, 
-    142 | 0, 
-    145 | 32768, 
-    146 | 0, 
-    152 | 32768, 
-    153 | 0, 
-    228 | 32768, 
-    229 | 0, 
-    240 | 32768, 
-    241 | 0, 
-    255 | 32768, 
-    256 | 0, 
-    269 | 32768, 
-    270 | 32768, 
-    271 | 32768, 
-    272 | 32768, 
-    273 | 32768, 
-    274 | 32768, 
-    275 | 0, 
-    290 | 32768, 
-    291 | 0, 
-    308 | 32768, 
-    309 | 32768, 
-    310 | 0, 
-    373 | 32768, 
-    374 | 0, 
-    379 | 32768, 
-    380 | 0, 
-    394 | 32768, 
-    395 | 0, 
-    404 | 32768, 
-    405 | 0, 
-    411 | 32768, 
-    412 | 0, 
-    417 | 32768, 
-    418 | 0, 
-    424 | 32768, 
-    425 | 32768, 
-    426 | 32768, 
-    427 | 0, 
-    435 | 32768, 
-    436 | 32768, 
-    437 | 32768, 
-    438 | 0, 
-    440 | 32768, 
-    441 | 0, 
-    481 | 32768, 
-    482 | 32768, 
-    483 | 32768, 
-    484 | 0, 
-    528 | 32768, 
-    529 | 0, 
-    580 | 32768, 
-    581 | 0, 
-    614 | 32768, 
-    615 | 0, 
-    683 | 32768, 
-    684 | 0, 
-    819 | 32768, 
-    820 | 32768, 
-    821 | 32768, 
-    822 | 32768, 
-    823 | 0, 
-    825 | 32768, 
-    826 | 32768, 
-    827 | 32768, 
-    828 | 32768, 
-    829 | 32768, 
-    830 | 32768, 
-    831 | 32768, 
-    832 | 32768, 
-    833 | 32768, 
-    834 | 32768, 
-    835 | 32768, 
-    836 | 32768, 
-    837 | 32768, 
-    838 | 0, 
-    842 | 32768, 
-    843 | 32768, 
-    844 | 32768, 
-    845 | 32768, 
-    846 | 32768, 
-    847 | 32768, 
-    848 | 32768, 
-    849 | 32768, 
-    850 | 32768, 
-    851 | 32768, 
-    852 | 32768, 
-    853 | 32768, 
-    854 | 32768, 
-    855 | 32768, 
-    856 | 32768, 
-    857 | 32768, 
-    858 | 0, 
-    860 | 32768, 
-    861 | 32768, 
-    862 | 32768, 
-    863 | 32768, 
-    864 | 32768, 
-    865 | 32768, 
-    866 | 32768, 
-    867 | 32768, 
-    868 | 32768, 
-    869 | 0, 
-    877 | 32768, 
-    878 | 32768, 
-    879 | 32768, 
-    880 | 32768, 
-    881 | 32768, 
-    882 | 32768, 
-    883 | 32768, 
-    884 | 32768, 
-    885 | 32768, 
-    886 | 0, 
-    888 | 32768, 
-    889 | 32768, 
-    890 | 32768, 
-    891 | 32768, 
-    892 | 32768, 
-    893 | 32768, 
-    894 | 32768, 
-    895 | 32768, 
-    896 | 32768, 
-    897 | 32768, 
-    898 | 32768, 
-    899 | 0, 
-    903 | 32768, 
-    904 | 32768, 
-    905 | 32768, 
-    906 | 32768, 
-    907 | 32768, 
-    908 | 32768, 
-    909 | 32768, 
-    910 | 32768, 
-    911 | 32768, 
-    912 | 32768, 
-    913 | 32768, 
-    914 | 32768, 
-    915 | 32768, 
-    916 | 0, 
-    923 | 32768, 
-    924 | 32768, 
-    925 | 0, 
-    927 | 32768, 
-    928 | 32768, 
-    929 | 32768, 
-    930 | 32768, 
-    931 | 32768, 
-    932 | 32768, 
-    933 | 32768, 
-    934 | 32768, 
-    935 | 0, 
-    941 | 32768, 
-    942 | 32768, 
-    943 | 32768, 
-    944 | 32768, 
-    945 | 32768, 
-    946 | 32768, 
-    947 | 32768, 
-    948 | 32768, 
-    949 | 32768, 
-    950 | 32768, 
-    951 | 32768, 
-    952 | 32768, 
-    953 | 32768, 
-    954 | 32768, 
-    955 | 32768, 
-    956 | 32768, 
-    957 | 32768, 
-    958 | 32768, 
-    959 | 32768, 
-    960 | 32768, 
-    961 | 32768, 
-    962 | 32768, 
-    963 | 32768, 
-    964 | 32768, 
-    965 | 32768, 
-    966 | 32768, 
-    967 | 32768, 
-    968 | 32768, 
-    969 | 32768, 
-    970 | 32768, 
-    971 | 32768, 
-    972 | 32768, 
-    973 | 32768, 
-    974 | 32768, 
-    975 | 32768, 
-    976 | 32768, 
-    977 | 32768, 
-    978 | 32768, 
-    979 | 32768, 
-    980 | 32768, 
-    981 | 32768, 
-    982 | 32768, 
-    983 | 32768, 
-    984 | 32768, 
-    985 | 32768, 
-    986 | 32768, 
-    987 | 32768, 
-    988 | 32768, 
-    989 | 32768, 
-    990 | 32768, 
-    991 | 32768, 
-    992 | 32768, 
-    993 | 32768, 
-    994 | 0, 
-    997 | 32768, 
-    998 | 32768, 
-    999 | 32768, 
-    1000 | 32768, 
-    1001 | 32768, 
-    1002 | 32768, 
-    1003 | 32768, 
-    1004 | 32768, 
-    1005 | 32768, 
-    1006 | 32768, 
-    1007 | 32768, 
-    1008 | 32768, 
-    1009 | 32768, 
-    1010 | 0, 
-    1013 | 32768, 
-    1014 | 32768, 
-    1015 | 32768, 
-    1016 | 32768, 
-    1017 | 32768, 
-    1018 | 32768, 
-    1019 | 32768, 
-    1020 | 32768, 
-    1021 | 32768, 
-    1022 | 32768, 
-    1023 | 32768, 
-    1024 | 32768, 
-    1025 | 32768, 
-    1026 | 32768, 
-    1027 | 32768, 
-    1028 | 32768, 
-    1029 | 32768, 
-    1030 | 32768, 
-    1031 | 32768, 
-    1032 | 32768, 
-    1033 | 32768, 
-    1034 | 32768, 
-    1035 | 32768, 
-    1036 | 32768, 
-    1037 | 32768, 
-    1038 | 32768, 
-    1039 | 32768, 
-    1040 | 32768, 
-    1041 | 32768, 
-    1042 | 32768, 
-    1043 | 32768, 
-    1044 | 32768, 
-    1045 | 32768, 
-    1046 | 32768, 
-    1047 | 32768, 
-    1048 | 32768, 
-    1049 | 32768, 
-    1050 | 32768, 
-    1051 | 32768, 
-    1052 | 32768, 
-    1053 | 32768, 
-    1054 | 32768, 
-    1055 | 32768, 
-    1056 | 32768, 
-    1057 | 32768, 
-    1058 | 32768, 
-    1059 | 32768, 
-    1060 | 32768, 
-    1061 | 32768, 
-    1062 | 32768, 
-    1063 | 32768, 
-    1064 | 32768, 
-    1065 | 32768, 
-    1066 | 32768, 
-    1067 | 32768, 
-    1068 | 32768, 
-    1069 | 32768, 
-    1070 | 32768, 
-    1071 | 32768, 
-    1072 | 32768, 
-    1073 | 32768, 
-    1074 | 32768, 
-    1075 | 32768, 
-    1076 | 32768, 
-    1077 | 0, 
-    1079 | 32768, 
-    1080 | 32768, 
-    1081 | 32768, 
-    1082 | 32768, 
-    1083 | 32768, 
-    1084 | 32768, 
-    1085 | 32768, 
-    1086 | 32768, 
-    1087 | 32768, 
-    1088 | 32768, 
-    1089 | 32768, 
-    1090 | 32768, 
-    1091 | 32768, 
-    1092 | 32768, 
-    1093 | 32768, 
-    1094 | 32768, 
-    1095 | 32768, 
-    1096 | 32768, 
-    1097 | 32768, 
-    1098 | 32768, 
-    1099 | 32768, 
-    1100 | 32768, 
-    1101 | 32768, 
-    1102 | 32768, 
-    1103 | 32768, 
-    1104 | 32768, 
-    1105 | 32768, 
-    1106 | 32768, 
-    1107 | 32768, 
-    1108 | 0, 
-    1110 | 32768, 
-    1111 | 32768, 
-    1112 | 32768, 
-    1113 | 32768, 
-    1114 | 32768, 
-    1115 | 32768, 
-    1116 | 0, 
-    1119 | 32768, 
-    1120 | 32768, 
-    1121 | 32768, 
-    1122 | 32768, 
-    1123 | 32768, 
-    1124 | 32768, 
-    1125 | 32768, 
-    1126 | 32768, 
-    1127 | 32768, 
-    1128 | 32768, 
-    1129 | 32768, 
-    1130 | 32768, 
-    1131 | 32768, 
-    1132 | 0, 
-    1134 | 32768, 
-    1135 | 32768, 
-    1136 | 0, 
-    1138 | 32768, 
-    1139 | 32768, 
-    1140 | 32768, 
-    1141 | 32768, 
-    1142 | 32768, 
-    1143 | 32768, 
-    1144 | 32768, 
-    1145 | 32768, 
-    1146 | 0, 
-    1150 | 32768, 
-    1151 | 32768, 
-    1152 | 32768, 
-    1153 | 32768, 
-    1154 | 32768, 
-    1155 | 32768, 
-    1156 | 32768, 
-    1157 | 32768, 
-    1158 | 32768, 
-    1159 | 32768, 
-    1160 | 0, 
-    1163 | 32768, 
-    1164 | 32768, 
-    1165 | 32768, 
-    1166 | 32768, 
-    1167 | 0, 
-    1169 | 32768, 
-    1170 | 32768, 
-    1171 | 32768, 
-    1172 | 32768, 
-    1173 | 32768, 
-    1174 | 32768, 
-    1175 | 32768, 
-    1176 | 32768, 
-    1177 | 32768, 
-    1178 | 32768, 
-    1179 | 32768, 
-    1180 | 32768, 
-    1181 | 32768, 
-    1182 | 32768, 
-    1183 | 32768, 
-    1184 | 32768, 
-    1185 | 32768, 
-    1186 | 32768, 
-    1187 | 32768, 
-    1188 | 32768, 
-    1189 | 32768, 
-    1190 | 0, 
-    1197 | 32768, 
-    1198 | 32768, 
-    1199 | 32768, 
-    1200 | 32768, 
-    1201 | 32768, 
-    1202 | 32768, 
-    1203 | 32768, 
-    1204 | 32768, 
-    1205 | 32768, 
-    1206 | 32768, 
-    1207 | 32768, 
-    1208 | 32768, 
-    1209 | 32768, 
-    1210 | 32768, 
-    1211 | 32768, 
-    1212 | 32768, 
-    1213 | 32768, 
-    1214 | 32768, 
-    1215 | 32768, 
-    1216 | 32768, 
-    1217 | 32768, 
-    1218 | 32768, 
-    1219 | 32768, 
-    1220 | 32768, 
-    1221 | 32768, 
-    1222 | 32768, 
-    1223 | 32768, 
-    1224 | 32768, 
-    1225 | 32768, 
-    1226 | 32768, 
-    1227 | 32768, 
-    1228 | 32768, 
-    1229 | 32768, 
-    1230 | 32768, 
-    1231 | 32768, 
-    1232 | 32768, 
-    1233 | 32768, 
-    1234 | 0, 
-    1237 | 32768, 
-    1238 | 32768, 
-    1239 | 32768, 
-    1240 | 32768, 
-    1241 | 32768, 
-    1242 | 32768, 
-    1243 | 32768, 
-    1244 | 32768, 
-    1245 | 32768, 
-    1246 | 32768, 
-    1247 | 32768, 
-    1248 | 0, 
-    1251 | 32768, 
-    1252 | 32768, 
-    1253 | 32768, 
-    1254 | 32768, 
-    1255 | 32768, 
-    1256 | 32768, 
-    1257 | 32768, 
-    1258 | 32768, 
-    1259 | 32768, 
-    1260 | 32768, 
-    1261 | 32768, 
-    1262 | 32768, 
-    1263 | 32768, 
-    1264 | 32768, 
-    1265 | 32768, 
-    1266 | 32768, 
-    1267 | 0, 
-    1273 | 32768, 
-    1274 | 32768, 
-    1275 | 32768, 
-    1276 | 32768, 
-    1277 | 32768, 
-    1278 | 32768, 
-    1279 | 32768, 
-    1280 | 32768, 
-    1281 | 32768, 
-    1282 | 32768, 
-    1283 | 32768, 
-    1284 | 32768, 
-    1285 | 32768, 
-    1286 | 32768, 
-    1287 | 32768, 
-    1288 | 32768, 
-    1289 | 32768, 
-    1290 | 32768, 
-    1291 | 32768, 
-    1292 | 32768, 
-    1293 | 32768, 
-    1294 | 32768, 
-    1295 | 32768, 
-    1296 | 32768, 
-    1297 | 32768, 
-    1298 | 32768, 
-    1299 | 32768, 
-    1300 | 32768, 
-    1301 | 32768, 
-    1302 | 32768, 
-    1303 | 32768, 
-    1304 | 32768, 
-    1305 | 32768, 
-    1306 | 32768, 
-    1307 | 32768, 
-    1308 | 32768, 
-    1309 | 32768, 
-    1310 | 32768, 
-    1311 | 32768, 
-    1312 | 32768, 
-    1313 | 32768, 
-    1314 | 32768, 
-    1315 | 32768, 
-    1316 | 32768, 
-    1317 | 32768, 
-    1318 | 32768, 
-    1319 | 32768, 
-    1320 | 32768, 
-    1321 | 32768, 
-    1322 | 32768, 
-    1323 | 32768, 
-    1324 | 32768, 
-    1325 | 32768, 
-    1326 | 32768, 
-    1327 | 32768, 
-    1328 | 32768, 
-    1329 | 32768, 
-    1330 | 32768, 
-    1331 | 32768, 
-    1332 | 32768, 
-    1333 | 32768, 
-    1334 | 32768, 
-    1335 | 32768, 
-    1336 | 32768, 
-    1337 | 32768, 
-    1338 | 32768, 
-    1339 | 32768, 
-    1340 | 32768, 
-    1341 | 32768, 
-    1342 | 32768, 
-    1343 | 32768, 
-    1344 | 32768, 
-    1345 | 32768, 
-    1346 | 32768, 
-    1347 | 32768, 
-    1348 | 32768, 
-    1349 | 32768, 
-    1350 | 32768, 
-    1351 | 32768, 
-    1352 | 32768, 
-    1353 | 32768, 
-    1354 | 32768, 
-    1355 | 32768, 
-    1356 | 32768, 
-    1357 | 32768, 
-    1358 | 0, 
-    1362 | 32768, 
-    1363 | 0, 
-    1366 | 32768, 
-    1367 | 32768, 
-    1368 | 32768, 
-    1369 | 32768, 
-    1370 | 32768, 
-    1371 | 32768, 
-    1372 | 0, 
-    1435 | 32768, 
-    1436 | 32768, 
-    1437 | 32768, 
-    1438 | 0, 
-    1475 | 32768, 
-    1476 | 32768, 
-    1477 | 32768, 
-    1478 | 0, 
-    1627 | 32768, 
-    1628 | 0, 
-    1630 | 32768, 
-    1631 | 0, 
-    1728 | 32768, 
-    1729 | 0, 
-    1737 | 32768, 
-    1738 | 32768, 
-    1739 | 0, 
-    1745 | 32768, 
-    1746 | 32768, 
-    1747 | 0, 
-    1755 | 32768, 
-    1756 | 0, 
-    1764 | 32768, 
-    1765 | 32768, 
-    1766 | 0, 
-    1772 | 32768, 
-    1773 | 32768, 
-    1774 | 0, 
-    1782 | 32768, 
-    1783 | 0, 
-    1805 | 32768, 
-    1806 | 0, 
-    1854 | 32768, 
-    1855 | 0, 
-    1885 | 32768, 
-    1886 | 32768, 
-    1887 | 32768, 
-    1888 | 32768, 
-    1889 | 0, 
-    1897 | 32768, 
-    1898 | 32768, 
-    1899 | 32768, 
-    1900 | 0, 
-    1908 | 32768, 
-    1909 | 0, 
-    1923 | 32768, 
-    1924 | 32768, 
-    1925 | 32768, 
-    1926 | 32768, 
-    1927 | 0, 
-    1929 | 32768, 
-    1930 | 32768, 
-    1931 | 32768, 
-    1932 | 32768, 
-    1933 | 32768, 
-    1934 | 32768, 
-    1935 | 32768, 
-    1936 | 32768, 
-    1937 | 0, 
-    1942 | 32768, 
-    1943 | 0, 
-    1946 | 32768, 
-    1947 | 0, 
-    1950 | 32768, 
-    1951 | 32768, 
-    1952 | 32768, 
-    1953 | 0, 
-    1955 | 32768, 
-    1956 | 32768, 
-    1957 | 32768, 
-    1958 | 0, 
-    1960 | 32768, 
-    1961 | 0, 
-    2002 | 32768, 
-    2003 | 32768, 
-    2004 | 32768, 
-    2005 | 32768, 
-    2006 | 32768, 
-    2007 | 32768, 
-    2008 | 32768, 
-    2009 | 0, 
-    2020 | 32768, 
-    2021 | 32768, 
-    2022 | 32768, 
-    2023 | 32768, 
-    2024 | 0, 
-    2027 | 32768, 
-    2028 | 0, 
-    2030 | 32768, 
-    2031 | 32768, 
-    2032 | 0, 
-    2047 | 32768, 
-    2048 | 0, 
-    2060 | 32768, 
-    2061 | 0, 
-    2063 | 32768, 
-    2064 | 32768, 
-    2065 | 0, 
-    2068 | 32768, 
-    2069 | 0, 
-    2117 | 32768, 
-    2118 | 32768, 
-    2119 | 32768, 
-    2120 | 32768, 
-    2121 | 32768, 
-    2122 | 32768, 
-    2123 | 32768, 
-    2124 | 0, 
-    2129 | 32768, 
-    2130 | 32768, 
-    2131 | 32768, 
-    2132 | 32768, 
-    2133 | 32768, 
-    2134 | 0, 
-    2136 | 32768, 
-    2137 | 32768, 
-    2138 | 32768, 
-    2139 | 32768, 
-    2140 | 0, 
-    2180 | 32768, 
-    2181 | 0, 
-    2260 | 32768, 
-    2261 | 32768, 
-    2262 | 32768, 
-    2263 | 0, 
-    2266 | 32768, 
-    2267 | 32768, 
-    2268 | 32768, 
-    2269 | 32768, 
-    2270 | 32768, 
-    2271 | 32768, 
-    2272 | 32768, 
-    2273 | 32768, 
-    2274 | 32768, 
-    2275 | 32768, 
-    2276 | 32768, 
-    2277 | 32768, 
-    2278 | 32768, 
-    2279 | 32768, 
-    2280 | 0, 
-    2328 | 32768, 
-    2329 | 0, 
-    2335 | 32768, 
-    2336 | 0, 
-    2348 | 32768, 
-    2349 | 32768, 
-    2350 | 32768, 
-    2351 | 0, 
-    2454 | 32768, 
-    2455 | 0, 
-    2458 | 32768, 
-    2459 | 0, 
-    2461 | 32768, 
-    2462 | 32768, 
-    2463 | 0, 
-    2465 | 32768, 
-    2466 | 32768, 
-    2467 | 32768, 
-    2468 | 32768, 
-    2469 | 32768, 
-    2470 | 0, 
-    2472 | 32768, 
-    2473 | 32768, 
-    2474 | 32768, 
-    2475 | 32768, 
-    2476 | 32768, 
-    2477 | 32768, 
-    2478 | 32768, 
-    2479 | 32768, 
-    2480 | 32768, 
-    2481 | 32768, 
-    2482 | 32768, 
-    2483 | 32768, 
-    2484 | 32768, 
-    2485 | 32768, 
-    2486 | 32768, 
-    2487 | 32768, 
-    2488 | 32768, 
-    2489 | 32768, 
-    2490 | 32768, 
-    2491 | 32768, 
-    2492 | 32768, 
-    2493 | 32768, 
-    2494 | 32768, 
-    2495 | 32768, 
-    2496 | 32768, 
-    2497 | 32768, 
-    2498 | 32768, 
-    2499 | 32768, 
-    2500 | 0, 
-    2714 | 32768, 
-    2715 | 0, 
-    2718 | 32768, 
-    2719 | 0, 
-    2724 | 32768, 
-    2725 | 32768, 
-    2726 | 32768, 
-    2727 | 32768, 
-    2728 | 32768, 
-    2729 | 0, 
-    2731 | 32768, 
-    2732 | 32768, 
-    2733 | 32768, 
-    2734 | 32768, 
-    2735 | 32768, 
-    2736 | 32768, 
-    2737 | 32768, 
-    2738 | 0, 
-    2833 | 32768, 
-    2834 | 0, 
-    2848 | 32768, 
-    2849 | 32768, 
-    2850 | 32768, 
-    2851 | 32768, 
-    2852 | 32768, 
-    2853 | 0, 
-    2925 | 32768, 
-    2926 | 0, 
-    3358 | 32768, 
-    3359 | 32768, 
-    3360 | 32768, 
-    3361 | 32768, 
-    3362 | 32768, 
-    3363 | 32768, 
-    3364 | 32768, 
-    3365 | 32768, 
-    3366 | 32768, 
-    3367 | 32768, 
-    3368 | 0, 
-    3413 | 32768, 
-    3414 | 0, 
-    3444 | 32768, 
-    3445 | 32768, 
-    3446 | 32768, 
-    3447 | 0, 
-    3460 | 32768, 
-    3461 | 0, 
-    3524 | 32768, 
-    3525 | 0, 
-    3539 | 32768, 
-    3540 | 0, 
-    3543 | 32768, 
-    3544 | 0, 
-    3547 | 32768, 
-    3548 | 0, 
-    3582 | 32768, 
-    3583 | 0, 
-    3586 | 32768, 
-    3587 | 32768, 
-    3588 | 32768, 
-    3589 | 32768, 
-    3590 | 32768, 
-    3591 | 32768, 
-    3592 | 32768, 
-    3593 | 32768, 
-    3594 | 32768, 
-    3595 | 32768, 
-    3596 | 32768, 
-    3597 | 32768, 
-    3598 | 32768, 
-    3599 | 32768, 
-    3600 | 32768, 
-    3601 | 32768, 
-    3602 | 32768, 
-    3603 | 32768, 
-    3604 | 32768, 
-    3605 | 32768, 
-    3606 | 32768, 
-    3607 | 32768, 
-    3608 | 32768, 
-    3609 | 32768, 
-    3610 | 32768, 
-    3611 | 32768, 
-    3612 | 32768, 
-    3613 | 32768, 
-    3614 | 32768, 
-    3615 | 32768, 
-    3616 | 32768, 
-    3617 | 32768, 
-    3618 | 32768, 
-    3619 | 32768, 
-    3620 | 32768, 
-    3621 | 32768, 
-    3622 | 32768, 
-    3623 | 32768, 
-    3624 | 32768, 
-    3625 | 32768, 
-    3626 | 32768, 
-    3627 | 32768, 
-    3628 | 32768, 
-    3629 | 0, 
-    3633 | 32768, 
-    3634 | 32768, 
-    3635 | 0, 
-    3715 | 32768, 
-    3716 | 32768, 
-    3717 | 32768, 
-    3718 | 32768, 
-    3719 | 32768, 
-    3720 | 32768, 
-    3721 | 32768, 
-    3722 | 32768, 
-    3723 | 32768, 
-    3724 | 32768, 
-    3725 | 0, 
-    3732 | 32768, 
-    3733 | 0, 
-    3994 | 32768, 
-    3995 | 0, 
-    3998 | 32768, 
-    3999 | 0, 
-    4013 | 32768, 
-    4014 | 0, 
-    4016 | 32768, 
-    4017 | 0, 
-    4068 | 32768, 
-    4069 | 0, 
-    4084 | 32768, 
-    4085 | 0, 
-    4191 | 32768, 
-    4192 | 0, 
-    4197 | 32768, 
-    4198 | 32768, 
-    4199 | 0, 
-    4204 | 32768, 
-    4205 | 0, 
-    4256 | 32768, 
-    4257 | 32768, 
-    4258 | 32768, 
-    4259 | 32768, 
-    4260 | 32768, 
-    4261 | 32768, 
-    4262 | 32768, 
-    4263 | 32768, 
-    4264 | 32768, 
-    4265 | 32768, 
-    4266 | 32768, 
-    4267 | 32768, 
-    4268 | 32768, 
-    4269 | 32768, 
-    4270 | 32768, 
-    4271 | 32768, 
-    4272 | 32768, 
-    4273 | 32768, 
-    4274 | 32768, 
-    4275 | 32768, 
-    4276 | 32768, 
-    4277 | 32768, 
-    4278 | 32768, 
-    4279 | 32768, 
-    4280 | 32768, 
-    4281 | 32768, 
-    4282 | 32768, 
-    4283 | 32768, 
-    4284 | 32768, 
-    4285 | 32768, 
-    4286 | 32768, 
-    4287 | 32768, 
-    4288 | 32768, 
-    4289 | 32768, 
-    4290 | 32768, 
-    4291 | 32768, 
-    4292 | 32768, 
-    4293 | 32768, 
-    4294 | 32768, 
-    4295 | 32768, 
-    4296 | 32768, 
-    4297 | 32768, 
-    4298 | 32768, 
-    4299 | 32768, 
-    4300 | 32768, 
-    4301 | 32768, 
-    4302 | 32768, 
-    4303 | 32768, 
-    4304 | 32768, 
-    4305 | 32768, 
-    4306 | 32768, 
-    4307 | 0, 
-    4623 | 32768, 
-    4624 | 32768, 
-    4625 | 32768, 
-    4626 | 32768, 
-    4627 | 32768, 
-    4628 | 0, 
-    4633 | 32768, 
-    4634 | 0, 
-    4639 | 32768, 
-    4640 | 32768, 
-    4641 | 32768, 
-    4642 | 32768, 
-    4643 | 32768, 
-    4644 | 32768, 
-    4645 | 32768, 
-    4646 | 32768, 
-    4647 | 32768, 
-    4648 | 32768, 
-    4649 | 32768, 
-    4650 | 32768, 
-    4651 | 0, 
-    4654 | 32768, 
-    4655 | 0, 
-    4659 | 32768, 
-    4660 | 0, 
-    4665 | 32768, 
-    4666 | 32768, 
-    4667 | 32768, 
-    4668 | 0, 
-    4675 | 32768, 
-    4676 | 0, 
-    4681 | 32768, 
-    4682 | 0, 
-    4685 | 32768, 
-    4686 | 0, 
-    4728 | 32768, 
-    4729 | 0, 
-    4743 | 32768, 
-    4744 | 32768, 
-    4745 | 0, 
-    4754 | 32768, 
-    4755 | 32768, 
-    4756 | 0, 
-    4759 | 32768, 
-    4760 | 0, 
-    4776 | 32768, 
-    4777 | 0, 
-    4779 | 32768, 
-    4780 | 32768, 
-    4781 | 0, 
-    4783 | 32768, 
-    4784 | 0, 
-    4808 | 32768, 
-    4809 | 0, 
-    4826 | 32768, 
-    4827 | 32768, 
-    4828 | 32768, 
-    4829 | 32768, 
-    4830 | 32768, 
-    4831 | 32768, 
-    4832 | 32768, 
-    4833 | 32768, 
-    4834 | 32768, 
-    4835 | 32768, 
-    4836 | 32768, 
-    4837 | 32768, 
-    4838 | 32768, 
-    4839 | 32768, 
-    4840 | 32768, 
-    4841 | 32768, 
-    4842 | 32768, 
-    4843 | 32768, 
-    4844 | 32768, 
-    4845 | 32768, 
-    4846 | 32768, 
-    4847 | 32768, 
-    4848 | 32768, 
-    4849 | 32768, 
-    4850 | 32768, 
-    4851 | 32768, 
-    4852 | 32768, 
-    4853 | 32768, 
-    4854 | 32768, 
-    4855 | 32768, 
-    4856 | 32768, 
-    4857 | 32768, 
-    4858 | 32768, 
-    4859 | 32768, 
-    4860 | 32768, 
-    4861 | 32768, 
-    4862 | 32768, 
-    4863 | 32768, 
-    4864 | 32768, 
-    4865 | 32768, 
-    4866 | 0, 
-    5058 | 32768, 
-    5059 | 0, 
-    5065 | 32768, 
-    5066 | 0, 
-    5072 | 32768, 
-    5073 | 0, 
-    5079 | 32768, 
-    5080 | 0, 
-    5083 | 32768, 
-    5084 | 0, 
-    5099 | 32768, 
-    5100 | 32768, 
-    5101 | 32768, 
-    5102 | 32768, 
-    5103 | 32768, 
-    5104 | 32768, 
-    5105 | 32768, 
-    5106 | 32768, 
-    5107 | 32768, 
-    5108 | 32768, 
-    5109 | 32768, 
-    5110 | 32768, 
-    5111 | 32768, 
-    5112 | 32768, 
-    5113 | 32768, 
-    5114 | 32768, 
-    5115 | 32768, 
-    5116 | 32768, 
-    5117 | 32768, 
-    5118 | 32768, 
-    5119 | 32768, 
-    5120 | 32768, 
-    5121 | 32768, 
-    5122 | 32768, 
-    5123 | 32768, 
-    5124 | 32768, 
-    5125 | 32768, 
-    5126 | 32768, 
-    5127 | 32768, 
-    5128 | 32768, 
-    5129 | 32768, 
-    5130 | 32768, 
-    5131 | 32768, 
-    5132 | 32768, 
-    5133 | 32768, 
-    5134 | 32768, 
-    5135 | 32768, 
-    5136 | 32768, 
-    5137 | 32768, 
-    5138 | 32768, 
-    5139 | 32768, 
-    5140 | 32768, 
-    5141 | 32768, 
-    5142 | 32768, 
-    5143 | 32768, 
-    5144 | 0, 
-    5184 | 32768, 
-    5185 | 32768, 
-    5186 | 32768, 
-    5187 | 32768, 
-    5188 | 0, 
-    5224 | 32768, 
-    5225 | 32768, 
-    5226 | 32768, 
-    5227 | 32768, 
-    5228 | 32768, 
-    5229 | 32768, 
-    5230 | 32768, 
-    5231 | 32768, 
-    5232 | 32768, 
-    5233 | 32768, 
-    5234 | 32768, 
-    5235 | 32768, 
-    5236 | 32768, 
-    5237 | 32768, 
-    5238 | 32768, 
-    5239 | 32768, 
-    5240 | 32768, 
-    5241 | 0, 
-    5243 | 32768, 
-    5244 | 32768, 
-    5245 | 32768, 
-    5246 | 32768, 
-    5247 | 32768, 
-    5248 | 32768, 
-    5249 | 32768, 
-    5250 | 32768, 
-    5251 | 32768, 
-    5252 | 32768, 
-    5253 | 32768, 
-    5254 | 32768, 
-    5255 | 32768, 
-    5256 | 32768, 
-    5257 | 32768, 
-    5258 | 32768, 
-    5259 | 32768, 
-    5260 | 32768, 
-    5261 | 32768, 
-    5262 | 32768, 
-    5263 | 32768, 
-    5264 | 32768, 
-    5265 | 32768, 
-    5266 | 32768, 
-    5267 | 32768, 
-    5268 | 32768, 
-    5269 | 32768, 
-    5270 | 32768, 
-    5271 | 32768, 
-    5272 | 32768, 
-    5273 | 32768, 
-    5274 | 32768, 
-    5275 | 32768, 
-    5276 | 32768, 
-    5277 | 32768, 
-    5278 | 32768, 
-    5279 | 32768, 
-    5280 | 32768, 
-    5281 | 32768, 
-    5282 | 32768, 
-    5283 | 32768, 
-    5284 | 32768, 
-    5285 | 32768, 
-    5286 | 32768, 
-    5287 | 32768, 
-    5288 | 32768, 
-    5289 | 32768, 
-    5290 | 32768, 
-    5291 | 32768, 
-    5292 | 32768, 
-    5293 | 32768, 
-    5294 | 32768, 
-    5295 | 32768, 
-    5296 | 32768, 
-    5297 | 32768, 
-    5298 | 32768, 
-    5299 | 32768, 
-    5300 | 32768, 
-    5301 | 32768, 
-    5302 | 32768, 
-    5303 | 32768, 
-    5304 | 32768, 
-    5305 | 0, 
-    5356 | 32768, 
-    5357 | 32768, 
-    5358 | 32768, 
-    5359 | 32768, 
-    5360 | 32768, 
-    5361 | 32768, 
-    5362 | 32768, 
-    5363 | 32768, 
-    5364 | 32768, 
-    5365 | 32768, 
-    5366 | 32768, 
-    5367 | 32768, 
-    5368 | 32768, 
-    5369 | 32768, 
-    5370 | 32768, 
-    5371 | 32768, 
-    5372 | 32768, 
-    5373 | 32768, 
-    5374 | 32768, 
-    5375 | 32768, 
-    5376 | 32768, 
-    5377 | 32768, 
-    5378 | 32768, 
-    5379 | 32768, 
-    5380 | 32768, 
-    5381 | 32768, 
-    5382 | 32768, 
-    5383 | 32768, 
-    5384 | 32768, 
-    5385 | 32768, 
-    5386 | 32768, 
-    5387 | 32768, 
-    5388 | 32768, 
-    5389 | 32768, 
-    5390 | 32768, 
-    5391 | 32768, 
-    5392 | 0, 
-    5395 | 32768, 
-    5396 | 32768, 
-    5397 | 32768, 
-    5398 | 32768, 
-    5399 | 32768, 
-    5400 | 32768, 
-    5401 | 32768, 
-    5402 | 32768, 
-    5403 | 32768, 
-    5404 | 32768, 
-    5405 | 32768, 
-    5406 | 32768, 
-    5407 | 32768, 
-    5408 | 32768, 
-    5409 | 32768, 
-    5410 | 32768, 
-    5411 | 32768, 
-    5412 | 32768, 
-    5413 | 32768, 
-    5414 | 32768, 
-    5415 | 32768, 
-    5416 | 32768, 
-    5417 | 32768, 
-    5418 | 32768, 
-    5419 | 32768, 
-    5420 | 32768, 
-    5421 | 32768, 
-    5422 | 32768, 
-    5423 | 32768, 
-    5424 | 32768, 
-    5425 | 32768, 
-    5426 | 32768, 
-    5427 | 32768, 
-    5428 | 32768, 
-    5429 | 32768, 
-    5430 | 32768, 
-    5431 | 32768, 
-    5432 | 32768, 
-    5433 | 32768, 
-    5434 | 32768, 
-    5435 | 32768, 
-    5436 | 0, 
-    5440 | 32768, 
-    5441 | 32768, 
-    5442 | 32768, 
-    5443 | 32768, 
-    5444 | 32768, 
-    5445 | 32768, 
-    5446 | 32768, 
-    5447 | 32768, 
-    5448 | 32768, 
-    5449 | 32768, 
-    5450 | 32768, 
-    5451 | 32768, 
-    5452 | 32768, 
-    5453 | 32768, 
-    5454 | 32768, 
-    5455 | 32768, 
-    5456 | 32768, 
-    5457 | 32768, 
-    5458 | 32768, 
-    5459 | 32768, 
-    5460 | 32768, 
-    5461 | 32768, 
-    5462 | 32768, 
-    5463 | 32768, 
-    5464 | 32768, 
-    5465 | 0, 
-    5497 | 32768, 
-    5498 | 32768, 
-    5499 | 32768, 
-    5500 | 32768, 
-    5501 | 32768, 
-    5502 | 32768, 
-    5503 | 32768, 
-    5504 | 32768, 
-    5505 | 32768, 
-    5506 | 32768, 
-    5507 | 32768, 
-    5508 | 32768, 
-    5509 | 32768, 
-    5510 | 32768, 
-    5511 | 32768, 
-    5512 | 32768, 
-    5513 | 32768, 
-    5514 | 32768, 
-    5515 | 32768, 
-    5516 | 32768, 
-    5517 | 32768, 
-    5518 | 32768, 
-    5519 | 32768, 
-    5520 | 32768, 
-    5521 | 32768, 
-    5522 | 32768, 
-    5523 | 32768, 
-    5524 | 32768, 
-    5525 | 32768, 
-    5526 | 32768, 
-    5527 | 32768, 
-    5528 | 32768, 
-    5529 | 32768, 
-    5530 | 32768, 
-    5531 | 0, 
-    5533 | 32768, 
-    5534 | 32768, 
-    5535 | 32768, 
-    5536 | 32768, 
-    5537 | 32768, 
-    5538 | 32768, 
-    5539 | 32768, 
-    5540 | 32768, 
-    5541 | 32768, 
-    5542 | 32768, 
-    5543 | 32768, 
-    5544 | 32768, 
-    5545 | 32768, 
-    5546 | 32768, 
-    5547 | 32768, 
-    5548 | 32768, 
-    5549 | 32768, 
-    5550 | 32768, 
-    5551 | 32768, 
-    5552 | 32768, 
-    5553 | 32768, 
-    5554 | 32768, 
-    5555 | 32768, 
-    5556 | 32768, 
-    5557 | 32768, 
-    5558 | 32768, 
-    5559 | 32768, 
-    5560 | 32768, 
-    5561 | 32768, 
-    5562 | 32768, 
-    5563 | 32768, 
-    5564 | 32768, 
-    5565 | 32768, 
-    5566 | 32768, 
-    5567 | 32768, 
-    5568 | 32768, 
-    5569 | 32768, 
-    5570 | 32768, 
-    5571 | 32768, 
-    5572 | 32768, 
-    5573 | 32768, 
-    5574 | 32768, 
-    5575 | 32768, 
-    5576 | 32768, 
-    5577 | 32768, 
-    5578 | 32768, 
-    5579 | 32768, 
-    5580 | 32768, 
-    5581 | 32768, 
-    5582 | 32768, 
-    5583 | 32768, 
-    5584 | 32768, 
-    5585 | 32768, 
-    5586 | 32768, 
-    5587 | 32768, 
-    5588 | 32768, 
-    5589 | 32768, 
-    5590 | 32768, 
-    5591 | 32768, 
-    5592 | 32768, 
-    5593 | 32768, 
-    5594 | 32768, 
-    5595 | 32768, 
-    5596 | 32768, 
-    5597 | 32768, 
-    5598 | 32768, 
-    5599 | 32768, 
-    5600 | 32768, 
-    5601 | 32768, 
-    5602 | 32768, 
-    5603 | 32768, 
-    5604 | 32768, 
-    5605 | 0, 
-    5612 | 32768, 
-    5613 | 32768, 
-    5614 | 32768, 
-    5615 | 0, 
-    5621 | 32768, 
-    5622 | 32768, 
-    5623 | 32768, 
-    5624 | 32768, 
-    5625 | 32768, 
-    5626 | 32768, 
-    5627 | 32768, 
-    5628 | 32768, 
-    5629 | 0, 
-    5789 | 32768, 
-    5790 | 32768, 
-    5791 | 32768, 
-    5792 | 0, 
-    5794 | 32768, 
-    5795 | 0, 
-    5893 | 32768, 
-    5894 | 0, 
-    5952 | 32768, 
-    5953 | 0, 
-    6301 | 32768, 
-    6302 | 0, 
-    6345 | 32768, 
-    6346 | 0, 
-    6402 | 32768, 
-    6403 | 0, 
-    6459 | 32768, 
-    6460 | 0, 
-    6516 | 32768, 
-    6517 | 0, 
-    6573 | 32768, 
-    6574 | 0, 
-    6587 | 32768, 
-    6588 | 32768, 
-    6589 | 0, 
-    6639 | 32768, 
-    6640 | 32768, 
-    6641 | 32768, 
-    6642 | 32768, 
-    6643 | 32768, 
-    6644 | 32768, 
-    6645 | 32768, 
-    6646 | 32768, 
-    6647 | 32768, 
-    6648 | 32768, 
-    6649 | 32768, 
-    6650 | 32768, 
-    6651 | 32768, 
-    6652 | 32768, 
-    6653 | 32768, 
-    6654 | 32768, 
-    6655 | 32768, 
-    6656 | 32768, 
-    6657 | 32768, 
-    6658 | 32768, 
-    6659 | 0, 
-    6693 | 32768, 
-    6694 | 32768, 
-    6695 | 32768, 
-    6696 | 32768, 
-    6697 | 32768, 
-    6698 | 32768, 
-    6699 | 0, 
-    6736 | 32768, 
-    6737 | 0, 
-    6758 | 32768, 
-    6759 | 32768, 
-    6760 | 32768, 
-    6761 | 0, 
-    6775 | 32768, 
-    6776 | 0, 
-    6790 | 32768, 
-    6791 | 0, 
-    6844 | 32768, 
-    6845 | 0, 
-    6872 | 32768, 
-    6873 | 32768, 
-    6874 | 32768, 
-    6875 | 32768, 
-    6876 | 32768, 
-    6877 | 32768, 
-    6878 | 32768, 
-    6879 | 32768, 
-    6880 | 32768, 
-    6881 | 32768, 
-    6882 | 32768, 
-    6883 | 32768, 
-    6884 | 32768, 
-    6885 | 32768, 
-    6886 | 32768, 
-    6887 | 0, 
-    6897 | 32768, 
-    6898 | 32768, 
-    6899 | 0, 
-    6963 | 32768, 
-    6964 | 0, 
-    6966 | 32768, 
-    6967 | 32768, 
-    6968 | 32768, 
-    6969 | 32768, 
-    6970 | 32768, 
-    6971 | 32768, 
-    6972 | 0, 
-    6975 | 32768, 
-    6976 | 0, 
-    7020 | 32768, 
-    7021 | 0, 
-    7030 | 32768, 
-    7031 | 0, 
-    7033 | 32768, 
-    7034 | 32768, 
-    7035 | 32768, 
-    7036 | 32768, 
-    7037 | 32768, 
-    7038 | 32768, 
-    7039 | 32768, 
-    7040 | 32768, 
-    7041 | 32768, 
-    7042 | 32768, 
-    7043 | 32768, 
-    7044 | 32768, 
-    7045 | 32768, 
-    7046 | 32768, 
-    7047 | 32768, 
-    7048 | 32768, 
-    7049 | 32768, 
-    7050 | 32768, 
-    7051 | 32768, 
-    7052 | 32768, 
-    7053 | 32768, 
-    7054 | 32768, 
-    7055 | 32768, 
-    7056 | 32768, 
-    7057 | 32768, 
-    7058 | 32768, 
-    7059 | 32768, 
-    7060 | 32768, 
-    7061 | 32768, 
-    7062 | 32768, 
-    7063 | 32768, 
-    7064 | 32768, 
-    7065 | 32768, 
-    7066 | 32768, 
-    7067 | 32768, 
-    7068 | 32768, 
-    7069 | 32768, 
-    7070 | 32768, 
-    7071 | 32768, 
-    7072 | 32768, 
-    7073 | 32768, 
-    7074 | 32768, 
-    7075 | 32768, 
-    7076 | 32768, 
-    7077 | 32768, 
-    7078 | 32768, 
-    7079 | 32768, 
-    7080 | 0, 
-    7129 | 32768, 
-    7130 | 0, 
-    7147 | 32768, 
-    7148 | 0, 
-    7183 | 32768, 
-    7184 | 0, 
-    7221 | 32768, 
-    7222 | 32768, 
-    7223 | 32768, 
-    7224 | 0, 
-    7374 | 32768, 
-    7375 | 0, 
-    7399 | 32768, 
-    7400 | 0, 
-    7421 | 32768, 
-    7422 | 0, 
-    7581 | 32768, 
-    7582 | 0, 
-    7612 | 32768, 
-    7613 | 32768, 
-    7614 | 32768, 
+    32768,
+    32769,
+    32770,
+    32771,
+    32772,
+    5,
+    32799,
+    32800,
+    32801,
+    32802,
+    32803,
+    32804,
+    37,
+    32808,
+    41,
+    32812,
+    45,
+    32817,
+    50,
+    32858,
+    91,
+    32909,
+    142,
+    32913,
+    146,
+    32920,
+    153,
+    32996,
+    229,
+    33008,
+    241,
+    33023,
+    256,
+    33037,
+    33038,
+    33039,
+    33040,
+    33041,
+    33042,
+    275,
+    33058,
+    291,
+    33076,
+    33077,
+    310,
+    33141,
+    374,
+    33147,
+    380,
+    33162,
+    395,
+    33172,
+    405,
+    33179,
+    412,
+    33185,
+    418,
+    33192,
+    33193,
+    33194,
+    427,
+    33203,
+    33204,
+    33205,
+    438,
+    33208,
+    441,
+    33249,
+    33250,
+    33251,
+    484,
+    33296,
+    529,
+    33348,
+    581,
+    33382,
+    615,
+    33451,
+    684,
+    33587,
+    33588,
+    33589,
+    33590,
+    823,
+    33593,
+    33594,
+    33595,
+    33596,
+    33597,
+    33598,
+    33599,
+    33600,
+    33601,
+    33602,
+    33603,
+    33604,
+    33605,
+    838,
+    33610,
+    33611,
+    33612,
+    33613,
+    33614,
+    33615,
+    33616,
+    33617,
+    33618,
+    33619,
+    33620,
+    33621,
+    33622,
+    33623,
+    33624,
+    33625,
+    858,
+    33628,
+    33629,
+    33630,
+    33631,
+    33632,
+    33633,
+    33634,
+    33635,
+    33636,
+    869,
+    33645,
+    33646,
+    33647,
+    33648,
+    33649,
+    33650,
+    33651,
+    33652,
+    33653,
+    886,
+    33656,
+    33657,
+    33658,
+    33659,
+    33660,
+    33661,
+    33662,
+    33663,
+    33664,
+    33665,
+    33666,
+    899,
+    33671,
+    33672,
+    33673,
+    33674,
+    33675,
+    33676,
+    33677,
+    33678,
+    33679,
+    33680,
+    33681,
+    33682,
+    33683,
+    916,
+    33691,
+    33692,
+    925,
+    33695,
+    33696,
+    33697,
+    33698,
+    33699,
+    33700,
+    33701,
+    33702,
+    935,
+    33709,
+    33710,
+    33711,
+    33712,
+    33713,
+    33714,
+    33715,
+    33716,
+    33717,
+    33718,
+    33719,
+    33720,
+    33721,
+    33722,
+    33723,
+    33724,
+    33725,
+    33726,
+    33727,
+    33728,
+    33729,
+    33730,
+    33731,
+    33732,
+    33733,
+    33734,
+    33735,
+    33736,
+    33737,
+    33738,
+    33739,
+    33740,
+    33741,
+    33742,
+    33743,
+    33744,
+    33745,
+    33746,
+    33747,
+    33748,
+    33749,
+    33750,
+    33751,
+    33752,
+    33753,
+    33754,
+    33755,
+    33756,
+    33757,
+    33758,
+    33759,
+    33760,
+    33761,
+    994,
+    33765,
+    33766,
+    33767,
+    33768,
+    33769,
+    33770,
+    33771,
+    33772,
+    33773,
+    33774,
+    33775,
+    33776,
+    33777,
+    1010,
+    33781,
+    33782,
+    33783,
+    33784,
+    33785,
+    33786,
+    33787,
+    33788,
+    33789,
+    33790,
+    33791,
+    33792,
+    33793,
+    33794,
+    33795,
+    33796,
+    33797,
+    33798,
+    33799,
+    33800,
+    33801,
+    33802,
+    33803,
+    33804,
+    33805,
+    33806,
+    33807,
+    33808,
+    33809,
+    33810,
+    33811,
+    33812,
+    33813,
+    33814,
+    33815,
+    33816,
+    33817,
+    33818,
+    33819,
+    33820,
+    33821,
+    33822,
+    33823,
+    33824,
+    33825,
+    33826,
+    33827,
+    33828,
+    33829,
+    33830,
+    33831,
+    33832,
+    33833,
+    33834,
+    33835,
+    33836,
+    33837,
+    33838,
+    33839,
+    33840,
+    33841,
+    33842,
+    33843,
+    33844,
+    1077,
+    33847,
+    33848,
+    33849,
+    33850,
+    33851,
+    33852,
+    33853,
+    33854,
+    33855,
+    33856,
+    33857,
+    33858,
+    33859,
+    33860,
+    33861,
+    33862,
+    33863,
+    33864,
+    33865,
+    33866,
+    33867,
+    33868,
+    33869,
+    33870,
+    33871,
+    33872,
+    33873,
+    33874,
+    33875,
+    1108,
+    33878,
+    33879,
+    33880,
+    33881,
+    33882,
+    33883,
+    1116,
+    33887,
+    33888,
+    33889,
+    33890,
+    33891,
+    33892,
+    33893,
+    33894,
+    33895,
+    33896,
+    33897,
+    33898,
+    33899,
+    1132,
+    33902,
+    33903,
+    1136,
+    33906,
+    33907,
+    33908,
+    33909,
+    33910,
+    33911,
+    33912,
+    33913,
+    1146,
+    33918,
+    33919,
+    33920,
+    33921,
+    33922,
+    33923,
+    33924,
+    33925,
+    33926,
+    33927,
+    1160,
+    33931,
+    33932,
+    33933,
+    33934,
+    1167,
+    33937,
+    33938,
+    33939,
+    33940,
+    33941,
+    33942,
+    33943,
+    33944,
+    33945,
+    33946,
+    33947,
+    33948,
+    33949,
+    33950,
+    33951,
+    33952,
+    33953,
+    33954,
+    33955,
+    33956,
+    33957,
+    1190,
+    33965,
+    33966,
+    33967,
+    33968,
+    33969,
+    33970,
+    33971,
+    33972,
+    33973,
+    33974,
+    33975,
+    33976,
+    33977,
+    33978,
+    33979,
+    33980,
+    33981,
+    33982,
+    33983,
+    33984,
+    33985,
+    33986,
+    33987,
+    33988,
+    33989,
+    33990,
+    33991,
+    33992,
+    33993,
+    33994,
+    33995,
+    33996,
+    33997,
+    33998,
+    33999,
+    34000,
+    34001,
+    1234,
+    34005,
+    34006,
+    34007,
+    34008,
+    34009,
+    34010,
+    34011,
+    34012,
+    34013,
+    34014,
+    34015,
+    1248,
+    34019,
+    34020,
+    34021,
+    34022,
+    34023,
+    34024,
+    34025,
+    34026,
+    34027,
+    34028,
+    34029,
+    34030,
+    34031,
+    34032,
+    34033,
+    34034,
+    1267,
+    34041,
+    34042,
+    34043,
+    34044,
+    34045,
+    34046,
+    34047,
+    34048,
+    34049,
+    34050,
+    34051,
+    34052,
+    34053,
+    34054,
+    34055,
+    34056,
+    34057,
+    34058,
+    34059,
+    34060,
+    34061,
+    34062,
+    34063,
+    34064,
+    34065,
+    34066,
+    34067,
+    34068,
+    34069,
+    34070,
+    34071,
+    34072,
+    34073,
+    34074,
+    34075,
+    34076,
+    34077,
+    34078,
+    34079,
+    34080,
+    34081,
+    34082,
+    34083,
+    34084,
+    34085,
+    34086,
+    34087,
+    34088,
+    34089,
+    34090,
+    34091,
+    34092,
+    34093,
+    34094,
+    34095,
+    34096,
+    34097,
+    34098,
+    34099,
+    34100,
+    34101,
+    34102,
+    34103,
+    34104,
+    34105,
+    34106,
+    34107,
+    34108,
+    34109,
+    34110,
+    34111,
+    34112,
+    34113,
+    34114,
+    34115,
+    34116,
+    34117,
+    34118,
+    34119,
+    34120,
+    34121,
+    34122,
+    34123,
+    34124,
+    34125,
+    1358,
+    34130,
+    1363,
+    34134,
+    34135,
+    34136,
+    34137,
+    34138,
+    34139,
+    1372,
+    34203,
+    34204,
+    34205,
+    1438,
+    34243,
+    34244,
+    34245,
+    1478,
+    34395,
+    1628,
+    34398,
+    1631,
+    34496,
+    1729,
+    34505,
+    34506,
+    1739,
+    34513,
+    34514,
+    1747,
+    34523,
+    1756,
+    34532,
+    34533,
+    1766,
+    34540,
+    34541,
+    1774,
+    34550,
+    1783,
+    34573,
+    1806,
+    34622,
+    1855,
+    34653,
+    34654,
+    34655,
+    34656,
+    1889,
+    34665,
+    34666,
+    34667,
+    1900,
+    34676,
+    1909,
+    34691,
+    34692,
+    34693,
+    34694,
+    1927,
+    34697,
+    34698,
+    34699,
+    34700,
+    34701,
+    34702,
+    34703,
+    34704,
+    1937,
+    34710,
+    1943,
+    34714,
+    1947,
+    34718,
+    34719,
+    34720,
+    1953,
+    34723,
+    34724,
+    34725,
+    1958,
+    34728,
+    1961,
+    34770,
+    34771,
+    34772,
+    34773,
+    34774,
+    34775,
+    34776,
+    2009,
+    34788,
+    34789,
+    34790,
+    34791,
+    2024,
+    34795,
+    2028,
+    34798,
+    34799,
+    2032,
+    34815,
+    2048,
+    34828,
+    2061,
+    34831,
+    34832,
+    2065,
+    34836,
+    2069,
+    34885,
+    34886,
+    34887,
+    34888,
+    34889,
+    34890,
+    34891,
+    2124,
+    34897,
+    34898,
+    34899,
+    34900,
+    34901,
+    2134,
+    34904,
+    34905,
+    34906,
+    34907,
+    2140,
+    34948,
+    2181,
+    35028,
+    35029,
+    35030,
+    2263,
+    35034,
+    35035,
+    35036,
+    35037,
+    35038,
+    35039,
+    35040,
+    35041,
+    35042,
+    35043,
+    35044,
+    35045,
+    35046,
+    35047,
+    2280,
+    35096,
+    2329,
+    35103,
+    2336,
+    35116,
+    35117,
+    35118,
+    2351,
+    35222,
+    2455,
+    35226,
+    2459,
+    35229,
+    35230,
+    2463,
+    35233,
+    35234,
+    35235,
+    35236,
+    35237,
+    2470,
+    35240,
+    35241,
+    35242,
+    35243,
+    35244,
+    35245,
+    35246,
+    35247,
+    35248,
+    35249,
+    35250,
+    35251,
+    35252,
+    35253,
+    35254,
+    35255,
+    35256,
+    35257,
+    35258,
+    35259,
+    35260,
+    35261,
+    35262,
+    35263,
+    35264,
+    35265,
+    35266,
+    35267,
+    2500,
+    35482,
+    2715,
+    35486,
+    2719,
+    35492,
+    35493,
+    35494,
+    35495,
+    35496,
+    2729,
+    35499,
+    35500,
+    35501,
+    35502,
+    35503,
+    35504,
+    35505,
+    2738,
+    35601,
+    2834,
+    35616,
+    35617,
+    35618,
+    35619,
+    35620,
+    2853,
+    35693,
+    2926,
+    36126,
+    36127,
+    36128,
+    36129,
+    36130,
+    36131,
+    36132,
+    36133,
+    36134,
+    36135,
+    3368,
+    36181,
+    3414,
+    36212,
+    36213,
+    36214,
+    3447,
+    36228,
+    3461,
+    36292,
+    3525,
+    36307,
+    3540,
+    36311,
+    3544,
+    36315,
+    3548,
+    36350,
+    3583,
+    36354,
+    36355,
+    36356,
+    36357,
+    36358,
+    36359,
+    36360,
+    36361,
+    36362,
+    36363,
+    36364,
+    36365,
+    36366,
+    36367,
+    36368,
+    36369,
+    36370,
+    36371,
+    36372,
+    36373,
+    36374,
+    36375,
+    36376,
+    36377,
+    36378,
+    36379,
+    36380,
+    36381,
+    36382,
+    36383,
+    36384,
+    36385,
+    36386,
+    36387,
+    36388,
+    36389,
+    36390,
+    36391,
+    36392,
+    36393,
+    36394,
+    36395,
+    36396,
+    3629,
+    36401,
+    36402,
+    3635,
+    36483,
+    36484,
+    36485,
+    36486,
+    36487,
+    36488,
+    36489,
+    36490,
+    36491,
+    36492,
+    3725,
+    36500,
+    3733,
+    36762,
+    3995,
+    36766,
+    3999,
+    36781,
+    4014,
+    36784,
+    4017,
+    36836,
+    4069,
+    36852,
+    4085,
+    36959,
+    4192,
+    36965,
+    36966,
+    4199,
+    36972,
+    4205,
+    37024,
+    37025,
+    37026,
+    37027,
+    37028,
+    37029,
+    37030,
+    37031,
+    37032,
+    37033,
+    37034,
+    37035,
+    37036,
+    37037,
+    37038,
+    37039,
+    37040,
+    37041,
+    37042,
+    37043,
+    37044,
+    37045,
+    37046,
+    37047,
+    37048,
+    37049,
+    37050,
+    37051,
+    37052,
+    37053,
+    37054,
+    37055,
+    37056,
+    37057,
+    37058,
+    37059,
+    37060,
+    37061,
+    37062,
+    37063,
+    37064,
+    37065,
+    37066,
+    37067,
+    37068,
+    37069,
+    37070,
+    37071,
+    37072,
+    37073,
+    37074,
+    4307,
+    37391,
+    37392,
+    37393,
+    37394,
+    37395,
+    4628,
+    37401,
+    4634,
+    37407,
+    37408,
+    37409,
+    37410,
+    37411,
+    37412,
+    37413,
+    37414,
+    37415,
+    37416,
+    37417,
+    37418,
+    4651,
+    37422,
+    4655,
+    37427,
+    4660,
+    37433,
+    37434,
+    37435,
+    4668,
+    37443,
+    4676,
+    37449,
+    4682,
+    37453,
+    4686,
+    37496,
+    4729,
+    37511,
+    37512,
+    4745,
+    37522,
+    37523,
+    4756,
+    37527,
+    4760,
+    37544,
+    4777,
+    37547,
+    37548,
+    4781,
+    37551,
+    4784,
+    37576,
+    4809,
+    37594,
+    37595,
+    37596,
+    37597,
+    37598,
+    37599,
+    37600,
+    37601,
+    37602,
+    37603,
+    37604,
+    37605,
+    37606,
+    37607,
+    37608,
+    37609,
+    37610,
+    37611,
+    37612,
+    37613,
+    37614,
+    37615,
+    37616,
+    37617,
+    37618,
+    37619,
+    37620,
+    37621,
+    37622,
+    37623,
+    37624,
+    37625,
+    37626,
+    37627,
+    37628,
+    37629,
+    37630,
+    37631,
+    37632,
+    37633,
+    4866,
+    37826,
+    5059,
+    37833,
+    5066,
+    37840,
+    5073,
+    37847,
+    5080,
+    37851,
+    5084,
+    37867,
+    37868,
+    37869,
+    37870,
+    37871,
+    37872,
+    37873,
+    37874,
+    37875,
+    37876,
+    37877,
+    37878,
+    37879,
+    37880,
+    37881,
+    37882,
+    37883,
+    37884,
+    37885,
+    37886,
+    37887,
+    37888,
+    37889,
+    37890,
+    37891,
+    37892,
+    37893,
+    37894,
+    37895,
+    37896,
+    37897,
+    37898,
+    37899,
+    37900,
+    37901,
+    37902,
+    37903,
+    37904,
+    37905,
+    37906,
+    37907,
+    37908,
+    37909,
+    37910,
+    37911,
+    5144,
+    37952,
+    37953,
+    37954,
+    37955,
+    5188,
+    37992,
+    37993,
+    37994,
+    37995,
+    37996,
+    37997,
+    37998,
+    37999,
+    38000,
+    38001,
+    38002,
+    38003,
+    38004,
+    38005,
+    38006,
+    38007,
+    38008,
+    5241,
+    38011,
+    38012,
+    38013,
+    38014,
+    38015,
+    38016,
+    38017,
+    38018,
+    38019,
+    38020,
+    38021,
+    38022,
+    38023,
+    38024,
+    38025,
+    38026,
+    38027,
+    38028,
+    38029,
+    38030,
+    38031,
+    38032,
+    38033,
+    38034,
+    38035,
+    38036,
+    38037,
+    38038,
+    38039,
+    38040,
+    38041,
+    38042,
+    38043,
+    38044,
+    38045,
+    38046,
+    38047,
+    38048,
+    38049,
+    38050,
+    38051,
+    38052,
+    38053,
+    38054,
+    38055,
+    38056,
+    38057,
+    38058,
+    38059,
+    38060,
+    38061,
+    38062,
+    38063,
+    38064,
+    38065,
+    38066,
+    38067,
+    38068,
+    38069,
+    38070,
+    38071,
+    38072,
+    5305,
+    38124,
+    38125,
+    38126,
+    38127,
+    38128,
+    38129,
+    38130,
+    38131,
+    38132,
+    38133,
+    38134,
+    38135,
+    38136,
+    38137,
+    38138,
+    38139,
+    38140,
+    38141,
+    38142,
+    38143,
+    38144,
+    38145,
+    38146,
+    38147,
+    38148,
+    38149,
+    38150,
+    38151,
+    38152,
+    38153,
+    38154,
+    38155,
+    38156,
+    38157,
+    38158,
+    38159,
+    5392,
+    38163,
+    38164,
+    38165,
+    38166,
+    38167,
+    38168,
+    38169,
+    38170,
+    38171,
+    38172,
+    38173,
+    38174,
+    38175,
+    38176,
+    38177,
+    38178,
+    38179,
+    38180,
+    38181,
+    38182,
+    38183,
+    38184,
+    38185,
+    38186,
+    38187,
+    38188,
+    38189,
+    38190,
+    38191,
+    38192,
+    38193,
+    38194,
+    38195,
+    38196,
+    38197,
+    38198,
+    38199,
+    38200,
+    38201,
+    38202,
+    38203,
+    5436,
+    38208,
+    38209,
+    38210,
+    38211,
+    38212,
+    38213,
+    38214,
+    38215,
+    38216,
+    38217,
+    38218,
+    38219,
+    38220,
+    38221,
+    38222,
+    38223,
+    38224,
+    38225,
+    38226,
+    38227,
+    38228,
+    38229,
+    38230,
+    38231,
+    38232,
+    5465,
+    38265,
+    38266,
+    38267,
+    38268,
+    38269,
+    38270,
+    38271,
+    38272,
+    38273,
+    38274,
+    38275,
+    38276,
+    38277,
+    38278,
+    38279,
+    38280,
+    38281,
+    38282,
+    38283,
+    38284,
+    38285,
+    38286,
+    38287,
+    38288,
+    38289,
+    38290,
+    38291,
+    38292,
+    38293,
+    38294,
+    38295,
+    38296,
+    38297,
+    38298,
+    5531,
+    38301,
+    38302,
+    38303,
+    38304,
+    38305,
+    38306,
+    38307,
+    38308,
+    38309,
+    38310,
+    38311,
+    38312,
+    38313,
+    38314,
+    38315,
+    38316,
+    38317,
+    38318,
+    38319,
+    38320,
+    38321,
+    38322,
+    38323,
+    38324,
+    38325,
+    38326,
+    38327,
+    38328,
+    38329,
+    38330,
+    38331,
+    38332,
+    38333,
+    38334,
+    38335,
+    38336,
+    38337,
+    38338,
+    38339,
+    38340,
+    38341,
+    38342,
+    38343,
+    38344,
+    38345,
+    38346,
+    38347,
+    38348,
+    38349,
+    38350,
+    38351,
+    38352,
+    38353,
+    38354,
+    38355,
+    38356,
+    38357,
+    38358,
+    38359,
+    38360,
+    38361,
+    38362,
+    38363,
+    38364,
+    38365,
+    38366,
+    38367,
+    38368,
+    38369,
+    38370,
+    38371,
+    38372,
+    5605,
+    38380,
+    38381,
+    38382,
+    5615,
+    38389,
+    38390,
+    38391,
+    38392,
+    38393,
+    38394,
+    38395,
+    38396,
+    5629,
+    38557,
+    38558,
+    38559,
+    5792,
+    38562,
+    5795,
+    38661,
+    5894,
+    38720,
+    5953,
+    39069,
+    6302,
+    39113,
+    6346,
+    39170,
+    6403,
+    39227,
+    6460,
+    39284,
+    6517,
+    39341,
+    6574,
+    39355,
+    39356,
+    6589,
+    39407,
+    39408,
+    39409,
+    39410,
+    39411,
+    39412,
+    39413,
+    39414,
+    39415,
+    39416,
+    39417,
+    39418,
+    39419,
+    39420,
+    39421,
+    39422,
+    39423,
+    39424,
+    39425,
+    39426,
+    6659,
+    39461,
+    39462,
+    39463,
+    39464,
+    39465,
+    39466,
+    6699,
+    39504,
+    6737,
+    39526,
+    39527,
+    39528,
+    6761,
+    39543,
+    6776,
+    39558,
+    6791,
+    39612,
+    6845,
+    39640,
+    39641,
+    39642,
+    39643,
+    39644,
+    39645,
+    39646,
+    39647,
+    39648,
+    39649,
+    39650,
+    39651,
+    39652,
+    39653,
+    39654,
+    6887,
+    39665,
+    39666,
+    6899,
+    39731,
+    6964,
+    39734,
+    39735,
+    39736,
+    39737,
+    39738,
+    39739,
+    6972,
+    39743,
+    6976,
+    39788,
+    7021,
+    39798,
+    7031,
+    39801,
+    39802,
+    39803,
+    39804,
+    39805,
+    39806,
+    39807,
+    39808,
+    39809,
+    39810,
+    39811,
+    39812,
+    39813,
+    39814,
+    39815,
+    39816,
+    39817,
+    39818,
+    39819,
+    39820,
+    39821,
+    39822,
+    39823,
+    39824,
+    39825,
+    39826,
+    39827,
+    39828,
+    39829,
+    39830,
+    39831,
+    39832,
+    39833,
+    39834,
+    39835,
+    39836,
+    39837,
+    39838,
+    39839,
+    39840,
+    39841,
+    39842,
+    39843,
+    39844,
+    39845,
+    39846,
+    39847,
+    7080,
+    39897,
+    7130,
+    39915,
+    7148,
+    39951,
+    7184,
+    39989,
+    39990,
+    39991,
+    7224,
+    40142,
+    7375,
+    40167,
+    7400,
+    40189,
+    7422,
+    40349,
+    7582,
+    40380,
+    40381,
+    40382,
 ];
 ];
 
 
 static MAPPING_TABLE: &'static [Mapping] = &[
 static MAPPING_TABLE: &'static [Mapping] = &[