1 /* vi:set ts=8 sts=4 sw=4 noet: 2 * 3 * VIM - Vi IMproved by Bram Moolenaar 4 * 5 * Do ":help uganda" in Vim to read copying and usage conditions. 6 * Do ":help credits" in Vim to see a list of people who contributed. 7 * See README.txt for an overview of the Vim source code. 8 */ 9 10 #include "vim.h" 11 12 #ifdef AMIGA 13 # include <time.h> // for time() 14 #endif 15 16 /* 17 * Vim originated from Stevie version 3.6 (Fish disk 217) by GRWalter (Fred) 18 * It has been changed beyond recognition since then. 19 * 20 * Differences between version 7.4 and 8.x can be found with ":help version8". 21 * Differences between version 6.4 and 7.x can be found with ":help version7". 22 * Differences between version 5.8 and 6.x can be found with ":help version6". 23 * Differences between version 4.x and 5.x can be found with ":help version5". 24 * Differences between version 3.0 and 4.x can be found with ":help version4". 25 * All the remarks about older versions have been removed, they are not very 26 * interesting. 27 */ 28 29 #include "version.h" 30 31 char *Version = VIM_VERSION_SHORT; 32 static char *mediumVersion = VIM_VERSION_MEDIUM; 33 34 #if defined(HAVE_DATE_TIME) || defined(PROTO) 35 # if (defined(VMS) && defined(VAXC)) || defined(PROTO) 36 char longVersion[sizeof(VIM_VERSION_LONG_DATE) + sizeof(__DATE__) 37 + sizeof(__TIME__) + 3]; 38 39 void 40 init_longVersion(void) 41 { 42 /* 43 * Construct the long version string. Necessary because 44 * VAX C can't concatenate strings in the preprocessor. 45 */ 46 strcpy(longVersion, VIM_VERSION_LONG_DATE); 47 #ifdef BUILD_DATE 48 strcat(longVersion, BUILD_DATE); 49 #else 50 strcat(longVersion, __DATE__); 51 strcat(longVersion, " "); 52 strcat(longVersion, __TIME__); 53 #endif 54 strcat(longVersion, ")"); 55 } 56 57 # else 58 void 59 init_longVersion(void) 60 { 61 if (longVersion == NULL) 62 { 63 #ifdef BUILD_DATE 64 char *date_time = BUILD_DATE; 65 #else 66 char *date_time = __DATE__ " " __TIME__; 67 #endif 68 char *msg = _("%s (%s, compiled %s)"); 69 size_t len = strlen(msg) 70 + strlen(VIM_VERSION_LONG_ONLY) 71 + strlen(VIM_VERSION_DATE_ONLY) 72 + strlen(date_time); 73 74 longVersion = alloc(len); 75 if (longVersion == NULL) 76 longVersion = VIM_VERSION_LONG; 77 else 78 vim_snprintf(longVersion, len, msg, 79 VIM_VERSION_LONG_ONLY, VIM_VERSION_DATE_ONLY, date_time); 80 } 81 } 82 # endif 83 #else 84 char *longVersion = VIM_VERSION_LONG; 85 86 void 87 init_longVersion(void) 88 { 89 // nothing to do 90 } 91 #endif 92 93 static char *(features[]) = 94 { 95 #ifdef HAVE_ACL 96 "+acl", 97 #else 98 "-acl", 99 #endif 100 #ifdef AMIGA // only for Amiga systems 101 # ifdef FEAT_ARP 102 "+ARP", 103 # else 104 "-ARP", 105 # endif 106 #endif 107 #ifdef FEAT_ARABIC 108 "+arabic", 109 #else 110 "-arabic", 111 #endif 112 "+autocmd", 113 #ifdef FEAT_AUTOCHDIR 114 "+autochdir", 115 #else 116 "-autochdir", 117 #endif 118 #ifdef FEAT_AUTOSERVERNAME 119 "+autoservername", 120 #else 121 "-autoservername", 122 #endif 123 #ifdef FEAT_BEVAL_GUI 124 "+balloon_eval", 125 #else 126 "-balloon_eval", 127 #endif 128 #ifdef FEAT_BEVAL_TERM 129 "+balloon_eval_term", 130 #else 131 "-balloon_eval_term", 132 #endif 133 #ifdef FEAT_BROWSE 134 "+browse", 135 #else 136 "-browse", 137 #endif 138 #ifdef NO_BUILTIN_TCAPS 139 "-builtin_terms", 140 #endif 141 #ifdef SOME_BUILTIN_TCAPS 142 "+builtin_terms", 143 #endif 144 #ifdef ALL_BUILTIN_TCAPS 145 "++builtin_terms", 146 #endif 147 #ifdef FEAT_BYTEOFF 148 "+byte_offset", 149 #else 150 "-byte_offset", 151 #endif 152 #ifdef FEAT_JOB_CHANNEL 153 "+channel", 154 #else 155 "-channel", 156 #endif 157 #ifdef FEAT_CINDENT 158 "+cindent", 159 #else 160 "-cindent", 161 #endif 162 #ifdef FEAT_CLIENTSERVER 163 "+clientserver", 164 #else 165 "-clientserver", 166 #endif 167 #ifdef FEAT_CLIPBOARD 168 "+clipboard", 169 #else 170 "-clipboard", 171 #endif 172 "+cmdline_compl", 173 "+cmdline_hist", 174 #ifdef FEAT_CMDL_INFO 175 "+cmdline_info", 176 #else 177 "-cmdline_info", 178 #endif 179 "+comments", 180 #ifdef FEAT_CONCEAL 181 "+conceal", 182 #else 183 "-conceal", 184 #endif 185 #ifdef FEAT_CRYPT 186 "+cryptv", 187 #else 188 "-cryptv", 189 #endif 190 #ifdef FEAT_CSCOPE 191 "+cscope", 192 #else 193 "-cscope", 194 #endif 195 "+cursorbind", 196 #ifdef CURSOR_SHAPE 197 "+cursorshape", 198 #else 199 "-cursorshape", 200 #endif 201 #if defined(FEAT_CON_DIALOG) && defined(FEAT_GUI_DIALOG) 202 "+dialog_con_gui", 203 #else 204 # if defined(FEAT_CON_DIALOG) 205 "+dialog_con", 206 # else 207 # if defined(FEAT_GUI_DIALOG) 208 "+dialog_gui", 209 # else 210 "-dialog", 211 # endif 212 # endif 213 #endif 214 #ifdef FEAT_DIFF 215 "+diff", 216 #else 217 "-diff", 218 #endif 219 #ifdef FEAT_DIGRAPHS 220 "+digraphs", 221 #else 222 "-digraphs", 223 #endif 224 #ifdef FEAT_GUI_MSWIN 225 # ifdef FEAT_DIRECTX 226 "+directx", 227 # else 228 "-directx", 229 # endif 230 #endif 231 #ifdef FEAT_DND 232 "+dnd", 233 #else 234 "-dnd", 235 #endif 236 #ifdef EBCDIC 237 "+ebcdic", 238 #else 239 "-ebcdic", 240 #endif 241 #ifdef FEAT_EMACS_TAGS 242 "+emacs_tags", 243 #else 244 "-emacs_tags", 245 #endif 246 #ifdef FEAT_EVAL 247 "+eval", 248 #else 249 "-eval", 250 #endif 251 "+ex_extra", 252 #ifdef FEAT_SEARCH_EXTRA 253 "+extra_search", 254 #else 255 "-extra_search", 256 #endif 257 "-farsi", 258 #ifdef FEAT_SEARCHPATH 259 "+file_in_path", 260 #else 261 "-file_in_path", 262 #endif 263 #ifdef FEAT_FIND_ID 264 "+find_in_path", 265 #else 266 "-find_in_path", 267 #endif 268 #ifdef FEAT_FLOAT 269 "+float", 270 #else 271 "-float", 272 #endif 273 #ifdef FEAT_FOLDING 274 "+folding", 275 #else 276 "-folding", 277 #endif 278 #ifdef FEAT_FOOTER 279 "+footer", 280 #else 281 "-footer", 282 #endif 283 // only interesting on Unix systems 284 #if !defined(USE_SYSTEM) && defined(UNIX) 285 "+fork()", 286 #endif 287 #ifdef FEAT_GETTEXT 288 # ifdef DYNAMIC_GETTEXT 289 "+gettext/dyn", 290 # else 291 "+gettext", 292 # endif 293 #else 294 "-gettext", 295 #endif 296 "-hangul_input", 297 #if (defined(HAVE_ICONV_H) && defined(USE_ICONV)) || defined(DYNAMIC_ICONV) 298 # ifdef DYNAMIC_ICONV 299 "+iconv/dyn", 300 # else 301 "+iconv", 302 # endif 303 #else 304 "-iconv", 305 #endif 306 "+insert_expand", 307 #ifdef FEAT_IPV6 308 "+ipv6", 309 #else 310 "-ipv6", 311 #endif 312 #ifdef FEAT_JOB_CHANNEL 313 "+job", 314 #else 315 "-job", 316 #endif 317 #ifdef FEAT_JUMPLIST 318 "+jumplist", 319 #else 320 "-jumplist", 321 #endif 322 #ifdef FEAT_KEYMAP 323 "+keymap", 324 #else 325 "-keymap", 326 #endif 327 #ifdef FEAT_EVAL 328 "+lambda", 329 #else 330 "-lambda", 331 #endif 332 #ifdef FEAT_LANGMAP 333 "+langmap", 334 #else 335 "-langmap", 336 #endif 337 #ifdef FEAT_LIBCALL 338 "+libcall", 339 #else 340 "-libcall", 341 #endif 342 #ifdef FEAT_LINEBREAK 343 "+linebreak", 344 #else 345 "-linebreak", 346 #endif 347 #ifdef FEAT_LISP 348 "+lispindent", 349 #else 350 "-lispindent", 351 #endif 352 "+listcmds", 353 "+localmap", 354 #ifdef FEAT_LUA 355 # ifdef DYNAMIC_LUA 356 "+lua/dyn", 357 # else 358 "+lua", 359 # endif 360 #else 361 "-lua", 362 #endif 363 #ifdef FEAT_MENU 364 "+menu", 365 #else 366 "-menu", 367 #endif 368 #ifdef FEAT_SESSION 369 "+mksession", 370 #else 371 "-mksession", 372 #endif 373 "+modify_fname", 374 "+mouse", 375 #ifdef FEAT_MOUSESHAPE 376 "+mouseshape", 377 #else 378 "-mouseshape", 379 #endif 380 381 #if defined(UNIX) || defined(VMS) 382 # ifdef FEAT_MOUSE_DEC 383 "+mouse_dec", 384 # else 385 "-mouse_dec", 386 # endif 387 # ifdef FEAT_MOUSE_GPM 388 "+mouse_gpm", 389 # else 390 "-mouse_gpm", 391 # endif 392 # ifdef FEAT_MOUSE_JSB 393 "+mouse_jsbterm", 394 # else 395 "-mouse_jsbterm", 396 # endif 397 # ifdef FEAT_MOUSE_NET 398 "+mouse_netterm", 399 # else 400 "-mouse_netterm", 401 # endif 402 #endif 403 404 #ifdef __QNX__ 405 # ifdef FEAT_MOUSE_PTERM 406 "+mouse_pterm", 407 # else 408 "-mouse_pterm", 409 # endif 410 #endif 411 412 #if defined(UNIX) || defined(VMS) 413 "+mouse_sgr", 414 # ifdef FEAT_SYSMOUSE 415 "+mouse_sysmouse", 416 # else 417 "-mouse_sysmouse", 418 # endif 419 # ifdef FEAT_MOUSE_URXVT 420 "+mouse_urxvt", 421 # else 422 "-mouse_urxvt", 423 # endif 424 "+mouse_xterm", 425 #endif 426 427 #ifdef FEAT_MBYTE_IME 428 # ifdef DYNAMIC_IME 429 "+multi_byte_ime/dyn", 430 # else 431 "+multi_byte_ime", 432 # endif 433 #else 434 "+multi_byte", 435 #endif 436 #ifdef FEAT_MULTI_LANG 437 "+multi_lang", 438 #else 439 "-multi_lang", 440 #endif 441 #ifdef FEAT_MZSCHEME 442 # ifdef DYNAMIC_MZSCHEME 443 "+mzscheme/dyn", 444 # else 445 "+mzscheme", 446 # endif 447 #else 448 "-mzscheme", 449 #endif 450 #ifdef FEAT_NETBEANS_INTG 451 "+netbeans_intg", 452 #else 453 "-netbeans_intg", 454 #endif 455 "+num64", 456 #ifdef FEAT_GUI_MSWIN 457 # ifdef FEAT_OLE 458 "+ole", 459 # else 460 "-ole", 461 # endif 462 #endif 463 #ifdef FEAT_EVAL 464 "+packages", 465 #else 466 "-packages", 467 #endif 468 #ifdef FEAT_PATH_EXTRA 469 "+path_extra", 470 #else 471 "-path_extra", 472 #endif 473 #ifdef FEAT_PERL 474 # ifdef DYNAMIC_PERL 475 "+perl/dyn", 476 # else 477 "+perl", 478 # endif 479 #else 480 "-perl", 481 #endif 482 #ifdef FEAT_PERSISTENT_UNDO 483 "+persistent_undo", 484 #else 485 "-persistent_undo", 486 #endif 487 #ifdef FEAT_PROP_POPUP 488 "+popupwin", 489 #else 490 "-popupwin", 491 #endif 492 #ifdef FEAT_PRINTER 493 # ifdef FEAT_POSTSCRIPT 494 "+postscript", 495 # else 496 "-postscript", 497 # endif 498 "+printer", 499 #else 500 "-printer", 501 #endif 502 #ifdef FEAT_PROFILE 503 "+profile", 504 #else 505 "-profile", 506 #endif 507 #ifdef FEAT_PYTHON 508 # ifdef DYNAMIC_PYTHON 509 "+python/dyn", 510 # else 511 "+python", 512 # endif 513 #else 514 "-python", 515 #endif 516 #ifdef FEAT_PYTHON3 517 # ifdef DYNAMIC_PYTHON3 518 "+python3/dyn", 519 # else 520 "+python3", 521 # endif 522 #else 523 "-python3", 524 #endif 525 #ifdef FEAT_QUICKFIX 526 "+quickfix", 527 #else 528 "-quickfix", 529 #endif 530 #ifdef FEAT_RELTIME 531 "+reltime", 532 #else 533 "-reltime", 534 #endif 535 #ifdef FEAT_RIGHTLEFT 536 "+rightleft", 537 #else 538 "-rightleft", 539 #endif 540 #ifdef FEAT_RUBY 541 # ifdef DYNAMIC_RUBY 542 "+ruby/dyn", 543 # else 544 "+ruby", 545 # endif 546 #else 547 "-ruby", 548 #endif 549 "+scrollbind", 550 #ifdef FEAT_SIGNS 551 "+signs", 552 #else 553 "-signs", 554 #endif 555 #ifdef FEAT_SMARTINDENT 556 "+smartindent", 557 #else 558 "-smartindent", 559 #endif 560 #ifdef FEAT_SOUND 561 "+sound", 562 #else 563 "-sound", 564 #endif 565 #ifdef FEAT_SPELL 566 "+spell", 567 #else 568 "-spell", 569 #endif 570 #ifdef STARTUPTIME 571 "+startuptime", 572 #else 573 "-startuptime", 574 #endif 575 #ifdef FEAT_STL_OPT 576 "+statusline", 577 #else 578 "-statusline", 579 #endif 580 "-sun_workshop", 581 #ifdef FEAT_SYN_HL 582 "+syntax", 583 #else 584 "-syntax", 585 #endif 586 // only interesting on Unix systems 587 #if defined(USE_SYSTEM) && defined(UNIX) 588 "+system()", 589 #endif 590 #ifdef FEAT_TAG_BINS 591 "+tag_binary", 592 #else 593 "-tag_binary", 594 #endif 595 "-tag_old_static", 596 "-tag_any_white", 597 #ifdef FEAT_TCL 598 # ifdef DYNAMIC_TCL 599 "+tcl/dyn", 600 # else 601 "+tcl", 602 # endif 603 #else 604 "-tcl", 605 #endif 606 #ifdef FEAT_TERMGUICOLORS 607 "+termguicolors", 608 #else 609 "-termguicolors", 610 #endif 611 #ifdef FEAT_TERMINAL 612 "+terminal", 613 #else 614 "-terminal", 615 #endif 616 #if defined(UNIX) 617 // only Unix can have terminfo instead of termcap 618 # ifdef TERMINFO 619 "+terminfo", 620 # else 621 "-terminfo", 622 # endif 623 #endif 624 #ifdef FEAT_TERMRESPONSE 625 "+termresponse", 626 #else 627 "-termresponse", 628 #endif 629 #ifdef FEAT_TEXTOBJ 630 "+textobjects", 631 #else 632 "-textobjects", 633 #endif 634 #ifdef FEAT_PROP_POPUP 635 "+textprop", 636 #else 637 "-textprop", 638 #endif 639 #if !defined(UNIX) 640 // unix always includes termcap support 641 # ifdef HAVE_TGETENT 642 "+tgetent", 643 # else 644 "-tgetent", 645 # endif 646 #endif 647 #ifdef FEAT_TIMERS 648 "+timers", 649 #else 650 "-timers", 651 #endif 652 #ifdef FEAT_TITLE 653 "+title", 654 #else 655 "-title", 656 #endif 657 #ifdef FEAT_TOOLBAR 658 "+toolbar", 659 #else 660 "-toolbar", 661 #endif 662 "+user_commands", 663 #ifdef FEAT_VARTABS 664 "+vartabs", 665 #else 666 "-vartabs", 667 #endif 668 "+vertsplit", 669 "+virtualedit", 670 "+visual", 671 "+visualextra", 672 #ifdef FEAT_VIMINFO 673 "+viminfo", 674 #else 675 "-viminfo", 676 #endif 677 "+vreplace", 678 #ifdef MSWIN 679 # ifdef FEAT_VTP 680 "+vtp", 681 # else 682 "-vtp", 683 # endif 684 #endif 685 #ifdef FEAT_WILDIGN 686 "+wildignore", 687 #else 688 "-wildignore", 689 #endif 690 #ifdef FEAT_WILDMENU 691 "+wildmenu", 692 #else 693 "-wildmenu", 694 #endif 695 "+windows", 696 #ifdef FEAT_WRITEBACKUP 697 "+writebackup", 698 #else 699 "-writebackup", 700 #endif 701 #if defined(UNIX) || defined(VMS) 702 # ifdef FEAT_X11 703 "+X11", 704 # else 705 "-X11", 706 # endif 707 #endif 708 #ifdef FEAT_XFONTSET 709 "+xfontset", 710 #else 711 "-xfontset", 712 #endif 713 #ifdef FEAT_XIM 714 "+xim", 715 #else 716 "-xim", 717 #endif 718 #ifdef MSWIN 719 # ifdef FEAT_XPM_W32 720 "+xpm_w32", 721 # else 722 "-xpm_w32", 723 # endif 724 #else 725 # ifdef HAVE_XPM 726 "+xpm", 727 # else 728 "-xpm", 729 # endif 730 #endif 731 #if defined(UNIX) || defined(VMS) 732 # ifdef USE_XSMP_INTERACT 733 "+xsmp_interact", 734 # else 735 # ifdef USE_XSMP 736 "+xsmp", 737 # else 738 "-xsmp", 739 # endif 740 # endif 741 # ifdef FEAT_XCLIPBOARD 742 "+xterm_clipboard", 743 # else 744 "-xterm_clipboard", 745 # endif 746 #endif 747 #ifdef FEAT_XTERM_SAVE 748 "+xterm_save", 749 #else 750 "-xterm_save", 751 #endif 752 NULL 753 }; 754 755 static int included_patches[] = 756 { /* Add new patch number below this line */ 757 /**/ 758 1585, 759 /**/ 760 1584, 761 /**/ 762 1583, 763 /**/ 764 1582, 765 /**/ 766 1581, 767 /**/ 768 1580, 769 /**/ 770 1579, 771 /**/ 772 1578, 773 /**/ 774 1577, 775 /**/ 776 1576, 777 /**/ 778 1575, 779 /**/ 780 1574, 781 /**/ 782 1573, 783 /**/ 784 1572, 785 /**/ 786 1571, 787 /**/ 788 1570, 789 /**/ 790 1569, 791 /**/ 792 1568, 793 /**/ 794 1567, 795 /**/ 796 1566, 797 /**/ 798 1565, 799 /**/ 800 1564, 801 /**/ 802 1563, 803 /**/ 804 1562, 805 /**/ 806 1561, 807 /**/ 808 1560, 809 /**/ 810 1559, 811 /**/ 812 1558, 813 /**/ 814 1557, 815 /**/ 816 1556, 817 /**/ 818 1555, 819 /**/ 820 1554, 821 /**/ 822 1553, 823 /**/ 824 1552, 825 /**/ 826 1551, 827 /**/ 828 1550, 829 /**/ 830 1549, 831 /**/ 832 1548, 833 /**/ 834 1547, 835 /**/ 836 1546, 837 /**/ 838 1545, 839 /**/ 840 1544, 841 /**/ 842 1543, 843 /**/ 844 1542, 845 /**/ 846 1541, 847 /**/ 848 1540, 849 /**/ 850 1539, 851 /**/ 852 1538, 853 /**/ 854 1537, 855 /**/ 856 1536, 857 /**/ 858 1535, 859 /**/ 860 1534, 861 /**/ 862 1533, 863 /**/ 864 1532, 865 /**/ 866 1531, 867 /**/ 868 1530, 869 /**/ 870 1529, 871 /**/ 872 1528, 873 /**/ 874 1527, 875 /**/ 876 1526, 877 /**/ 878 1525, 879 /**/ 880 1524, 881 /**/ 882 1523, 883 /**/ 884 1522, 885 /**/ 886 1521, 887 /**/ 888 1520, 889 /**/ 890 1519, 891 /**/ 892 1518, 893 /**/ 894 1517, 895 /**/ 896 1516, 897 /**/ 898 1515, 899 /**/ 900 1514, 901 /**/ 902 1513, 903 /**/ 904 1512, 905 /**/ 906 1511, 907 /**/ 908 1510, 909 /**/ 910 1509, 911 /**/ 912 1508, 913 /**/ 914 1507, 915 /**/ 916 1506, 917 /**/ 918 1505, 919 /**/ 920 1504, 921 /**/ 922 1503, 923 /**/ 924 1502, 925 /**/ 926 1501, 927 /**/ 928 1500, 929 /**/ 930 1499, 931 /**/ 932 1498, 933 /**/ 934 1497, 935 /**/ 936 1496, 937 /**/ 938 1495, 939 /**/ 940 1494, 941 /**/ 942 1493, 943 /**/ 944 1492, 945 /**/ 946 1491, 947 /**/ 948 1490, 949 /**/ 950 1489, 951 /**/ 952 1488, 953 /**/ 954 1487, 955 /**/ 956 1486, 957 /**/ 958 1485, 959 /**/ 960 1484, 961 /**/ 962 1483, 963 /**/ 964 1482, 965 /**/ 966 1481, 967 /**/ 968 1480, 969 /**/ 970 1479, 971 /**/ 972 1478, 973 /**/ 974 1477, 975 /**/ 976 1476, 977 /**/ 978 1475, 979 /**/ 980 1474, 981 /**/ 982 1473, 983 /**/ 984 1472, 985 /**/ 986 1471, 987 /**/ 988 1470, 989 /**/ 990 1469, 991 /**/ 992 1468, 993 /**/ 994 1467, 995 /**/ 996 1466, 997 /**/ 998 1465, 999 /**/ 1000 1464, 1001 /**/ 1002 1463, 1003 /**/ 1004 1462, 1005 /**/ 1006 1461, 1007 /**/ 1008 1460, 1009 /**/ 1010 1459, 1011 /**/ 1012 1458, 1013 /**/ 1014 1457, 1015 /**/ 1016 1456, 1017 /**/ 1018 1455, 1019 /**/ 1020 1454, 1021 /**/ 1022 1453, 1023 /**/ 1024 1452, 1025 /**/ 1026 1451, 1027 /**/ 1028 1450, 1029 /**/ 1030 1449, 1031 /**/ 1032 1448, 1033 /**/ 1034 1447, 1035 /**/ 1036 1446, 1037 /**/ 1038 1445, 1039 /**/ 1040 1444, 1041 /**/ 1042 1443, 1043 /**/ 1044 1442, 1045 /**/ 1046 1441, 1047 /**/ 1048 1440, 1049 /**/ 1050 1439, 1051 /**/ 1052 1438, 1053 /**/ 1054 1437, 1055 /**/ 1056 1436, 1057 /**/ 1058 1435, 1059 /**/ 1060 1434, 1061 /**/ 1062 1433, 1063 /**/ 1064 1432, 1065 /**/ 1066 1431, 1067 /**/ 1068 1430, 1069 /**/ 1070 1429, 1071 /**/ 1072 1428, 1073 /**/ 1074 1427, 1075 /**/ 1076 1426, 1077 /**/ 1078 1425, 1079 /**/ 1080 1424, 1081 /**/ 1082 1423, 1083 /**/ 1084 1422, 1085 /**/ 1086 1421, 1087 /**/ 1088 1420, 1089 /**/ 1090 1419, 1091 /**/ 1092 1418, 1093 /**/ 1094 1417, 1095 /**/ 1096 1416, 1097 /**/ 1098 1415, 1099 /**/ 1100 1414, 1101 /**/ 1102 1413, 1103 /**/ 1104 1412, 1105 /**/ 1106 1411, 1107 /**/ 1108 1410, 1109 /**/ 1110 1409, 1111 /**/ 1112 1408, 1113 /**/ 1114 1407, 1115 /**/ 1116 1406, 1117 /**/ 1118 1405, 1119 /**/ 1120 1404, 1121 /**/ 1122 1403, 1123 /**/ 1124 1402, 1125 /**/ 1126 1401, 1127 /**/ 1128 1400, 1129 /**/ 1130 1399, 1131 /**/ 1132 1398, 1133 /**/ 1134 1397, 1135 /**/ 1136 1396, 1137 /**/ 1138 1395, 1139 /**/ 1140 1394, 1141 /**/ 1142 1393, 1143 /**/ 1144 1392, 1145 /**/ 1146 1391, 1147 /**/ 1148 1390, 1149 /**/ 1150 1389, 1151 /**/ 1152 1388, 1153 /**/ 1154 1387, 1155 /**/ 1156 1386, 1157 /**/ 1158 1385, 1159 /**/ 1160 1384, 1161 /**/ 1162 1383, 1163 /**/ 1164 1382, 1165 /**/ 1166 1381, 1167 /**/ 1168 1380, 1169 /**/ 1170 1379, 1171 /**/ 1172 1378, 1173 /**/ 1174 1377, 1175 /**/ 1176 1376, 1177 /**/ 1178 1375, 1179 /**/ 1180 1374, 1181 /**/ 1182 1373, 1183 /**/ 1184 1372, 1185 /**/ 1186 1371, 1187 /**/ 1188 1370, 1189 /**/ 1190 1369, 1191 /**/ 1192 1368, 1193 /**/ 1194 1367, 1195 /**/ 1196 1366, 1197 /**/ 1198 1365, 1199 /**/ 1200 1364, 1201 /**/ 1202 1363, 1203 /**/ 1204 1362, 1205 /**/ 1206 1361, 1207 /**/ 1208 1360, 1209 /**/ 1210 1359, 1211 /**/ 1212 1358, 1213 /**/ 1214 1357, 1215 /**/ 1216 1356, 1217 /**/ 1218 1355, 1219 /**/ 1220 1354, 1221 /**/ 1222 1353, 1223 /**/ 1224 1352, 1225 /**/ 1226 1351, 1227 /**/ 1228 1350, 1229 /**/ 1230 1349, 1231 /**/ 1232 1348, 1233 /**/ 1234 1347, 1235 /**/ 1236 1346, 1237 /**/ 1238 1345, 1239 /**/ 1240 1344, 1241 /**/ 1242 1343, 1243 /**/ 1244 1342, 1245 /**/ 1246 1341, 1247 /**/ 1248 1340, 1249 /**/ 1250 1339, 1251 /**/ 1252 1338, 1253 /**/ 1254 1337, 1255 /**/ 1256 1336, 1257 /**/ 1258 1335, 1259 /**/ 1260 1334, 1261 /**/ 1262 1333, 1263 /**/ 1264 1332, 1265 /**/ 1266 1331, 1267 /**/ 1268 1330, 1269 /**/ 1270 1329, 1271 /**/ 1272 1328, 1273 /**/ 1274 1327, 1275 /**/ 1276 1326, 1277 /**/ 1278 1325, 1279 /**/ 1280 1324, 1281 /**/ 1282 1323, 1283 /**/ 1284 1322, 1285 /**/ 1286 1321, 1287 /**/ 1288 1320, 1289 /**/ 1290 1319, 1291 /**/ 1292 1318, 1293 /**/ 1294 1317, 1295 /**/ 1296 1316, 1297 /**/ 1298 1315, 1299 /**/ 1300 1314, 1301 /**/ 1302 1313, 1303 /**/ 1304 1312, 1305 /**/ 1306 1311, 1307 /**/ 1308 1310, 1309 /**/ 1310 1309, 1311 /**/ 1312 1308, 1313 /**/ 1314 1307, 1315 /**/ 1316 1306, 1317 /**/ 1318 1305, 1319 /**/ 1320 1304, 1321 /**/ 1322 1303, 1323 /**/ 1324 1302, 1325 /**/ 1326 1301, 1327 /**/ 1328 1300, 1329 /**/ 1330 1299, 1331 /**/ 1332 1298, 1333 /**/ 1334 1297, 1335 /**/ 1336 1296, 1337 /**/ 1338 1295, 1339 /**/ 1340 1294, 1341 /**/ 1342 1293, 1343 /**/ 1344 1292, 1345 /**/ 1346 1291, 1347 /**/ 1348 1290, 1349 /**/ 1350 1289, 1351 /**/ 1352 1288, 1353 /**/ 1354 1287, 1355 /**/ 1356 1286, 1357 /**/ 1358 1285, 1359 /**/ 1360 1284, 1361 /**/ 1362 1283, 1363 /**/ 1364 1282, 1365 /**/ 1366 1281, 1367 /**/ 1368 1280, 1369 /**/ 1370 1279, 1371 /**/ 1372 1278, 1373 /**/ 1374 1277, 1375 /**/ 1376 1276, 1377 /**/ 1378 1275, 1379 /**/ 1380 1274, 1381 /**/ 1382 1273, 1383 /**/ 1384 1272, 1385 /**/ 1386 1271, 1387 /**/ 1388 1270, 1389 /**/ 1390 1269, 1391 /**/ 1392 1268, 1393 /**/ 1394 1267, 1395 /**/ 1396 1266, 1397 /**/ 1398 1265, 1399 /**/ 1400 1264, 1401 /**/ 1402 1263, 1403 /**/ 1404 1262, 1405 /**/ 1406 1261, 1407 /**/ 1408 1260, 1409 /**/ 1410 1259, 1411 /**/ 1412 1258, 1413 /**/ 1414 1257, 1415 /**/ 1416 1256, 1417 /**/ 1418 1255, 1419 /**/ 1420 1254, 1421 /**/ 1422 1253, 1423 /**/ 1424 1252, 1425 /**/ 1426 1251, 1427 /**/ 1428 1250, 1429 /**/ 1430 1249, 1431 /**/ 1432 1248, 1433 /**/ 1434 1247, 1435 /**/ 1436 1246, 1437 /**/ 1438 1245, 1439 /**/ 1440 1244, 1441 /**/ 1442 1243, 1443 /**/ 1444 1242, 1445 /**/ 1446 1241, 1447 /**/ 1448 1240, 1449 /**/ 1450 1239, 1451 /**/ 1452 1238, 1453 /**/ 1454 1237, 1455 /**/ 1456 1236, 1457 /**/ 1458 1235, 1459 /**/ 1460 1234, 1461 /**/ 1462 1233, 1463 /**/ 1464 1232, 1465 /**/ 1466 1231, 1467 /**/ 1468 1230, 1469 /**/ 1470 1229, 1471 /**/ 1472 1228, 1473 /**/ 1474 1227, 1475 /**/ 1476 1226, 1477 /**/ 1478 1225, 1479 /**/ 1480 1224, 1481 /**/ 1482 1223, 1483 /**/ 1484 1222, 1485 /**/ 1486 1221, 1487 /**/ 1488 1220, 1489 /**/ 1490 1219, 1491 /**/ 1492 1218, 1493 /**/ 1494 1217, 1495 /**/ 1496 1216, 1497 /**/ 1498 1215, 1499 /**/ 1500 1214, 1501 /**/ 1502 1213, 1503 /**/ 1504 1212, 1505 /**/ 1506 1211, 1507 /**/ 1508 1210, 1509 /**/ 1510 1209, 1511 /**/ 1512 1208, 1513 /**/ 1514 1207, 1515 /**/ 1516 1206, 1517 /**/ 1518 1205, 1519 /**/ 1520 1204, 1521 /**/ 1522 1203, 1523 /**/ 1524 1202, 1525 /**/ 1526 1201, 1527 /**/ 1528 1200, 1529 /**/ 1530 1199, 1531 /**/ 1532 1198, 1533 /**/ 1534 1197, 1535 /**/ 1536 1196, 1537 /**/ 1538 1195, 1539 /**/ 1540 1194, 1541 /**/ 1542 1193, 1543 /**/ 1544 1192, 1545 /**/ 1546 1191, 1547 /**/ 1548 1190, 1549 /**/ 1550 1189, 1551 /**/ 1552 1188, 1553 /**/ 1554 1187, 1555 /**/ 1556 1186, 1557 /**/ 1558 1185, 1559 /**/ 1560 1184, 1561 /**/ 1562 1183, 1563 /**/ 1564 1182, 1565 /**/ 1566 1181, 1567 /**/ 1568 1180, 1569 /**/ 1570 1179, 1571 /**/ 1572 1178, 1573 /**/ 1574 1177, 1575 /**/ 1576 1176, 1577 /**/ 1578 1175, 1579 /**/ 1580 1174, 1581 /**/ 1582 1173, 1583 /**/ 1584 1172, 1585 /**/ 1586 1171, 1587 /**/ 1588 1170, 1589 /**/ 1590 1169, 1591 /**/ 1592 1168, 1593 /**/ 1594 1167, 1595 /**/ 1596 1166, 1597 /**/ 1598 1165, 1599 /**/ 1600 1164, 1601 /**/ 1602 1163, 1603 /**/ 1604 1162, 1605 /**/ 1606 1161, 1607 /**/ 1608 1160, 1609 /**/ 1610 1159, 1611 /**/ 1612 1158, 1613 /**/ 1614 1157, 1615 /**/ 1616 1156, 1617 /**/ 1618 1155, 1619 /**/ 1620 1154, 1621 /**/ 1622 1153, 1623 /**/ 1624 1152, 1625 /**/ 1626 1151, 1627 /**/ 1628 1150, 1629 /**/ 1630 1149, 1631 /**/ 1632 1148, 1633 /**/ 1634 1147, 1635 /**/ 1636 1146, 1637 /**/ 1638 1145, 1639 /**/ 1640 1144, 1641 /**/ 1642 1143, 1643 /**/ 1644 1142, 1645 /**/ 1646 1141, 1647 /**/ 1648 1140, 1649 /**/ 1650 1139, 1651 /**/ 1652 1138, 1653 /**/ 1654 1137, 1655 /**/ 1656 1136, 1657 /**/ 1658 1135, 1659 /**/ 1660 1134, 1661 /**/ 1662 1133, 1663 /**/ 1664 1132, 1665 /**/ 1666 1131, 1667 /**/ 1668 1130, 1669 /**/ 1670 1129, 1671 /**/ 1672 1128, 1673 /**/ 1674 1127, 1675 /**/ 1676 1126, 1677 /**/ 1678 1125, 1679 /**/ 1680 1124, 1681 /**/ 1682 1123, 1683 /**/ 1684 1122, 1685 /**/ 1686 1121, 1687 /**/ 1688 1120, 1689 /**/ 1690 1119, 1691 /**/ 1692 1118, 1693 /**/ 1694 1117, 1695 /**/ 1696 1116, 1697 /**/ 1698 1115, 1699 /**/ 1700 1114, 1701 /**/ 1702 1113, 1703 /**/ 1704 1112, 1705 /**/ 1706 1111, 1707 /**/ 1708 1110, 1709 /**/ 1710 1109, 1711 /**/ 1712 1108, 1713 /**/ 1714 1107, 1715 /**/ 1716 1106, 1717 /**/ 1718 1105, 1719 /**/ 1720 1104, 1721 /**/ 1722 1103, 1723 /**/ 1724 1102, 1725 /**/ 1726 1101, 1727 /**/ 1728 1100, 1729 /**/ 1730 1099, 1731 /**/ 1732 1098, 1733 /**/ 1734 1097, 1735 /**/ 1736 1096, 1737 /**/ 1738 1095, 1739 /**/ 1740 1094, 1741 /**/ 1742 1093, 1743 /**/ 1744 1092, 1745 /**/ 1746 1091, 1747 /**/ 1748 1090, 1749 /**/ 1750 1089, 1751 /**/ 1752 1088, 1753 /**/ 1754 1087, 1755 /**/ 1756 1086, 1757 /**/ 1758 1085, 1759 /**/ 1760 1084, 1761 /**/ 1762 1083, 1763 /**/ 1764 1082, 1765 /**/ 1766 1081, 1767 /**/ 1768 1080, 1769 /**/ 1770 1079, 1771 /**/ 1772 1078, 1773 /**/ 1774 1077, 1775 /**/ 1776 1076, 1777 /**/ 1778 1075, 1779 /**/ 1780 1074, 1781 /**/ 1782 1073, 1783 /**/ 1784 1072, 1785 /**/ 1786 1071, 1787 /**/ 1788 1070, 1789 /**/ 1790 1069, 1791 /**/ 1792 1068, 1793 /**/ 1794 1067, 1795 /**/ 1796 1066, 1797 /**/ 1798 1065, 1799 /**/ 1800 1064, 1801 /**/ 1802 1063, 1803 /**/ 1804 1062, 1805 /**/ 1806 1061, 1807 /**/ 1808 1060, 1809 /**/ 1810 1059, 1811 /**/ 1812 1058, 1813 /**/ 1814 1057, 1815 /**/ 1816 1056, 1817 /**/ 1818 1055, 1819 /**/ 1820 1054, 1821 /**/ 1822 1053, 1823 /**/ 1824 1052, 1825 /**/ 1826 1051, 1827 /**/ 1828 1050, 1829 /**/ 1830 1049, 1831 /**/ 1832 1048, 1833 /**/ 1834 1047, 1835 /**/ 1836 1046, 1837 /**/ 1838 1045, 1839 /**/ 1840 1044, 1841 /**/ 1842 1043, 1843 /**/ 1844 1042, 1845 /**/ 1846 1041, 1847 /**/ 1848 1040, 1849 /**/ 1850 1039, 1851 /**/ 1852 1038, 1853 /**/ 1854 1037, 1855 /**/ 1856 1036, 1857 /**/ 1858 1035, 1859 /**/ 1860 1034, 1861 /**/ 1862 1033, 1863 /**/ 1864 1032, 1865 /**/ 1866 1031, 1867 /**/ 1868 1030, 1869 /**/ 1870 1029, 1871 /**/ 1872 1028, 1873 /**/ 1874 1027, 1875 /**/ 1876 1026, 1877 /**/ 1878 1025, 1879 /**/ 1880 1024, 1881 /**/ 1882 1023, 1883 /**/ 1884 1022, 1885 /**/ 1886 1021, 1887 /**/ 1888 1020, 1889 /**/ 1890 1019, 1891 /**/ 1892 1018, 1893 /**/ 1894 1017, 1895 /**/ 1896 1016, 1897 /**/ 1898 1015, 1899 /**/ 1900 1014, 1901 /**/ 1902 1013, 1903 /**/ 1904 1012, 1905 /**/ 1906 1011, 1907 /**/ 1908 1010, 1909 /**/ 1910 1009, 1911 /**/ 1912 1008, 1913 /**/ 1914 1007, 1915 /**/ 1916 1006, 1917 /**/ 1918 1005, 1919 /**/ 1920 1004, 1921 /**/ 1922 1003, 1923 /**/ 1924 1002, 1925 /**/ 1926 1001, 1927 /**/ 1928 1000, 1929 /**/ 1930 999, 1931 /**/ 1932 998, 1933 /**/ 1934 997, 1935 /**/ 1936 996, 1937 /**/ 1938 995, 1939 /**/ 1940 994, 1941 /**/ 1942 993, 1943 /**/ 1944 992, 1945 /**/ 1946 991, 1947 /**/ 1948 990, 1949 /**/ 1950 989, 1951 /**/ 1952 988, 1953 /**/ 1954 987, 1955 /**/ 1956 986, 1957 /**/ 1958 985, 1959 /**/ 1960 984, 1961 /**/ 1962 983, 1963 /**/ 1964 982, 1965 /**/ 1966 981, 1967 /**/ 1968 980, 1969 /**/ 1970 979, 1971 /**/ 1972 978, 1973 /**/ 1974 977, 1975 /**/ 1976 976, 1977 /**/ 1978 975, 1979 /**/ 1980 974, 1981 /**/ 1982 973, 1983 /**/ 1984 972, 1985 /**/ 1986 971, 1987 /**/ 1988 970, 1989 /**/ 1990 969, 1991 /**/ 1992 968, 1993 /**/ 1994 967, 1995 /**/ 1996 966, 1997 /**/ 1998 965, 1999 /**/ 2000 964, 2001 /**/ 2002 963, 2003 /**/ 2004 962, 2005 /**/ 2006 961, 2007 /**/ 2008 960, 2009 /**/ 2010 959, 2011 /**/ 2012 958, 2013 /**/ 2014 957, 2015 /**/ 2016 956, 2017 /**/ 2018 955, 2019 /**/ 2020 954, 2021 /**/ 2022 953, 2023 /**/ 2024 952, 2025 /**/ 2026 951, 2027 /**/ 2028 950, 2029 /**/ 2030 949, 2031 /**/ 2032 948, 2033 /**/ 2034 947, 2035 /**/ 2036 946, 2037 /**/ 2038 945, 2039 /**/ 2040 944, 2041 /**/ 2042 943, 2043 /**/ 2044 942, 2045 /**/ 2046 941, 2047 /**/ 2048 940, 2049 /**/ 2050 939, 2051 /**/ 2052 938, 2053 /**/ 2054 937, 2055 /**/ 2056 936, 2057 /**/ 2058 935, 2059 /**/ 2060 934, 2061 /**/ 2062 933, 2063 /**/ 2064 932, 2065 /**/ 2066 931, 2067 /**/ 2068 930, 2069 /**/ 2070 929, 2071 /**/ 2072 928, 2073 /**/ 2074 927, 2075 /**/ 2076 926, 2077 /**/ 2078 925, 2079 /**/ 2080 924, 2081 /**/ 2082 923, 2083 /**/ 2084 922, 2085 /**/ 2086 921, 2087 /**/ 2088 920, 2089 /**/ 2090 919, 2091 /**/ 2092 918, 2093 /**/ 2094 917, 2095 /**/ 2096 916, 2097 /**/ 2098 915, 2099 /**/ 2100 914, 2101 /**/ 2102 913, 2103 /**/ 2104 912, 2105 /**/ 2106 911, 2107 /**/ 2108 910, 2109 /**/ 2110 909, 2111 /**/ 2112 908, 2113 /**/ 2114 907, 2115 /**/ 2116 906, 2117 /**/ 2118 905, 2119 /**/ 2120 904, 2121 /**/ 2122 903, 2123 /**/ 2124 902, 2125 /**/ 2126 901, 2127 /**/ 2128 900, 2129 /**/ 2130 899, 2131 /**/ 2132 898, 2133 /**/ 2134 897, 2135 /**/ 2136 896, 2137 /**/ 2138 895, 2139 /**/ 2140 894, 2141 /**/ 2142 893, 2143 /**/ 2144 892, 2145 /**/ 2146 891, 2147 /**/ 2148 890, 2149 /**/ 2150 889, 2151 /**/ 2152 888, 2153 /**/ 2154 887, 2155 /**/ 2156 886, 2157 /**/ 2158 885, 2159 /**/ 2160 884, 2161 /**/ 2162 883, 2163 /**/ 2164 882, 2165 /**/ 2166 881, 2167 /**/ 2168 880, 2169 /**/ 2170 879, 2171 /**/ 2172 878, 2173 /**/ 2174 877, 2175 /**/ 2176 876, 2177 /**/ 2178 875, 2179 /**/ 2180 874, 2181 /**/ 2182 873, 2183 /**/ 2184 872, 2185 /**/ 2186 871, 2187 /**/ 2188 870, 2189 /**/ 2190 869, 2191 /**/ 2192 868, 2193 /**/ 2194 867, 2195 /**/ 2196 866, 2197 /**/ 2198 865, 2199 /**/ 2200 864, 2201 /**/ 2202 863, 2203 /**/ 2204 862, 2205 /**/ 2206 861, 2207 /**/ 2208 860, 2209 /**/ 2210 859, 2211 /**/ 2212 858, 2213 /**/ 2214 857, 2215 /**/ 2216 856, 2217 /**/ 2218 855, 2219 /**/ 2220 854, 2221 /**/ 2222 853, 2223 /**/ 2224 852, 2225 /**/ 2226 851, 2227 /**/ 2228 850, 2229 /**/ 2230 849, 2231 /**/ 2232 848, 2233 /**/ 2234 847, 2235 /**/ 2236 846, 2237 /**/ 2238 845, 2239 /**/ 2240 844, 2241 /**/ 2242 843, 2243 /**/ 2244 842, 2245 /**/ 2246 841, 2247 /**/ 2248 840, 2249 /**/ 2250 839, 2251 /**/ 2252 838, 2253 /**/ 2254 837, 2255 /**/ 2256 836, 2257 /**/ 2258 835, 2259 /**/ 2260 834, 2261 /**/ 2262 833, 2263 /**/ 2264 832, 2265 /**/ 2266 831, 2267 /**/ 2268 830, 2269 /**/ 2270 829, 2271 /**/ 2272 828, 2273 /**/ 2274 827, 2275 /**/ 2276 826, 2277 /**/ 2278 825, 2279 /**/ 2280 824, 2281 /**/ 2282 823, 2283 /**/ 2284 822, 2285 /**/ 2286 821, 2287 /**/ 2288 820, 2289 /**/ 2290 819, 2291 /**/ 2292 818, 2293 /**/ 2294 817, 2295 /**/ 2296 816, 2297 /**/ 2298 815, 2299 /**/ 2300 814, 2301 /**/ 2302 813, 2303 /**/ 2304 812, 2305 /**/ 2306 811, 2307 /**/ 2308 810, 2309 /**/ 2310 809, 2311 /**/ 2312 808, 2313 /**/ 2314 807, 2315 /**/ 2316 806, 2317 /**/ 2318 805, 2319 /**/ 2320 804, 2321 /**/ 2322 803, 2323 /**/ 2324 802, 2325 /**/ 2326 801, 2327 /**/ 2328 800, 2329 /**/ 2330 799, 2331 /**/ 2332 798, 2333 /**/ 2334 797, 2335 /**/ 2336 796, 2337 /**/ 2338 795, 2339 /**/ 2340 794, 2341 /**/ 2342 793, 2343 /**/ 2344 792, 2345 /**/ 2346 791, 2347 /**/ 2348 790, 2349 /**/ 2350 789, 2351 /**/ 2352 788, 2353 /**/ 2354 787, 2355 /**/ 2356 786, 2357 /**/ 2358 785, 2359 /**/ 2360 784, 2361 /**/ 2362 783, 2363 /**/ 2364 782, 2365 /**/ 2366 781, 2367 /**/ 2368 780, 2369 /**/ 2370 779, 2371 /**/ 2372 778, 2373 /**/ 2374 777, 2375 /**/ 2376 776, 2377 /**/ 2378 775, 2379 /**/ 2380 774, 2381 /**/ 2382 773, 2383 /**/ 2384 772, 2385 /**/ 2386 771, 2387 /**/ 2388 770, 2389 /**/ 2390 769, 2391 /**/ 2392 768, 2393 /**/ 2394 767, 2395 /**/ 2396 766, 2397 /**/ 2398 765, 2399 /**/ 2400 764, 2401 /**/ 2402 763, 2403 /**/ 2404 762, 2405 /**/ 2406 761, 2407 /**/ 2408 760, 2409 /**/ 2410 759, 2411 /**/ 2412 758, 2413 /**/ 2414 757, 2415 /**/ 2416 756, 2417 /**/ 2418 755, 2419 /**/ 2420 754, 2421 /**/ 2422 753, 2423 /**/ 2424 752, 2425 /**/ 2426 751, 2427 /**/ 2428 750, 2429 /**/ 2430 749, 2431 /**/ 2432 748, 2433 /**/ 2434 747, 2435 /**/ 2436 746, 2437 /**/ 2438 745, 2439 /**/ 2440 744, 2441 /**/ 2442 743, 2443 /**/ 2444 742, 2445 /**/ 2446 741, 2447 /**/ 2448 740, 2449 /**/ 2450 739, 2451 /**/ 2452 738, 2453 /**/ 2454 737, 2455 /**/ 2456 736, 2457 /**/ 2458 735, 2459 /**/ 2460 734, 2461 /**/ 2462 733, 2463 /**/ 2464 732, 2465 /**/ 2466 731, 2467 /**/ 2468 730, 2469 /**/ 2470 729, 2471 /**/ 2472 728, 2473 /**/ 2474 727, 2475 /**/ 2476 726, 2477 /**/ 2478 725, 2479 /**/ 2480 724, 2481 /**/ 2482 723, 2483 /**/ 2484 722, 2485 /**/ 2486 721, 2487 /**/ 2488 720, 2489 /**/ 2490 719, 2491 /**/ 2492 718, 2493 /**/ 2494 717, 2495 /**/ 2496 716, 2497 /**/ 2498 715, 2499 /**/ 2500 714, 2501 /**/ 2502 713, 2503 /**/ 2504 712, 2505 /**/ 2506 711, 2507 /**/ 2508 710, 2509 /**/ 2510 709, 2511 /**/ 2512 708, 2513 /**/ 2514 707, 2515 /**/ 2516 706, 2517 /**/ 2518 705, 2519 /**/ 2520 704, 2521 /**/ 2522 703, 2523 /**/ 2524 702, 2525 /**/ 2526 701, 2527 /**/ 2528 700, 2529 /**/ 2530 699, 2531 /**/ 2532 698, 2533 /**/ 2534 697, 2535 /**/ 2536 696, 2537 /**/ 2538 695, 2539 /**/ 2540 694, 2541 /**/ 2542 693, 2543 /**/ 2544 692, 2545 /**/ 2546 691, 2547 /**/ 2548 690, 2549 /**/ 2550 689, 2551 /**/ 2552 688, 2553 /**/ 2554 687, 2555 /**/ 2556 686, 2557 /**/ 2558 685, 2559 /**/ 2560 684, 2561 /**/ 2562 683, 2563 /**/ 2564 682, 2565 /**/ 2566 681, 2567 /**/ 2568 680, 2569 /**/ 2570 679, 2571 /**/ 2572 678, 2573 /**/ 2574 677, 2575 /**/ 2576 676, 2577 /**/ 2578 675, 2579 /**/ 2580 674, 2581 /**/ 2582 673, 2583 /**/ 2584 672, 2585 /**/ 2586 671, 2587 /**/ 2588 670, 2589 /**/ 2590 669, 2591 /**/ 2592 668, 2593 /**/ 2594 667, 2595 /**/ 2596 666, 2597 /**/ 2598 665, 2599 /**/ 2600 664, 2601 /**/ 2602 663, 2603 /**/ 2604 662, 2605 /**/ 2606 661, 2607 /**/ 2608 660, 2609 /**/ 2610 659, 2611 /**/ 2612 658, 2613 /**/ 2614 657, 2615 /**/ 2616 656, 2617 /**/ 2618 655, 2619 /**/ 2620 654, 2621 /**/ 2622 653, 2623 /**/ 2624 652, 2625 /**/ 2626 651, 2627 /**/ 2628 650, 2629 /**/ 2630 649, 2631 /**/ 2632 648, 2633 /**/ 2634 647, 2635 /**/ 2636 646, 2637 /**/ 2638 645, 2639 /**/ 2640 644, 2641 /**/ 2642 643, 2643 /**/ 2644 642, 2645 /**/ 2646 641, 2647 /**/ 2648 640, 2649 /**/ 2650 639, 2651 /**/ 2652 638, 2653 /**/ 2654 637, 2655 /**/ 2656 636, 2657 /**/ 2658 635, 2659 /**/ 2660 634, 2661 /**/ 2662 633, 2663 /**/ 2664 632, 2665 /**/ 2666 631, 2667 /**/ 2668 630, 2669 /**/ 2670 629, 2671 /**/ 2672 628, 2673 /**/ 2674 627, 2675 /**/ 2676 626, 2677 /**/ 2678 625, 2679 /**/ 2680 624, 2681 /**/ 2682 623, 2683 /**/ 2684 622, 2685 /**/ 2686 621, 2687 /**/ 2688 620, 2689 /**/ 2690 619, 2691 /**/ 2692 618, 2693 /**/ 2694 617, 2695 /**/ 2696 616, 2697 /**/ 2698 615, 2699 /**/ 2700 614, 2701 /**/ 2702 613, 2703 /**/ 2704 612, 2705 /**/ 2706 611, 2707 /**/ 2708 610, 2709 /**/ 2710 609, 2711 /**/ 2712 608, 2713 /**/ 2714 607, 2715 /**/ 2716 606, 2717 /**/ 2718 605, 2719 /**/ 2720 604, 2721 /**/ 2722 603, 2723 /**/ 2724 602, 2725 /**/ 2726 601, 2727 /**/ 2728 600, 2729 /**/ 2730 599, 2731 /**/ 2732 598, 2733 /**/ 2734 597, 2735 /**/ 2736 596, 2737 /**/ 2738 595, 2739 /**/ 2740 594, 2741 /**/ 2742 593, 2743 /**/ 2744 592, 2745 /**/ 2746 591, 2747 /**/ 2748 590, 2749 /**/ 2750 589, 2751 /**/ 2752 588, 2753 /**/ 2754 587, 2755 /**/ 2756 586, 2757 /**/ 2758 585, 2759 /**/ 2760 584, 2761 /**/ 2762 583, 2763 /**/ 2764 582, 2765 /**/ 2766 581, 2767 /**/ 2768 580, 2769 /**/ 2770 579, 2771 /**/ 2772 578, 2773 /**/ 2774 577, 2775 /**/ 2776 576, 2777 /**/ 2778 575, 2779 /**/ 2780 574, 2781 /**/ 2782 573, 2783 /**/ 2784 572, 2785 /**/ 2786 571, 2787 /**/ 2788 570, 2789 /**/ 2790 569, 2791 /**/ 2792 568, 2793 /**/ 2794 567, 2795 /**/ 2796 566, 2797 /**/ 2798 565, 2799 /**/ 2800 564, 2801 /**/ 2802 563, 2803 /**/ 2804 562, 2805 /**/ 2806 561, 2807 /**/ 2808 560, 2809 /**/ 2810 559, 2811 /**/ 2812 558, 2813 /**/ 2814 557, 2815 /**/ 2816 556, 2817 /**/ 2818 555, 2819 /**/ 2820 554, 2821 /**/ 2822 553, 2823 /**/ 2824 552, 2825 /**/ 2826 551, 2827 /**/ 2828 550, 2829 /**/ 2830 549, 2831 /**/ 2832 548, 2833 /**/ 2834 547, 2835 /**/ 2836 546, 2837 /**/ 2838 545, 2839 /**/ 2840 544, 2841 /**/ 2842 543, 2843 /**/ 2844 542, 2845 /**/ 2846 541, 2847 /**/ 2848 540, 2849 /**/ 2850 539, 2851 /**/ 2852 538, 2853 /**/ 2854 537, 2855 /**/ 2856 536, 2857 /**/ 2858 535, 2859 /**/ 2860 534, 2861 /**/ 2862 533, 2863 /**/ 2864 532, 2865 /**/ 2866 531, 2867 /**/ 2868 530, 2869 /**/ 2870 529, 2871 /**/ 2872 528, 2873 /**/ 2874 527, 2875 /**/ 2876 526, 2877 /**/ 2878 525, 2879 /**/ 2880 524, 2881 /**/ 2882 523, 2883 /**/ 2884 522, 2885 /**/ 2886 521, 2887 /**/ 2888 520, 2889 /**/ 2890 519, 2891 /**/ 2892 518, 2893 /**/ 2894 517, 2895 /**/ 2896 516, 2897 /**/ 2898 515, 2899 /**/ 2900 514, 2901 /**/ 2902 513, 2903 /**/ 2904 512, 2905 /**/ 2906 511, 2907 /**/ 2908 510, 2909 /**/ 2910 509, 2911 /**/ 2912 508, 2913 /**/ 2914 507, 2915 /**/ 2916 506, 2917 /**/ 2918 505, 2919 /**/ 2920 504, 2921 /**/ 2922 503, 2923 /**/ 2924 502, 2925 /**/ 2926 501, 2927 /**/ 2928 500, 2929 /**/ 2930 499, 2931 /**/ 2932 498, 2933 /**/ 2934 497, 2935 /**/ 2936 496, 2937 /**/ 2938 495, 2939 /**/ 2940 494, 2941 /**/ 2942 493, 2943 /**/ 2944 492, 2945 /**/ 2946 491, 2947 /**/ 2948 490, 2949 /**/ 2950 489, 2951 /**/ 2952 488, 2953 /**/ 2954 487, 2955 /**/ 2956 486, 2957 /**/ 2958 485, 2959 /**/ 2960 484, 2961 /**/ 2962 483, 2963 /**/ 2964 482, 2965 /**/ 2966 481, 2967 /**/ 2968 480, 2969 /**/ 2970 479, 2971 /**/ 2972 478, 2973 /**/ 2974 477, 2975 /**/ 2976 476, 2977 /**/ 2978 475, 2979 /**/ 2980 474, 2981 /**/ 2982 473, 2983 /**/ 2984 472, 2985 /**/ 2986 471, 2987 /**/ 2988 470, 2989 /**/ 2990 469, 2991 /**/ 2992 468, 2993 /**/ 2994 467, 2995 /**/ 2996 466, 2997 /**/ 2998 465, 2999 /**/ 3000 464, 3001 /**/ 3002 463, 3003 /**/ 3004 462, 3005 /**/ 3006 461, 3007 /**/ 3008 460, 3009 /**/ 3010 459, 3011 /**/ 3012 458, 3013 /**/ 3014 457, 3015 /**/ 3016 456, 3017 /**/ 3018 455, 3019 /**/ 3020 454, 3021 /**/ 3022 453, 3023 /**/ 3024 452, 3025 /**/ 3026 451, 3027 /**/ 3028 450, 3029 /**/ 3030 449, 3031 /**/ 3032 448, 3033 /**/ 3034 447, 3035 /**/ 3036 446, 3037 /**/ 3038 445, 3039 /**/ 3040 444, 3041 /**/ 3042 443, 3043 /**/ 3044 442, 3045 /**/ 3046 441, 3047 /**/ 3048 440, 3049 /**/ 3050 439, 3051 /**/ 3052 438, 3053 /**/ 3054 437, 3055 /**/ 3056 436, 3057 /**/ 3058 435, 3059 /**/ 3060 434, 3061 /**/ 3062 433, 3063 /**/ 3064 432, 3065 /**/ 3066 431, 3067 /**/ 3068 430, 3069 /**/ 3070 429, 3071 /**/ 3072 428, 3073 /**/ 3074 427, 3075 /**/ 3076 426, 3077 /**/ 3078 425, 3079 /**/ 3080 424, 3081 /**/ 3082 423, 3083 /**/ 3084 422, 3085 /**/ 3086 421, 3087 /**/ 3088 420, 3089 /**/ 3090 419, 3091 /**/ 3092 418, 3093 /**/ 3094 417, 3095 /**/ 3096 416, 3097 /**/ 3098 415, 3099 /**/ 3100 414, 3101 /**/ 3102 413, 3103 /**/ 3104 412, 3105 /**/ 3106 411, 3107 /**/ 3108 410, 3109 /**/ 3110 409, 3111 /**/ 3112 408, 3113 /**/ 3114 407, 3115 /**/ 3116 406, 3117 /**/ 3118 405, 3119 /**/ 3120 404, 3121 /**/ 3122 403, 3123 /**/ 3124 402, 3125 /**/ 3126 401, 3127 /**/ 3128 400, 3129 /**/ 3130 399, 3131 /**/ 3132 398, 3133 /**/ 3134 397, 3135 /**/ 3136 396, 3137 /**/ 3138 395, 3139 /**/ 3140 394, 3141 /**/ 3142 393, 3143 /**/ 3144 392, 3145 /**/ 3146 391, 3147 /**/ 3148 390, 3149 /**/ 3150 389, 3151 /**/ 3152 388, 3153 /**/ 3154 387, 3155 /**/ 3156 386, 3157 /**/ 3158 385, 3159 /**/ 3160 384, 3161 /**/ 3162 383, 3163 /**/ 3164 382, 3165 /**/ 3166 381, 3167 /**/ 3168 380, 3169 /**/ 3170 379, 3171 /**/ 3172 378, 3173 /**/ 3174 377, 3175 /**/ 3176 376, 3177 /**/ 3178 375, 3179 /**/ 3180 374, 3181 /**/ 3182 373, 3183 /**/ 3184 372, 3185 /**/ 3186 371, 3187 /**/ 3188 370, 3189 /**/ 3190 369, 3191 /**/ 3192 368, 3193 /**/ 3194 367, 3195 /**/ 3196 366, 3197 /**/ 3198 365, 3199 /**/ 3200 364, 3201 /**/ 3202 363, 3203 /**/ 3204 362, 3205 /**/ 3206 361, 3207 /**/ 3208 360, 3209 /**/ 3210 359, 3211 /**/ 3212 358, 3213 /**/ 3214 357, 3215 /**/ 3216 356, 3217 /**/ 3218 355, 3219 /**/ 3220 354, 3221 /**/ 3222 353, 3223 /**/ 3224 352, 3225 /**/ 3226 351, 3227 /**/ 3228 350, 3229 /**/ 3230 349, 3231 /**/ 3232 348, 3233 /**/ 3234 347, 3235 /**/ 3236 346, 3237 /**/ 3238 345, 3239 /**/ 3240 344, 3241 /**/ 3242 343, 3243 /**/ 3244 342, 3245 /**/ 3246 341, 3247 /**/ 3248 340, 3249 /**/ 3250 339, 3251 /**/ 3252 338, 3253 /**/ 3254 337, 3255 /**/ 3256 336, 3257 /**/ 3258 335, 3259 /**/ 3260 334, 3261 /**/ 3262 333, 3263 /**/ 3264 332, 3265 /**/ 3266 331, 3267 /**/ 3268 330, 3269 /**/ 3270 329, 3271 /**/ 3272 328, 3273 /**/ 3274 327, 3275 /**/ 3276 326, 3277 /**/ 3278 325, 3279 /**/ 3280 324, 3281 /**/ 3282 323, 3283 /**/ 3284 322, 3285 /**/ 3286 321, 3287 /**/ 3288 320, 3289 /**/ 3290 319, 3291 /**/ 3292 318, 3293 /**/ 3294 317, 3295 /**/ 3296 316, 3297 /**/ 3298 315, 3299 /**/ 3300 314, 3301 /**/ 3302 313, 3303 /**/ 3304 312, 3305 /**/ 3306 311, 3307 /**/ 3308 310, 3309 /**/ 3310 309, 3311 /**/ 3312 308, 3313 /**/ 3314 307, 3315 /**/ 3316 306, 3317 /**/ 3318 305, 3319 /**/ 3320 304, 3321 /**/ 3322 303, 3323 /**/ 3324 302, 3325 /**/ 3326 301, 3327 /**/ 3328 300, 3329 /**/ 3330 299, 3331 /**/ 3332 298, 3333 /**/ 3334 297, 3335 /**/ 3336 296, 3337 /**/ 3338 295, 3339 /**/ 3340 294, 3341 /**/ 3342 293, 3343 /**/ 3344 292, 3345 /**/ 3346 291, 3347 /**/ 3348 290, 3349 /**/ 3350 289, 3351 /**/ 3352 288, 3353 /**/ 3354 287, 3355 /**/ 3356 286, 3357 /**/ 3358 285, 3359 /**/ 3360 284, 3361 /**/ 3362 283, 3363 /**/ 3364 282, 3365 /**/ 3366 281, 3367 /**/ 3368 280, 3369 /**/ 3370 279, 3371 /**/ 3372 278, 3373 /**/ 3374 277, 3375 /**/ 3376 276, 3377 /**/ 3378 275, 3379 /**/ 3380 274, 3381 /**/ 3382 273, 3383 /**/ 3384 272, 3385 /**/ 3386 271, 3387 /**/ 3388 270, 3389 /**/ 3390 269, 3391 /**/ 3392 268, 3393 /**/ 3394 267, 3395 /**/ 3396 266, 3397 /**/ 3398 265, 3399 /**/ 3400 264, 3401 /**/ 3402 263, 3403 /**/ 3404 262, 3405 /**/ 3406 261, 3407 /**/ 3408 260, 3409 /**/ 3410 259, 3411 /**/ 3412 258, 3413 /**/ 3414 257, 3415 /**/ 3416 256, 3417 /**/ 3418 255, 3419 /**/ 3420 254, 3421 /**/ 3422 253, 3423 /**/ 3424 252, 3425 /**/ 3426 251, 3427 /**/ 3428 250, 3429 /**/ 3430 249, 3431 /**/ 3432 248, 3433 /**/ 3434 247, 3435 /**/ 3436 246, 3437 /**/ 3438 245, 3439 /**/ 3440 244, 3441 /**/ 3442 243, 3443 /**/ 3444 242, 3445 /**/ 3446 241, 3447 /**/ 3448 240, 3449 /**/ 3450 239, 3451 /**/ 3452 238, 3453 /**/ 3454 237, 3455 /**/ 3456 236, 3457 /**/ 3458 235, 3459 /**/ 3460 234, 3461 /**/ 3462 233, 3463 /**/ 3464 232, 3465 /**/ 3466 231, 3467 /**/ 3468 230, 3469 /**/ 3470 229, 3471 /**/ 3472 228, 3473 /**/ 3474 227, 3475 /**/ 3476 226, 3477 /**/ 3478 225, 3479 /**/ 3480 224, 3481 /**/ 3482 223, 3483 /**/ 3484 222, 3485 /**/ 3486 221, 3487 /**/ 3488 220, 3489 /**/ 3490 219, 3491 /**/ 3492 218, 3493 /**/ 3494 217, 3495 /**/ 3496 216, 3497 /**/ 3498 215, 3499 /**/ 3500 214, 3501 /**/ 3502 213, 3503 /**/ 3504 212, 3505 /**/ 3506 211, 3507 /**/ 3508 210, 3509 /**/ 3510 209, 3511 /**/ 3512 208, 3513 /**/ 3514 207, 3515 /**/ 3516 206, 3517 /**/ 3518 205, 3519 /**/ 3520 204, 3521 /**/ 3522 203, 3523 /**/ 3524 202, 3525 /**/ 3526 201, 3527 /**/ 3528 200, 3529 /**/ 3530 199, 3531 /**/ 3532 198, 3533 /**/ 3534 197, 3535 /**/ 3536 196, 3537 /**/ 3538 195, 3539 /**/ 3540 194, 3541 /**/ 3542 193, 3543 /**/ 3544 192, 3545 /**/ 3546 191, 3547 /**/ 3548 190, 3549 /**/ 3550 189, 3551 /**/ 3552 188, 3553 /**/ 3554 187, 3555 /**/ 3556 186, 3557 /**/ 3558 185, 3559 /**/ 3560 184, 3561 /**/ 3562 183, 3563 /**/ 3564 182, 3565 /**/ 3566 181, 3567 /**/ 3568 180, 3569 /**/ 3570 179, 3571 /**/ 3572 178, 3573 /**/ 3574 177, 3575 /**/ 3576 176, 3577 /**/ 3578 175, 3579 /**/ 3580 174, 3581 /**/ 3582 173, 3583 /**/ 3584 172, 3585 /**/ 3586 171, 3587 /**/ 3588 170, 3589 /**/ 3590 169, 3591 /**/ 3592 168, 3593 /**/ 3594 167, 3595 /**/ 3596 166, 3597 /**/ 3598 165, 3599 /**/ 3600 164, 3601 /**/ 3602 163, 3603 /**/ 3604 162, 3605 /**/ 3606 161, 3607 /**/ 3608 160, 3609 /**/ 3610 159, 3611 /**/ 3612 158, 3613 /**/ 3614 157, 3615 /**/ 3616 156, 3617 /**/ 3618 155, 3619 /**/ 3620 154, 3621 /**/ 3622 153, 3623 /**/ 3624 152, 3625 /**/ 3626 151, 3627 /**/ 3628 150, 3629 /**/ 3630 149, 3631 /**/ 3632 148, 3633 /**/ 3634 147, 3635 /**/ 3636 146, 3637 /**/ 3638 145, 3639 /**/ 3640 144, 3641 /**/ 3642 143, 3643 /**/ 3644 142, 3645 /**/ 3646 141, 3647 /**/ 3648 140, 3649 /**/ 3650 139, 3651 /**/ 3652 138, 3653 /**/ 3654 137, 3655 /**/ 3656 136, 3657 /**/ 3658 135, 3659 /**/ 3660 134, 3661 /**/ 3662 133, 3663 /**/ 3664 132, 3665 /**/ 3666 131, 3667 /**/ 3668 130, 3669 /**/ 3670 129, 3671 /**/ 3672 128, 3673 /**/ 3674 127, 3675 /**/ 3676 126, 3677 /**/ 3678 125, 3679 /**/ 3680 124, 3681 /**/ 3682 123, 3683 /**/ 3684 122, 3685 /**/ 3686 121, 3687 /**/ 3688 120, 3689 /**/ 3690 119, 3691 /**/ 3692 118, 3693 /**/ 3694 117, 3695 /**/ 3696 116, 3697 /**/ 3698 115, 3699 /**/ 3700 114, 3701 /**/ 3702 113, 3703 /**/ 3704 112, 3705 /**/ 3706 111, 3707 /**/ 3708 110, 3709 /**/ 3710 109, 3711 /**/ 3712 108, 3713 /**/ 3714 107, 3715 /**/ 3716 106, 3717 /**/ 3718 105, 3719 /**/ 3720 104, 3721 /**/ 3722 103, 3723 /**/ 3724 102, 3725 /**/ 3726 101, 3727 /**/ 3728 100, 3729 /**/ 3730 99, 3731 /**/ 3732 98, 3733 /**/ 3734 97, 3735 /**/ 3736 96, 3737 /**/ 3738 95, 3739 /**/ 3740 94, 3741 /**/ 3742 93, 3743 /**/ 3744 92, 3745 /**/ 3746 91, 3747 /**/ 3748 90, 3749 /**/ 3750 89, 3751 /**/ 3752 88, 3753 /**/ 3754 87, 3755 /**/ 3756 86, 3757 /**/ 3758 85, 3759 /**/ 3760 84, 3761 /**/ 3762 83, 3763 /**/ 3764 82, 3765 /**/ 3766 81, 3767 /**/ 3768 80, 3769 /**/ 3770 79, 3771 /**/ 3772 78, 3773 /**/ 3774 77, 3775 /**/ 3776 76, 3777 /**/ 3778 75, 3779 /**/ 3780 74, 3781 /**/ 3782 73, 3783 /**/ 3784 72, 3785 /**/ 3786 71, 3787 /**/ 3788 70, 3789 /**/ 3790 69, 3791 /**/ 3792 68, 3793 /**/ 3794 67, 3795 /**/ 3796 66, 3797 /**/ 3798 65, 3799 /**/ 3800 64, 3801 /**/ 3802 63, 3803 /**/ 3804 62, 3805 /**/ 3806 61, 3807 /**/ 3808 60, 3809 /**/ 3810 59, 3811 /**/ 3812 58, 3813 /**/ 3814 57, 3815 /**/ 3816 56, 3817 /**/ 3818 55, 3819 /**/ 3820 54, 3821 /**/ 3822 53, 3823 /**/ 3824 52, 3825 /**/ 3826 51, 3827 /**/ 3828 50, 3829 /**/ 3830 49, 3831 /**/ 3832 48, 3833 /**/ 3834 47, 3835 /**/ 3836 46, 3837 /**/ 3838 45, 3839 /**/ 3840 44, 3841 /**/ 3842 43, 3843 /**/ 3844 42, 3845 /**/ 3846 41, 3847 /**/ 3848 40, 3849 /**/ 3850 39, 3851 /**/ 3852 38, 3853 /**/ 3854 37, 3855 /**/ 3856 36, 3857 /**/ 3858 35, 3859 /**/ 3860 34, 3861 /**/ 3862 33, 3863 /**/ 3864 32, 3865 /**/ 3866 31, 3867 /**/ 3868 30, 3869 /**/ 3870 29, 3871 /**/ 3872 28, 3873 /**/ 3874 27, 3875 /**/ 3876 26, 3877 /**/ 3878 25, 3879 /**/ 3880 24, 3881 /**/ 3882 23, 3883 /**/ 3884 22, 3885 /**/ 3886 21, 3887 /**/ 3888 20, 3889 /**/ 3890 19, 3891 /**/ 3892 18, 3893 /**/ 3894 17, 3895 /**/ 3896 16, 3897 /**/ 3898 15, 3899 /**/ 3900 14, 3901 /**/ 3902 13, 3903 /**/ 3904 12, 3905 /**/ 3906 11, 3907 /**/ 3908 10, 3909 /**/ 3910 9, 3911 /**/ 3912 8, 3913 /**/ 3914 7, 3915 /**/ 3916 6, 3917 /**/ 3918 5, 3919 /**/ 3920 4, 3921 /**/ 3922 3, 3923 /**/ 3924 2, 3925 /**/ 3926 1, 3927 /**/ 3928 0 3929 }; 3930 3931 /* 3932 * Place to put a short description when adding a feature with a patch. 3933 * Keep it short, e.g.,: "relative numbers", "persistent undo". 3934 * Also add a comment marker to separate the lines. 3935 * See the official Vim patches for the diff format: It must use a context of 3936 * one line only. Create it by hand or use "diff -C2" and edit the patch. 3937 */ 3938 static char *(extra_patches[]) = 3939 { /* Add your patch description below this line */ 3940 /**/ 3941 NULL 3942 }; 3943 3944 int 3945 highest_patch(void) 3946 { 3947 // this relies on the highest patch number to be the first entry 3948 return included_patches[0]; 3949 } 3950 3951 #if defined(FEAT_EVAL) || defined(PROTO) 3952 /* 3953 * Return TRUE if patch "n" has been included. 3954 */ 3955 int 3956 has_patch(int n) 3957 { 3958 int i; 3959 3960 for (i = 0; included_patches[i] != 0; ++i) 3961 if (included_patches[i] == n) 3962 return TRUE; 3963 return FALSE; 3964 } 3965 #endif 3966 3967 void 3968 ex_version(exarg_T *eap) 3969 { 3970 /* 3971 * Ignore a ":version 9.99" command. 3972 */ 3973 if (*eap->arg == NUL) 3974 { 3975 msg_putchar('\n'); 3976 list_version(); 3977 } 3978 } 3979 3980 /* 3981 * Output a string for the version message. If it's going to wrap, output a 3982 * newline, unless the message is too long to fit on the screen anyway. 3983 * When "wrap" is TRUE wrap the string in []. 3984 */ 3985 static void 3986 version_msg_wrap(char_u *s, int wrap) 3987 { 3988 int len = (int)vim_strsize(s) + (wrap ? 2 : 0); 3989 3990 if (!got_int && len < (int)Columns && msg_col + len >= (int)Columns 3991 && *s != '\n') 3992 msg_putchar('\n'); 3993 if (!got_int) 3994 { 3995 if (wrap) 3996 msg_puts("["); 3997 msg_puts((char *)s); 3998 if (wrap) 3999 msg_puts("]"); 4000 } 4001 } 4002 4003 static void 4004 version_msg(char *s) 4005 { 4006 version_msg_wrap((char_u *)s, FALSE); 4007 } 4008 4009 /* 4010 * List all features aligned in columns, dictionary style. 4011 */ 4012 static void 4013 list_features(void) 4014 { 4015 list_in_columns((char_u **)features, -1, -1); 4016 } 4017 4018 /* 4019 * List string items nicely aligned in columns. 4020 * When "size" is < 0 then the last entry is marked with NULL. 4021 * The entry with index "current" is inclosed in []. 4022 */ 4023 void 4024 list_in_columns(char_u **items, int size, int current) 4025 { 4026 int i; 4027 int ncol; 4028 int nrow; 4029 int cur_row = 1; 4030 int item_count = 0; 4031 int width = 0; 4032 #ifdef FEAT_SYN_HL 4033 int use_highlight = (items == (char_u **)features); 4034 #endif 4035 4036 // Find the length of the longest item, use that + 1 as the column 4037 // width. 4038 for (i = 0; size < 0 ? items[i] != NULL : i < size; ++i) 4039 { 4040 int l = (int)vim_strsize(items[i]) + (i == current ? 2 : 0); 4041 4042 if (l > width) 4043 width = l; 4044 ++item_count; 4045 } 4046 width += 1; 4047 4048 if (Columns < width) 4049 { 4050 // Not enough screen columns - show one per line 4051 for (i = 0; i < item_count; ++i) 4052 { 4053 version_msg_wrap(items[i], i == current); 4054 if (msg_col > 0 && i < item_count - 1) 4055 msg_putchar('\n'); 4056 } 4057 return; 4058 } 4059 4060 // The rightmost column doesn't need a separator. 4061 // Sacrifice it to fit in one more column if possible. 4062 ncol = (int) (Columns + 1) / width; 4063 nrow = item_count / ncol + (item_count % ncol ? 1 : 0); 4064 4065 // "i" counts columns then rows. "idx" counts rows then columns. 4066 for (i = 0; !got_int && i < nrow * ncol; ++i) 4067 { 4068 int idx = (i / ncol) + (i % ncol) * nrow; 4069 4070 if (idx < item_count) 4071 { 4072 int last_col = (i + 1) % ncol == 0; 4073 4074 if (idx == current) 4075 msg_putchar('['); 4076 #ifdef FEAT_SYN_HL 4077 if (use_highlight && items[idx][0] == '-') 4078 msg_puts_attr((char *)items[idx], HL_ATTR(HLF_W)); 4079 else 4080 #endif 4081 msg_puts((char *)items[idx]); 4082 if (idx == current) 4083 msg_putchar(']'); 4084 if (last_col) 4085 { 4086 if (msg_col > 0 && cur_row < nrow) 4087 msg_putchar('\n'); 4088 ++cur_row; 4089 } 4090 else 4091 { 4092 while (msg_col % width) 4093 msg_putchar(' '); 4094 } 4095 } 4096 else 4097 { 4098 // this row is out of items, thus at the end of the row 4099 if (msg_col > 0) 4100 { 4101 if (cur_row < nrow) 4102 msg_putchar('\n'); 4103 ++cur_row; 4104 } 4105 } 4106 } 4107 } 4108 4109 void 4110 list_version(void) 4111 { 4112 int i; 4113 int first; 4114 char *s = ""; 4115 4116 /* 4117 * When adding features here, don't forget to update the list of 4118 * internal variables in eval.c! 4119 */ 4120 init_longVersion(); 4121 msg(longVersion); 4122 #ifdef MSWIN 4123 # ifdef FEAT_GUI_MSWIN 4124 # ifdef VIMDLL 4125 # ifdef _WIN64 4126 msg_puts(_("\nMS-Windows 64-bit GUI/console version")); 4127 # else 4128 msg_puts(_("\nMS-Windows 32-bit GUI/console version")); 4129 # endif 4130 # else 4131 # ifdef _WIN64 4132 msg_puts(_("\nMS-Windows 64-bit GUI version")); 4133 # else 4134 msg_puts(_("\nMS-Windows 32-bit GUI version")); 4135 # endif 4136 # endif 4137 # ifdef FEAT_OLE 4138 msg_puts(_(" with OLE support")); 4139 # endif 4140 # else 4141 # ifdef _WIN64 4142 msg_puts(_("\nMS-Windows 64-bit console version")); 4143 # else 4144 msg_puts(_("\nMS-Windows 32-bit console version")); 4145 # endif 4146 # endif 4147 #endif 4148 #if defined(MACOS_X) 4149 # if defined(MACOS_X_DARWIN) 4150 msg_puts(_("\nmacOS version")); 4151 # else 4152 msg_puts(_("\nmacOS version w/o darwin feat.")); 4153 # endif 4154 #endif 4155 4156 #ifdef VMS 4157 msg_puts(_("\nOpenVMS version")); 4158 # ifdef HAVE_PATHDEF 4159 if (*compiled_arch != NUL) 4160 { 4161 msg_puts(" - "); 4162 msg_puts((char *)compiled_arch); 4163 } 4164 # endif 4165 4166 #endif 4167 4168 // Print the list of patch numbers if there is at least one. 4169 // Print a range when patches are consecutive: "1-10, 12, 15-40, 42-45" 4170 if (included_patches[0] != 0) 4171 { 4172 msg_puts(_("\nIncluded patches: ")); 4173 first = -1; 4174 // find last one 4175 for (i = 0; included_patches[i] != 0; ++i) 4176 ; 4177 while (--i >= 0) 4178 { 4179 if (first < 0) 4180 first = included_patches[i]; 4181 if (i == 0 || included_patches[i - 1] != included_patches[i] + 1) 4182 { 4183 msg_puts(s); 4184 s = ", "; 4185 msg_outnum((long)first); 4186 if (first != included_patches[i]) 4187 { 4188 msg_puts("-"); 4189 msg_outnum((long)included_patches[i]); 4190 } 4191 first = -1; 4192 } 4193 } 4194 } 4195 4196 // Print the list of extra patch descriptions if there is at least one. 4197 if (extra_patches[0] != NULL) 4198 { 4199 msg_puts(_("\nExtra patches: ")); 4200 s = ""; 4201 for (i = 0; extra_patches[i] != NULL; ++i) 4202 { 4203 msg_puts(s); 4204 s = ", "; 4205 msg_puts(extra_patches[i]); 4206 } 4207 } 4208 4209 #ifdef MODIFIED_BY 4210 msg_puts("\n"); 4211 msg_puts(_("Modified by ")); 4212 msg_puts(MODIFIED_BY); 4213 #endif 4214 4215 #ifdef HAVE_PATHDEF 4216 if (*compiled_user != NUL || *compiled_sys != NUL) 4217 { 4218 msg_puts(_("\nCompiled ")); 4219 if (*compiled_user != NUL) 4220 { 4221 msg_puts(_("by ")); 4222 msg_puts((char *)compiled_user); 4223 } 4224 if (*compiled_sys != NUL) 4225 { 4226 msg_puts("@"); 4227 msg_puts((char *)compiled_sys); 4228 } 4229 } 4230 #endif 4231 4232 #ifdef FEAT_HUGE 4233 msg_puts(_("\nHuge version ")); 4234 #else 4235 # ifdef FEAT_BIG 4236 msg_puts(_("\nBig version ")); 4237 # else 4238 # ifdef FEAT_NORMAL 4239 msg_puts(_("\nNormal version ")); 4240 # else 4241 # ifdef FEAT_SMALL 4242 msg_puts(_("\nSmall version ")); 4243 # else 4244 msg_puts(_("\nTiny version ")); 4245 # endif 4246 # endif 4247 # endif 4248 #endif 4249 #ifndef FEAT_GUI 4250 msg_puts(_("without GUI.")); 4251 #else 4252 # ifdef FEAT_GUI_GTK 4253 # ifdef USE_GTK3 4254 msg_puts(_("with GTK3 GUI.")); 4255 # else 4256 # ifdef FEAT_GUI_GNOME 4257 msg_puts(_("with GTK2-GNOME GUI.")); 4258 # else 4259 msg_puts(_("with GTK2 GUI.")); 4260 # endif 4261 # endif 4262 # else 4263 # ifdef FEAT_GUI_MOTIF 4264 msg_puts(_("with X11-Motif GUI.")); 4265 # else 4266 # ifdef FEAT_GUI_ATHENA 4267 # ifdef FEAT_GUI_NEXTAW 4268 msg_puts(_("with X11-neXtaw GUI.")); 4269 # else 4270 msg_puts(_("with X11-Athena GUI.")); 4271 # endif 4272 # else 4273 # ifdef FEAT_GUI_HAIKU 4274 msg_puts(_("with Haiku GUI.")); 4275 # else 4276 # ifdef FEAT_GUI_PHOTON 4277 msg_puts(_("with Photon GUI.")); 4278 # else 4279 # if defined(MSWIN) 4280 msg_puts(_("with GUI.")); 4281 # endif 4282 # endif 4283 # endif 4284 # endif 4285 # endif 4286 # endif 4287 #endif 4288 version_msg(_(" Features included (+) or not (-):\n")); 4289 4290 list_features(); 4291 if (msg_col > 0) 4292 msg_putchar('\n'); 4293 4294 #ifdef SYS_VIMRC_FILE 4295 version_msg(_(" system vimrc file: \"")); 4296 version_msg(SYS_VIMRC_FILE); 4297 version_msg("\"\n"); 4298 #endif 4299 #ifdef USR_VIMRC_FILE 4300 version_msg(_(" user vimrc file: \"")); 4301 version_msg(USR_VIMRC_FILE); 4302 version_msg("\"\n"); 4303 #endif 4304 #ifdef USR_VIMRC_FILE2 4305 version_msg(_(" 2nd user vimrc file: \"")); 4306 version_msg(USR_VIMRC_FILE2); 4307 version_msg("\"\n"); 4308 #endif 4309 #ifdef USR_VIMRC_FILE3 4310 version_msg(_(" 3rd user vimrc file: \"")); 4311 version_msg(USR_VIMRC_FILE3); 4312 version_msg("\"\n"); 4313 #endif 4314 #ifdef USR_EXRC_FILE 4315 version_msg(_(" user exrc file: \"")); 4316 version_msg(USR_EXRC_FILE); 4317 version_msg("\"\n"); 4318 #endif 4319 #ifdef USR_EXRC_FILE2 4320 version_msg(_(" 2nd user exrc file: \"")); 4321 version_msg(USR_EXRC_FILE2); 4322 version_msg("\"\n"); 4323 #endif 4324 #ifdef FEAT_GUI 4325 # ifdef SYS_GVIMRC_FILE 4326 version_msg(_(" system gvimrc file: \"")); 4327 version_msg(SYS_GVIMRC_FILE); 4328 version_msg("\"\n"); 4329 # endif 4330 version_msg(_(" user gvimrc file: \"")); 4331 version_msg(USR_GVIMRC_FILE); 4332 version_msg("\"\n"); 4333 # ifdef USR_GVIMRC_FILE2 4334 version_msg(_("2nd user gvimrc file: \"")); 4335 version_msg(USR_GVIMRC_FILE2); 4336 version_msg("\"\n"); 4337 # endif 4338 # ifdef USR_GVIMRC_FILE3 4339 version_msg(_("3rd user gvimrc file: \"")); 4340 version_msg(USR_GVIMRC_FILE3); 4341 version_msg("\"\n"); 4342 # endif 4343 #endif 4344 version_msg(_(" defaults file: \"")); 4345 version_msg(VIM_DEFAULTS_FILE); 4346 version_msg("\"\n"); 4347 #ifdef FEAT_GUI 4348 # ifdef SYS_MENU_FILE 4349 version_msg(_(" system menu file: \"")); 4350 version_msg(SYS_MENU_FILE); 4351 version_msg("\"\n"); 4352 # endif 4353 #endif 4354 #ifdef HAVE_PATHDEF 4355 if (*default_vim_dir != NUL) 4356 { 4357 version_msg(_(" fall-back for $VIM: \"")); 4358 version_msg((char *)default_vim_dir); 4359 version_msg("\"\n"); 4360 } 4361 if (*default_vimruntime_dir != NUL) 4362 { 4363 version_msg(_(" f-b for $VIMRUNTIME: \"")); 4364 version_msg((char *)default_vimruntime_dir); 4365 version_msg("\"\n"); 4366 } 4367 version_msg(_("Compilation: ")); 4368 version_msg((char *)all_cflags); 4369 version_msg("\n"); 4370 #ifdef VMS 4371 if (*compiler_version != NUL) 4372 { 4373 version_msg(_("Compiler: ")); 4374 version_msg((char *)compiler_version); 4375 version_msg("\n"); 4376 } 4377 #endif 4378 version_msg(_("Linking: ")); 4379 version_msg((char *)all_lflags); 4380 #endif 4381 #ifdef DEBUG 4382 version_msg("\n"); 4383 version_msg(_(" DEBUG BUILD")); 4384 #endif 4385 } 4386 4387 static void do_intro_line(int row, char_u *mesg, int add_version, int attr); 4388 static void intro_message(int colon); 4389 4390 /* 4391 * Show the intro message when not editing a file. 4392 */ 4393 void 4394 maybe_intro_message(void) 4395 { 4396 if (BUFEMPTY() 4397 && curbuf->b_fname == NULL 4398 && firstwin->w_next == NULL 4399 && vim_strchr(p_shm, SHM_INTRO) == NULL) 4400 intro_message(FALSE); 4401 } 4402 4403 /* 4404 * Give an introductory message about Vim. 4405 * Only used when starting Vim on an empty file, without a file name. 4406 * Or with the ":intro" command (for Sven :-). 4407 */ 4408 static void 4409 intro_message( 4410 int colon) // TRUE for ":intro" 4411 { 4412 int i; 4413 int row; 4414 int blanklines; 4415 int sponsor; 4416 char *p; 4417 static char *(lines[]) = 4418 { 4419 N_("VIM - Vi IMproved"), 4420 "", 4421 N_("version "), 4422 N_("by Bram Moolenaar et al."), 4423 #ifdef MODIFIED_BY 4424 " ", 4425 #endif 4426 N_("Vim is open source and freely distributable"), 4427 "", 4428 N_("Help poor children in Uganda!"), 4429 N_("type :help iccf<Enter> for information "), 4430 "", 4431 N_("type :q<Enter> to exit "), 4432 N_("type :help<Enter> or <F1> for on-line help"), 4433 N_("type :help version8<Enter> for version info"), 4434 NULL, 4435 "", 4436 N_("Running in Vi compatible mode"), 4437 N_("type :set nocp<Enter> for Vim defaults"), 4438 N_("type :help cp-default<Enter> for info on this"), 4439 }; 4440 #ifdef FEAT_GUI 4441 static char *(gui_lines[]) = 4442 { 4443 NULL, 4444 NULL, 4445 NULL, 4446 NULL, 4447 #ifdef MODIFIED_BY 4448 NULL, 4449 #endif 4450 NULL, 4451 NULL, 4452 NULL, 4453 N_("menu Help->Orphans for information "), 4454 NULL, 4455 N_("Running modeless, typed text is inserted"), 4456 N_("menu Edit->Global Settings->Toggle Insert Mode "), 4457 N_(" for two modes "), 4458 NULL, 4459 NULL, 4460 NULL, 4461 N_("menu Edit->Global Settings->Toggle Vi Compatible"), 4462 N_(" for Vim defaults "), 4463 }; 4464 #endif 4465 4466 // blanklines = screen height - # message lines 4467 blanklines = (int)Rows - ((sizeof(lines) / sizeof(char *)) - 1); 4468 if (!p_cp) 4469 blanklines += 4; // add 4 for not showing "Vi compatible" message 4470 4471 // Don't overwrite a statusline. Depends on 'cmdheight'. 4472 if (p_ls > 1) 4473 blanklines -= Rows - topframe->fr_height; 4474 if (blanklines < 0) 4475 blanklines = 0; 4476 4477 // Show the sponsor and register message one out of four times, the Uganda 4478 // message two out of four times. 4479 sponsor = (int)time(NULL); 4480 sponsor = ((sponsor & 2) == 0) - ((sponsor & 4) == 0); 4481 4482 // start displaying the message lines after half of the blank lines 4483 row = blanklines / 2; 4484 if ((row >= 2 && Columns >= 50) || colon) 4485 { 4486 for (i = 0; i < (int)(sizeof(lines) / sizeof(char *)); ++i) 4487 { 4488 p = lines[i]; 4489 #ifdef FEAT_GUI 4490 if (p_im && gui.in_use && gui_lines[i] != NULL) 4491 p = gui_lines[i]; 4492 #endif 4493 if (p == NULL) 4494 { 4495 if (!p_cp) 4496 break; 4497 continue; 4498 } 4499 if (sponsor != 0) 4500 { 4501 if (strstr(p, "children") != NULL) 4502 p = sponsor < 0 4503 ? N_("Sponsor Vim development!") 4504 : N_("Become a registered Vim user!"); 4505 else if (strstr(p, "iccf") != NULL) 4506 p = sponsor < 0 4507 ? N_("type :help sponsor<Enter> for information ") 4508 : N_("type :help register<Enter> for information "); 4509 else if (strstr(p, "Orphans") != NULL) 4510 p = N_("menu Help->Sponsor/Register for information "); 4511 } 4512 if (*p != NUL) 4513 do_intro_line(row, (char_u *)_(p), i == 2, 0); 4514 ++row; 4515 } 4516 } 4517 4518 // Make the wait-return message appear just below the text. 4519 if (colon) 4520 msg_row = row; 4521 } 4522 4523 static void 4524 do_intro_line( 4525 int row, 4526 char_u *mesg, 4527 int add_version, 4528 int attr) 4529 { 4530 char_u vers[20]; 4531 int col; 4532 char_u *p; 4533 int l; 4534 int clen; 4535 #ifdef MODIFIED_BY 4536 # define MODBY_LEN 150 4537 char_u modby[MODBY_LEN]; 4538 4539 if (*mesg == ' ') 4540 { 4541 vim_strncpy(modby, (char_u *)_("Modified by "), MODBY_LEN - 1); 4542 l = (int)STRLEN(modby); 4543 vim_strncpy(modby + l, (char_u *)MODIFIED_BY, MODBY_LEN - l - 1); 4544 mesg = modby; 4545 } 4546 #endif 4547 4548 // Center the message horizontally. 4549 col = vim_strsize(mesg); 4550 if (add_version) 4551 { 4552 STRCPY(vers, mediumVersion); 4553 if (highest_patch()) 4554 { 4555 // Check for 9.9x or 9.9xx, alpha/beta version 4556 if (isalpha((int)vers[3])) 4557 { 4558 int len = (isalpha((int)vers[4])) ? 5 : 4; 4559 sprintf((char *)vers + len, ".%d%s", highest_patch(), 4560 mediumVersion + len); 4561 } 4562 else 4563 sprintf((char *)vers + 3, ".%d", highest_patch()); 4564 } 4565 col += (int)STRLEN(vers); 4566 } 4567 col = (Columns - col) / 2; 4568 if (col < 0) 4569 col = 0; 4570 4571 // Split up in parts to highlight <> items differently. 4572 for (p = mesg; *p != NUL; p += l) 4573 { 4574 clen = 0; 4575 for (l = 0; p[l] != NUL 4576 && (l == 0 || (p[l] != '<' && p[l - 1] != '>')); ++l) 4577 { 4578 if (has_mbyte) 4579 { 4580 clen += ptr2cells(p + l); 4581 l += (*mb_ptr2len)(p + l) - 1; 4582 } 4583 else 4584 clen += byte2cells(p[l]); 4585 } 4586 screen_puts_len(p, l, row, col, *p == '<' ? HL_ATTR(HLF_8) : attr); 4587 col += clen; 4588 } 4589 4590 // Add the version number to the version line. 4591 if (add_version) 4592 screen_puts(vers, row, col, 0); 4593 } 4594 4595 /* 4596 * ":intro": clear screen, display intro screen and wait for return. 4597 */ 4598 void 4599 ex_intro(exarg_T *eap UNUSED) 4600 { 4601 screenclear(); 4602 intro_message(TRUE); 4603 wait_return(TRUE); 4604 } 4605