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