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