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