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