github.com/dolthub/go-mysql-server@v0.18.0/sql/encodings/utf8mb3_general_mysql500_ci.go (about) 1 // Copyright 2023 Dolthub, Inc. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package encodings 16 17 // Utf8mb3_general_mysql500_ci_RuneWeight returns the weight of a given rune based on its relational sort order from 18 // the `utf8mb3_general_mysql500_ci` collation. 19 func Utf8mb3_general_mysql500_ci_RuneWeight(r rune) int32 { 20 weight, ok := utf8mb3_general_mysql500_ci_Weights[r] 21 if ok { 22 return weight 23 } else if r >= 659 && r <= 836 { 24 return r - 341 25 } else if r >= 1415 && r <= 7679 { 26 return r - 585 27 } else if r >= 8189 && r <= 8544 { 28 return r - 1039 29 } else if r >= 8575 && r <= 9398 { 30 return r - 1055 31 } else if r >= 9449 && r <= 55295 { 32 return r - 1081 33 } else if r >= 57345 && r <= 65313 { 34 return r - 3129 35 } else if r >= 65371 && r <= 65535 { 36 return r - 3155 37 } else { 38 return 2147483647 39 } 40 } 41 42 // utf8mb3_general_mysql500_ci_Weights contain a map from rune to weight for the `utf8mb3_general_mysql500_ci` collation. The 43 // map primarily contains mappings that have a random order. Mappings that fit into a sequential range (and are long 44 // enough) are defined in the calling function to save space. 45 var utf8mb3_general_mysql500_ci_Weights = map[rune]int32{ 46 0: 0, 47 1: 1, 48 2: 2, 49 3: 3, 50 4: 4, 51 5: 5, 52 6: 6, 53 7: 7, 54 8: 8, 55 9: 9, 56 10: 10, 57 11: 11, 58 12: 12, 59 13: 13, 60 14: 14, 61 15: 15, 62 16: 16, 63 17: 17, 64 18: 18, 65 19: 19, 66 20: 20, 67 21: 21, 68 22: 22, 69 23: 23, 70 24: 24, 71 25: 25, 72 26: 26, 73 27: 27, 74 28: 28, 75 29: 29, 76 30: 30, 77 31: 31, 78 32: 32, 79 33: 33, 80 34: 34, 81 35: 35, 82 36: 36, 83 37: 37, 84 38: 38, 85 39: 39, 86 40: 40, 87 41: 41, 88 42: 42, 89 43: 43, 90 44: 44, 91 45: 45, 92 46: 46, 93 47: 47, 94 48: 48, 95 49: 49, 96 50: 50, 97 51: 51, 98 52: 52, 99 53: 53, 100 54: 54, 101 55: 55, 102 56: 56, 103 57: 57, 104 58: 58, 105 59: 59, 106 60: 60, 107 61: 61, 108 62: 62, 109 63: 63, 110 64: 64, 111 65: 65, 112 97: 65, 113 192: 65, 114 193: 65, 115 194: 65, 116 195: 65, 117 196: 65, 118 197: 65, 119 224: 65, 120 225: 65, 121 226: 65, 122 227: 65, 123 228: 65, 124 229: 65, 125 256: 65, 126 257: 65, 127 258: 65, 128 259: 65, 129 260: 65, 130 261: 65, 131 461: 65, 132 462: 65, 133 478: 65, 134 479: 65, 135 480: 65, 136 481: 65, 137 506: 65, 138 507: 65, 139 512: 65, 140 513: 65, 141 514: 65, 142 515: 65, 143 550: 65, 144 551: 65, 145 7680: 65, 146 7681: 65, 147 7840: 65, 148 7841: 65, 149 7842: 65, 150 7843: 65, 151 7844: 65, 152 7845: 65, 153 7846: 65, 154 7847: 65, 155 7848: 65, 156 7849: 65, 157 7850: 65, 158 7851: 65, 159 7852: 65, 160 7853: 65, 161 7854: 65, 162 7855: 65, 163 7856: 65, 164 7857: 65, 165 7858: 65, 166 7859: 65, 167 7860: 65, 168 7861: 65, 169 7862: 65, 170 7863: 65, 171 66: 66, 172 98: 66, 173 7682: 66, 174 7683: 66, 175 7684: 66, 176 7685: 66, 177 7686: 66, 178 7687: 66, 179 67: 67, 180 99: 67, 181 199: 67, 182 231: 67, 183 262: 67, 184 263: 67, 185 264: 67, 186 265: 67, 187 266: 67, 188 267: 67, 189 268: 67, 190 269: 67, 191 7688: 67, 192 7689: 67, 193 68: 68, 194 100: 68, 195 270: 68, 196 271: 68, 197 7690: 68, 198 7691: 68, 199 7692: 68, 200 7693: 68, 201 7694: 68, 202 7695: 68, 203 7696: 68, 204 7697: 68, 205 7698: 68, 206 7699: 68, 207 69: 69, 208 101: 69, 209 200: 69, 210 201: 69, 211 202: 69, 212 203: 69, 213 232: 69, 214 233: 69, 215 234: 69, 216 235: 69, 217 274: 69, 218 275: 69, 219 276: 69, 220 277: 69, 221 278: 69, 222 279: 69, 223 280: 69, 224 281: 69, 225 282: 69, 226 283: 69, 227 516: 69, 228 517: 69, 229 518: 69, 230 519: 69, 231 552: 69, 232 553: 69, 233 7700: 69, 234 7701: 69, 235 7702: 69, 236 7703: 69, 237 7704: 69, 238 7705: 69, 239 7706: 69, 240 7707: 69, 241 7708: 69, 242 7709: 69, 243 7864: 69, 244 7865: 69, 245 7866: 69, 246 7867: 69, 247 7868: 69, 248 7869: 69, 249 7870: 69, 250 7871: 69, 251 7872: 69, 252 7873: 69, 253 7874: 69, 254 7875: 69, 255 7876: 69, 256 7877: 69, 257 7878: 69, 258 7879: 69, 259 70: 70, 260 102: 70, 261 7710: 70, 262 7711: 70, 263 71: 71, 264 103: 71, 265 284: 71, 266 285: 71, 267 286: 71, 268 287: 71, 269 288: 71, 270 289: 71, 271 290: 71, 272 291: 71, 273 486: 71, 274 487: 71, 275 500: 71, 276 501: 71, 277 7712: 71, 278 7713: 71, 279 72: 72, 280 104: 72, 281 292: 72, 282 293: 72, 283 542: 72, 284 543: 72, 285 7714: 72, 286 7715: 72, 287 7716: 72, 288 7717: 72, 289 7718: 72, 290 7719: 72, 291 7720: 72, 292 7721: 72, 293 7722: 72, 294 7723: 72, 295 7830: 72, 296 73: 73, 297 105: 73, 298 204: 73, 299 205: 73, 300 206: 73, 301 207: 73, 302 236: 73, 303 237: 73, 304 238: 73, 305 239: 73, 306 296: 73, 307 297: 73, 308 298: 73, 309 299: 73, 310 300: 73, 311 301: 73, 312 302: 73, 313 303: 73, 314 304: 73, 315 305: 73, 316 463: 73, 317 464: 73, 318 520: 73, 319 521: 73, 320 522: 73, 321 523: 73, 322 7724: 73, 323 7725: 73, 324 7726: 73, 325 7727: 73, 326 7880: 73, 327 7881: 73, 328 7882: 73, 329 7883: 73, 330 74: 74, 331 106: 74, 332 308: 74, 333 309: 74, 334 496: 74, 335 75: 75, 336 107: 75, 337 310: 75, 338 311: 75, 339 488: 75, 340 489: 75, 341 7728: 75, 342 7729: 75, 343 7730: 75, 344 7731: 75, 345 7732: 75, 346 7733: 75, 347 76: 76, 348 108: 76, 349 313: 76, 350 314: 76, 351 315: 76, 352 316: 76, 353 317: 76, 354 318: 76, 355 7734: 76, 356 7735: 76, 357 7736: 76, 358 7737: 76, 359 7738: 76, 360 7739: 76, 361 7740: 76, 362 7741: 76, 363 77: 77, 364 109: 77, 365 7742: 77, 366 7743: 77, 367 7744: 77, 368 7745: 77, 369 7746: 77, 370 7747: 77, 371 78: 78, 372 110: 78, 373 209: 78, 374 241: 78, 375 323: 78, 376 324: 78, 377 325: 78, 378 326: 78, 379 327: 78, 380 328: 78, 381 504: 78, 382 505: 78, 383 7748: 78, 384 7749: 78, 385 7750: 78, 386 7751: 78, 387 7752: 78, 388 7753: 78, 389 7754: 78, 390 7755: 78, 391 79: 79, 392 111: 79, 393 210: 79, 394 211: 79, 395 212: 79, 396 213: 79, 397 214: 79, 398 242: 79, 399 243: 79, 400 244: 79, 401 245: 79, 402 246: 79, 403 332: 79, 404 333: 79, 405 334: 79, 406 335: 79, 407 336: 79, 408 337: 79, 409 416: 79, 410 417: 79, 411 465: 79, 412 466: 79, 413 490: 79, 414 491: 79, 415 492: 79, 416 493: 79, 417 524: 79, 418 525: 79, 419 526: 79, 420 527: 79, 421 554: 79, 422 555: 79, 423 556: 79, 424 557: 79, 425 558: 79, 426 559: 79, 427 560: 79, 428 561: 79, 429 7756: 79, 430 7757: 79, 431 7758: 79, 432 7759: 79, 433 7760: 79, 434 7761: 79, 435 7762: 79, 436 7763: 79, 437 7884: 79, 438 7885: 79, 439 7886: 79, 440 7887: 79, 441 7888: 79, 442 7889: 79, 443 7890: 79, 444 7891: 79, 445 7892: 79, 446 7893: 79, 447 7894: 79, 448 7895: 79, 449 7896: 79, 450 7897: 79, 451 7898: 79, 452 7899: 79, 453 7900: 79, 454 7901: 79, 455 7902: 79, 456 7903: 79, 457 7904: 79, 458 7905: 79, 459 7906: 79, 460 7907: 79, 461 80: 80, 462 112: 80, 463 7764: 80, 464 7765: 80, 465 7766: 80, 466 7767: 80, 467 81: 81, 468 113: 81, 469 82: 82, 470 114: 82, 471 340: 82, 472 341: 82, 473 342: 82, 474 343: 82, 475 344: 82, 476 345: 82, 477 528: 82, 478 529: 82, 479 530: 82, 480 531: 82, 481 7768: 82, 482 7769: 82, 483 7770: 82, 484 7771: 82, 485 7772: 82, 486 7773: 82, 487 7774: 82, 488 7775: 82, 489 83: 83, 490 115: 83, 491 346: 83, 492 347: 83, 493 348: 83, 494 349: 83, 495 350: 83, 496 351: 83, 497 352: 83, 498 353: 83, 499 383: 83, 500 536: 83, 501 537: 83, 502 7776: 83, 503 7777: 83, 504 7778: 83, 505 7779: 83, 506 7780: 83, 507 7781: 83, 508 7782: 83, 509 7783: 83, 510 7784: 83, 511 7785: 83, 512 7835: 83, 513 84: 84, 514 116: 84, 515 354: 84, 516 355: 84, 517 356: 84, 518 357: 84, 519 538: 84, 520 539: 84, 521 7786: 84, 522 7787: 84, 523 7788: 84, 524 7789: 84, 525 7790: 84, 526 7791: 84, 527 7792: 84, 528 7793: 84, 529 7831: 84, 530 85: 85, 531 117: 85, 532 217: 85, 533 218: 85, 534 219: 85, 535 220: 85, 536 249: 85, 537 250: 85, 538 251: 85, 539 252: 85, 540 360: 85, 541 361: 85, 542 362: 85, 543 363: 85, 544 364: 85, 545 365: 85, 546 366: 85, 547 367: 85, 548 368: 85, 549 369: 85, 550 370: 85, 551 371: 85, 552 431: 85, 553 432: 85, 554 467: 85, 555 468: 85, 556 469: 85, 557 470: 85, 558 471: 85, 559 472: 85, 560 473: 85, 561 474: 85, 562 475: 85, 563 476: 85, 564 532: 85, 565 533: 85, 566 534: 85, 567 535: 85, 568 7794: 85, 569 7795: 85, 570 7796: 85, 571 7797: 85, 572 7798: 85, 573 7799: 85, 574 7800: 85, 575 7801: 85, 576 7802: 85, 577 7803: 85, 578 7908: 85, 579 7909: 85, 580 7910: 85, 581 7911: 85, 582 7912: 85, 583 7913: 85, 584 7914: 85, 585 7915: 85, 586 7916: 85, 587 7917: 85, 588 7918: 85, 589 7919: 85, 590 7920: 85, 591 7921: 85, 592 86: 86, 593 118: 86, 594 7804: 86, 595 7805: 86, 596 7806: 86, 597 7807: 86, 598 87: 87, 599 119: 87, 600 372: 87, 601 373: 87, 602 7808: 87, 603 7809: 87, 604 7810: 87, 605 7811: 87, 606 7812: 87, 607 7813: 87, 608 7814: 87, 609 7815: 87, 610 7816: 87, 611 7817: 87, 612 7832: 87, 613 88: 88, 614 120: 88, 615 7818: 88, 616 7819: 88, 617 7820: 88, 618 7821: 88, 619 89: 89, 620 121: 89, 621 221: 89, 622 253: 89, 623 255: 89, 624 374: 89, 625 375: 89, 626 376: 89, 627 562: 89, 628 563: 89, 629 7822: 89, 630 7823: 89, 631 7833: 89, 632 7922: 89, 633 7923: 89, 634 7924: 89, 635 7925: 89, 636 7926: 89, 637 7927: 89, 638 7928: 89, 639 7929: 89, 640 90: 90, 641 122: 90, 642 377: 90, 643 378: 90, 644 379: 90, 645 380: 90, 646 381: 90, 647 382: 90, 648 7824: 90, 649 7825: 90, 650 7826: 90, 651 7827: 90, 652 7828: 90, 653 7829: 90, 654 91: 91, 655 92: 92, 656 93: 93, 657 94: 94, 658 95: 95, 659 96: 96, 660 123: 97, 661 124: 98, 662 125: 99, 663 126: 100, 664 127: 101, 665 128: 102, 666 129: 103, 667 130: 104, 668 131: 105, 669 132: 106, 670 133: 107, 671 134: 108, 672 135: 109, 673 136: 110, 674 137: 111, 675 138: 112, 676 139: 113, 677 140: 114, 678 141: 115, 679 142: 116, 680 143: 117, 681 144: 118, 682 145: 119, 683 146: 120, 684 147: 121, 685 148: 122, 686 149: 123, 687 150: 124, 688 151: 125, 689 152: 126, 690 153: 127, 691 154: 128, 692 155: 129, 693 156: 130, 694 157: 131, 695 158: 132, 696 159: 133, 697 160: 134, 698 161: 135, 699 162: 136, 700 163: 137, 701 164: 138, 702 165: 139, 703 166: 140, 704 167: 141, 705 168: 142, 706 169: 143, 707 170: 144, 708 171: 145, 709 172: 146, 710 173: 147, 711 174: 148, 712 175: 149, 713 176: 150, 714 177: 151, 715 178: 152, 716 179: 153, 717 180: 154, 718 182: 155, 719 183: 156, 720 184: 157, 721 185: 158, 722 186: 159, 723 187: 160, 724 188: 161, 725 189: 162, 726 190: 163, 727 191: 164, 728 198: 165, 729 230: 165, 730 482: 165, 731 483: 165, 732 508: 165, 733 509: 165, 734 208: 166, 735 240: 166, 736 215: 167, 737 216: 168, 738 248: 168, 739 510: 168, 740 511: 168, 741 222: 169, 742 254: 169, 743 223: 170, 744 247: 171, 745 272: 172, 746 273: 172, 747 294: 173, 748 295: 173, 749 306: 174, 750 307: 174, 751 312: 175, 752 319: 176, 753 320: 176, 754 321: 177, 755 322: 177, 756 329: 178, 757 330: 179, 758 331: 179, 759 338: 180, 760 339: 180, 761 358: 181, 762 359: 181, 763 384: 182, 764 385: 183, 765 595: 183, 766 386: 184, 767 387: 184, 768 388: 185, 769 389: 185, 770 390: 186, 771 596: 186, 772 391: 187, 773 392: 187, 774 393: 188, 775 598: 188, 776 394: 189, 777 599: 189, 778 395: 190, 779 396: 190, 780 397: 191, 781 398: 192, 782 477: 192, 783 399: 193, 784 601: 193, 785 400: 194, 786 603: 194, 787 401: 195, 788 402: 195, 789 403: 196, 790 608: 196, 791 404: 197, 792 611: 197, 793 406: 198, 794 617: 198, 795 407: 199, 796 616: 199, 797 408: 200, 798 409: 200, 799 410: 201, 800 411: 202, 801 412: 203, 802 623: 203, 803 413: 204, 804 626: 204, 805 414: 205, 806 415: 206, 807 629: 206, 808 418: 207, 809 419: 207, 810 420: 208, 811 421: 208, 812 422: 209, 813 640: 209, 814 423: 210, 815 424: 210, 816 425: 211, 817 643: 211, 818 426: 212, 819 427: 213, 820 428: 214, 821 429: 214, 822 430: 215, 823 648: 215, 824 433: 216, 825 650: 216, 826 434: 217, 827 651: 217, 828 435: 218, 829 436: 218, 830 437: 219, 831 438: 219, 832 439: 220, 833 494: 220, 834 495: 220, 835 658: 220, 836 440: 221, 837 441: 221, 838 442: 222, 839 443: 223, 840 444: 224, 841 445: 224, 842 446: 225, 843 448: 226, 844 449: 227, 845 450: 228, 846 451: 229, 847 452: 230, 848 453: 230, 849 454: 230, 850 455: 231, 851 456: 231, 852 457: 231, 853 458: 232, 854 459: 232, 855 460: 232, 856 484: 233, 857 485: 233, 858 497: 234, 859 498: 234, 860 499: 234, 861 405: 235, 862 502: 235, 863 447: 236, 864 503: 236, 865 540: 237, 866 541: 237, 867 544: 238, 868 545: 239, 869 546: 240, 870 547: 240, 871 548: 241, 872 549: 241, 873 564: 242, 874 565: 243, 875 566: 244, 876 567: 245, 877 568: 246, 878 569: 247, 879 570: 248, 880 571: 249, 881 572: 250, 882 573: 251, 883 574: 252, 884 575: 253, 885 576: 254, 886 577: 255, 887 578: 256, 888 579: 257, 889 580: 258, 890 581: 259, 891 582: 260, 892 583: 261, 893 584: 262, 894 585: 263, 895 586: 264, 896 587: 265, 897 588: 266, 898 589: 267, 899 590: 268, 900 591: 269, 901 592: 270, 902 593: 271, 903 594: 272, 904 597: 273, 905 600: 274, 906 602: 275, 907 604: 276, 908 605: 277, 909 606: 278, 910 607: 279, 911 609: 280, 912 610: 281, 913 612: 282, 914 613: 283, 915 614: 284, 916 615: 285, 917 618: 286, 918 619: 287, 919 620: 288, 920 621: 289, 921 622: 290, 922 624: 291, 923 625: 292, 924 627: 293, 925 628: 294, 926 630: 295, 927 631: 296, 928 632: 297, 929 633: 298, 930 634: 299, 931 635: 300, 932 636: 301, 933 637: 302, 934 638: 303, 935 639: 304, 936 641: 305, 937 642: 306, 938 644: 307, 939 645: 308, 940 646: 309, 941 647: 310, 942 649: 311, 943 652: 312, 944 653: 313, 945 654: 314, 946 655: 315, 947 656: 316, 948 657: 317, 949 838: 496, 950 839: 497, 951 840: 498, 952 841: 499, 953 842: 500, 954 843: 501, 955 844: 502, 956 845: 503, 957 846: 504, 958 847: 505, 959 848: 506, 960 849: 507, 961 850: 508, 962 851: 509, 963 852: 510, 964 853: 511, 965 854: 512, 966 855: 513, 967 856: 514, 968 857: 515, 969 858: 516, 970 859: 517, 971 860: 518, 972 861: 519, 973 862: 520, 974 863: 521, 975 864: 522, 976 865: 523, 977 866: 524, 978 867: 525, 979 868: 526, 980 869: 527, 981 870: 528, 982 871: 529, 983 872: 530, 984 873: 531, 985 874: 532, 986 875: 533, 987 876: 534, 988 877: 535, 989 878: 536, 990 879: 537, 991 880: 538, 992 881: 539, 993 882: 540, 994 883: 541, 995 884: 542, 996 885: 543, 997 886: 544, 998 887: 545, 999 888: 546, 1000 889: 547, 1001 890: 548, 1002 891: 549, 1003 892: 550, 1004 893: 551, 1005 894: 552, 1006 895: 553, 1007 896: 554, 1008 897: 555, 1009 898: 556, 1010 899: 557, 1011 900: 558, 1012 901: 559, 1013 903: 560, 1014 907: 561, 1015 909: 562, 1016 902: 563, 1017 913: 563, 1018 940: 563, 1019 945: 563, 1020 7936: 563, 1021 7937: 563, 1022 7938: 563, 1023 7939: 563, 1024 7940: 563, 1025 7941: 563, 1026 7942: 563, 1027 7943: 563, 1028 7944: 563, 1029 7945: 563, 1030 7946: 563, 1031 7947: 563, 1032 7948: 563, 1033 7949: 563, 1034 7950: 563, 1035 7951: 563, 1036 8048: 563, 1037 8064: 563, 1038 8065: 563, 1039 8066: 563, 1040 8067: 563, 1041 8068: 563, 1042 8069: 563, 1043 8070: 563, 1044 8071: 563, 1045 8072: 563, 1046 8073: 563, 1047 8074: 563, 1048 8075: 563, 1049 8076: 563, 1050 8077: 563, 1051 8078: 563, 1052 8079: 563, 1053 8112: 563, 1054 8113: 563, 1055 8114: 563, 1056 8115: 563, 1057 8116: 563, 1058 8118: 563, 1059 8119: 563, 1060 8120: 563, 1061 8121: 563, 1062 8122: 563, 1063 8124: 563, 1064 914: 564, 1065 946: 564, 1066 976: 564, 1067 915: 565, 1068 947: 565, 1069 916: 566, 1070 948: 566, 1071 904: 567, 1072 917: 567, 1073 941: 567, 1074 949: 567, 1075 7952: 567, 1076 7953: 567, 1077 7954: 567, 1078 7955: 567, 1079 7956: 567, 1080 7957: 567, 1081 7960: 567, 1082 7961: 567, 1083 7962: 567, 1084 7963: 567, 1085 7964: 567, 1086 7965: 567, 1087 8050: 567, 1088 8136: 567, 1089 918: 568, 1090 950: 568, 1091 905: 569, 1092 919: 569, 1093 942: 569, 1094 951: 569, 1095 7968: 569, 1096 7969: 569, 1097 7970: 569, 1098 7971: 569, 1099 7972: 569, 1100 7973: 569, 1101 7974: 569, 1102 7975: 569, 1103 7976: 569, 1104 7977: 569, 1105 7978: 569, 1106 7979: 569, 1107 7980: 569, 1108 7981: 569, 1109 7982: 569, 1110 7983: 569, 1111 8052: 569, 1112 8080: 569, 1113 8081: 569, 1114 8082: 569, 1115 8083: 569, 1116 8084: 569, 1117 8085: 569, 1118 8086: 569, 1119 8087: 569, 1120 8088: 569, 1121 8089: 569, 1122 8090: 569, 1123 8091: 569, 1124 8092: 569, 1125 8093: 569, 1126 8094: 569, 1127 8095: 569, 1128 8130: 569, 1129 8131: 569, 1130 8132: 569, 1131 8134: 569, 1132 8135: 569, 1133 8138: 569, 1134 8140: 569, 1135 920: 570, 1136 952: 570, 1137 977: 570, 1138 837: 571, 1139 906: 571, 1140 912: 571, 1141 921: 571, 1142 938: 571, 1143 943: 571, 1144 953: 571, 1145 970: 571, 1146 7984: 571, 1147 7985: 571, 1148 7986: 571, 1149 7987: 571, 1150 7988: 571, 1151 7989: 571, 1152 7990: 571, 1153 7991: 571, 1154 7992: 571, 1155 7993: 571, 1156 7994: 571, 1157 7995: 571, 1158 7996: 571, 1159 7997: 571, 1160 7998: 571, 1161 7999: 571, 1162 8054: 571, 1163 8126: 571, 1164 8144: 571, 1165 8145: 571, 1166 8146: 571, 1167 8150: 571, 1168 8151: 571, 1169 8152: 571, 1170 8153: 571, 1171 8154: 571, 1172 922: 572, 1173 954: 572, 1174 1008: 572, 1175 923: 573, 1176 955: 573, 1177 181: 574, 1178 924: 574, 1179 956: 574, 1180 925: 575, 1181 957: 575, 1182 926: 576, 1183 958: 576, 1184 908: 577, 1185 927: 577, 1186 959: 577, 1187 972: 577, 1188 8000: 577, 1189 8001: 577, 1190 8002: 577, 1191 8003: 577, 1192 8004: 577, 1193 8005: 577, 1194 8008: 577, 1195 8009: 577, 1196 8010: 577, 1197 8011: 577, 1198 8012: 577, 1199 8013: 577, 1200 8056: 577, 1201 8184: 577, 1202 928: 578, 1203 960: 578, 1204 982: 578, 1205 929: 579, 1206 961: 579, 1207 1009: 579, 1208 8164: 579, 1209 8165: 579, 1210 8172: 579, 1211 930: 580, 1212 931: 581, 1213 962: 581, 1214 963: 581, 1215 1010: 581, 1216 932: 582, 1217 964: 582, 1218 910: 583, 1219 933: 583, 1220 939: 583, 1221 944: 583, 1222 965: 583, 1223 971: 583, 1224 973: 583, 1225 8016: 583, 1226 8017: 583, 1227 8018: 583, 1228 8019: 583, 1229 8020: 583, 1230 8021: 583, 1231 8022: 583, 1232 8023: 583, 1233 8025: 583, 1234 8027: 583, 1235 8029: 583, 1236 8031: 583, 1237 8058: 583, 1238 8160: 583, 1239 8161: 583, 1240 8162: 583, 1241 8166: 583, 1242 8167: 583, 1243 8168: 583, 1244 8169: 583, 1245 8170: 583, 1246 934: 584, 1247 966: 584, 1248 981: 584, 1249 935: 585, 1250 967: 585, 1251 936: 586, 1252 968: 586, 1253 911: 587, 1254 937: 587, 1255 969: 587, 1256 974: 587, 1257 8032: 587, 1258 8033: 587, 1259 8034: 587, 1260 8035: 587, 1261 8036: 587, 1262 8037: 587, 1263 8038: 587, 1264 8039: 587, 1265 8040: 587, 1266 8041: 587, 1267 8042: 587, 1268 8043: 587, 1269 8044: 587, 1270 8045: 587, 1271 8046: 587, 1272 8047: 587, 1273 8060: 587, 1274 8096: 587, 1275 8097: 587, 1276 8098: 587, 1277 8099: 587, 1278 8100: 587, 1279 8101: 587, 1280 8102: 587, 1281 8103: 587, 1282 8104: 587, 1283 8105: 587, 1284 8106: 587, 1285 8107: 587, 1286 8108: 587, 1287 8109: 587, 1288 8110: 587, 1289 8111: 587, 1290 8178: 587, 1291 8179: 587, 1292 8180: 587, 1293 8182: 587, 1294 8183: 587, 1295 8186: 587, 1296 8188: 587, 1297 975: 588, 1298 978: 589, 1299 979: 589, 1300 980: 589, 1301 983: 590, 1302 984: 591, 1303 985: 592, 1304 986: 593, 1305 987: 593, 1306 988: 594, 1307 989: 594, 1308 990: 595, 1309 991: 595, 1310 992: 596, 1311 993: 596, 1312 994: 597, 1313 995: 597, 1314 996: 598, 1315 997: 598, 1316 998: 599, 1317 999: 599, 1318 1000: 600, 1319 1001: 600, 1320 1002: 601, 1321 1003: 601, 1322 1004: 602, 1323 1005: 602, 1324 1006: 603, 1325 1007: 603, 1326 1011: 604, 1327 1012: 605, 1328 1013: 606, 1329 1014: 607, 1330 1015: 608, 1331 1016: 609, 1332 1017: 610, 1333 1018: 611, 1334 1019: 612, 1335 1020: 613, 1336 1021: 614, 1337 1022: 615, 1338 1023: 616, 1339 1026: 617, 1340 1106: 617, 1341 1028: 618, 1342 1108: 618, 1343 1029: 619, 1344 1109: 619, 1345 1030: 620, 1346 1031: 620, 1347 1110: 620, 1348 1111: 620, 1349 1032: 621, 1350 1112: 621, 1351 1033: 622, 1352 1113: 622, 1353 1034: 623, 1354 1114: 623, 1355 1035: 624, 1356 1115: 624, 1357 1039: 625, 1358 1119: 625, 1359 1040: 626, 1360 1072: 626, 1361 1232: 626, 1362 1233: 626, 1363 1234: 626, 1364 1235: 626, 1365 1041: 627, 1366 1073: 627, 1367 1042: 628, 1368 1074: 628, 1369 1027: 629, 1370 1043: 629, 1371 1075: 629, 1372 1107: 629, 1373 1044: 630, 1374 1076: 630, 1375 1024: 631, 1376 1025: 631, 1377 1045: 631, 1378 1077: 631, 1379 1104: 631, 1380 1105: 631, 1381 1238: 631, 1382 1239: 631, 1383 1046: 632, 1384 1078: 632, 1385 1217: 632, 1386 1218: 632, 1387 1244: 632, 1388 1245: 632, 1389 1047: 633, 1390 1079: 633, 1391 1246: 633, 1392 1247: 633, 1393 1037: 634, 1394 1048: 634, 1395 1080: 634, 1396 1117: 634, 1397 1250: 634, 1398 1251: 634, 1399 1252: 634, 1400 1253: 634, 1401 1049: 635, 1402 1081: 635, 1403 1036: 636, 1404 1050: 636, 1405 1082: 636, 1406 1116: 636, 1407 1051: 637, 1408 1083: 637, 1409 1052: 638, 1410 1084: 638, 1411 1053: 639, 1412 1085: 639, 1413 1054: 640, 1414 1086: 640, 1415 1254: 640, 1416 1255: 640, 1417 1055: 641, 1418 1087: 641, 1419 1056: 642, 1420 1088: 642, 1421 1057: 643, 1422 1089: 643, 1423 1058: 644, 1424 1090: 644, 1425 1038: 645, 1426 1059: 645, 1427 1091: 645, 1428 1118: 645, 1429 1262: 645, 1430 1263: 645, 1431 1264: 645, 1432 1265: 645, 1433 1266: 645, 1434 1267: 645, 1435 1060: 646, 1436 1092: 646, 1437 1061: 647, 1438 1093: 647, 1439 1062: 648, 1440 1094: 648, 1441 1063: 649, 1442 1095: 649, 1443 1268: 649, 1444 1269: 649, 1445 1064: 650, 1446 1096: 650, 1447 1065: 651, 1448 1097: 651, 1449 1066: 652, 1450 1098: 652, 1451 1067: 653, 1452 1099: 653, 1453 1272: 653, 1454 1273: 653, 1455 1068: 654, 1456 1100: 654, 1457 1069: 655, 1458 1101: 655, 1459 1260: 655, 1460 1261: 655, 1461 1070: 656, 1462 1102: 656, 1463 1071: 657, 1464 1103: 657, 1465 1120: 658, 1466 1121: 658, 1467 1122: 659, 1468 1123: 659, 1469 1124: 660, 1470 1125: 660, 1471 1126: 661, 1472 1127: 661, 1473 1128: 662, 1474 1129: 662, 1475 1130: 663, 1476 1131: 663, 1477 1132: 664, 1478 1133: 664, 1479 1134: 665, 1480 1135: 665, 1481 1136: 666, 1482 1137: 666, 1483 1138: 667, 1484 1139: 667, 1485 1140: 668, 1486 1141: 668, 1487 1142: 668, 1488 1143: 668, 1489 1144: 669, 1490 1145: 669, 1491 1146: 670, 1492 1147: 670, 1493 1148: 671, 1494 1149: 671, 1495 1150: 672, 1496 1151: 672, 1497 1152: 673, 1498 1153: 673, 1499 1154: 674, 1500 1155: 675, 1501 1156: 676, 1502 1157: 677, 1503 1158: 678, 1504 1159: 679, 1505 1160: 680, 1506 1161: 681, 1507 1162: 682, 1508 1163: 683, 1509 1164: 684, 1510 1165: 684, 1511 1166: 685, 1512 1167: 685, 1513 1168: 686, 1514 1169: 686, 1515 1170: 687, 1516 1171: 687, 1517 1172: 688, 1518 1173: 688, 1519 1174: 689, 1520 1175: 689, 1521 1176: 690, 1522 1177: 690, 1523 1178: 691, 1524 1179: 691, 1525 1180: 692, 1526 1181: 692, 1527 1182: 693, 1528 1183: 693, 1529 1184: 694, 1530 1185: 694, 1531 1186: 695, 1532 1187: 695, 1533 1188: 696, 1534 1189: 696, 1535 1190: 697, 1536 1191: 697, 1537 1192: 698, 1538 1193: 698, 1539 1194: 699, 1540 1195: 699, 1541 1196: 700, 1542 1197: 700, 1543 1198: 701, 1544 1199: 701, 1545 1200: 702, 1546 1201: 702, 1547 1202: 703, 1548 1203: 703, 1549 1204: 704, 1550 1205: 704, 1551 1206: 705, 1552 1207: 705, 1553 1208: 706, 1554 1209: 706, 1555 1210: 707, 1556 1211: 707, 1557 1212: 708, 1558 1213: 708, 1559 1214: 709, 1560 1215: 709, 1561 1216: 710, 1562 1219: 711, 1563 1220: 711, 1564 1221: 712, 1565 1222: 713, 1566 1223: 714, 1567 1224: 714, 1568 1225: 715, 1569 1226: 716, 1570 1227: 717, 1571 1228: 717, 1572 1229: 718, 1573 1230: 719, 1574 1231: 720, 1575 1236: 721, 1576 1237: 721, 1577 1240: 722, 1578 1241: 722, 1579 1242: 722, 1580 1243: 722, 1581 1248: 723, 1582 1249: 723, 1583 1256: 724, 1584 1257: 724, 1585 1258: 724, 1586 1259: 724, 1587 1270: 725, 1588 1271: 726, 1589 1274: 727, 1590 1275: 728, 1591 1276: 729, 1592 1277: 730, 1593 1278: 731, 1594 1279: 732, 1595 1280: 733, 1596 1281: 734, 1597 1282: 735, 1598 1283: 736, 1599 1284: 737, 1600 1285: 738, 1601 1286: 739, 1602 1287: 740, 1603 1288: 741, 1604 1289: 742, 1605 1290: 743, 1606 1291: 744, 1607 1292: 745, 1608 1293: 746, 1609 1294: 747, 1610 1295: 748, 1611 1296: 749, 1612 1297: 750, 1613 1298: 751, 1614 1299: 752, 1615 1300: 753, 1616 1301: 754, 1617 1302: 755, 1618 1303: 756, 1619 1304: 757, 1620 1305: 758, 1621 1306: 759, 1622 1307: 760, 1623 1308: 761, 1624 1309: 762, 1625 1310: 763, 1626 1311: 764, 1627 1312: 765, 1628 1313: 766, 1629 1314: 767, 1630 1315: 768, 1631 1316: 769, 1632 1317: 770, 1633 1318: 771, 1634 1319: 772, 1635 1320: 773, 1636 1321: 774, 1637 1322: 775, 1638 1323: 776, 1639 1324: 777, 1640 1325: 778, 1641 1326: 779, 1642 1327: 780, 1643 1328: 781, 1644 1329: 782, 1645 1377: 782, 1646 1330: 783, 1647 1378: 783, 1648 1331: 784, 1649 1379: 784, 1650 1332: 785, 1651 1380: 785, 1652 1333: 786, 1653 1381: 786, 1654 1334: 787, 1655 1382: 787, 1656 1335: 788, 1657 1383: 788, 1658 1336: 789, 1659 1384: 789, 1660 1337: 790, 1661 1385: 790, 1662 1338: 791, 1663 1386: 791, 1664 1339: 792, 1665 1387: 792, 1666 1340: 793, 1667 1388: 793, 1668 1341: 794, 1669 1389: 794, 1670 1342: 795, 1671 1390: 795, 1672 1343: 796, 1673 1391: 796, 1674 1344: 797, 1675 1392: 797, 1676 1345: 798, 1677 1393: 798, 1678 1346: 799, 1679 1394: 799, 1680 1347: 800, 1681 1395: 800, 1682 1348: 801, 1683 1396: 801, 1684 1349: 802, 1685 1397: 802, 1686 1350: 803, 1687 1398: 803, 1688 1351: 804, 1689 1399: 804, 1690 1352: 805, 1691 1400: 805, 1692 1353: 806, 1693 1401: 806, 1694 1354: 807, 1695 1402: 807, 1696 1355: 808, 1697 1403: 808, 1698 1356: 809, 1699 1404: 809, 1700 1357: 810, 1701 1405: 810, 1702 1358: 811, 1703 1406: 811, 1704 1359: 812, 1705 1407: 812, 1706 1360: 813, 1707 1408: 813, 1708 1361: 814, 1709 1409: 814, 1710 1362: 815, 1711 1410: 815, 1712 1363: 816, 1713 1411: 816, 1714 1364: 817, 1715 1412: 817, 1716 1365: 818, 1717 1413: 818, 1718 1366: 819, 1719 1414: 819, 1720 1367: 820, 1721 1368: 821, 1722 1369: 822, 1723 1370: 823, 1724 1371: 824, 1725 1372: 825, 1726 1373: 826, 1727 1374: 827, 1728 1375: 828, 1729 1376: 829, 1730 7834: 7095, 1731 7836: 7096, 1732 7837: 7097, 1733 7838: 7098, 1734 7839: 7099, 1735 7930: 7100, 1736 7931: 7101, 1737 7932: 7102, 1738 7933: 7103, 1739 7934: 7104, 1740 7935: 7105, 1741 7958: 7106, 1742 7959: 7107, 1743 7966: 7108, 1744 7967: 7109, 1745 8006: 7110, 1746 8007: 7111, 1747 8014: 7112, 1748 8015: 7113, 1749 8024: 7114, 1750 8026: 7115, 1751 8028: 7116, 1752 8030: 7117, 1753 8062: 7118, 1754 8063: 7119, 1755 8117: 7120, 1756 8049: 7121, 1757 8123: 7121, 1758 8125: 7122, 1759 8127: 7123, 1760 8128: 7124, 1761 8129: 7125, 1762 8133: 7126, 1763 8051: 7127, 1764 8137: 7127, 1765 8053: 7128, 1766 8139: 7128, 1767 8141: 7129, 1768 8142: 7130, 1769 8143: 7131, 1770 8147: 7132, 1771 8148: 7133, 1772 8149: 7134, 1773 8055: 7135, 1774 8155: 7135, 1775 8156: 7136, 1776 8157: 7137, 1777 8158: 7138, 1778 8159: 7139, 1779 8163: 7140, 1780 8059: 7141, 1781 8171: 7141, 1782 8173: 7142, 1783 8174: 7143, 1784 8175: 7144, 1785 8176: 7145, 1786 8177: 7146, 1787 8181: 7147, 1788 8057: 7148, 1789 8185: 7148, 1790 8061: 7149, 1791 8187: 7149, 1792 8560: 7505, 1793 8545: 7506, 1794 8561: 7506, 1795 8546: 7507, 1796 8562: 7507, 1797 8547: 7508, 1798 8563: 7508, 1799 8548: 7509, 1800 8564: 7509, 1801 8549: 7510, 1802 8565: 7510, 1803 8550: 7511, 1804 8566: 7511, 1805 8551: 7512, 1806 8567: 7512, 1807 8552: 7513, 1808 8568: 7513, 1809 8553: 7514, 1810 8569: 7514, 1811 8554: 7515, 1812 8570: 7515, 1813 8555: 7516, 1814 8571: 7516, 1815 8556: 7517, 1816 8572: 7517, 1817 8557: 7518, 1818 8573: 7518, 1819 8558: 7519, 1820 8574: 7519, 1821 8559: 7520, 1822 9424: 8343, 1823 9399: 8344, 1824 9425: 8344, 1825 9400: 8345, 1826 9426: 8345, 1827 9401: 8346, 1828 9427: 8346, 1829 9402: 8347, 1830 9428: 8347, 1831 9403: 8348, 1832 9429: 8348, 1833 9404: 8349, 1834 9430: 8349, 1835 9405: 8350, 1836 9431: 8350, 1837 9406: 8351, 1838 9432: 8351, 1839 9407: 8352, 1840 9433: 8352, 1841 9408: 8353, 1842 9434: 8353, 1843 9409: 8354, 1844 9435: 8354, 1845 9410: 8355, 1846 9436: 8355, 1847 9411: 8356, 1848 9437: 8356, 1849 9412: 8357, 1850 9438: 8357, 1851 9413: 8358, 1852 9439: 8358, 1853 9414: 8359, 1854 9440: 8359, 1855 9415: 8360, 1856 9441: 8360, 1857 9416: 8361, 1858 9442: 8361, 1859 9417: 8362, 1860 9443: 8362, 1861 9418: 8363, 1862 9444: 8363, 1863 9419: 8364, 1864 9445: 8364, 1865 9420: 8365, 1866 9446: 8365, 1867 9421: 8366, 1868 9447: 8366, 1869 9422: 8367, 1870 9448: 8367, 1871 9423: 8368, 1872 57344: 54215, 1873 65345: 62184, 1874 65314: 62185, 1875 65346: 62185, 1876 65315: 62186, 1877 65347: 62186, 1878 65316: 62187, 1879 65348: 62187, 1880 65317: 62188, 1881 65349: 62188, 1882 65318: 62189, 1883 65350: 62189, 1884 65319: 62190, 1885 65351: 62190, 1886 65320: 62191, 1887 65352: 62191, 1888 65321: 62192, 1889 65353: 62192, 1890 65322: 62193, 1891 65354: 62193, 1892 65323: 62194, 1893 65355: 62194, 1894 65324: 62195, 1895 65356: 62195, 1896 65325: 62196, 1897 65357: 62196, 1898 65326: 62197, 1899 65358: 62197, 1900 65327: 62198, 1901 65359: 62198, 1902 65328: 62199, 1903 65360: 62199, 1904 65329: 62200, 1905 65361: 62200, 1906 65330: 62201, 1907 65362: 62201, 1908 65331: 62202, 1909 65363: 62202, 1910 65332: 62203, 1911 65364: 62203, 1912 65333: 62204, 1913 65365: 62204, 1914 65334: 62205, 1915 65366: 62205, 1916 65335: 62206, 1917 65367: 62206, 1918 65336: 62207, 1919 65368: 62207, 1920 65337: 62208, 1921 65369: 62208, 1922 65338: 62209, 1923 65370: 62209, 1924 65339: 62210, 1925 65340: 62211, 1926 65341: 62212, 1927 65342: 62213, 1928 65343: 62214, 1929 65344: 62215, 1930 }