changeset 32:e04119814345 r19-15b99

Import from CVS: tag r19-15b99
author cvs
date Mon, 13 Aug 2007 08:52:56 +0200
parents b9328a10c56c
children 9ee3cade837d
files CHANGES-beta configure configure.in etc/BETA etc/jens.xpm.Z etc/jensm.xpm.Z etc/sgml/CATALOG etc/sgml/htmlpro.dtd etc/sgml/ie30-s.dtd etc/sgml/ie30.dtd etc/sgml/ie3tables.dtd etc/time/l-jtl-0.0.xpm etc/time/l-jtl-0.5.xpm etc/time/l-jtl-1.0.xpm etc/time/l-jtl-1.5.xpm etc/time/l-jtl-2.0.xpm etc/time/l-jtl-2.5.xpm etc/time/l-jtl-3.0.xpm etc/xemacs.xpm lib-src/update-elc.sh lisp/comint/comint.el lisp/custom/ChangeLog lisp/custom/cus-edit.el lisp/custom/cus-face.el lisp/custom/custom.el lisp/custom/wid-browse.el lisp/custom/wid-edit.el lisp/custom/widget-example.el lisp/custom/widget.el lisp/ediff/ediff-wind.el lisp/efs/README lisp/gnus/ChangeLog lisp/gnus/gnus-art.el lisp/gnus/gnus-async.el lisp/gnus/gnus-cache.el lisp/gnus/gnus-group.el lisp/gnus/gnus-int.el lisp/gnus/gnus-load.el lisp/gnus/gnus-msg.el lisp/gnus/gnus-nocem.el lisp/gnus/gnus-score.el lisp/gnus/gnus-setup.el lisp/gnus/gnus-soup.el lisp/gnus/gnus-start.el lisp/gnus/gnus-sum.el lisp/gnus/gnus-topic.el lisp/gnus/gnus-util.el lisp/gnus/gnus-uu.el lisp/gnus/gnus-xmas.el lisp/gnus/gnus.el lisp/gnus/message.el lisp/gnus/messagexmas.el lisp/gnus/nndir.el lisp/gnus/nneething.el lisp/gnus/nnfolder.el lisp/gnus/nnmail.el lisp/gnus/nnmh.el lisp/gnus/nnoo.el lisp/gnus/nntp.el lisp/gnus/nnvirtual.el lisp/hyperbole/hsite-ex.el lisp/mel/mel-g.el lisp/modes/cc-mode.el lisp/modes/cperl-mode.el lisp/modes/pascal.el lisp/modes/sendmail.el lisp/mu/mu-cite.el lisp/packages/crypt.el lisp/packages/diff.el lisp/packages/func-menu.el lisp/packages/icomplete.el lisp/packages/jka-compr.el lisp/packages/time.el lisp/packages/vc.el lisp/prim/about.el lisp/prim/auto-autoloads.el lisp/prim/custom-load.el lisp/prim/help.el lisp/prim/itimer.el lisp/prim/loadup.el lisp/prim/modeline.el lisp/prim/mouse.el lisp/prim/simple.el lisp/prim/startup.el lisp/psgml/psgml-html.el lisp/tl/emu-xemacs.el lisp/tl/emu.el lisp/tl/file-detect.el lisp/tl/filename.el lisp/tm/gnus-charset.el lisp/tm/gnus-mime.el lisp/tm/gnus-sum-mime.el lisp/tm/tm-def.el lisp/tm/tm-ew-d.el lisp/tm/tm-image.el lisp/tm/tm-play.el lisp/utils/autoload.el lisp/utils/with-timeout.el lisp/version.el lisp/viper/viper.el lisp/vm/vm-autoload.el lisp/w3/ChangeLog lisp/w3/Makefile lisp/w3/base64.el lisp/w3/font.el lisp/w3/images.el lisp/w3/md5.el lisp/w3/mm.el lisp/w3/ssl.el lisp/w3/url-cache.el lisp/w3/url-vars.el lisp/w3/url.el lisp/w3/w3-auto.el lisp/w3/w3-cus.el lisp/w3/w3-display.el lisp/w3/w3-e19.el lisp/w3/w3-emulate.el lisp/w3/w3-hot.el lisp/w3/w3-latex.el lisp/w3/w3-menu.el lisp/w3/w3-prefs.el lisp/w3/w3-script.el lisp/w3/w3-sysdp.el lisp/w3/w3-vars.el lisp/w3/w3-widget.el lisp/w3/w3-xemac.el lisp/w3/w3.el lisp/x11/x-menubar.el man/cc-mode.texi man/custom.texi man/gnus.texi man/w3.texi man/widget.texi src/EmacsFrame.c src/Makefile.in.in src/alloc.c src/buffer.c src/callproc.c src/console-stream.c src/console.c src/editfns.c src/emacs.c src/emacsfns.h src/event-stream.c src/extents.c src/fileio.c src/intl.c src/linuxplay.c src/lisp.h src/lread.c src/minibuf.c src/print.c src/redisplay.c src/s/bsdos3.h src/s/irix6-0.h src/s/sunos4-1-4-shr.h src/s/sunos4-1-4.h src/s/sunos4-1.h src/toolbar-x.c src/tooltalk.c src/window.c
diffstat 161 files changed, 11999 insertions(+), 2897 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES-beta	Mon Aug 13 08:52:30 2007 +0200
+++ b/CHANGES-beta	Mon Aug 13 08:52:56 2007 +0200
@@ -1,4 +1,24 @@
 							-*- indented-text -*-
+to 19.15 beta99
+-- Update to time.el.
+-- htmlpro DTD, IE3 DTDs added to etc/sgml.
+-- Invisibility to visibility extent patch courtesy of David Moore
+   (fixes long-standing Gnus annoyance when unhiding .signature).
+-- cperl-mode-1.31+
+-- w3-3.0.68
+-- Custom-1.63
+-- Define BROKEN_SIGIO for SunOS 4.1
+-- itimer.el-1.04
+-- tm-7.105.2
+-- cc-mode-4.379 courtesy of Barry Warsaw
+-- more about.el hacking.
+-- Gnus-5.4.26
+-- Logo adjusted to be more colormap friendly
+-- efs/dired updates courtesy of Michael Sperber [on hold]
+-- miscellaneous bug fixes
+-- hyperbole fix
+-- sit-for, etc.  The Final Solution courtesy of David Moore
+
 to 19.15 beta98
 -- filladapt.el-2.09 courtesy of Kyle Jones
 -- itimer.el-1.03
--- a/configure	Mon Aug 13 08:52:30 2007 +0200
+++ b/configure	Mon Aug 13 08:52:56 2007 +0200
@@ -2173,10 +2173,12 @@
       *-sunos4-0*shr*	   ) opsys=sunos4-0-shr   ;;
       *-sunos4-1*shr*	   ) opsys=sunos4-1-shr   ;;
       *-sunos4-1-2*shr*	   ) opsys=sunos4-1-2-shr ;;
-      *-sunos4-1-[3-9]*shr* ) opsys=sunos4-1-3-shr ;;
+      *-sunos4-1-3*shr*	   ) opsys=sunos4-1-3-shr ;;
+      *-sunos4-1-[4-9]*shr* ) opsys=sunos4-1-4-shr ;;
       *-sunos4.0*	   ) opsys=sunos4-0      ;;
       *-sunos4.1.2*        ) opsys=sunos4-1-2    ;;
-      *-sunos4.1.[3-9]*	   ) opsys=sunos4-1-3    ;;
+      *-sunos4.1.3*        ) opsys=sunos4-1-3    ;;
+      *-sunos4.1.[4-9]*	   ) opsys=sunos4-1-4    ;;
       *-sunos4* | *-sunos  ) opsys=sunos4-1	 ;;
 
       *-solaris2.3*	   ) opsys=sol2-3 	 ;;
@@ -2294,7 +2296,7 @@
       *-linux* )		opsys=linux ;;
       *-sco3.2v4* )		opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
       *-bsd386* | *-bsdi1* )	opsys=bsd386 ;;
-      *-bsdi3* )		opsys=bsdos2-1 ;;
+      *-bsdi3* )		opsys=bsdos3 ;;
       *-bsdi2.1* )		opsys=bsdos2-1 ;;
       *-bsdi2* )		opsys=bsdos2 ;;
       *-sco3.2v5* )		opsys=sco5 ; 
@@ -2381,6 +2383,7 @@
     sunos4-1		) opsys=sunos4-1-shr ;;
     sunos4-1-2		) opsys=sunos4-1-2-shr ;;
     sunos4-1-3		) opsys=sunos4-1-3-shr ;;
+    sunos4-1-4		) opsys=sunos4-1-4-shr ;;
     sco5		) opsys=sco5-shr ;;
   esac
 elif [ "${dynamic}" = "no" ]; then
--- a/configure.in	Mon Aug 13 08:52:30 2007 +0200
+++ b/configure.in	Mon Aug 13 08:52:56 2007 +0200
@@ -2179,10 +2179,12 @@
       *-sunos4-0*shr*	   ) opsys=sunos4-0-shr   ;;
       *-sunos4-1*shr*	   ) opsys=sunos4-1-shr   ;;
       *-sunos4-1-2*shr*	   ) opsys=sunos4-1-2-shr ;;
-      *-sunos4-1-[3-9]*shr* ) opsys=sunos4-1-3-shr ;;
+      *-sunos4-1-3*shr*	   ) opsys=sunos4-1-3-shr ;;
+      *-sunos4-1-[4-9]*shr* ) opsys=sunos4-1-4-shr ;;
       *-sunos4.0*	   ) opsys=sunos4-0      ;;
       *-sunos4.1.2*        ) opsys=sunos4-1-2    ;;
-      *-sunos4.1.[3-9]*	   ) opsys=sunos4-1-3    ;;
+      *-sunos4.1.3*        ) opsys=sunos4-1-3    ;;
+      *-sunos4.1.[4-9]*	   ) opsys=sunos4-1-4    ;;
       *-sunos4* | *-sunos  ) opsys=sunos4-1	 ;;
 
       *-solaris2.3*	   ) opsys=sol2-3 	 ;;
@@ -2300,7 +2302,7 @@
       *-linux* )		opsys=linux ;;
       *-sco3.2v4* )		opsys=sco4 ; NON_GNU_CPP=/lib/cpp  ;;
       *-bsd386* | *-bsdi1* )	opsys=bsd386 ;;
-      *-bsdi3* )		opsys=bsdos2-1 ;;
+      *-bsdi3* )		opsys=bsdos3 ;;
       *-bsdi2.1* )		opsys=bsdos2-1 ;;
       *-bsdi2* )		opsys=bsdos2 ;;
       *-sco3.2v5* )		opsys=sco5 ; 
@@ -2387,6 +2389,7 @@
     sunos4-1		) opsys=sunos4-1-shr ;;
     sunos4-1-2		) opsys=sunos4-1-2-shr ;;
     sunos4-1-3		) opsys=sunos4-1-3-shr ;;
+    sunos4-1-4		) opsys=sunos4-1-4-shr ;;
     sco5		) opsys=sco5-shr ;;
   esac
 elif [ "${dynamic}" = "no" ]; then
--- a/etc/BETA	Mon Aug 13 08:52:30 2007 +0200
+++ b/etc/BETA	Mon Aug 13 08:52:56 2007 +0200
@@ -35,6 +35,24 @@
 List manager Chuck Thompson <cthomp@xemacs.org>.
 
 
+** Beta Release Schedule
+========================
+
+The URL ftp://ftp.xemacs.org/pub/beta/README always contains the best
+estimate of when the next beta XEmacs will be released.  For weekend
+betas the release time is generally in the vicinity of 2PM to 5PM US
+Pacific Time (Universal Time minus 8 hours).  For weekday betas, the
+release time is generally in the vicinity of 8PM to Midnight US
+Pacific Time on the listed day.
+
+While 19.15 and 20.x are in parallel development, a simultaneous
+release day implies a release of 20.x first, followed a few hours
+later by 19.15.
+
+Betas are nominally a week apart, scheduled on every Saturday.
+Midweek releases are made when a serious enough problem warrants it.
+
+
 ** Reporting Problems
 =====================
 
Binary file etc/jens.xpm.Z has changed
Binary file etc/jensm.xpm.Z has changed
--- a/etc/sgml/CATALOG	Mon Aug 13 08:52:30 2007 +0200
+++ b/etc/sgml/CATALOG	Mon Aug 13 08:52:56 2007 +0200
@@ -47,5 +47,8 @@
 PUBLIC "-//Microsoft//DTD Internet Explorer 2.0 Tables//EN"     ietables.dtd
 PUBLIC "-//W3C//DTD HTML 3.2//EN"                       html-3.2.dtd
 PUBLIC "-//W3C//DTD HTML Experimental 19960712//EN"	html-cougar.dtd
+PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 Tables//EN"     ie3tables.dtd
+PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 HTML//EN"       ie30.dtd
+PUBLIC "+//Silmaril//DTD HTML Pro v0r11 19970101//EN"	htmlpro.dtd
 DOCTYPE HTML						html-3.2.dtd
 DOCTYPE HTML-3						html-3.dtd
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/sgml/htmlpro.dtd	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,6093 @@
+<!--<Title>htmlpro--
+--This is the HTML Professional Document Type Description (DTD)--
+ >
+<!ENTITY % head.any  "(META | LINK | SCRIPT | STYLE | RANGE)*"
+               --<Title>Repeatable HEAD elements--
+                >
+
+<!ENTITY % text  "((#PCDATA) | TT | I | B | U | S | BIG | SMALL | SUB | 
+               SUP | EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | 
+               Q | A | LANG | AU | AUTHOR | FONT | PERSON | ACRONYM | 
+               ABBREV | INS | DEL | STYLE | SPAN | ENTITY | ELEMENT | 
+               ATTRIB | STRIKE | COMMENT | BLINK | MATH | BLACKFACE | 
+               LIMITTEXT | NOSMARTQUOTES | SHADOW)*"
+               --<Title>textual, descriptive, or analytical elements--
+                >
+
+<!ENTITY % insertions  "(BASEFONT | APP | APPLET | OBJECT | EMBED | 
+               SCRIPT | MARQUEE | HR | ISINDEX | BGSOUND | TAB | IMG | 
+               IMAGE | BR | NOEMBED | MAP | SERVER | SPACER | AUDIOSCOPE | 
+               SIDEBAR)*"
+               --<Title>things which are not part of the running text--
+                >
+
+<!ENTITY % structure  "(DIV | CENTER | H1 | H2 | H3 | H4 | H5 | H6 | P | 
+               UL | OL | DL | DIR | MENU | PRE | XMP | LISTING | BQ | 
+               MULTICOL | NOBR | BLOCKQUOTE | FORM | TABLE | ADDRESS | 
+               FIG | BDO | NOTE | FN)+" --<Title>structural elements-- >
+
+<!ENTITY % formula  "((#PCDATA) | BOX | ABOVE | BELOW | VEC | BAR | DOT | 
+               DDOT | HAT | TILDE | ROOT | SQRT | ARRAY | SUB | SUP | B | 
+               I | T | BT)+" --<Title>mathematical formulae-- >
+
+<!ELEMENT XTML  O O (HTML*)
+               --<Title>(P)EXPERIMENTAL Container used only for database (corpus) storage when there needs to be more than one HTML document in the file--
+                >
+
+<!ELEMENT HTML  - O ((HEAD , (BODY | (FRAMESET+ , NOFRAMES))) | 
+               PLAINTEXT)
+               --<Title>(H1)COMPULSORY The HTML overall container--
+                >
+
+<!ELEMENT HEAD  - - ((%head.any;) , ((TITLE , (%head.any;)) & (BASE , 
+               (%head.any;))? & (ISINDEX , (%head.any;))? & (NEXTID , 
+               (%head.any;))? & (NOSCRIPT , (%head.any;))? & (BGSOUND , 
+               (%head.any;))?))
+               --<Title>(H1)COMPULSORY Documentation header--
+                >
+
+<!ELEMENT TITLE  - - (#PCDATA)
+               --<Title>(H1)COMPULSORY document title--
+                >
+
+<!ELEMENT ISINDEX  - O  EMPTY 
+               --<Title>(H1)This file is a script which accepts a single input--
+                >
+
+<!ELEMENT BASE  - O  EMPTY 
+               --<Title>(H2)Specifies home base URL--
+                >
+
+<!ELEMENT META  - O  EMPTY 
+               --<Title>(H2)Generic metainformation--
+                >
+
+<!ELEMENT LINK  - O  EMPTY 
+               --<Title>(H2)Link to another resource on the network--
+                >
+
+<!ELEMENT NEXTID  - O  EMPTY 
+               --<Title>(H1)OBSOLETE editor control value--
+                >
+
+<!ELEMENT BGSOUND  - O (#PCDATA)
+               --<Title>(M)SOLITAIRE Background sound--
+                >
+
+<!ELEMENT SCRIPT  - -  CDATA 
+               --<Title>(N)Script language statements--
+                >
+
+<!ELEMENT NOSCRIPT  - - (%text;)+
+               --<Title>(N)Text to display when SCRIPTs are disabled or unimplemented--
+                >
+
+<!ELEMENT STYLE  - -  CDATA 
+               --<Title>(H3)Stylesheet information--
+                >
+
+<!ELEMENT RANGE  - O  EMPTY 
+               --<Title>(H3)Identifies arbitrary range of text from SPOT to SPOT--
+                >
+
+<!ELEMENT FRAMESET  - - (FRAME* | FRAMESET+)
+               --<Title>(N)Set of FRAME elements--
+                >
+
+<!ELEMENT FRAME  - O  EMPTY 
+               --<Title>(N)Display external HTML object in separate frame--
+                >
+
+<!ELEMENT NOFRAMES  - - (BODY)
+               --<Title>(N)Alternative body for non-FRAMEing browsers--
+                >
+
+<!ELEMENT BODY  O O (BANNER? , BODYTEXT) +(SPOT)
+               --<Title>(H1)Text body of the document--
+                >
+
+<!ELEMENT BANNER  - - ((%structure;) | (%insertions;) | (%text;))+
+               --<Title>(H3)Static (non-scrolling) banner--
+                >
+
+<!ELEMENT BODYTEXT  O O ((%structure;) | (%insertions;))+
+               --<Title>(H3)Used only when distinguishing BANNER from remainder of BODY--
+                >
+
+<!ELEMENT BDO  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(I) BiDirectional Override--
+                >
+
+<!ELEMENT DIV  - - ((%structure;)+ | (%insertions;)* | (%text;)*)+
+               --<Title>(H3)Unspecified structural division--
+                >
+
+<!ELEMENT H1  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H1)Heading level 1-- >
+
+<!ELEMENT H2  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H1)Heading level 2-- >
+
+<!ELEMENT H3  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H1)Heading level 3-- >
+
+<!ELEMENT H4  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H1)Heading level 4-- >
+
+<!ELEMENT H5  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H5)Heading level 5-- >
+
+<!ELEMENT H6  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H6)Heading level 6-- >
+
+<!ELEMENT P  - O ((%text;)+ | (%insertions;)*)+ --<Title>(H1)Paragraph-- >
+
+<!ELEMENT MULTICOL  - - (%structure;)+
+               --<Title>(N)Enclose multicolumn material--
+                >
+
+<!ELEMENT NOBR  - - (%text;)+ +(WBR , APPLET , EMBED , OBJECT , IMG , 
+               IMAGE)
+               --<Title>(N)Prohibit break within this line--
+                >
+
+<!ELEMENT WBR  - O  EMPTY 
+               --<Title>(N)Discretionary linebreak between words within NOBR--
+                >
+
+<!ELEMENT PRE  - - (%text;)+ -(BR , TT) +(HR , APPLET , EMBED , OBJECT , 
+               IMG , IMAGE)
+               --<Title>(H3)Preformatted text for fixed-width display--
+                >
+
+<!ELEMENT BLOCKQUOTE  - - (BODYTEXT , CREDIT?) --<Title>(H1)Block quotation-- >
+
+<!ELEMENT BQ  - - (BODYTEXT , CREDIT?)
+               --<Title>(H3)Alternative block quotation--
+                >
+
+<!ELEMENT DL  - - (DT | DD | HR)* --<Title>(H1)Definition list-- >
+
+<!ELEMENT DT  - O ((%text;)+ | (%insertions;)*)+
+               --<Title>(H1)Definition term in a DL--
+                >
+
+<!ELEMENT DD  - O ((%structure;)+ | (%insertions;)* | (%text;)+)?
+               --<Title>(H1)Definition description in a DL--
+                >
+
+<!ELEMENT OL  - - (LI* | HR? | LH?)+ --<Title>(H1)Ordered list-- >
+
+<!ELEMENT UL  - - (LI* | HR? | LH?)+ --<Title>(H1)Unordered list-- >
+
+<!ELEMENT DIR  - - ((#PCDATA) | (LH? , LI*)+) -(P , UL , OL , DIR , MENU , 
+               PRE , XMP , LISTING , DL , DIV , CENTER , BQ , FORM , 
+               TABLE , FIELDSET)
+               --<Title>(H1)Directory listing, (T) also allows #pcdata--
+                >
+
+<!ELEMENT MENU  - - (LH? , LI*) -(P , UL , OL , DIR , MENU , PRE , XMP , 
+               LISTING , DL , DIV , CENTER , BQ , FORM , TABLE , 
+               FIELDSET) --<Title>(H1)Menu listing-- >
+
+<!ELEMENT LH  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H3)List header-- >
+
+<!ELEMENT LI  - O ((%insertions;)* | (%text;)+ | P | UL | OL | DL | DIR | 
+               MENU | PRE | XMP | LISTING | BLOCKQUOTE | BQ | FORM | 
+               TABLE | ADDRESS)+ --<Title>(H1)Item in a list-- >
+
+<!ELEMENT ADDRESS  - - ((%text;)+ | (%insertions;)*)+ +(P) --<Title>(H1)Address blocks-- >
+
+<!ELEMENT FN  - - ((%structure;)+ | (%insertions;)* | (%text;)+)?
+               --<Title>(H3)Footnotes (T)WARNING: idiosyncratic implementation--
+                >
+
+<!ELEMENT NOTE  - - ((%structure;)+ | (%insertions;)* | (%text;)+)? --<Title>(H3)Notes-- >
+
+<!ELEMENT SIDEBAR  - - ((%structure;)+ | (%insertions;)* | (%text;)+)?
+               --<Title>(T) non-scrolling sidebar on-screen--
+                >
+
+<!ELEMENT BLINK  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(N)DEPRECATED Flashing text, deprecated for medical reasons--
+                >
+
+<!ELEMENT CENTER  - - ((%structure;)+ | (%insertions;)* | (%text;)*)+
+               --<Title>(N)SUPERFLUOUS Centered material, use DIV with ALIGN="CENTER"--
+                >
+
+<!ELEMENT HR  - O  EMPTY  --<Title>(H1)Horizontal rule-- >
+
+<!ELEMENT BR  - O  EMPTY  --<Title>(H2)Forced line break-- >
+
+<!ELEMENT BASEFONT  - O  EMPTY 
+               --<Title>(M)Change (specify) the base font from here on--
+                >
+
+<!ELEMENT MARQUEE  - O (%text;)+
+               --<Title>(M)Marching display text--
+                >
+
+<!ELEMENT SERVER  - -  CDATA 
+               --<Title>(N)Contains a LiveWire script--
+                >
+
+<!ELEMENT SPACER  - O  EMPTY 
+               --<Title>(N)Governs concrete spacing--
+                >
+
+<!ELEMENT IMG  - O (#PCDATA)
+               --<Title>(A)Inline image (IMAGE is a Netscapism, and STRONGLY deprecated)--
+                >
+
+<!ELEMENT IMAGE  - O (#PCDATA) --<Title>IMAGE-- >
+
+<!ELEMENT AUDIOSCOPE  - O  EMPTY 
+               --<Title>(T)Displays realtime animated image of a playing sound--
+                >
+
+<!ELEMENT MAP  - - (AREA*)
+               --<Title>(N)Mapping spec for clientside imagemaps--
+                >
+
+<!ELEMENT AREA  - O  EMPTY 
+               --<Title>(N)Mapping area within a MAP--
+                >
+
+<!ELEMENT OBJECT  - - (param+ | (%structure;)+ | (%insertions;)* | 
+               (%text;)*)*
+               --<Title>(W?)External object for insertion--
+                >
+
+<!ELEMENT EMBED  - - (param* , CAPTION? , EMBED.BODY , CREDIT?)
+               --<Title>(N)Embedded plugin applet--
+                >
+
+<!ELEMENT EMBED.BODY  O O ((%insertions;)* | (%text;)*)+ -(A) --<Title>(O) Object-- >
+
+<!ELEMENT NOEMBED  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(N)Alternative text for EMBED-unable browsers--
+                >
+
+<!ELEMENT APP  - - (param* , TEXTFLOW)
+               --<Title>(S)Embedded application--
+                >
+
+<!ELEMENT APPLET  - - (param* , TEXTFLOW) --<Title>APPLET-- >
+
+<!ELEMENT param  - O  EMPTY 
+               --<Title>(S)Named property value to pass to OBJECT or APPLET--
+                >
+
+<!ELEMENT FORM  - - ((%structure;)+ | (%insertions;)* | (%text;)*)+ -(
+               FORM) +(INPUT , SELECT , TEXTAREA , LABEL , FIELDSET , 
+               KEYGEN) --<Title>(H2)Fill-in form-- >
+
+<!ELEMENT LABEL  - - ((%text;)+ | (%insertions;)*)+ -(LABEL) --<Title>(?)Field label text-- >
+
+<!ELEMENT FIELDSET  - - (CAPTION? , ((%structure;)+ | (%insertions;)*)?) -(
+               FIELDSET)
+               --<Title>(?)Encloses a set of form fields--
+                >
+
+<!ELEMENT INPUT  - O  CDATA  --<Title>(H2)Single-line input-- >
+
+<!ELEMENT SELECT  - - (OPTION+)
+               --<Title>(H2)Encloses multi-option form menu--
+                >
+
+<!ELEMENT OPTION  - O (#PCDATA)
+               --<Title>(H2)Options in a form menu--
+                >
+
+<!ELEMENT TEXTAREA  - - (#PCDATA)
+               --<Title>(H2)Freetext input area--
+                >
+
+<!ELEMENT KEYGEN  - O  EMPTY 
+               --<Title>(N)Generates and submits PublicKey encryption--
+                >
+
+<!ELEMENT TABLE  - - (CAPTION? , (col* | colgroup*) , thead? , tfoot? , (
+               tbody | tr*)+) --<Title>(H3)Table-- >
+
+<!ELEMENT CAPTION  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H3)Caption to a TABLE or FIGURE--
+                >
+
+<!ELEMENT colgroup  - O (col*)
+               --<Title>(H3)Group of column specifications--
+                >
+
+<!ELEMENT col  - O  EMPTY 
+               --<Title>(H3)Column specification in a COLGROUP--
+                >
+
+<!ELEMENT thead  - O (tr+) --<Title>(H3)Table header-- >
+
+<!ELEMENT tfoot  - O (tr+)
+               --<Title>(H3)Table footer: if used, must precede table body--
+                >
+
+<!ELEMENT tbody  O O (tr+)
+               --<Title>(H3)Table body, implied for all tables but optional--
+                >
+
+<!ELEMENT tr  - O (th* | td*)+ --<Title>(H3)Table row-- >
+
+<!ELEMENT th  - O ((%structure;)+ | (%insertions;)* | (%text;)+)+
+               --<Title>(H3)Table headings and data (cells)--
+                >
+
+<!ELEMENT td  - O ((%structure;)+ | (%insertions;)* | (%text;)+)+ --<Title>td-- >
+
+<!ELEMENT FIG  - - (CAPTION? , CREDIT? , OVERLAY* , (IMG | IMAGE | 
+               FIGTEXT)+ , CAPTION? , CREDIT?) -(FIG) --<Title>(H3)Floating figure-- >
+
+<!ELEMENT OVERLAY  - O (#PCDATA) --<Title>(H3)Image overlay-- >
+
+<!ELEMENT CREDIT  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H3)source of image-- >
+
+<!ELEMENT FIGTEXT  - O ((%structure;) | (%insertions;))+
+               --<Title>(H3)Container for textual figures--
+                >
+
+<!ELEMENT A  - - ((%insertions;)* | (%text;)*)+ -(A)
+               --<Title>(H1)Hypertext anchor (link)--
+                >
+
+<!ELEMENT AUTHOR  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(L)Author of a CITEd document--
+                >
+
+<!ELEMENT CITE  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H1)Citation (book title, product name, etc)--
+                >
+
+<!ELEMENT DFN  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H3)Definition (index term)--
+                >
+
+<!ELEMENT U  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H2)Underlining where possible; WebTV wrongly does a UL here--
+                >
+
+<!ELEMENT S  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H3)Stricken text, reason unspecified--
+                >
+
+<!ELEMENT STRIKE  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(N)Alternative form of S--
+                >
+
+<!ELEMENT BIG  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H3)Larger type than the current size--
+                >
+
+<!ELEMENT SMALL  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H3)Smaller type than the current size--
+                >
+
+<!ELEMENT SUB  - - (%text;)+ +(VEC , BAR , DOT , DDOT , HAT , TILDE , T , 
+               BT , BOX , ABOVE , ROOT , SQRT , ARRAY) --<Title>(H3)Subscript-- >
+
+<!ELEMENT SUP  - - (%text;)+ +(VEC , BAR , DOT , DDOT , HAT , TILDE , T , 
+               BT , BOX , ABOVE , ROOT , SQRT , ARRAY) --<Title>(H3)Superscript-- >
+
+<!ELEMENT Q  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(3I)Direct speech: browsers should display `quotes' appropriately--
+                >
+
+<!ELEMENT SPAN  - - ((%text;)+ | (%insertions;)*)+ -(SPAN)
+               --<Title>(H3)Marks a text fragment for analytical reasons--
+                >
+
+<!ELEMENT AU  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H3)Author of a CITEd document--
+                >
+
+<!ELEMENT PERSON  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H3)Personal name for indexing--
+                >
+
+<!ELEMENT ACRONYM  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H3)Acronym-- >
+
+<!ELEMENT ABBREV  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H3)Abbreviation-- >
+
+<!ELEMENT ENTITY  - -  CDATA 
+               --<Title>(P)EXPERIMENTAL SGML entity--
+                >
+
+<!ELEMENT ELEMENT  - -  CDATA 
+               --<Title>(P)EXPERIMENTAL SGML element--
+                >
+
+<!ELEMENT ATTRIB  - -  CDATA 
+               --<Title>(P)EXPERIMENTAL SGML attribute--
+                >
+
+<!ELEMENT EM  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H1)Emphasis-- >
+
+<!ELEMENT I  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H2)Unspecified italics--
+                >
+
+<!ELEMENT VAR  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H1)Program variable name, filename, etc--
+                >
+
+<!ELEMENT LANG  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H3)Language other than the base language of the document (eg eg :-)--
+                >
+
+<!ELEMENT INS  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H3)Text inserted at the last edit, or text inserted in the opinion of an editor--
+                >
+
+<!ELEMENT DEL  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H3)Text marked for deletion at the last edit, or text deleted by an editor but left on display for review--
+                >
+
+<!ELEMENT CODE  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H1)Program or code fragment--
+                >
+
+<!ELEMENT KBD  - -  CDATA 
+               --<Title>(H1)Single keyboard character, keycap, or button--
+                >
+
+<!ELEMENT SAMP  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(H1)Inline sample of computer input or response--
+                >
+
+<!ELEMENT TT  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H2)Fixed-width type-- >
+
+<!ELEMENT B  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H2)Unspecified bold-- >
+
+<!ELEMENT STRONG  - - ((%text;)+ | (%insertions;)*)+ --<Title>(H1)Strong emphasis-- >
+
+<!ELEMENT BLACKFACE  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(T)Unspecified extra-bold--
+                >
+
+<!ELEMENT LIMITTEXT  - O  EMPTY 
+               --<Title>(T) holds fixed-width text--
+                >
+
+<!ELEMENT NOSMARTQUOTES  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(T) defeats "smart" quotes--
+                >
+
+<!ELEMENT SHADOW  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(T) lights up shadow down and right of content text--
+                >
+
+<!ELEMENT FONT  - - ((%text;)+ | (%insertions;)*)+
+               --<Title>(M)Make local change to font--
+                >
+
+<!ELEMENT SPOT  - O  EMPTY 
+               --<Title>(H3)Start or finish point of a RANGE--
+                >
+
+<!ELEMENT TAB  - O  EMPTY 
+               --<Title>(H3)Tab set and tab jump-to-- --was (#PCDATA)--
+                >
+
+<!ELEMENT MATH  - - (%text;)+ -(EM , STRONG , Q , BLINK) +(VEC , BAR , 
+               DOT , DDOT , HAT , TILDE , T , BT , BOX , ABOVE , BELOW , 
+               ROOT , SQRT , ARRAY , SUB , SUP , FONT) --<Title>(H3)Mathematics-- >
+
+<!ELEMENT BOX  - - ((%formula;) , (LEFT , (%formula;))? , ((OVER | ATOP | 
+               CHOOSE) , (%formula;))? , (RIGHT , (%formula;))?)
+               --<Title>(H3)Boxes for building fractions--
+                >
+
+<!ELEMENT ABOVE  - - (%formula;) --<Title>(H3)Numerator-- >
+
+<!ELEMENT BELOW  - - (%formula;) --<Title>(H3)Denominator-- >
+
+<!ELEMENT OVER  - O  EMPTY 
+               --<Title>(H3)Separates num from denom in fractions--
+                >
+
+<!ELEMENT RIGHT  - O  EMPTY  --<Title>(H3)Math RH barrier-- >
+
+<!ELEMENT CHOOSE  - O  EMPTY  --<Title>(H3)Math choose array-- >
+
+<!ELEMENT ATOP  - O  EMPTY 
+               --<Title>(H3)Separates top from bottom in unlined overposition--
+                >
+
+<!ELEMENT LEFT  - O  EMPTY  --<Title>(H3)Math LH barrier-- >
+
+<!ELEMENT ARRAY  - - (ROW+) --<Title>(h3)LaTeX-like ARRAY-- >
+
+<!ELEMENT ROW  - O (ITEM*)
+               --<Title>(H3)Row in a math array--
+                >
+
+<!ELEMENT ITEM  - O (%formula;)
+               --<Title>(H3)Math array row item--
+                >
+
+<!ELEMENT T  - - (%formula;) --<Title>(H3)Math typewriter-- >
+
+<!ELEMENT BT  - - (%formula;)
+               --<Title>(H3)Math bold typewriter--
+                >
+
+<!ELEMENT ROOT  - - ((%formula;) , OF , (%formula;)) --<Title>(H3)Math root-- >
+
+<!ELEMENT OF  - O  EMPTY 
+               --<Title>(H3)Dummy separator in ROOT--
+                >
+
+<!ELEMENT SQRT  - - (%formula;)
+               --<Title>(H3)Square root (convenience)--
+                >
+
+<!ELEMENT TILDE  - - (%formula;)
+               --<Title>(H3)Math accents: see TeX--
+                >
+
+<!ELEMENT HAT  - - (%formula;) --<Title>HAT-- >
+
+<!ELEMENT DOT  - - (%formula;) --<Title>DOT-- >
+
+<!ELEMENT DDOT  - - (%formula;) --<Title>DDOT-- >
+
+<!ELEMENT BAR  - - (%formula;) --<Title>BAR-- >
+
+<!ELEMENT VEC  - - (%formula;) --<Title>VEC-- >
+
+<!ELEMENT TEXTFLOW  - O ((%text;)+ | (%insertions;)*)+
+               --<Title>(H3)Dummy: accomodates mixed content model in APPLET caused by REs between PARAMs--
+                >
+
+<!ELEMENT XMP  - -  CDATA 
+               --<Title>(H1)OBSOLETE: example (of display code), superseded by PRE--
+                >
+
+<!ELEMENT LISTING  - -  CDATA 
+               --<Title>(H1)OBSOLETE: listing (lineprinter style), superseded by PRE--
+                >
+
+<!ELEMENT PLAINTEXT  - O  ANY 
+               --<Title>(H1)OBSOLETE: no further markup permitted, superseded by PRE--
+                >
+
+<!ELEMENT COMMENT  - - (#PCDATA)
+               --<Title>(M)SUPERFLUOUS: comment, use normal comment markup instead--
+                >
+
+<!ATTLIST XTML
+               --<Title>html_p~1 - Attribute List-000--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST HTML
+               --<Title>html_p~1 - Attribute List-001--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               VERSION  CDATA    #FIXED 
+               "+//Silmaril//DTD HTML Pro v0r11 19970101//EN"
+               
+               --<Title>DTD version--
+               
+               VER  CDATA    #IMPLIED 
+               --<Title>(?)Added by dumb editors which don't grok the DOCTYPE--
+               
+               SDAFORM  CDATA    #FIXED "Book"
+               --<Title>SDAFORM--
+                >
+
+<!ATTLIST HEAD
+               --<Title>html_p~1 - Attribute List-002--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST TITLE
+               --<Title>html_p~1 - Attribute List-003--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               SDAFORM  CDATA    #FIXED "Ti"
+               --<Title>SDAFORM-002--
+                >
+
+<!ATTLIST ISINDEX
+               --<Title>html_p~1 - Attribute List-004--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               href  CDATA    #REQUIRED 
+               --<Title>URL for a linked resource. Note some browsers have faulty syntax in omitting HREF--
+               
+               action  CDATA    #REQUIRED 
+               --<Title>URL for a server-side handler script--
+               
+               prompt  CDATA    #IMPLIED 
+               --<Title>Prompt message--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               SDAPREF  CDATA    #FIXED 
+               "<Para>[Document is a script accepting input.]</Para>"
+               
+               --<Title>SDAPREF--
+                >
+
+<!ATTLIST BASE
+               --<Title>html_p~1 - Attribute List-005--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               href  CDATA    #REQUIRED 
+               --<Title>URL of the document's home base--
+               
+               target  CDATA    #IMPLIED 
+               --<Title>(N) target window in framing environment--
+                >
+
+<!ATTLIST META
+               --<Title>html_p~1 - Attribute List-006--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               http-equiv  NAME    #IMPLIED 
+               --<Title>HTTP response header name (RFC1945)--
+               
+               name  NAME    #IMPLIED 
+               --<Title>Metainformation name (eg Dublin Core)--
+               
+               content  CDATA    #REQUIRED 
+               --<Title>Metainformation itself--
+                >
+
+<!ATTLIST LINK
+               --<Title>html_p~1 - Attribute List-007--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               href  CDATA    #REQUIRED 
+               --<Title>URL for linked resource--
+               
+               target  CDATA    #IMPLIED 
+               --<Title>(N) target window in framing environment--
+               
+               rel  CDATA    #IMPLIED 
+               --<Title>Forward link types (the HREF'd doc is these to this doc)--
+               
+               rev  CDATA    #IMPLIED 
+               --<Title>Reverse link types (this doc is these to the HREF'd doc)--
+               
+               type  CDATA    #IMPLIED 
+               --<Title>Advisory Internet media type--
+               
+               urn  CDATA    #IMPLIED 
+               --<Title>URN when available--
+               
+               SDAPREF  CDATA    #FIXED 
+               "Linked to: #AttVal (TITLE) (URN) (HREF)>"
+               
+               --<Title>SDAPREF-002--
+                >
+
+<!ATTLIST NEXTID
+               --<Title>html_p~1 - Attribute List-008--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               N  CDATA    #REQUIRED 
+               --<Title>Number to pass to editor--
+                >
+
+<!ATTLIST BGSOUND
+               --<Title>html_p~1 - Attribute List-009--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               alt  CDATA    #IMPLIED 
+               --<Title>For display in place of noise--
+               
+               SRC  CDATA    #REQUIRED 
+               --<Title>URL for sound file--
+               
+               fileformat  NOTATION (AU , WAV , SND)   #IMPLIED 
+               --<Title>Format of sound file if not implicit--
+               
+               LOOP (loop)   #IMPLIED 
+               --<Title>Loop control information (was NMTOKEN #IMPLIED)--
+                >
+
+<!ATTLIST SCRIPT
+               --<Title>html_p~1 - Attribute List-010--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               type  CDATA    #IMPLIED 
+               --<Title>Internet media type for script language--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               event  CDATA    #IMPLIED 
+               --<Title>(L) Undefined--
+               
+               for  CDATA    #IMPLIED 
+               --<Title>for--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>name--
+               
+               scriptengine  CDATA    #IMPLIED 
+               --<Title>scriptengine--
+               
+               language  CDATA    #IMPLIED 
+               --<Title>Predefined script language name--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URL for an external script--
+                >
+
+<!ATTLIST NOSCRIPT
+               --<Title>html_p~1 - Attribute List-011--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST STYLE
+               --<Title>html_p~1 - Attribute List-012--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               type  CDATA    #REQUIRED 
+               --<Title>Internet media type for style notation--
+               
+               notation  NOTATION (CSS , DSSSL)   #IMPLIED 
+               --<Title>(L)Undefined in Lynx but must be one of these so far--
+                >
+
+<!ATTLIST RANGE
+               --<Title>html_p~1 - Attribute List-013--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               from  IDREF    #REQUIRED 
+               --<Title>SPOT indicating start of marked range--
+               
+               until  IDREF    #REQUIRED 
+               --<Title>SPOT indicating end of marked range--
+                >
+
+<!ATTLIST FRAMESET
+               --<Title>html_p~1 - Attribute List-014--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               cols  CDATA    #IMPLIED 
+               --<Title>Comma-sep column specs in pixels or %, *=equalize remainder--
+               
+               rows  CDATA    #IMPLIED 
+               --<Title>Comma-sep row specs in pixels or %, *=equalize remainder--
+               
+               border  NUMBER    #IMPLIED 
+               --<Title>(N) border width in pixels--
+               
+               bordercolor  CDATA    #IMPLIED 
+               --<Title>(N) Hex-encoded or Windows colorname--
+               
+               frameborder (YES , NO)  "NO"
+               --<Title>(N) has the frame a border or not: rules are complex, see Netscape--
+               
+               onLoad  CDATA    #IMPLIED 
+               --<Title>Module to execute on loading--
+               
+               onUnload  CDATA    #IMPLIED 
+               --<Title>Module to execute on unloading (exiting)--
+               
+               onFocus  CDATA    #IMPLIED 
+               --<Title>Module to execute when window gains focus--
+               
+               onBlur  CDATA    #IMPLIED 
+               --<Title>Module to execute when window loses focus--
+                >
+
+<!ATTLIST FRAME
+               --<Title>html_p~1 - Attribute List-015--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               marginheight  CDATA    #IMPLIED 
+               --<Title>(N) Margin above and below--
+               
+               marginwidth  CDATA    #IMPLIED 
+               --<Title>(N) Margin either side--
+               
+               bordercolor  CDATA    #IMPLIED 
+               --<Title>(N) Hex-encoded or Windows colorname--
+               
+               frameborder  CDATA   "NO"
+               --<Title>frameborder--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>(N) Name to refer to this frame by from <a> links--
+               
+               noresize (noresize)   #IMPLIED 
+               --<Title>(N) Frame cannot be size-dragged--
+               
+               scrolling (yes , no , auto)  "auto"
+               --<Title>(N) Frame scrolling control--
+               
+               src  CDATA    #REQUIRED 
+               --<Title>(N) URL for the document to display--
+                >
+
+<!ATTLIST NOFRAMES
+               --<Title>html_p~1 - Attribute List-016--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST BODY
+               --<Title>html_p~1 - Attribute List-017--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               background  CDATA    #IMPLIED 
+               --<Title>Image to tile for document background--
+               
+               bgcolor  CDATA    #IMPLIED 
+               --<Title>#rrggbb color code for document background--
+               
+               text  CDATA    #IMPLIED 
+               --<Title>#rrggbb color code for body text--
+               
+               link  CDATA    #IMPLIED 
+               --<Title>#rrggbb color code for unvisited <a> links--
+               
+               vlink  CDATA    #IMPLIED 
+               --<Title>#rrggbb color code for visited <a> links--
+               
+               alink  CDATA    #IMPLIED 
+               --<Title>#rrggbb color code for active <a> link--
+               
+               onLoad  CDATA    #IMPLIED 
+               --<Title>Module to execute on loading--
+               
+               onUnload  CDATA    #IMPLIED 
+               --<Title>Module to execute on unloading (exiting)--
+               
+               onFocus  CDATA    #IMPLIED 
+               --<Title>Module to execute when window gains focus--
+               
+               onBlur  CDATA    #IMPLIED 
+               --<Title>Module to execute when window loses focus--
+               
+               topmargin  NUMBER    #IMPLIED 
+               --<Title>(?)Forces body to top of screen?--
+               
+               tile (vertical , horizontal , both)  "both"
+               
+               --<Title>(P)Controls direction of tiling BACKGROUND image--
+               
+               credits  CDATA    #IMPLIED 
+               --<Title>(T) URL of authors, contributors, etc--
+               
+               fontsize (small , medium , large)  "medium"
+               
+               --<Title>(T) overrides user-specified body font size--
+               
+               hspace  NUMBER   "8"
+               --<Title>(T) specifies outer LH and RH margins of BODY in pixels--
+               
+               instructions  CDATA    #IMPLIED 
+               --<Title>(T) URL for user instructions related to current page--
+               
+               logo  CDATA    #IMPLIED 
+               --<Title>(T) URL for thumbnail for index entries of current page--
+               
+               nohtilebg (nohtilebg)   #IMPLIED 
+               --<Title>(T) defeats horizontal tiling of background image--
+               
+               novtilebg (novtilebg)   #IMPLIED 
+               --<Title>(T) defeats vertical tiling of background image--
+               
+               vspace  NUMBER   "6"
+               --<Title>(T) specifies top and bottom margins of BODY in pixels--
+               
+               xspeed  NUMBER   "0"
+               --<Title>(T) horizontal scroll speed for scrolled background image--
+               
+               yspeed  NUMBER   "0"
+               --<Title>(T) vertical scroll speed for scrolled background image--
+                >
+
+<!ATTLIST BANNER
+               --<Title>html_p~1 - Attribute List-018--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+                >
+
+<!ATTLIST BODYTEXT
+               --<Title>html_p~1 - Attribute List-019--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               data  CDATA    #IMPLIED 
+               --<Title>(L) reference to object's data--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>(L) name for image--
+               
+               ref  CDATA    #IMPLIED 
+               --<Title>(L) Undocumented--
+               
+               object  CDATA    #IMPLIED 
+               --<Title>object--
+               
+               value  CDATA    #IMPLIED 
+               --<Title>property value--
+               
+               valuetype (DATA , REF , OBJECT)  "DATA"
+               
+               --<Title>How to interpret value--
+               
+               type  CDATA    #IMPLIED 
+               --<Title>Internet media type--
+                >
+
+<!ATTLIST BDO
+               --<Title>html_p~1 - Attribute List-020--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(I) control of text flow--
+                >
+
+<!ATTLIST DIV
+               --<Title>html_p~1 - Attribute List-021--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3)control of text flow--
+                >
+
+<!ATTLIST H1
+               --<Title>html_p~1 - Attribute List-022--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               dingbat  ENTITY    #IMPLIED 
+               --<Title>dingbat entity from obsolete HTMLicons collection--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>(N) don't wrap words--
+               
+               seqnum  NUMBER    #IMPLIED 
+               --<Title>Starting sequence number--
+               
+               skip  NUMBER   "0"
+               --<Title>skip seq nums for missing items--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI for bullet icon--
+               
+               SDAFORM  CDATA    #FIXED "H1"
+               --<Title>SDAFORM-003--
+                >
+
+<!ATTLIST H2
+               --<Title>html_p~1 - Attribute List-023--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               dingbat  ENTITY    #IMPLIED 
+               --<Title>dingbat entity from obsolete HTMLicons collection--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>(N) don't wrap words--
+               
+               seqnum  NUMBER    #IMPLIED 
+               --<Title>Starting sequence number--
+               
+               skip  NUMBER   "0"
+               --<Title>skip seq nums for missing items--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI for bullet icon--
+               
+               SDAFORM  CDATA    #FIXED "H2"
+               --<Title>SDAFORM-004--
+                >
+
+<!ATTLIST H3
+               --<Title>html_p~1 - Attribute List-024--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               dingbat  ENTITY    #IMPLIED 
+               --<Title>dingbat entity from obsolete HTMLicons collection--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>(N) don't wrap words--
+               
+               seqnum  NUMBER    #IMPLIED 
+               --<Title>Starting sequence number--
+               
+               skip  NUMBER   "0"
+               --<Title>skip seq nums for missing items--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI for bullet icon--
+               
+               SDAFORM  CDATA    #FIXED "H3"
+               --<Title>SDAFORM-005--
+                >
+
+<!ATTLIST H4
+               --<Title>html_p~1 - Attribute List-025--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               dingbat  ENTITY    #IMPLIED 
+               --<Title>dingbat entity from obsolete HTMLicons collection--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>(N) don't wrap words--
+               
+               seqnum  NUMBER    #IMPLIED 
+               --<Title>Starting sequence number--
+               
+               skip  NUMBER   "0"
+               --<Title>skip seq nums for missing items--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI for bullet icon--
+               
+               SDAFORM  CDATA    #FIXED "H4"
+               --<Title>SDAFORM-006--
+                >
+
+<!ATTLIST H5
+               --<Title>html_p~1 - Attribute List-026--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               dingbat  ENTITY    #IMPLIED 
+               --<Title>dingbat entity from obsolete HTMLicons collection--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>(N) don't wrap words--
+               
+               seqnum  NUMBER    #IMPLIED 
+               --<Title>Starting sequence number--
+               
+               skip  NUMBER   "0"
+               --<Title>skip seq nums for missing items--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI for bullet icon--
+               
+               SDAFORM  CDATA    #FIXED "H5"
+               --<Title>SDAFORM-007--
+                >
+
+<!ATTLIST H6
+               --<Title>html_p~1 - Attribute List-027--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               dingbat  ENTITY    #IMPLIED 
+               --<Title>dingbat entity from obsolete HTMLicons collection--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>(N) don't wrap words--
+               
+               seqnum  NUMBER    #IMPLIED 
+               --<Title>Starting sequence number--
+               
+               skip  NUMBER   "0"
+               --<Title>skip seq nums for missing items--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI for bullet icon--
+               
+               SDAFORM  CDATA    #FIXED "H6"
+               --<Title>SDAFORM-008--
+                >
+
+<!ATTLIST P
+               --<Title>html_p~1 - Attribute List-028--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>(N) don't wrap words--
+               
+               SDAFORM  CDATA    #FIXED "Para"
+               --<Title>SDAFORM-009--
+                >
+
+<!ATTLIST MULTICOL
+               --<Title>html_p~1 - Attribute List-029--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               cols  NUMBER    #REQUIRED 
+               --<Title>Number of columns--
+               
+               width  NUMBER    #IMPLIED 
+               --<Title>Column width in pixels, default calculated--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               gutter  NUMBER    #IMPLIED 
+               --<Title>Space between columns in pixels, default 10--
+                >
+
+<!ATTLIST NOBR
+               --<Title>html_p~1 - Attribute List-030--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+                >
+
+<!ATTLIST WBR
+               --<Title>html_p~1 - Attribute List-031--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST PRE
+               --<Title>html_p~1 - Attribute List-032--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               width  NUMBER    #IMPLIED 
+               --<Title>Recommended maximum width in fixed-width characters--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               SDAFORM  CDATA    #FIXED "Lit"
+               --<Title>SDAFORM-010--
+                >
+
+<!ATTLIST BLOCKQUOTE
+               --<Title>html_p~1 - Attribute List-033--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>(N) don't wrap words--
+               
+               SDAFORM  CDATA    #FIXED "BQ"
+               --<Title>SDAFORM-011--
+                >
+
+<!ATTLIST BQ
+               --<Title>html_p~1 - Attribute List-034--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>(N) don't wrap words--
+               
+               SDAFORM  CDATA    #FIXED "BQ"
+               --<Title>SDAFORM-012--
+                >
+
+<!ATTLIST DL
+               --<Title>html_p~1 - Attribute List-035--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               compact (compact)   #IMPLIED 
+               --<Title>Reduced interitem spacing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               SDAFORM  CDATA    #FIXED "List"
+               --<Title>SDAFORM-013--
+               
+               SDAPREF  CDATA    #FIXED "Definition List:"
+               
+               --<Title>SDAPREF-003--
+                >
+
+<!ATTLIST DT
+               --<Title>html_p~1 - Attribute List-036--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               SDAFORM  CDATA    #FIXED "Term"
+               --<Title>SDAFORM-014--
+                >
+
+<!ATTLIST DD
+               --<Title>html_p~1 - Attribute List-037--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               SDAFORM  CDATA    #FIXED "LItem"
+               --<Title>SDAFORM-015--
+                >
+
+<!ATTLIST OL
+               --<Title>html_p~1 - Attribute List-038--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               seqnum  NUMBER    #IMPLIED 
+               --<Title>Starting sequence number--
+               
+               type  CDATA    #IMPLIED 
+               --<Title>Numbering/lettering style constrained to [1aAiI]--
+               
+               start  NUMBER    #IMPLIED 
+               --<Title>start--
+               
+               continue  NUMBER    #IMPLIED 
+               --<Title>Continuation sequence number--
+               
+               compact (compact)   #IMPLIED 
+               --<Title>Reduced interitem spacing--
+               
+               wrap (ON , OFF , HARD , SOFT , HORIZ)  "ON"
+               
+               --<Title>(N) how to handle line-wrapping--
+               
+               SDAFORM  CDATA    #FIXED "List"
+               --<Title>SDAFORM-016--
+                >
+
+<!ATTLIST UL
+               --<Title>html_p~1 - Attribute List-039--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               type (disc , square , circle , plain , A , I , 1)  
+                #IMPLIED 
+               --<Title>Bulleting style, [AaIi1] interpreted by browser--
+               
+               compact (compact)   #IMPLIED 
+               --<Title>Reduced interitem spacing--
+               
+               plain  CDATA    #IMPLIED 
+               --<Title>Unbulleted, ought to be the nametoken "PLAIN" but it's already bee used above for TYPE--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI for bullet icon--
+               
+               dingbat  ENTITY    #IMPLIED 
+               --<Title>dingbat entity from obsolete HTMLicons collection--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               wrap (ON , OFF , HARD , SOFT , HORIZ)  "ON"
+               
+               --<Title>(N) how to handle line-wrapping--
+               
+               fileformat  NOTATION (GIF , JPG , DVI , BMP , EPS , PNG , 
+               PICT , TIFF , XBM , XPM)   #IMPLIED 
+               --<Title>Format of image if not implicit--
+               
+               SDAFORM  CDATA    #FIXED "List"
+               --<Title>SDAFORM-017--
+                >
+
+<!ATTLIST DIR
+               --<Title>html_p~1 - Attribute List-040--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               compact (compact)   #IMPLIED 
+               --<Title>Reduced interitem spacing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               dingbat  ENTITY    #IMPLIED 
+               --<Title>dingbat entity from obsolete HTMLicons collection--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI for bullet icon--
+               
+               type  CDATA    #IMPLIED 
+               --<Title>Numbering/lettering style constrained to [1aAiI]--
+               
+               plain  CDATA    #IMPLIED 
+               --<Title>Unbulleted, ought to be the nametoken "PLAIN" but it's already bee used above for TYPE--
+               
+               wrap (ON , OFF , HARD , SOFT , HORIZ)  "ON"
+               
+               --<Title>(N) how to handle line-wrapping--
+               
+               SDAFORM  CDATA    #FIXED "List"
+               --<Title>SDAFORM-018--
+               
+               SDAPREF  CDATA    #FIXED "<LHead>Directory</LHead>"
+               
+               --<Title>SDAPREF-004--
+                >
+
+<!ATTLIST MENU
+               --<Title>html_p~1 - Attribute List-041--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               compact (compact)   #IMPLIED 
+               --<Title>Reduced interitem spacing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               dingbat  ENTITY    #IMPLIED 
+               --<Title>dingbat entity from obsolete HTMLicons collection--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI for bullet icon--
+               
+               type  CDATA    #IMPLIED 
+               --<Title>Numbering/lettering style constrained to [1aAiI]--
+               
+               plain  CDATA    #IMPLIED 
+               --<Title>Unbulleted, ought to be the nametoken "PLAIN" but it's already bee used above for TYPE--
+               
+               wrap (ON , OFF , HARD , SOFT , HORIZ)  "ON"
+               
+               --<Title>(N) how to handle line-wrapping--
+               
+               SDAFORM  CDATA    #FIXED "List"
+               --<Title>SDAFORM-019--
+               
+               SDAPREF  CDATA    #FIXED "<LHead>Menu</LHead>"
+               
+               --<Title>SDAPREF-005--
+                >
+
+<!ATTLIST LH
+               --<Title>html_p~1 - Attribute List-042--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+                >
+
+<!ATTLIST LI
+               --<Title>html_p~1 - Attribute List-043--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               type  CDATA    #IMPLIED 
+               --<Title>List item style, see TYPE for OL and UL--
+               
+               value  NUMBER    #IMPLIED 
+               --<Title>Reset sequence number--
+               
+               skip  NUMBER   "0"
+               --<Title>skip seq nums for missing items--
+               
+               dingbat  ENTITY    #IMPLIED 
+               --<Title>dingbat entity from obsolete HTMLicons collection--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI for bullet icon--
+               
+               fileformat  NOTATION (GIF , JPG , DVI , BMP , EPS , PNG , 
+               PICT , TIFF , XBM , XPM)   #IMPLIED 
+               --<Title>Format of icon if not implicit--
+               
+               SDAFORM  CDATA    #FIXED "LItem"
+               --<Title>SDAFORM-020--
+                >
+
+<!ATTLIST ADDRESS
+               --<Title>html_p~1 - Attribute List-044--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>(N) don't wrap words--
+               
+               SDAFORM  CDATA    #FIXED "Lit"
+               --<Title>SDAFORM-021--
+               
+               SDAPREF  CDATA    #FIXED "Address: "
+               --<Title>SDAPREF-006--
+                >
+
+<!ATTLIST FN
+               --<Title>html_p~1 - Attribute List-045--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               flow (vertical , columnar , para)  "vertical"
+               
+               --<Title>Arrangement--
+               
+               series  CDATA    #IMPLIED 
+               --<Title>Multiseries like A, B, C etc--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI of image to embed--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               num  NUMBER    #IMPLIED 
+               --<Title>Sequence number if needed--
+               
+               href  CDATA    #IMPLIED 
+               --<Title>(T) #ID fragmentary URL for an <fn id="..."> in current document--
+                >
+
+<!ATTLIST NOTE
+               --<Title>html_p~1 - Attribute List-046--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               flow (vertical , columnar , para)  "vertical"
+               
+               --<Title>Arrangement--
+               
+               series  CDATA    #IMPLIED 
+               --<Title>Multiseries like A, B, C etc--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI of image to embed--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               num  NUMBER    #IMPLIED 
+               --<Title>Sequence number if needed--
+                >
+
+<!ATTLIST SIDEBAR
+               --<Title>html_p~1 - Attribute List-047--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               width  CDATA    #IMPLIED 
+               --<Title>(T) width of the sidebar in pixels or as a percent--
+                >
+
+<!ATTLIST BLINK
+               --<Title>html_p~1 - Attribute List-048--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               speed  NUMBER    #IMPLIED 
+               --<Title>Blinks per minutes--
+                >
+
+<!ATTLIST CENTER
+               --<Title>html_p~1 - Attribute List-049--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+                >
+
+<!ATTLIST HR
+               --<Title>html_p~1 - Attribute List-050--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI of image to embed--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               noshade (noshade)   #IMPLIED 
+               --<Title>(N) non-shaded rule--
+               
+               size  CDATA    #IMPLIED 
+               --<Title>(N) [+]nn e.g. size="+1", size="4"--
+               
+               width  CDATA    #IMPLIED 
+               --<Title>(N) suggested width in pixels--
+               
+               invertborder (invertborder)   #IMPLIED 
+               --<Title>(T) produces 3D-style raised rule--
+               
+               SDAPREF  CDATA    #FIXED "  "
+               --<Title>SDAPREF-007--
+                >
+
+<!ATTLIST BR
+               --<Title>html_p~1 - Attribute List-051--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               SDAPREF  CDATA    #FIXED " "
+               --<Title>SDAPREF-008--
+                >
+
+<!ATTLIST BASEFONT
+               --<Title>html_p~1 - Attribute List-052--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               size  CDATA    #REQUIRED 
+               --<Title>base font size for FONT elements--
+               
+               end  CDATA    #IMPLIED 
+               --<Title>end--
+               
+               color  CDATA    #IMPLIED 
+               --<Title>#RRGGBB in hex, e.g. red: color="#FF0000"--
+               
+               face  CDATA    #IMPLIED 
+               --<Title>typeface if available--
+                >
+
+<!ATTLIST MARQUEE
+               --<Title>html_p~1 - Attribute List-053--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , top , absmiddle , absbottom , 
+               texttop , middle , baseline , bottom)  "bottom"
+               
+               --<Title>Relationship to adjacent text (type=block only)--
+               
+               DIRECTION  CDATA    #IMPLIED 
+               --<Title>Direction of scroll, should be (LEFT,RIGHT) but they've already been used--
+               
+               BEHAVIOR (SCROLL , SLIDE , ALTERNATE)  "SCROLL"
+               
+               --<Title>Type of movement--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               SCROLLAMOUNT  NUMBER    #IMPLIED 
+               --<Title>Quantity of scroll--
+               
+               SCROLLDELAY  NUMBER    #IMPLIED 
+               --<Title>Delay time--
+               
+               LOOP  CDATA   "INFINITE"
+               --<Title>How long to scroll for--
+               
+               bgcolor  CDATA    #IMPLIED 
+               --<Title>Background color--
+               
+               BORDER  NUMBER    #IMPLIED 
+               --<Title>Border width--
+               
+               HEIGHT  CDATA    #IMPLIED 
+               --<Title>Height--
+               
+               WIDTH  CDATA    #IMPLIED 
+               --<Title>Width--
+               
+               HSPACE  NUMBER    #IMPLIED 
+               --<Title>Horizontal spacing--
+               
+               VSPACE  NUMBER    #IMPLIED 
+               --<Title>Vertical spacing--
+               
+               transparency  NUMBER   "0"
+               --<Title>(T) degree of transparency (0=opaque, 100=clear)--
+                >
+
+<!ATTLIST SERVER
+               --<Title>html_p~1 - Attribute List-054--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+                >
+
+<!ATTLIST SPACER
+               --<Title>html_p~1 - Attribute List-055--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , top , absmiddle , absbottom , 
+               texttop , middle , baseline , bottom)  "bottom"
+               
+               --<Title>Relationship to adjacent text (type=block only)--
+               
+               height  NUMBER    #IMPLIED 
+               --<Title>Height in pixels (type=block only)--
+               
+               size  NUMBER    #IMPLIED 
+               --<Title>Width or height in pixels, depending on TYPE--
+               
+               type (horizontal , vertical , block)  "block"
+               
+               --<Title>Functional type--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               width  NUMBER    #IMPLIED 
+               --<Title>Width in pixels (type=block only)--
+                >
+
+<!ATTLIST (IMG , IMAGE)
+               --<Title>html_p~1 - Attribute List-056--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               isobject (isobject)   #IMPLIED 
+               --<Title>(L) Figure is an object--
+               
+               units (en , pixels)  "pixels"
+               --<Title>specifies units as en's or pixels--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               src  CDATA    #REQUIRED 
+               --<Title>URL of image to embed--
+               
+               lowsrc  CDATA    #IMPLIED 
+               --<Title>(N) source for lo-res image--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>(N) name for image--
+               
+               onLoad  CDATA    #IMPLIED 
+               --<Title>Module to execute on loading--
+               
+               onAbort  CDATA    #IMPLIED 
+               --<Title>Module to execute when user cancels load--
+               
+               onError  CDATA    #IMPLIED 
+               --<Title>Module to execute when script encounters error--
+               
+               alt  CDATA    #REQUIRED 
+               --<Title>For display in place of image--
+               
+               align (left , right , top , absmiddle , absbottom , 
+               texttop , middle , baseline , bottom)  "bottom"
+               
+               --<Title>Relationship to adjacent text (type=block only)--
+               
+               height  NUMBER    #IMPLIED 
+               --<Title>Suggested height in pixels--
+               
+               width  NUMBER    #IMPLIED 
+               --<Title>Suggested width in pixels--
+               
+               border  NUMBER    #IMPLIED 
+               --<Title>(N) border width in pixels--
+               
+               hspace  NUMBER    #IMPLIED 
+               --<Title>Suggested horizontal gutter--
+               
+               vspace  CDATA    #IMPLIED 
+               --<Title>Suggested vertical gutter--
+               
+               usemap  CDATA    #IMPLIED 
+               --<Title>Use client-side image map--
+               
+               ismap (ismap)   #IMPLIED 
+               --<Title>Use server image map--
+               
+               fileformat  NOTATION (GIF , JPG , DVI , BMP , EPS , PNG , 
+               PICT , TIFF , XBM , XPM)   #IMPLIED 
+               --<Title>(P)Format of image file if not implicit--
+               
+               naturalsizeflag  NUMBER    #IMPLIED 
+               --<Title>(M) Indicates if scaling has been used--
+               
+               ani  CDATA    #IMPLIED 
+               --<Title>(T) URL of alternate WebTV-specific animation to replace SRC--
+               
+               animateonselect (animateonselect)   #IMPLIED 
+               --<Title>(T) ANI animation only runs when user selects it--
+               
+               anistartx  NUMBER    #IMPLIED 
+               --<Title>(T) ANI TLC location in pixels relative to page or table cell--
+               
+               anistarty  NUMBER    #IMPLIED 
+               --<Title>anistarty--
+               
+               loop (loop)   #IMPLIED 
+               --<Title>(MT) recycle an animated image?--
+               
+               reload  NUMBER    #IMPLIED 
+               --<Title>(T) frequency of reload--
+               
+               selected  CDATA    #IMPLIED 
+               --<Title>(T) wrests focus to "x,y" of imagemap relative to TLC--
+               
+               transparency  NUMBER   "0"
+               --<Title>(T) degree of transparency (0=opaque, 100=clear)--
+               
+               dynsrc  CDATA    #IMPLIED 
+               --<Title>(?) Undocumented--
+               
+               SDAPREF  CDATA    #FIXED 
+               "<Fig><?SDATrans Img: #AttList>#AttVal(Alt)</Fig>"
+               
+               --<Title>SDAPREF-009--
+                >
+
+<!ATTLIST AUDIOSCOPE
+               --<Title>html_p~1 - Attribute List-057--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , top , absmiddle , absbottom , 
+               texttop , middle , baseline , bottom)  "bottom"
+               
+               --<Title>Relationship to adjacent text (type=block only)--
+               
+               border  NUMBER   "1"
+               --<Title>width of border in pixels--
+               
+               gain  NUMBER   "1"
+               --<Title>multiplier for amplitude display--
+               
+               height  NUMBER   "80"
+               --<Title>height of image in pixels--
+               
+               leftcolor  CDATA   "#8ECE10"
+               --<Title>color of left channel trace--
+               
+               leftoffset  NUMBER   "0"
+               --<Title>positions the left channel baseline + or - --
+               
+               maxlevel  CDATA   "false"
+               --<Title>specifies clip level for gain--
+               
+               rightcolor  CDATA   "#8ECE10"
+               --<Title>color of right channel trace--
+               
+               rightoffset  NUMBER   "0"
+               --<Title>positions the right channel baseline + or - --
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               width  NUMBER   "100"
+               --<Title>width of image in pixels--
+                >
+
+<!ATTLIST MAP
+               --<Title>html_p~1 - Attribute List-058--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>Named link end--
+                >
+
+<!ATTLIST AREA
+               --<Title>html_p~1 - Attribute List-059--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               shape (rect , circle , poly , default)  "rect"
+               
+               --<Title>For use with OBJECT SHAPES--
+               
+               coords  CDATA    #IMPLIED 
+               --<Title>Coord pairs, always needed except for shape=default--
+               
+               href  CDATA    #IMPLIED 
+               --<Title>Hypertext link to apply--
+               
+               nohref (nohref)   #IMPLIED 
+               --<Title>This region has no action--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>Named link end--
+               
+               target  CDATA    #IMPLIED 
+               --<Title>(N) target window in framing environment--
+               
+               rel  CDATA    #IMPLIED 
+               --<Title>forward link types--
+               
+               rev  CDATA    #IMPLIED 
+               --<Title>reverse link types--
+               
+               alt  CDATA    #REQUIRED 
+               --<Title>Description for text-only browsers--
+               
+               tabindex  NUMBER    #IMPLIED 
+               --<Title>Position in tabbing order--
+               
+               notab (notab)   #IMPLIED 
+               --<Title>Exclude from tabbing order--
+               
+               onClick  CDATA    #IMPLIED 
+               --<Title>What to do on click--
+               
+               onMouseOver  CDATA    #IMPLIED 
+               --<Title>What to do when mouse is moved over area--
+               
+               onMouseOut  CDATA    #IMPLIED 
+               --<Title>What to do when mouse is moved off area--
+                >
+
+<!ATTLIST OBJECT
+               --<Title>html_p~1 - Attribute List-060--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               declare (declare)   #IMPLIED 
+               --<Title>declare but don't instantiate flag--
+               
+               classid  CDATA    #IMPLIED 
+               --<Title>identifies an implementation--
+               
+               codebase  CDATA    #IMPLIED 
+               --<Title>some systems need an additional URL--
+               
+               data  CDATA    #IMPLIED 
+               --<Title>reference to object's data--
+               
+               alt  CDATA    #IMPLIED 
+               --<Title>for display in place of object--
+               
+               type  CDATA    #IMPLIED 
+               --<Title>Internet media type for data--
+               
+               codetype  CDATA    #IMPLIED 
+               --<Title>Internet media type for code--
+               
+               standby  CDATA    #IMPLIED 
+               --<Title>message to show while loading--
+               
+               align (texttop , middle , textmiddle , baseline , 
+               textbottom , left , center , right)   #IMPLIED 
+               --<Title>positioning inside document--
+               
+               height  CDATA    #IMPLIED 
+               --<Title>suggested height--
+               
+               width  CDATA    #IMPLIED 
+               --<Title>suggested width--
+               
+               border  CDATA    #IMPLIED 
+               --<Title>suggested link border width--
+               
+               hspace  CDATA    #IMPLIED 
+               --<Title>hspace--
+               
+               vspace  CDATA    #IMPLIED 
+               --<Title>Suggested vertical gutter--
+               
+               ismap (ismap)   #IMPLIED 
+               --<Title>Use server image map--
+               
+               usemap  CDATA    #IMPLIED 
+               --<Title>reference to image map--
+               
+               shapes (shapes)   #IMPLIED 
+               --<Title>object has shaped hypertext links--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>submit as part of form--
+               
+               tabindex  NUMBER    #IMPLIED 
+               --<Title>Position in tabbing order--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               notab (notab)   #IMPLIED 
+               --<Title>Exclude from tabbing order--
+                >
+
+<!ATTLIST EMBED
+               --<Title>html_p~1 - Attribute List-061--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               ALIGN (top , middle , bottom , left , center , right)  
+                #IMPLIED 
+               --<Title>(O) more specific alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               border  NUMBER    #IMPLIED 
+               --<Title>(N) thickness of border in pixels--
+               
+               frameborder (YES , NO)  "NO"
+               --<Title>(N) has the frame a border or not--
+               
+               hidden (TRUE , FALSE)  "FALSE"
+               --<Title>(N) is the plugin visible--
+               
+               hspace  NUMBER    #IMPLIED 
+               --<Title>(N) LR margin in pixels--
+               
+               vspace  NUMBER    #IMPLIED 
+               --<Title>(N) TB margin in pixels--
+               
+               FLOWTO  NAME    #IMPLIED 
+               --<Title>(O) flow text around block until this ID--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>(N) name of the applet--
+               
+               controls  CDATA   "FALSE"
+               --<Title>(N) should the controls be on display--
+               
+               palette (FOREGROUND , BACKGROUND)  "FOREGROUND"
+               
+               --<Title>(N) where the applet's palette applies (MS-Win only)--
+               
+               pluginspace  CDATA    #IMPLIED 
+               --<Title>(N) URL of instructions if applet's MIME-type plugin not found--
+               
+               type  CDATA    #IMPLIED 
+               --<Title>(N) MIME content-type--
+               
+               src  CDATA    #REQUIRED 
+               --<Title>location of object source--
+               
+               height  CDATA    #IMPLIED 
+               --<Title>suggested height--
+               
+               width  CDATA    #IMPLIED 
+               --<Title>suggested width--
+               
+               imagemap (imagemap)   #IMPLIED 
+               --<Title>pass background clicks to server--
+               
+               ismap (ismap)   #IMPLIED 
+               --<Title>Use server image map--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               noflow (noflow)   #IMPLIED 
+               --<Title>noflow around table--
+               
+               params  CDATA    #IMPLIED 
+               --<Title>(O) parameters to pass--
+               
+               units (en , px , relative)  "en"
+               --<Title>units for column widths--
+               
+               usemap  CDATA    #IMPLIED 
+               --<Title>reference to image map--
+               
+               alt  CDATA    #IMPLIED 
+               --<Title>for display in place of embedded object--
+               
+               URN  CDATA    #IMPLIED 
+               --<Title>(O) global entity name--
+               
+               REL  NAME    #IMPLIED 
+               --<Title>(O) link relationship--
+               
+               REV  NAME    #IMPLIED 
+               --<Title>(O) reverse relationship--
+               
+               ACCEPT  CDATA   "text/plain"
+               --<Title>(O) applicable media type(s)--
+               
+               ACCEPT-CHARSET  CDATA   "ISO-8859-1"
+               --<Title>(O) applicable character encoding(s)--
+               
+               ACCEPT-ENCODING  CDATA   "ISO-8859-1"
+               --<Title>(O) applicable transfer encoding(s)--
+               
+               SDAPREF  CDATA    #FIXED 
+               '<Fig><Xref IDRef="#AttVal(SRC)"><?SDATrans Embed: #AttList>'
+               
+               --<Title>(O)SDAPREF--
+               
+               SDASUFF  CDATA    #FIXED "</Fig>"
+               --<Title>(O)SDASUFF--
+                >
+
+<!ATTLIST EMBED.BODY
+               --<Title>html_p~1 - Attribute List-062--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST NOEMBED
+               --<Title>html_p~1 - Attribute List-063--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+                >
+
+<!ATTLIST APP
+               --<Title>html_p~1 - Attribute List-064--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               codebase  CDATA    #IMPLIED 
+               --<Title>code base--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               mayscript (mayscript)   #IMPLIED 
+               --<Title>(N) allows applet access to JavaScript or similar--
+               
+               archive  CDATA    #IMPLIED 
+               --<Title>(N) URL of code archive (.zip, but not a compressed file)--
+               
+               code  CDATA    #REQUIRED 
+               --<Title>class file--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>applet name--
+               
+               alt  CDATA    #IMPLIED 
+               --<Title>for display in place of applet--
+               
+               align (top , middle , bottom , left , right)   #IMPLIED 
+               --<Title>vertical or horizontal alignment--
+               
+               height  CDATA    #REQUIRED 
+               --<Title>height-002--
+               
+               width  CDATA    #REQUIRED 
+               --<Title>width-002--
+               
+               hspace  CDATA    #IMPLIED 
+               --<Title>hspace-002--
+               
+               vspace  CDATA    #IMPLIED 
+               --<Title>Suggested vertical gutter--
+               
+               download  NUMBER    #IMPLIED 
+               --<Title>image download order--
+                >
+
+<!ATTLIST APPLET
+               --<Title>html_p~1 - Attribute List-065--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               codebase  CDATA    #IMPLIED 
+               --<Title>code base--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               mayscript (mayscript)   #IMPLIED 
+               --<Title>(N) allows applet access to JavaScript or similar--
+               
+               archive  CDATA    #IMPLIED 
+               --<Title>(N) URL of code archive (.zip, but not a compressed file)--
+               
+               code  CDATA    #REQUIRED 
+               --<Title>class file--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>applet name--
+               
+               alt  CDATA    #IMPLIED 
+               --<Title>for display in place of applet--
+               
+               align (top , middle , bottom , left , right)   #IMPLIED 
+               --<Title>vertical or horizontal alignment--
+               
+               height  CDATA    #REQUIRED 
+               --<Title>height-003--
+               
+               width  CDATA    #REQUIRED 
+               --<Title>width-003--
+               
+               hspace  CDATA    #IMPLIED 
+               --<Title>hspace-003--
+               
+               vspace  CDATA    #IMPLIED 
+               --<Title>Suggested vertical gutter--
+               
+               download  NUMBER    #IMPLIED 
+               --<Title>image download order--
+                >
+
+<!ATTLIST param
+               --<Title>html_p~1 - Attribute List-066--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               name  CDATA    #REQUIRED 
+               --<Title>property name--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               value  CDATA    #IMPLIED 
+               --<Title>property value--
+               
+               valuetype (DATA , REF , OBJECT)  "DATA"
+               
+               --<Title>How to interpret value--
+               
+               ref  CDATA    #IMPLIED 
+               --<Title>(L) Undocumented--
+               
+               valueref  CDATA    #IMPLIED 
+               --<Title>valueref--
+               
+               data  CDATA    #IMPLIED 
+               --<Title>reference to object's data--
+               
+               object  CDATA    #IMPLIED 
+               --<Title>object-002--
+               
+               accept  CDATA    #IMPLIED 
+               --<Title>accept--
+               
+               accept-charset  CDATA    #IMPLIED 
+               --<Title>accept-charset--
+               
+               accept-encoding  CDATA    #IMPLIED 
+               --<Title>accept-encoding--
+               
+               type  CDATA    #IMPLIED 
+               --<Title>Internet media type--
+               
+               SDAPREF  CDATA    #FIXED "<?SDATrans Param: #AttList>"
+               
+               --<Title>SDAPREF-010--
+                >
+
+<!ATTLIST FORM
+               --<Title>html_p~1 - Attribute List-067--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>for control of text flow--
+               
+               script  CDATA    #IMPLIED 
+               --<Title>script--
+               
+               subject  CDATA    #IMPLIED 
+               --<Title>subject--
+               
+               action  CDATA    #REQUIRED 
+               --<Title>(H2) server-side form handler (script)--
+               
+               method (GET , POST , PGET)  "GET"
+               --<Title>(H2) see HTTP specification: PGET added for Foteos' testing--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>(N) name for the form--
+               
+               target  CDATA    #IMPLIED 
+               --<Title>(N) name for the target window--
+               
+               enctype  CDATA   "application/x-www-form-urlencoded"
+               
+               --<Title>(H2) Encoding type, may also be "multipart/form-data"--
+               
+               onReset  CDATA    #IMPLIED 
+               --<Title>(N) module to execute when form is reset--
+               
+               onSubmit  CDATA    #IMPLIED 
+               --<Title>(N) module to execute when form is submitted--
+               
+               SDAPREF  CDATA    #FIXED "<Para>Form:</Para>"
+               
+               --<Title>SDAPREF-011--
+               
+               SDASUFF  CDATA    #FIXED "<Para>Form End.</Para>"
+               
+               --<Title>SDASUFF--
+                >
+
+<!ATTLIST LABEL
+               --<Title>html_p~1 - Attribute List-068--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               for  IDREF    #IMPLIED 
+               --<Title>matches a field ID value--
+               
+               accesskey  CDATA    #IMPLIED 
+               --<Title>accessibility key character--
+               
+               onClick  CDATA    #IMPLIED 
+               --<Title>intrinsic event--
+                >
+
+<!ATTLIST FIELDSET
+               --<Title>html_p~1 - Attribute List-069--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               checked (checked)   #IMPLIED 
+               --<Title>marks this set of fields by default as CHECKED--
+                >
+
+<!ATTLIST INPUT
+               --<Title>html_p~1 - Attribute List-070--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               type (TEXT , PASSWORD , CHECKBOX , RADIO , SUBMIT , RESET , 
+               FILE , HIDDEN , IMAGE , BUTTON)  "TEXT"
+               
+               --<Title>what kind of widget is needed--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>required for all but submit and reset--
+               
+               value  CDATA    #IMPLIED 
+               --<Title>required for radio and checkboxes, also for file uploads--
+               
+               checked (checked)   #IMPLIED 
+               --<Title>marks this field by default as CHECKED--
+               
+               disabled (disabled)   #IMPLIED 
+               --<Title>turns off this field--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               error  CDATA    #IMPLIED 
+               --<Title>error--
+               
+               height  NUMBER    #IMPLIED 
+               --<Title>height-004--
+               
+               width  NUMBER    #IMPLIED 
+               --<Title>width-004--
+               
+               max  NUMBER    #IMPLIED 
+               --<Title>max--
+               
+               min  NUMBER    #IMPLIED 
+               --<Title>min--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               size  CDATA    #IMPLIED 
+               --<Title>specific to each type of field--
+               
+               maxlength  NUMBER    #IMPLIED 
+               --<Title>maxlength--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>for fields with background images--
+               
+               alt  CDATA    #IMPLIED 
+               --<Title>for display in place of applet--
+               
+               fileformat  NOTATION (GIF , JPG , DVI , BMP , EPS , PNG , 
+               PICT , TIFF , XBM , XPM)   #IMPLIED 
+               --<Title>Format of icon file if not implicit--
+               
+               accept  CDATA    #IMPLIED 
+               --<Title>Form-based file upload accepted types (RFC1867)--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               tabindex  NUMBER    #IMPLIED 
+               --<Title>Position in tabbing order--
+               
+               notab (notab)   #IMPLIED 
+               --<Title>Exclude from tabbing order--
+               
+               onClick  CDATA    #IMPLIED 
+               --<Title>(N) script to execute when button is clicked; (T) animation--
+               
+               onFocus  CDATA    #IMPLIED 
+               --<Title>onFocus--
+               
+               onBlur  CDATA    #IMPLIED 
+               --<Title>onBlur--
+               
+               onSelect  CDATA    #IMPLIED 
+               --<Title>onSelect--
+               
+               onChange  CDATA    #IMPLIED 
+               --<Title>onChange--
+               
+               action  CDATA    #IMPLIED 
+               --<Title>(T) URL to send single field value to when field is clicked--
+               
+               submitform (submitform)   #IMPLIED 
+               --<Title>(T) with ACTION, sends whole form instead of single value--
+               
+               noargs (noargs)   #IMPLIED 
+               --<Title>(T) with ACTION, defeats sending of field data--
+               
+               nohighlight (nohighlight)   #IMPLIED 
+               --<Title>(T) disables auto-highlighting--
+               
+               usestyle (usestyle)   #IMPLIED 
+               --<Title>(T) use body font for content--
+               
+               autosubmit (autosubmit)   #IMPLIED 
+               --<Title>(T) in HIDDEN fields, submits form when user transcludes--
+               
+               loop (loop)   #IMPLIED 
+               --<Title>(T) forces an ONCLICK animation to loop--
+               
+               nocursor (nocursor)   #IMPLIED 
+               --<Title>(T) in IMAGE fields, disable cursor on image--
+               
+               borderimage  CDATA    #IMPLIED 
+               --<Title>(T) in TEXT, RESET and SUBMIT, specifies alternate button images--
+               
+               useform  IDREF    #IMPLIED 
+               --<Title>(T) in SUBMIT, send the form ID="id" rather than the current form--
+               
+               allcaps (allcaps)   #IMPLIED 
+               --<Title>(T) forces keyboard to CAPS LOCK for data in this field--
+               
+               autocaps (autocaps)   #IMPLIED 
+               --<Title>(T) forces keyboard to initial capitalization for this field--
+               
+               autoactivate (autoactivate)   #IMPLIED 
+               --<Title>(T) in TEXT fields, activates focus automatically--
+               
+               bgcolor  CDATA    #IMPLIED 
+               --<Title>(T) background color--
+               
+               cursor  CDATA    #IMPLIED 
+               --<Title>(T) cursor color--
+               
+               executeurl  CDATA    #IMPLIED 
+               --<Title>(T) in TEXT, interpret data as URL and transclude on RETURN--
+               
+               nosubmit (nosubmit)   #IMPLIED 
+               --<Title>(T) defeats submission when RETURN is pressed--
+               
+               numbers (numbers)   #IMPLIED 
+               --<Title>(T) forces use of numeric keypad--
+               
+               SDAPREF  CDATA    #FIXED "Input: "
+               --<Title>SDAPREF-012--
+                >
+
+<!ATTLIST SELECT
+               --<Title>html_p~1 - Attribute List-071--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               name  CDATA    #REQUIRED 
+               --<Title>property name--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               disabled (disabled)   #IMPLIED 
+               --<Title>marks this field by default as disabled--
+               
+               error  CDATA    #IMPLIED 
+               --<Title>error-002--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               width  NUMBER    #IMPLIED 
+               --<Title>desired width in units--
+               
+               height  NUMBER    #IMPLIED 
+               --<Title>desired height in units--
+               
+               units (en , pixels)  "pixels"
+               --<Title>specifies units as en's or pixels--
+               
+               size  NUMBER    #IMPLIED 
+               --<Title>number of items in the list to be visible at once--
+               
+               multiple (multiple)   #IMPLIED 
+               --<Title>multiple--
+               
+               checked (checked)   #IMPLIED 
+               --<Title>marks this field by default as CHECKED--
+               
+               tabindex  NUMBER    #IMPLIED 
+               --<Title>Position in tabbing order--
+               
+               notab (notab)   #IMPLIED 
+               --<Title>Exclude from tabbing order--
+               
+               onFocus  CDATA    #IMPLIED 
+               --<Title>onFocus-002--
+               
+               onBlur  CDATA    #IMPLIED 
+               --<Title>onBlur-002--
+               
+               onChange  CDATA    #IMPLIED 
+               --<Title>onChange-002--
+               
+               onClick  CDATA    #IMPLIED 
+               --<Title>(N) script to execute when button is clicked--
+               
+               autoactivate (autoactivate)   #IMPLIED 
+               --<Title>(T) in TEXT fields, activates focus automatically--
+               
+               bgcolor  CDATA    #IMPLIED 
+               --<Title>(T) background color--
+               
+               exclusive (exclusive)   #IMPLIED 
+               --<Title>(T) detect and purge duplicate OPTION entries--
+               
+               selcolor  CDATA   "#EAEAEA"
+               --<Title>(T) sets color for background of selected options--
+               
+               showempty (showempty)   #IMPLIED 
+               --<Title>(T) displays empty lists with string "empty"--
+               
+               text  CDATA    #IMPLIED 
+               --<Title>(T) sets color for text of OPTIONs--
+               
+               usestyle (usestyle)   #IMPLIED 
+               --<Title>(T) use body font for content--
+               
+               SDAFORM  CDATA    #FIXED "List"
+               --<Title>SDAFORM-022--
+               
+               SDAPREF  CDATA    #FIXED 
+               "<LHead>Select #AttVal(Multiple)</LHead>"
+               
+               --<Title>SDAPREF-013--
+                >
+
+<!ATTLIST OPTION
+               --<Title>html_p~1 - Attribute List-072--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               disabled (disabled)   #IMPLIED 
+               --<Title>marks this field by default as disabled--
+               
+               selected (selected)   #IMPLIED 
+               --<Title>marks this field by default as selected--
+               
+               error  CDATA    #IMPLIED 
+               --<Title>error-003--
+               
+               shape  CDATA    #IMPLIED 
+               --<Title>(L) Instantiation--
+               
+               value  CDATA    #IMPLIED 
+               --<Title>defaults to element content--
+               
+               SDAFORM  CDATA    #FIXED "LItem"
+               --<Title>SDAFORM-023--
+               
+               SDAPREF  CDATA    #FIXED 
+               "Option: #AttVal(Value) #AttVal(Selected)"
+               
+               --<Title>SDAPREF-014--
+                >
+
+<!ATTLIST TEXTAREA
+               --<Title>html_p~1 - Attribute List-073--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               name  CDATA    #REQUIRED 
+               --<Title>property name--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               disabled (disabled)   #IMPLIED 
+               --<Title>marks this field by default as disabled--
+               
+               error  CDATA    #IMPLIED 
+               --<Title>error-004--
+               
+               wrap (ON , OFF , HARD , SOFT , PHYSICAL , VIRTUAL)  "OFF"
+               
+               --<Title>(N) how to handle line-wrapping and inserted newlines--
+               
+               rows  NUMBER    #REQUIRED 
+               --<Title>rows--
+               
+               cols  NUMBER    #REQUIRED 
+               --<Title>cols--
+               
+               checked (checked)   #IMPLIED 
+               --<Title>marks this field by default as CHECKED--
+               
+               tabindex  NUMBER    #IMPLIED 
+               --<Title>Position in tabbing order--
+               
+               notab (notab)   #IMPLIED 
+               --<Title>Exclude from tabbing order--
+               
+               onFocus  CDATA    #IMPLIED 
+               --<Title>onFocus-003--
+               
+               onBlur  CDATA    #IMPLIED 
+               --<Title>onBlur-003--
+               
+               onSelect  CDATA    #IMPLIED 
+               --<Title>onSelect-002--
+               
+               onChange  CDATA    #IMPLIED 
+               --<Title>onChange-003--
+               
+               allcaps (allcaps)   #IMPLIED 
+               --<Title>(T) forces keyboard to CAPS LOCK for data in this field--
+               
+               autocaps (autocaps)   #IMPLIED 
+               --<Title>(T) forces keyboard to initial capitalization for this field--
+               
+               autoactivate (autoactivate)   #IMPLIED 
+               --<Title>(T) in TEXT fields, activates focus automatically--
+               
+               bgcolor  CDATA    #IMPLIED 
+               --<Title>(T) background color--
+               
+               cursor  CDATA    #IMPLIED 
+               --<Title>(T) cursor color--
+               
+               growable (growable)   #IMPLIED 
+               --<Title>(T) area grows when full instead of scrolling--
+               
+               nohardbreaks (nohardbreaks)   #IMPLIED 
+               --<Title>(T) RETURN moves to next field instead of entering a newline--
+               
+               nosoftbreaks (nosoftbreaks)   #IMPLIED 
+               --<Title>(T) soft breaks in wrapping will not be sent to server--
+               
+               numbers (numbers)   #IMPLIED 
+               --<Title>(T) forces use of numeric keypad--
+               
+               showkeyboard (showkeyboard)   #IMPLIED 
+               --<Title>(T) keyboard pops up automatically when area selected--
+               
+               usestyle (usestyle)   #IMPLIED 
+               --<Title>(T) use body font for content--
+               
+               SDAFORM  CDATA    #FIXED "Para"
+               --<Title>SDAFORM-024--
+               
+               SDAPREF  CDATA    #FIXED "Input Text -- #AttVal(Name): "
+               
+               --<Title>SDAPREF-015--
+                >
+
+<!ATTLIST KEYGEN
+               --<Title>html_p~1 - Attribute List-074--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               name  CDATA    #REQUIRED 
+               --<Title>Name for the name-value pair--
+               
+               challenge  CDATA    #IMPLIED 
+               --<Title>Challenge string (default is null IA5STRING)--
+                >
+
+<!ATTLIST TABLE
+               --<Title>html_p~1 - Attribute List-075--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA   "no"
+               --<Title>(left|right|all|no) move down past figures--
+               
+               needs  CDATA    #IMPLIED 
+               --<Title>minimum width needed in ems or pixels, eg "40 em" or "100 pixels"--
+               
+               align (left , center , right , bleedleft , bleedright , 
+               justify)   #IMPLIED 
+               --<Title>table position relative to window--
+               
+               width  CDATA    #IMPLIED 
+               --<Title>table width relative to window--
+               
+               cols  NUMBER    #IMPLIED 
+               --<Title>used for immediate display mode--
+               
+               border  CDATA    #IMPLIED 
+               --<Title>controls frame width around table--
+               
+               frame (void , above , below , hsides , lhs , rhs , vsides , 
+               box , border)   #IMPLIED 
+               --<Title>which parts of table frame to include--
+               
+               rules (none , groups , rows , cols , all)   #IMPLIED 
+               --<Title>rulings between rows and cols--
+               
+               cellspacing  CDATA    #IMPLIED 
+               --<Title>spacing between cells--
+               
+               cellpadding  CDATA    #IMPLIED 
+               --<Title>spacing within cells--
+               
+               colspec  CDATA    #IMPLIED 
+               --<Title>column widths and alignment--
+               
+               units (en , px , relative)  "en"
+               --<Title>units for column widths--
+               
+               dp  CDATA    #IMPLIED 
+               --<Title>decimal point e.g. dp=","--
+               
+               valign (top , middle , bottom , baseline)  "top"
+               
+               --<Title>vertical alignment--
+               
+               noflow (noflow)   #IMPLIED 
+               --<Title>noflow around table--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>(N) don't wrap words--
+               
+               bgcolor  CDATA    #IMPLIED 
+               --<Title>Table background color--
+               
+               bordercolor  CDATA    #IMPLIED 
+               --<Title>table border color--
+               
+               bordercolorlight  CDATA    #IMPLIED 
+               --<Title>3D table border color--
+               
+               bordercolordark  CDATA    #IMPLIED 
+               --<Title>bordercolordark--
+               
+               background  CDATA    #IMPLIED 
+               --<Title>(T) Image to tile for table background--
+               
+               cellborder  NUMBER    #IMPLIED 
+               --<Title>(T) set cell border width in pixels--
+               
+               href  CDATA    #IMPLIED 
+               --<Title>(T) Hypertext link to apply to whole table--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>(T) Name instead of ID--
+               
+               transparency  NUMBER   "0"
+               --<Title>(T) degree of transparency (0=opaque, 100=clear)--
+               
+               stubcols  NUMBER    #IMPLIED 
+               --<Title>(D) so user agent can progressive render--
+               
+               hdrrows  NUMBER    #IMPLIED 
+               --<Title>(D) for symmetry, tho less important--
+               
+               TblWd  CDATA    #IMPLIED 
+               --<Title>(AE) Table width--
+               
+               TblHt  CDATA    #IMPLIED 
+               --<Title>(AE) Table height--
+               
+               TblUnits (percent , pixels , points , picas , mm , cm , 
+               inches)   #IMPLIED 
+               --<Title>(AE) Table units--
+               --Not known if this is needed: SQTABLE CDATA #FIXED 'TBLBODY'--
+                >
+
+<!ATTLIST CAPTION
+               --<Title>html_p~1 - Attribute List-076--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (top , bottom)   #IMPLIED 
+               --<Title>(H3) location of caption wrt table|figure|etc--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               accesskey  CDATA    #IMPLIED 
+               --<Title>accessibility key character--
+               
+               SDAPREF  CDATA    #FIXED "Caption: "
+               --<Title>SDAPREF-016--
+                >
+
+<!ATTLIST colgroup
+               --<Title>html_p~1 - Attribute List-077--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               span  NUMBER   "1"
+               --<Title>default number of columns in group--
+               
+               width  CDATA    #IMPLIED 
+               --<Title>default width for enclosed COLs--
+               
+               align (left , center , right , justify , char)  
+                #IMPLIED 
+               --<Title>align--
+               
+               char  CDATA    #IMPLIED 
+               --<Title>alignment char, e.g. char=':'--
+               
+               charoff  CDATA    #IMPLIED 
+               --<Title>offset for alignment char--
+               
+               valign (top , middle , bottom , baseline)   #IMPLIED 
+               --<Title>vertical alignment in cells--
+               
+               ColSep (VSingle , VDouble , VTriple , VDash , VDot , 
+               VBold , VBlank , VNone)   #IMPLIED 
+               --<Title>(AE) column separation pattern--
+               
+               AlignChr  CDATA    #IMPLIED 
+               --<Title>(AE) alignment character--
+               
+               CharPos  CDATA    #IMPLIED 
+               --<Title>(AE) character position--
+               
+               ColWd  CDATA    #IMPLIED 
+               --<Title>(AE) default width for all cells in all columns--
+               
+               TblUnits (percent , pixels , points , picas , mm , cm , 
+               inches)   #IMPLIED 
+               --<Title>(AE) Table units--
+               --Not known if this is needed: SQTABLE CDATA #FIXED 'TBLBODY'--
+               
+               TopSep (HSingle , HDouble , HTriple , HDash , HDot , 
+               HBold , HBlank , HNone)  "HSingle"
+               --<Title>(AE) default top border for all cells in row 1--
+               --unused: SQTABLE CDATA #FIXED 'TBLCDEFS'--
+                >
+
+<!ATTLIST col
+               --<Title>html_p~1 - Attribute List-078--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               span  NUMBER   "1"
+               --<Title>number of columns spanned by group--
+               
+               width  CDATA    #IMPLIED 
+               --<Title>column width specification--
+               
+               align (left , center , right , justify , char)  
+                #IMPLIED 
+               --<Title>alignment--
+               
+               char  CDATA    #IMPLIED 
+               --<Title>alignment char, e.g. char=':'--
+               
+               charoff  CDATA    #IMPLIED 
+               --<Title>offset for alignment char--
+               
+               valign (top , middle , bottom , baseline)   #IMPLIED 
+               --<Title>vertical alignment in cells--
+               
+               ColSep (VSingle , VDouble , VTriple , VDash , VDot , 
+               VBold , VBlank , VNone)   #IMPLIED 
+               --<Title>(AE) column separation pattern--
+               
+               AlignChr  CDATA    #IMPLIED 
+               --<Title>(AE) alignment character--
+               
+               CharPos  CDATA    #IMPLIED 
+               --<Title>(AE) character position--
+               
+               ColWd  CDATA    #IMPLIED 
+               --<Title>(AE) default width for all cells in all columns--
+               
+               TblUnits (percent , pixels , points , picas , mm , cm , 
+               inches)   #IMPLIED 
+               --<Title>(AE) Table units--
+               --Not known if this is needed: SQTABLE CDATA #FIXED 'TBLBODY'--
+               
+               TopSep (HSingle , HDouble , HTriple , HDash , HDot , 
+               HBold , HBlank , HNone)  "HSingle"
+               --<Title>(AE) default top border for all cells in row 1--
+               --unused: SQTABLE CDATA #FIXED 'TBLCDEFS'--
+                >
+
+<!ATTLIST thead
+               --<Title>html_p~1 - Attribute List-079--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , center , right , justify , char)  
+                #IMPLIED 
+               --<Title>align--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>for control of text flow--
+               
+               char  CDATA    #IMPLIED 
+               --<Title>alignment char, e.g. char=':'--
+               
+               charoff  CDATA    #IMPLIED 
+               --<Title>offset for alignment char--
+               
+               dp  CDATA    #IMPLIED 
+               --<Title>decimal point e.g. dp=","--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>don't wrap words--
+               
+               valign (top , middle , bottom , baseline)   #IMPLIED 
+               --<Title>vertical alignment in cells--
+               
+               RowSep (HSingle , HDouble , HTriple , HDash , HDot , 
+               HBold , HBlank , HNone)   #IMPLIED 
+               --<Title>(AE) Inter-row border--
+                >
+
+<!ATTLIST tfoot
+               --<Title>html_p~1 - Attribute List-080--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , center , right , justify , char)  
+                #IMPLIED 
+               --<Title>align--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>for control of text flow--
+               
+               char  CDATA    #IMPLIED 
+               --<Title>alignment char, e.g. char=':'--
+               
+               charoff  CDATA    #IMPLIED 
+               --<Title>offset for alignment char--
+               
+               dp  CDATA    #IMPLIED 
+               --<Title>decimal point e.g. dp=","--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>don't wrap words--
+               
+               valign (top , middle , bottom , baseline)   #IMPLIED 
+               --<Title>vertical alignment in cells--
+               
+               RowSep (HSingle , HDouble , HTriple , HDash , HDot , 
+               HBold , HBlank , HNone)   #IMPLIED 
+               --<Title>(AE) Inter-row border--
+                >
+
+<!ATTLIST tbody
+               --<Title>html_p~1 - Attribute List-081--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , center , right , justify , char)  
+                #IMPLIED 
+               --<Title>align--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>for control of text flow--
+               
+               char  CDATA    #IMPLIED 
+               --<Title>alignment char, e.g. char=':'--
+               
+               charoff  CDATA    #IMPLIED 
+               --<Title>offset for alignment char--
+               
+               dp  CDATA    #IMPLIED 
+               --<Title>decimal point e.g. dp=","--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>don't wrap words--
+               
+               valign (top , middle , bottom , baseline)   #IMPLIED 
+               --<Title>vertical alignment in cells--
+               
+               RowSep (HSingle , HDouble , HTriple , HDash , HDot , 
+               HBold , HBlank , HNone)   #IMPLIED 
+               --<Title>(AE) Inter-row border--
+                >
+
+<!ATTLIST tr
+               --<Title>html_p~1 - Attribute List-082--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               align (left , center , right , justify , char)  
+                #IMPLIED 
+               --<Title>align--
+               
+               char  CDATA    #IMPLIED 
+               --<Title>alignment char, e.g. char=':'--
+               
+               charoff  CDATA    #IMPLIED 
+               --<Title>offset for horizontal alignment in cells--
+               
+               valign (top , middle , bottom , baseline)   #IMPLIED 
+               --<Title>vertical alignment in cells--
+               
+               dp  CDATA    #IMPLIED 
+               --<Title>decimal point e.g. dp=","--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>don't wrap words--
+               
+               bgcolor  CDATA    #IMPLIED 
+               --<Title>background color for cell--
+               
+               bordercolor  CDATA    #IMPLIED 
+               --<Title>cell border color--
+               
+               bordercolorlight  CDATA    #IMPLIED 
+               --<Title>3D cell border color--
+               
+               bordercolordark  CDATA    #IMPLIED 
+               --<Title>bordercolordark-002--
+               
+               width  CDATA    #IMPLIED 
+               --<Title>cell width--
+               
+               transparency  NUMBER   "0"
+               --<Title>(T) degree of transparency (0=opaque, 100=clear)--
+               
+               rowaxes  CDATA    #IMPLIED 
+               --<Title>(D) to indicate the distinguishing row part of td axes value--
+               
+               ColSep (VSingle , VDouble , VTriple , VDash , VDot , 
+               VBold , VBlank , VNone)   #IMPLIED 
+               --<Title>(AE) column separation pattern--
+               
+               RowSep (HSingle , HDouble , HTriple , HDash , HDot , 
+               HBold , HBlank , HNone)   #IMPLIED 
+               --<Title>(AE) Inter-row border--
+                >
+
+<!ATTLIST th
+               --<Title>html_p~1 - Attribute List-083--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               axis  CDATA    #IMPLIED 
+               --<Title>defaults to cell content--
+               
+               axes  CDATA    #IMPLIED 
+               --<Title>list of axis names--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>for control of text flow--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>suppress word wrap--
+               
+               bgcolor  CDATA    #IMPLIED 
+               --<Title>cell background color--
+               
+               rowspan  NUMBER   "1"
+               --<Title>number of rows spanned by cell--
+               
+               colspan  NUMBER   "1"
+               --<Title>number of cols spanned by cell--
+               
+               align (left , center , right , justify , char)  
+                #IMPLIED 
+               --<Title>align--
+               
+               char  CDATA    #IMPLIED 
+               --<Title>alignment char, e.g. char=':'--
+               
+               charoff  CDATA    #IMPLIED 
+               --<Title>offset for horizontal alignment in cells--
+               
+               valign (top , middle , bottom , baseline)   #IMPLIED 
+               --<Title>vertical alignment in cells--
+               
+               dp  CDATA    #IMPLIED 
+               --<Title>decimal point e.g. dp=","--
+               
+               rowstart  NUMBER    #IMPLIED 
+               --<Title>(AE) edit control--
+               
+               colstart  NUMBER    #IMPLIED 
+               --<Title>colstart--
+               
+               bordercolor  CDATA    #IMPLIED 
+               --<Title>cell border color--
+               
+               bordercolorlight  CDATA    #IMPLIED 
+               --<Title>3D cell border color--
+               
+               bordercolordark  CDATA    #IMPLIED 
+               --<Title>bordercolordark-003--
+               
+               width  CDATA    #IMPLIED 
+               --<Title>cell width--
+               
+               absheight  NUMBER    #IMPLIED 
+               --<Title>(T) height of cell, presumably in pixels--
+               
+               abswidth  NUMBER    #IMPLIED 
+               --<Title>(T) width of cell, presumably in pixels--
+               
+               maxlines  NUMBER    #IMPLIED 
+               --<Title>(T) max lines to display in cell--
+               
+               transparency  NUMBER   "0"
+               --<Title>(T) degree of transparency (0=opaque, 100=clear)--
+               
+               ColSep (VSingle , VDouble , VTriple , VDash , VDot , 
+               VBold , VBlank , VNone)   #IMPLIED 
+               --<Title>(AE) column separation pattern--
+               
+               RowSep (HSingle , HDouble , HTriple , HDash , HDot , 
+               HBold , HBlank , HNone)   #IMPLIED 
+               --<Title>(AE) Inter-row border--
+               
+               AlignChr  CDATA    #IMPLIED 
+               --<Title>(AE) alignment character--
+               
+               CharPos  CDATA    #IMPLIED 
+               --<Title>(AE) character position--
+               
+               ColWd  CDATA    #IMPLIED 
+               --<Title>(AE) default width for all cells in all columns--
+               
+               TblUnits (percent , pixels , points , picas , mm , cm , 
+               inches)   #IMPLIED 
+               --<Title>(AE) Table units--
+               --Not known if this is needed: SQTABLE CDATA #FIXED 'TBLBODY'--
+                >
+
+<!ATTLIST td
+               --<Title>html_p~1 - Attribute List-084--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               axis  CDATA    #IMPLIED 
+               --<Title>defaults to cell content--
+               
+               axes  CDATA    #IMPLIED 
+               --<Title>list of axis names--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>for control of text flow--
+               
+               nowrap (nowrap)   #IMPLIED 
+               --<Title>suppress word wrap--
+               
+               bgcolor  CDATA    #IMPLIED 
+               --<Title>cell background color--
+               
+               rowspan  NUMBER   "1"
+               --<Title>number of rows spanned by cell--
+               
+               colspan  NUMBER   "1"
+               --<Title>number of cols spanned by cell--
+               
+               align (left , center , right , justify , char)  
+                #IMPLIED 
+               --<Title>align--
+               
+               char  CDATA    #IMPLIED 
+               --<Title>alignment char, e.g. char=':'--
+               
+               charoff  CDATA    #IMPLIED 
+               --<Title>offset for horizontal alignment in cells--
+               
+               valign (top , middle , bottom , baseline)   #IMPLIED 
+               --<Title>vertical alignment in cells--
+               
+               dp  CDATA    #IMPLIED 
+               --<Title>decimal point e.g. dp=","--
+               
+               rowstart  NUMBER    #IMPLIED 
+               --<Title>(AE) edit control--
+               
+               colstart  NUMBER    #IMPLIED 
+               --<Title>colstart-002--
+               
+               bordercolor  CDATA    #IMPLIED 
+               --<Title>cell border color--
+               
+               bordercolorlight  CDATA    #IMPLIED 
+               --<Title>3D cell border color--
+               
+               bordercolordark  CDATA    #IMPLIED 
+               --<Title>bordercolordark-004--
+               
+               width  CDATA    #IMPLIED 
+               --<Title>cell width--
+               
+               absheight  NUMBER    #IMPLIED 
+               --<Title>(T) height of cell, presumably in pixels--
+               
+               abswidth  NUMBER    #IMPLIED 
+               --<Title>(T) width of cell, presumably in pixels--
+               
+               background  CDATA    #IMPLIED 
+               --<Title>(T) Image to tile for table background--
+               
+               maxlines  NUMBER    #IMPLIED 
+               --<Title>(T) max lines to display in cell--
+               
+               transparency  NUMBER   "0"
+               --<Title>(T) degree of transparency (0=opaque, 100=clear)--
+               
+               ColSep (VSingle , VDouble , VTriple , VDash , VDot , 
+               VBold , VBlank , VNone)   #IMPLIED 
+               --<Title>(AE) column separation pattern--
+               
+               RowSep (HSingle , HDouble , HTriple , HDash , HDot , 
+               HBold , HBlank , HNone)   #IMPLIED 
+               --<Title>(AE) Inter-row border--
+               
+               AlignChr  CDATA    #IMPLIED 
+               --<Title>(AE) alignment character--
+               
+               CharPos  CDATA    #IMPLIED 
+               --<Title>(AE) character position--
+               
+               ColWd  CDATA    #IMPLIED 
+               --<Title>(AE) default width for all cells in all columns--
+               
+               TblUnits (percent , pixels , points , picas , mm , cm , 
+               inches)   #IMPLIED 
+               --<Title>(AE) Table units--
+               --Not known if this is needed: SQTABLE CDATA #FIXED 'TBLBODY'--
+                >
+
+<!ATTLIST FIG
+               --<Title>html_p~1 - Attribute List-085--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               border  CDATA    #IMPLIED 
+               --<Title>controls frame width around figure--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>for control of text flow--
+               
+               src  CDATA    #IMPLIED 
+               --<Title>URI of image to embed--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               isobject (isobject)   #IMPLIED 
+               --<Title>(L) Figure is an object--
+               
+               width  NUMBER    #IMPLIED 
+               --<Title>desired width in units--
+               
+               height  NUMBER    #IMPLIED 
+               --<Title>desired height in units--
+               
+               units (en , pixels)  "pixels"
+               --<Title>specifies units as en's or pixels--
+               
+               align (bleedleft , left , center , right , bleedright , 
+               justify)  "center"
+               --<Title>align-002--
+               
+               noflow (noflow)   #IMPLIED 
+               --<Title>noflow around figure--
+               
+               imagemap (CDATA)   #IMPLIED 
+               --<Title>imagemap--
+               
+               fileformat  NOTATION (GIF , JPG , DVI , BMP , EPS , PNG , 
+               PICT , TIFF , XBM , XPM)   #IMPLIED 
+               --<Title>Format of figure if not implicit--
+                >
+
+<!ATTLIST OVERLAY
+               --<Title>html_p~1 - Attribute List-086--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               src  CDATA    #REQUIRED 
+               --<Title>URI of image overlay--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               units (en , pixels)  "pixels"
+               --<Title>specifies units as en's or pixels--
+               
+               x  NUMBER   "0"
+               --<Title>offset from left in units--
+               
+               y  NUMBER   "0"
+               --<Title>offset from top in units--
+               
+               width  NUMBER    #IMPLIED 
+               --<Title>desired width in units--
+               
+               height  NUMBER    #IMPLIED 
+               --<Title>desired height in units--
+               
+               imagemap (CDATA)   #IMPLIED 
+               --<Title>imagemap-002--
+               
+               fileformat  NOTATION (GIF , JPG , DVI , BMP , EPS , PNG , 
+               PICT , TIFF , XBM , XPM)   #IMPLIED 
+               --<Title>(P)Format of overlay image file if not implicit--
+                >
+
+<!ATTLIST CREDIT
+               --<Title>html_p~1 - Attribute List-087--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (left , right , center , justify)   #IMPLIED 
+               --<Title>Horizontal alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               SDAFORM  CDATA    #FIXED "Fn"
+               --<Title>(O)SDAFORM--
+                >
+
+<!ATTLIST FIGTEXT
+               --<Title>html_p~1 - Attribute List-088--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST A
+               --<Title>html_p~1 - Attribute List-089--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               href  CDATA    #IMPLIED 
+               --<Title>URL for linked resource. RFC1808 (June 95) and RFC1738 (Dec 94)--
+               
+               urn  CDATA    #IMPLIED 
+               --<Title>URN when available--
+               
+               name  CDATA    #IMPLIED 
+               --<Title>Named link end--
+               
+               rel  CDATA    #IMPLIED 
+               --<Title>forward link types--
+               
+               rev  CDATA    #IMPLIED 
+               --<Title>reverse link types--
+               
+               ismap (ismap)   #IMPLIED 
+               --<Title>Use server image map--
+               
+               md  CDATA    #IMPLIED 
+               --<Title>message digest for linked object--
+               
+               target  CDATA    #IMPLIED 
+               --<Title>(N) name for the target window--
+               
+               type  CDATA    #IMPLIED 
+               --<Title>Internet media type--
+               
+               accesskey  CDATA    #IMPLIED 
+               --<Title>accessibility key character--
+               
+               shape (rect , circle , poly , default)  "rect"
+               
+               --<Title>For use with OBJECT SHAPES--
+               
+               coords  CDATA    #IMPLIED 
+               --<Title>coords--
+               
+               tabindex  NUMBER    #IMPLIED 
+               --<Title>Position in tabbing order--
+               
+               notab (notab)   #IMPLIED 
+               --<Title>Exclude from tabbing order--
+               
+               onClick  CDATA    #IMPLIED 
+               --<Title>intrinsic event--
+               
+               onMouseOver  CDATA    #IMPLIED 
+               --<Title>onMouseOver--
+               
+               onMouseOut  CDATA    #IMPLIED 
+               --<Title>onMouseOut--
+               
+               nocolor (nocolor)   #IMPLIED 
+               --<Title>(T)defeats LINK color--
+               
+               selected (selected)   #IMPLIED 
+               --<Title>(T)specifies this link is highlighted when 2+ appear on screen--
+               
+               bulletin-date  CDATA    #IMPLIED 
+               --<Title>(B) HTTP-format date/time of posting--
+               
+               bulletin-text  CDATA    #IMPLIED 
+               --<Title>(B) text to display--
+               
+               bulletin-expires  CDATA    #IMPLIED 
+               --<Title>(B) HTTP-format expiration date/time--
+               
+               bulletin-image  CDATA    #IMPLIED 
+               --<Title>(B) URL for a visual bulletin--
+               
+               bulletin-href  CDATA    #IMPLIED 
+               --<Title>(B) URL for a link to bulletin--
+               
+               SDAPREF  CDATA    #FIXED "<Anchor: #AttList>"
+               
+               --<Title>SDAPREF-017--
+                >
+
+<!ATTLIST CITE
+               --<Title>html_p~1 - Attribute List-090--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               key  IDREF    #IMPLIED 
+               --<Title>Link to source--
+               
+               SDAFORM  CDATA    #FIXED "It"
+               --<Title>SDAFORM-025--
+                >
+
+<!ATTLIST DFN
+               --<Title>html_p~1 - Attribute List-091--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               key  IDREF    #IMPLIED 
+               --<Title>Link to source--
+               
+               SDAFORM  CDATA    #FIXED "It"
+               --<Title>SDAFORM-026--
+                >
+
+<!ATTLIST (U , S , STRIKE , BIG , SMALL , SUB , SUP , Q , SPAN , AU , 
+               PERSON , ACRONYM , ABBREV)
+               --<Title>html_p~1 - Attribute List-092--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST (ENTITY , ELEMENT , ATTRIB)
+               --<Title>html_p~1 - Attribute List-093--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST (EM , I , VAR , LANG , INS , DEL)
+               --<Title>html_p~1 - Attribute List-094--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               SDAFORM  CDATA    #FIXED "It"
+               --<Title>SDAFORM-027--
+                >
+
+<!ATTLIST (CODE , KBD , SAMP , TT)
+               --<Title>html_p~1 - Attribute List-095--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               SDAFORM  CDATA    #FIXED "Lit"
+               --<Title>SDAFORM-028--
+                >
+
+<!ATTLIST (B , STRONG , BLACKFACE)
+               --<Title>html_p~1 - Attribute List-096--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               SDAFORM  CDATA    #FIXED "B"
+               --<Title>SDAFORM-029--
+                >
+
+<!ATTLIST LIMITTEXT
+               --<Title>html_p~1 - Attribute List-097--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               size  NUMBER    #IMPLIED 
+               --<Title>(T) specify width in characters--
+               
+               width  NUMBER    #IMPLIED 
+               --<Title>(T) specify width in pixels--
+               
+               value  CDATA    #REQUIRED 
+               --<Title>(T) supplies the text whose value is to be limited--
+                >
+
+<!ATTLIST NOSMARTQUOTES
+               --<Title>html_p~1 - Attribute List-098--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST SHADOW
+               --<Title>html_p~1 - Attribute List-099--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST FONT
+               --<Title>html_p~1 - Attribute List-100--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               size  CDATA    #IMPLIED 
+               --<Title>[+/-]nn eg size="+1", size="4", size="-2"; range is 1 thru 7--
+               
+               color  CDATA    #IMPLIED 
+               --<Title>#RRGGBB in hex, e.g. red: color="#FF0000"--
+               
+               end  CDATA    #IMPLIED 
+               --<Title>end-002--
+               
+               face  CDATA    #IMPLIED 
+               --<Title>comma separated list of font names--
+               
+               effect (relief , emboss , shadow)   #IMPLIED 
+               --<Title>(T) variant--
+               
+               transparency  NUMBER   "0"
+               --<Title>(T) degree of transparency (0=opaque, 100=clear)--
+                >
+
+<!ATTLIST SPOT
+               --<Title>html_p~1 - Attribute List-101--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST TAB
+               --<Title>html_p~1 - Attribute List-102--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               indent  NUMBER   "0"
+               --<Title>en units before new tab stop--
+               
+               to  IDREF    #IMPLIED 
+               --<Title>jump to same location as a previous tab stop with this ID value--
+               
+               align (left , center , right , decimal)  "left"
+               
+               --<Title>what kind of alignment--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               dp  CDATA    #IMPLIED 
+               --<Title>specify the decimal point e.g. dp=","--
+                >
+
+<!ATTLIST MATH
+               --<Title>html_p~1 - Attribute List-103--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               box  CDATA    #IMPLIED 
+               --<Title>box--
+               
+               position (display , inline)   #REQUIRED 
+               --<Title>Position in the paragraph--
+                >
+
+<!ATTLIST BOX
+               --<Title>html_p~1 - Attribute List-104--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               size (normal , medium , large , huge)  "normal"
+               
+               --<Title>Delimiter size--
+                >
+
+<!ATTLIST ABOVE
+               --<Title>html_p~1 - Attribute List-105--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               sym  ENTITY    #IMPLIED 
+               --<Title>Symbol (character entity reference) from ISOams*--
+                >
+
+<!ATTLIST BELOW
+               --<Title>html_p~1 - Attribute List-106--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               sym  ENTITY    #IMPLIED 
+               --<Title>Symbol (character entity reference) from ISOams*--
+                >
+
+<!ATTLIST ARRAY
+               --<Title>html_p~1 - Attribute List-107--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align (top , middle , bottom)  "middle"
+               
+               --<Title>align-003--
+               
+               coldef  CDATA    #IMPLIED 
+               --<Title>Column alignment and separator--
+               
+               ldelim  CDATA    #IMPLIED 
+               --<Title>Stretchy left delimiter--
+               
+               rdelim  CDATA    #IMPLIED 
+               --<Title>Stretchy right delimiter--
+               
+               labels (labels)   #IMPLIED 
+               --<Title>TeX's \bordermatrix style--
+                >
+
+<!ATTLIST ROW
+               --<Title>html_p~1 - Attribute List-108--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST ITEM
+               --<Title>html_p~1 - Attribute List-109--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               align  CDATA    #IMPLIED 
+               --<Title>Override coldef alignment--
+               
+               colspan  NUMBER   "1"
+               --<Title>Span columns as in TABLE--
+               
+               rowspan  NUMBER   "1"
+               --<Title>Span rows as in TABLE--
+                >
+
+<!ATTLIST (T , BT)
+               --<Title>html_p~1 - Attribute List-110--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+                >
+
+<!ATTLIST XMP
+               --<Title>html_p~1 - Attribute List-111--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3) control of text flow--
+               
+               SDAFORM  CDATA    #FIXED "Lit"
+               --<Title>SDAFORM-030--
+               
+               SDAPREF  CDATA    #FIXED "Example: "
+               --<Title>SDAPREF-018--
+                >
+
+<!ATTLIST LISTING
+               --<Title>html_p~1 - Attribute List-112--
+               
+               id  ID    #IMPLIED 
+               --<Title>Document-wide unique ID--
+               
+               class  NAMES    #IMPLIED 
+               --<Title>Comma-separated list of classes--
+               
+               style  CDATA    #IMPLIED 
+               --<Title>Style info for this occurrence only--
+               
+               title  CDATA    #IMPLIED 
+               --<Title>Advisory title (rec'd max 64 chars)--
+               
+               lang  NAME    #IMPLIED 
+               --<Title>RFC 1766 language value--
+               
+               dir (ltr , rtl)   #IMPLIED 
+               --<Title>Directionality--
+               
+               noindex (noindex)   #IMPLIED 
+               --<Title>Defeats robot indexing--
+               
+               clear  CDATA    #IMPLIED 
+               --<Title>(H3)control of text flow--
+               
+               SDAFORM  CDATA    #FIXED "Lit"
+               --<Title>SDAFORM-031--
+               
+               SDAPREF  CDATA    #FIXED "Listing: "
+               --<Title>SDAPREF-019--
+                >
+
+<!ATTLIST PLAINTEXT
+               --<Title>html_p~1 - Attribute List-113--
+               
+               SDAFORM  CDATA    #FIXED "Lit"
+               --<Title>SDAFORM-032--
+                >
+
+<!NOTATION GIF SYSTEM "gif"
+               --<Title>Compu$erve Graphics Interchange Format--
+                >
+
+<!NOTATION JPEG SYSTEM "jpg"
+               --<Title>Joint Photographic Experts Group--
+                >
+
+<!NOTATION EPS SYSTEM "eps"
+               --<Title>Encapsulated Adobe PostScript--
+                >
+
+<!NOTATION DVI SYSTEM "dvi"
+               --<Title>TeX typesetting system binary typeset format--
+                >
+
+<!NOTATION BMP SYSTEM "bmp"
+               --<Title>Microsoft Windows BitMap--
+                >
+
+<!NOTATION PNG SYSTEM "png"
+               --<Title>Portable Network Graphics--
+                >
+
+<!NOTATION TIFF SYSTEM "tif" --<Title>Tagged Image Format-- >
+
+<!NOTATION PICT SYSTEM "pict" --<Title>Apple Mac Picture-- >
+
+<!NOTATION XBM SYSTEM "xbm"
+               --<Title>X Window system bitmap--
+                >
+
+<!NOTATION XPM SYSTEM "xpm"
+               --<Title>X Window system pixmap--
+                >
+
+<!NOTATION AU SYSTEM "au" --<Title>UNIX audio-- >
+
+<!NOTATION SND SYSTEM "snd" --<Title>Apple Mac SouND-- >
+
+<!NOTATION WAV SYSTEM "wav" --<Title>Windows WAVe audio-- >
+
+<!NOTATION MOV SYSTEM "mov" --<Title>Windows Movie-- >
+
+<!NOTATION MPEG SYSTEM "mpg"
+               --<Title>Motion Picture Experts Group (video) file--
+                >
+
+<!NOTATION VIV SYSTEM "viv" --<Title>Vivo Video format-- >
+
+<!NOTATION CSS1 SYSTEM "css"
+               --<Title>Cascading Style Sheets--
+                >
+
+<!NOTATION DSSSL SYSTEM "dsssl"
+               --<Title>Document Style and Semantics Specification Language (ISO 10179)--
+                >
+
+<!ENTITY % thisversion  
+               '
+ VERSION CDATA #FIXED "+//Silmaril//DTD HTML Pro v0r11 19970101//EN"
+ '
+               --<Title>the current version of the DTD--
+                >
+
+<!ENTITY % commonatts  
+               "
+ id      ID        #IMPLIED
+ --<Title>Document-wide unique ID--
+ class   NAMES     #IMPLIED
+ --<Title>Comma-separated list of classes-- 
+ style   CDATA     #IMPLIED
+ --<Title>Style info for this occurrence only-- 
+ title   CDATA     #IMPLIED
+ --<Title>Advisory title (rec'd max 64 chars)-- 
+ lang    NAME      #IMPLIED
+ --<Title>RFC 1766 language value-- 
+ dir     (ltr,rtl) #IMPLIED
+ --<Title>Directionality--
+ noindex (noindex) #IMPLIED
+ --<Title>Defeats robot indexing--
+ "
+               --<Title>attributes common to all elements--
+                >
+
+<!ENTITY % horiz.align  
+               "
+ align (left,right,center,justify) #IMPLIED
+ --<Title>Horizontal alignment--
+ "
+               --<Title>horizontal alignment on some structural elements--
+                >
+
+<!ENTITY % vert.align  
+               '
+ align (top,middle,bottom) "middle"
+ --<Title>Vertical alignment--
+ '
+               --<Title>vertical alignment on some elements--
+                >
+
+<!ENTITY % SDAFORM  "
+ SDAFORM  CDATA  #FIXED
+ "
+               --<Title>One to one mapping--
+                >
+
+<!ENTITY % SDAPREF  "
+ SDAPREF  CDATA  #FIXED
+ "
+               --<Title>Generated text prefix--
+                >
+
+<!ENTITY % SDARULE  "
+ SDARULE  CDATA  #FIXED
+ "
+               --<Title>Context-sensitive mapping--
+                >
+
+<!ENTITY % SDASUFF  "
+ SDASUFF  CDATA  #FIXED
+ "
+               --<Title>Generated text suffix--
+                >
+
+<!ENTITY % SDASUSP  "
+ SDASUSP  NAME   #FIXED
+ "
+               --<Title>Suspend transform process--
+                >
+
+<!ENTITY % VBorder  
+               "(VSingle|VDouble|VTriple|VDash|VDot|VBold|VBlank|VNone)"
+               --<Title>VBorder--
+                >
+
+<!ENTITY % HBorder  
+               "(HSingle|HDouble|HTriple|HDash|HDot|HBold|HBlank|HNone)"
+               --<Title>HBorder--
+                >
+
+<!ENTITY % TblUnit  "(percent|pixels|points|picas|mm|cm|inches)"
+               --<Title>TblUnit--
+                >
+
+<!ENTITY zwnj   CDATA ""
+               --<Title>=zero width non-joiner--
+               --=zero width non-joiner--
+                >
+
+<!ENTITY zwj   CDATA "
+"
+               --<Title>=zero width joiner-- --=zero width joiner--
+                >
+
+<!ENTITY lrm   CDATA "¢
+               ­­¼Ôéôìå¾½ìåæô­ôï­òéçèô íáòë­­ ­­½ìåæô­ôï­òéçèô íáòë­­
+                ¾
+
+¼¡ÅÎÔÉÔÙ òìí   ÃÄÁÔÁ ¢"
+               --<Title>=right-to-left mark-- --=right-to-left mark--
+                >
+
+<!ENTITY amp   CDATA "&"
+               --<Title>(H1) ampersand--
+                >
+
+<!ENTITY lt   CDATA "<"
+               --<Title>(H1) less-than--
+                >
+
+<!ENTITY gt   CDATA ">"
+               --<Title>(H1) greater-than--
+                >
+
+<!ENTITY quot   CDATA '"'
+               --<Title>(I) internationalised application-dependent double-quote--
+                >
+
+<!ENTITY nbsp   CDATA " "
+               --<Title>(H3) non-breaking space--
+                >
+
+<!ENTITY copy   CDATA "(C)"
+               --<Title>(I) copyright symbol--
+                >
+
+<!ENTITY reg   CDATA "(R)"
+               --<Title>(I) registered symbol--
+                >
+
+<!ENTITY % ISOlat1   PUBLIC "ISO 8879-1986//ENTITIES Added Latin 1//EN"   
+               --<Title>Latin-1 (accented) characters--
+                >
+
+<!ENTITY % ISOlat2   PUBLIC "ISO 8879-1986//ENTITIES Added Latin 2//EN"   
+               --<Title>Latin-2 more accented characters--
+                >
+
+<!ENTITY % ISOpub   PUBLIC "ISO 8879-1986//ENTITIES Publishing//EN"   
+               --<Title>Publishers' symbols--
+                >
+
+<!ENTITY % ISOtech   PUBLIC 
+               "ISO 8879-1986//ENTITIES General Technical//EN"   
+               --<Title>Technical symbols--
+                >
+
+<!ENTITY % ISOnum   PUBLIC 
+               "ISO 8879-1986//ENTITIES Numeric and Special Graphic//EN"   
+               --<Title>Numeric and graphic symbols--
+                >
+
+%ISOlat1;
+%ISOlat2;
+%ISOpub;
+%ISOtech;
+%ISOnum;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/sgml/ie30-s.dtd	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,29 @@
+<!--	html-s.dtd
+
+        Document Type Definition for the HyperText Markup Language
+	with strict validation (HTML Strict DTD).
+
+	$Id: ie30-s.dtd,v 1.1 1997/03/16 01:18:43 steve Exp $
+
+	Author: Daniel W. Connolly <connolly@w3.org>
+	See Also: http://www.w3.org/hypertext/WWW/MarkUp/MarkUp.html
+-->
+
+<!ENTITY % HTML.Version
+	"-//IETF//DTD HTML 2.0 Strict//EN"
+
+        -- Typical usage:
+
+            <!DOCTYPE HTML PUBLIC
+		"-//IETF//DTD HTML Strict//EN">
+	    <html>
+	    ...
+	    </html>
+	--
+	>
+
+<!-- Feature Test Entities -->
+<!ENTITY % HTML.Recommended "INCLUDE">
+
+<!ENTITY % html PUBLIC "-//IETF//DTD HTML 2.0//EN">
+%html;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/sgml/ie30.dtd	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,867 @@
+<!--
+        Microsoft Document Type Definition for Internet Explorer 3.0 HTML.
+
+                Version: 0.9    Date: 11/7/96
+
+                Author: Mark Buckley <mbuckley@microsoft.com>
+
+                This markup is based as much as possible on the DTD for HTML 3.
+2
+                published by W3C (also known as the Wilbur DTD), dated 5/31/96.
+-->
+
+<!ENTITY % HTML.Version
+        "-//Microsoft//DTD Internet Explorer 3.0 HTML//EN" >
+
+<!--================== Deprecated Features Switch =========================-->
+
+<!ENTITY % HTML.Recommended "IGNORE" >
+
+<![ %HTML.Recommended [
+        <!ENTITY % HTML.Deprecated "IGNORE">
+]]>
+
+<!ENTITY % HTML.Deprecated "INCLUDE">
+
+<!--================== Imported Names =====================================-->
+
+<!ENTITY % Content-Type "CDATA"
+        -- meaning a MIME content type, as per RFC1521
+        -->
+
+<!ENTITY % HTTP-Method "GET | POST"
+        -- as per HTTP specification
+        -->
+
+<!ENTITY % URL "CDATA"
+        -- The term URL means a CDATA attribute
+           whose value is a Uniform Resource Locator,
+           See RFC1808 (June 95) and RFC1738 (Dec 94).
+        -->
+
+<!--========= Common attributes ============================================-->
+
+<!ENTITY % attrs  -- common attributes. Taken from the HTML 3 DTD --
+        'id     ID      #IMPLIED -- as target for hrefs (link ends) --
+         lang   CDATA   "en.us"  -- ISO language, country code --
+         class  NAMES   #IMPLIED -- for subclassing elements --
+         style  CDATA   #IMPLIED'>
+
+<!--========= Color attribute ============================================-->
+
+<!ENTITY % color "CDATA" -- a color specification: #HHHHHH @@ details? -->
+
+
+<!--================ Character mnemonic entities ==========================-->
+
+<!ENTITY % ISOlat1 PUBLIC
+       "ISO 8879-1986//ENTITIES Added Latin 1//EN//HTML">
+%ISOlat1;
+
+<!--================ Entities for special symbols =========================-->
+<!-- &trade &shy and &cbsp are not widely deployed and so not included here -->
+
+<!ENTITY copy   CDATA "&#169"   -- copyright sign     -->
+<!ENTITY reg    CDATA "&#174"   -- registered sign    -->
+<!ENTITY amp    CDATA "&#38;"   -- ampersand          -->
+<!ENTITY gt     CDATA "&#62;"   -- greater than       -->
+<!ENTITY lt     CDATA "&#60;"   -- less than          -->
+<!ENTITY quot   CDATA "&#34;"   -- double quote       -->
+<!ENTITY nbsp   CDATA "&#160;"  -- non breaking space -->
+
+<!-- Parameter Entities -->
+
+<!ENTITY % heading "H1|H2|H3|H4|H5|H6">
+
+
+<!--=================== Text Content =======================================-->
+
+<![ %HTML.Deprecated [
+<!ENTITY % font "TT | I | B  | U | STRIKE | BIG | SMALL | SUB | SUP | FONT | S"
+>
+]]>
+
+<!ENTITY % font "TT | I | B  | U | STRIKE | BIG | SMALL | SUB | SUP | FONT">
+
+<![ %HTML.Deprecated [
+        <!ENTITY % phrase "EM | STRONG | DFN |CODE | SAMP | KBD | VAR | CITE |
+ENTITY">
+]]>
+
+<!ENTITY % phrase "EM | STRONG | DFN | CODE | SAMP | KBD | VAR | CITE | SPAN">
+
+<!ENTITY % break        "BR | NOBR | WBR" >
+
+<!ENTITY % anchors "A" >
+
+<![ %HTML.Deprecated [
+<!ENTITY % mmobjects "IMG | APPLET | SCRIPT | NOSCRIPT | MAP | BGSOUND | MARQUE
+E | OBJECT | EMBED" >
+]]>
+
+<!ENTITY % mmobjects "IMG | APPLET | SCRIPT | NOSCRIPT | MAP | BGSOUND | MARQUE
+E | OBJECT" >
+
+<!ENTITY % formitems "INPUT | SELECT | TEXTAREA">
+
+<![ %HTML.Deprecated [
+        <!ENTITY % text "#PCDATA | %font | %phrase | %break | %anchors | %mmobj
+ects | %formitems">
+]]>
+
+<!ENTITY % text "#PCDATA | %font | %phrase | %break | %anchors | %mmobjects">
+
+<!--=================== Flow Content =======================================-->
+
+<!ENTITY % list "UL | OL | DL | DIR | MENU">
+
+<![ %HTML.Deprecated [
+    <!ENTITY % preformatted "PRE | XMP | LISTING | PLAINTEXT">
+]]>
+
+<!ENTITY % preformatted "PRE">
+
+
+<![ %HTML.Deprecated [
+<!ENTITY % block
+     "P | %list | %preformatted | DIV | BLOCKQUOTE | FORM | ISINDEX |
+         HR | TABLE | IFRAME | CENTER">
+]]>
+
+<!ENTITY % block
+     "P | %list | %preformatted | DIV | BLOCKQUOTE | FORM | ISINDEX |
+         HR | TABLE | IFRAME">
+
+
+<![ %HTML.Deprecated [
+<!ENTITY % mixed.content "(%heading|%text|%block|ADDRESS|BASEFONT)*" >
+]]>
+
+<!-- %flow is used for DD and LI -->
+
+<![ %HTML.Deprecated [
+<!ENTITY % flow "(%mixed.content)*">
+]]>
+
+<!ENTITY % flow "(%text | %block)*">
+
+<![ %HTML.Deprecated [
+<!ENTITY % font.content "(%mixed.content)*">
+]]>
+
+<!ENTITY % font.content "(%text)*">
+
+
+<!-- Text Elements -->
+
+<!ELEMENT (%font) - -  %font.content >
+
+<!ATTLIST FONT
+        %attrs;
+    size    CDATA   #IMPLIED    -- [+]nn e.g. size="+1", size=4 --
+    color   %color      #IMPLIED    -- #RRGGBB in hex, e.g. red: color="#FF0000
+" --
+        face    CDATA   #IMPLIED
+    >
+
+<!ATTLIST (TT | I | B  | U | STRIKE | BIG | SMALL | SUB | SUP)
+        %attrs;
+    size    CDATA   #IMPLIED    -- [+]nn e.g. size="+1", size=4 --
+    color   %color      #IMPLIED    -- #RRGGBB in hex, e.g. red: color="#FF0000
+" --
+        face    CDATA   #IMPLIED
+        >
+
+<![ %HTML.Deprecated [
+        <!ATTLIST S
+                %attrs;
+                >
+]]>
+
+<!ELEMENT (%phrase) - - (%text)*>
+<!ATTLIST (%phrase)
+        %attrs;
+        >
+
+<!ELEMENT (%break)    - O EMPTY   -- forced line break -->
+
+<!ATTLIST BR
+        %attrs;
+        clear (left|all|right|none) none -- control of text flow --
+        >
+
+<!ATTLIST (NOBR | WBR)
+        %attrs;
+        >
+
+<!--=================== Document Body =====================================-->
+
+<![ %HTML.Recommended [
+        <!ENTITY % body.content "(%heading|%block|%mmobjects|ADDRESS|BASEFONT)*
+" >
+]]>
+
+<![ %HTML.Deprecated [
+<!ENTITY % body.content "%mixed.content" >
+]]>
+
+<!ENTITY % body-color-attrs "
+    bgcolor %color #IMPLIED
+    text %color #IMPLIED
+    link %color #IMPLIED
+    vlink %color #IMPLIED
+    alink %color #IMPLIED
+        ">
+
+<!ELEMENT BODY O O  %body.content>
+<!ATTLIST BODY
+        %attrs;
+    background          %URL    #IMPLIED  -- texture tile for document backgrou
+nd --
+    %body-color-attrs;          -- bgcolor, text, link, vlink, alink --
+        bgproperties    CDATA   #IMPLIED
+        leftmargin      NUMBER  #IMPLIED
+        topmargin       NUMBER  #IMPLIED
+        >
+
+<![ %HTML.Deprecated [
+        <!ENTITY % address.content "((%text;) | P | CENTER)*">
+]]>
+
+<!ENTITY % address.content "((%text;) | P )*">
+
+<!ELEMENT ADDRESS - - %address.content>
+<!ATTLIST  ADDRESS
+        %attrs;
+        >
+
+<!ELEMENT DIV - - %body.content>
+<!ATTLIST DIV
+                %attrs
+        align   (left|center|right) left -- alignment of following text --
+        >
+
+<![ %HTML.Deprecated [
+        <!-- CENTER is a shorthand for DIV with ALIGN=CENTER -->
+        <!ELEMENT center - - %mixed.content>
+        <!ATTLIST center
+                %attrs
+                >
+]]>
+
+<!--================== The Anchor Element =================================-->
+
+<!ELEMENT A - - (%text)* -(A)>
+<!ATTLIST A
+                %attrs
+        name    CDATA   #IMPLIED    -- named link end --
+        href    %URL    #IMPLIED    -- URL for linked resource --
+        rel     CDATA   #IMPLIED    -- forward link types --
+        rev     CDATA   #IMPLIED    -- reverse link types --
+        title   CDATA   #IMPLIED    -- advisory title string --
+                target  CDATA   #IMPLIED        -- frame target --
+        >
+
+<!--================== Client-side image maps ============================-->
+
+<!-- These can be placed in the same document or grouped in a
+     separate document although this isn't yet widely supported -->
+
+<!ENTITY % SHAPE "(rect|rectangle|circ|circle|poly|polygon|default)">
+<!ENTITY % COORDS "CDATA" -- comma separated list of numbers -->
+
+<!ELEMENT MAP - - (AREA)*>
+<!ATTLIST MAP
+    name    CDATA   #IMPLIED
+    >
+
+<!ELEMENT AREA - O EMPTY>
+<!ATTLIST AREA
+        %attrs
+    shape   %SHAPE  rect
+    coords  %COORDS #IMPLIED  -- always needed except for shape=default --
+    href    %URL    #IMPLIED  -- this region acts as hypertext link --
+    nohref (nohref) #IMPLIED  -- this region has no action --
+    alt     CDATA   #IMPLIED
+        target  CDATA   #IMPLIED
+    >
+
+<!--================== The LINK Element ==================================-->
+
+<!ENTITY % Types "CDATA"
+        -- See Internet Draft: draft-ietf-html-relrev-00.txt
+           LINK has been part of HTML since the early days
+           although few browsers as yet take advantage of it.
+
+           Relationship values can be used in principle:
+
+                a) for document specific toolbars/menus when used
+                   with the LINK element in document head:
+                b) to link to a separate style sheet (rel=stylesheet)
+                c) to make a link to a script (rel=script)
+                d) by stylesheets to control how collections of
+                   html nodes are rendered into printed documents
+                e) to make a link to a printable version of this document
+                   e.g. a postscript or pdf version (rel=print)
+-->
+
+<!ELEMENT LINK - O EMPTY>
+<!ATTLIST LINK
+        %attrs;
+    href    %URL    #IMPLIED    -- URL for linked resource --
+    rel     %Types  #IMPLIED    -- forward link types --
+    rev     %Types  #IMPLIED    -- reverse link types --
+    title   CDATA   #IMPLIED    -- advisory title string --
+        >
+
+<!--=================== Images ============================================-->
+
+<!ENTITY % Length "CDATA" -- nn for pixels or nn% for percentage length -->
+<!ENTITY % Pixels "CDATA" -- integer representing length in pixels -->
+
+<!-- Suggested widths are used for negotiating image size
+     with the module responsible for painting the image.
+     align=left or right cause image to float to margin
+     and for subsequent text to wrap around image -->
+
+<!ENTITY % IAlign "(top|middle|bottom|left|right)">
+
+<!ELEMENT IMG    - O EMPTY --  Embedded image -->
+<!ATTLIST IMG
+        %attrs;
+    src         %URL     #REQUIRED  -- URL of image to embed --
+    alt         CDATA    #IMPLIED   -- for display in place of image --
+    align       %IAlign  #IMPLIED   -- vertical or horizontal alignment --
+    height      %Pixels  #IMPLIED   -- suggested height in pixels --
+    width       %Pixels  #IMPLIED   -- suggested width in pixels --
+    border      %Pixels  #IMPLIED   -- suggested link border width --
+    hspace      %Pixels  #IMPLIED   -- suggested horizontal gutter --
+    vspace      %Pixels  #IMPLIED   -- suggested vertical gutter --
+    usemap      %URL     #IMPLIED   -- use client-side image map --
+    ismap       (ismap)  #IMPLIED   -- use server image map --
+    dynsrc      %URL     #IMPLIED  -- URL of image to embed --
+        start   NAMES   #IMPLIED
+        loop    NMTOKEN #IMPLIED
+        controls        (controls)      #IMPLIED
+        vrml    CDATA   #IMPLIED
+    >
+
+<!-- USEMAP points to a MAP element which may be in this document
+  or an external document, although the latter is not widely supported -->
+
+<!--=================== Java APPLET tag ===================================-->
+<!--
+  This tag is supported by all java enabled browsers. Applet resources
+  (including their classes) are normally loaded relative to the document
+  URL (or <BASE> element if it is defined). The CODEBASE attribute is used
+  to change this default behavior. If the CODEBASE attribute is defined then
+  it specifies a different location to find applet resources. The value
+  can be an absolute URL or a relative URL. The absolute URL is used as is
+  without modification and is not effected by the documents <BASE> element.
+  When the codebase attribute is relative, then it is relative to the
+  document URL (or <BASE> tag if defined). <TEXTFLOW> avoids the problems
+  with SGML mixed content. It can always be omitted *except* when the APPLET
+  element hasn't any content. White space, comments and PARAM elements
+  don't count as content for this purpose. TEXTFLOW was introduced into
+  the DTD to satisfy SGML parsers, but is ignored by current Web browsers.
+-->
+<!ELEMENT APPLET - - (PARAM*, TEXTFLOW)>
+<!ATTLIST APPLET
+                %attrs
+        codebase %URL     #IMPLIED   -- code base --
+        code     CDATA    #REQUIRED  -- class file --
+        name     CDATA    #IMPLIED   -- applet name --
+        alt      CDATA    #IMPLIED   -- for display in place of applet --
+        align    %IAlign  #IMPLIED   -- vertical or horizontal alignment --
+        height   %Pixels  #REQUIRED  -- suggested height in pixels --
+        width    %Pixels  #REQUIRED  -- suggested width in pixels --
+        hspace   %Pixels  #IMPLIED   -- suggested horizontal gutter --
+        vspace   %Pixels  #IMPLIED   -- suggested vertical gutter --
+                border  NUMBER  #IMPLIED
+        >
+
+
+<!ELEMENT TEXTFLOW O O (%text)* -- needed to bypass mixed content model -->
+
+<!--
+Here is an example:
+
+    <applet codebase="applets/NervousText"
+        code=NervousText.class
+        width=300
+        height=50>
+    <param name=text value="Java is Cool!">
+    <img src=sorry.gif alt="This looks better with Java support">
+    </applet>
+-->
+
+<!--=================== Horizontal Rule ===================================-->
+
+<!ELEMENT HR    - O EMPTY>
+<!ATTLIST HR
+        %attrs;
+    align (left|right|center) #IMPLIED
+    noshade (noshade) #IMPLIED
+    size        %Pixels #IMPLIED
+    width       %Length #IMPLIED
+        color   %color  #IMPLIED
+    >
+
+<!--=================== Paragraphs=========================================-->
+
+<![ %HTML.Deprecated [
+        <!ENTITY % P.content    "(%text|CENTER)*" >
+]]>
+
+<!ENTITY % P.content    "(%text)*" >
+
+<!ELEMENT P     - O %P.content >
+<!ATTLIST P
+        %attrs;
+    align  (left|center|right) #IMPLIED
+    >
+
+
+<!--=================== Base Font =========================================-->
+
+<!ELEMENT BASEFONT      - O EMPTY>
+<!ATTLIST BASEFONT
+        %attrs;
+        size    NUMBER  #IMPLIED
+        color   %color  #IMPLIED
+        face    CDATA   #IMPLIED
+        >
+
+<!--=================== Background Sound =================================-->
+
+<!ELEMENT BGSOUND  - O EMPTY>
+<!ATTLIST BGSOUND
+        %attrs;
+        src             %URL    #IMPLIED
+        loop    NMTOKEN #IMPLIED
+        start   CDATA   #IMPLIED
+        >
+
+<!--=================== Marquee =========================================-->
+
+<!ELEMENT MARQUEE  - O (%text)*>
+<!ATTLIST MARQUEE
+        %attrs;
+        align (top|middle|bottom) top
+        behavior        (scroll|slide|alternate)        SCROLL
+        bgcolor %color  #IMPLIED
+        direction       (left|right)    LEFT
+        height  CDATA   #IMPLIED
+        hspace  NUMBER  #IMPLIED
+        loop    CDATA   #IMPLIED
+        scrollamount    NUMBER  #IMPLIED
+        scrolldelay     NUMBER  #IMPLIED
+        vspace  NUMBER  #IMPLIED
+        width   CDATA   #IMPLIED
+        border  NUMBER  #IMPLIED
+    background  %URL    #IMPLIED  -- texture tile for document background --
+        >
+
+<!--=================== Headings ==========================================-->
+
+<!--
+  There are six levels of headers from H1 (the most important)
+  to H6 (the least important).
+-->
+
+<!ELEMENT ( %heading )  - -  %P.content >
+<!ATTLIST ( %heading )
+                %attrs
+        align  (left|center|right) #IMPLIED
+        >
+
+<!--=================== Preformatted Text =================================-->
+
+<!-- excludes images and changes in font size -->
+
+<!ENTITY % pre.exclusion "IMG|BIG|SMALL|SUB|SUP|FONT">
+
+<!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
+<!ATTLIST PRE
+        %attrs;
+        width NUMBER #implied
+        >
+
+<![ %HTML.Deprecated [
+
+<!ENTITY % literal "CDATA"
+        -- historical, non-conforming parsing mode where
+           the only markup signal is the end tag
+           in full
+        -->
+
+<!ELEMENT (XMP|LISTING) - -  %literal>
+<!ELEMENT PLAINTEXT - O %literal>
+
+<!ATTLIST (XMP|LISTING|PLAINTEXT)
+        %attrs;
+        >
+
+]]>
+
+<!--=================== Block-like Quotes =================================-->
+
+<!ELEMENT BLOCKQUOTE - - %body.content>
+<!ATTLIST BLOCKQUOTE
+        %attrs;
+        >
+
+<!--=================== Lists =============================================-->
+
+<!--
+    HTML 3.2 allows you to control the sequence number for ordered lists.
+    You can set the sequence number with the START and VALUE attributes.
+    The TYPE attribute may be used to specify the rendering of ordered
+    and unordered lists.
+-->
+
+<!-- definition lists - DT for term, DD for its definition -->
+
+<!ELEMENT DL    - -  (DT|DD)*>
+<!ATTLIST DL
+        %attrs;
+        compact (compact) #IMPLIED -- more compact style --
+        >
+
+<!ELEMENT DT - O  (%text)*>
+<!ATTLIST DT
+        %attrs;
+        >
+
+<!ELEMENT DD - O  %flow;>
+<!ATTLIST DD
+        %attrs;
+        >
+
+<!-- Ordered lists OL, and unordered lists UL -->
+<!ELEMENT (OL|UL) - -  (LI)*>
+
+<!--
+       Numbering style
+    1   arabic numbers      1, 2, 3, ...
+    a   lower alpha         a, b, c, ...
+    A   upper alpha         A, B, C, ...
+    i   lower roman         i, ii, iii, ...
+    I   upper roman         I, II, III, ...
+
+    The style is applied to the sequence number which by default
+    is reset to 1 for the first list item in an ordered list.
+
+    This can't be expressed directly in SGML due to case folding.
+-->
+
+<!ENTITY % OLStyle "CDATA" -- constrained to: [1|a|A|i|I] -->
+
+<!ATTLIST OL -- ordered lists --
+        %attrs;
+    type      %OLStyle   #IMPLIED   -- numbering style --
+    start     NUMBER     #IMPLIED   -- starting sequence number --
+    compact  (compact)   #IMPLIED   -- reduced interitem spacing --
+        >
+
+<!-- bullet styles -->
+
+<!ENTITY % ULStyle "disc|square|circle">
+
+<!ATTLIST UL -- unordered lists --
+        %attrs;
+    type    (%ULStyle)   #IMPLIED   -- bullet style --
+    compact (compact)    #IMPLIED   -- reduced interitem spacing --
+    >
+
+<!ELEMENT (DIR|MENU) - -  (LI)* -(%block)>
+<!ATTLIST (DIR|MENU)
+        %attrs;
+    compact (compact) #IMPLIED
+    >
+
+<!-- The type attribute can be used to change the bullet style
+     in unordered lists and the numbering style in ordered lists -->
+
+<!ENTITY % LIStyle "CDATA" -- constrained to: "(%ULStyle|%OLStyle)" -->
+
+<!ELEMENT LI - O %flow -- list item -->
+<!ATTLIST LI
+        %attrs;
+    type    %LIStyle     #IMPLIED   -- list item style --
+    value    NUMBER      #IMPLIED   -- reset sequence number --
+    >
+
+<!--================ Forms ===============================================-->
+
+<!ELEMENT FORM - - %body.content -(FORM) +(%formitems)>
+<!ATTLIST FORM
+        %attrs;
+    action %URL #REQUIRED -- server-side form handler --
+    method (%HTTP-Method) GET -- see HTTP specification --
+    enctype %Content-Type; "application/x-www-form-urlencoded"
+        name    CDATA   #IMPLIED
+        target  CDATA   #IMPLIED
+        >
+
+<!ENTITY % InputType
+        "(TEXT | TEXTAREA | PASSWORD | CHECKBOX | RADIO | SUBMIT
+            | RESET | FILE | HIDDEN | IMAGE)">
+
+<!ELEMENT INPUT - O EMPTY>
+<!ATTLIST INPUT
+        %attrs;
+    type %InputType TEXT     -- what kind of widget is needed --
+    name  CDATA #IMPLIED     -- required for all but submit and reset --
+    value CDATA #IMPLIED     -- required for radio and checkboxes --
+        checked (checked|true|false) #IMPLIED -- for radio buttons and check bo
+xes --
+    size CDATA  #IMPLIED     -- specific to each type of field --
+    maxlength NUMBER #IMPLIED
+    src   %URL  #IMPLIED     -- for fields with background images --
+    align  (top|middle|bottom|left|right) top -- image alignment --
+    >
+
+<!ELEMENT SELECT - - (OPTION+)>
+<!ATTLIST SELECT
+        %attrs;
+    name CDATA #REQUIRED
+    size NUMBER #IMPLIED
+    multiple (multiple) #IMPLIED
+    >
+
+<!ELEMENT OPTION - O (#PCDATA)*>
+<!ATTLIST OPTION
+        %attrs;
+    selected (selected) #IMPLIED
+    value  CDATA  #IMPLIED -- defaults to element content --
+    >
+
+<!-- Multi-line text input field. -->
+
+<!ELEMENT TEXTAREA - - (#PCDATA)* -(INPUT|SELECT|TEXTAREA)>
+<!ATTLIST TEXTAREA
+        %attrs;
+    name CDATA #REQUIRED
+    rows NUMBER #REQUIRED
+    cols NUMBER #REQUIRED
+    >
+
+<!--======================= Tables ========================================-->
+
+<!-- Invoke TABLES DTD  -->
+<!ENTITY % ietables PUBLIC "-//Microsoft//DTD Internet Explorer 3.0 Tables//EN"
+ >
+%ietables;
+
+<!--================ Document Head ========================================-->
+
+<!ENTITY % head.misc "SCRIPT|STYLE|META|LINK|BGSOUND" -- repeatable head elemen
+ts -->
+
+<![ %HTML.Deprecated [
+        <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & NEXTID?">
+]]>
+
+<!ENTITY % head.content "TITLE & ISINDEX? & BASE?">
+
+<!ELEMENT HEAD O O  (%head.content) +(%head.misc)>
+
+<!ELEMENT TITLE - -  (#PCDATA)* -(%head.misc)
+          -- The TITLE element is not considered part of the flow of text.
+             It should be displayed, for example as the page header or
+             window title.
+          -->
+
+<!ELEMENT ISINDEX - O EMPTY>
+<!ATTLIST ISINDEX
+        %attrs
+    prompt      CDATA   #IMPLIED -- prompt message --
+        action  CDATA   #IMPLIED >
+
+<!--
+    The BASE element gives an absolute URL for dereferencing relative
+    URLs, e.g.
+
+         <BASE href="http://foo.com/index.html">
+         ...
+         <IMG SRC="images/bar.gif">
+
+    The image is deferenced to
+
+         http://foo.com/images/bar.gif
+
+   In the absence of a BASE element the document URL should be used.
+   Note that this is not necessarily the same as the URL used to
+   request the document, as the base URL may be overridden by an HTTP
+   header accompanying the document.
+-->
+
+<!ELEMENT BASE - O EMPTY>
+<!ATTLIST BASE
+        href %URL  #REQUIRED
+                target  CDATA   #IMPLIED
+        >
+
+<![ %HTML.Deprecated [
+        <!ELEMENT NEXTID - O EMPTY>
+        <!ATTLIST NEXTID
+                N       CDATA #REQUIRED >
+]]>
+
+<!ELEMENT META - O EMPTY -- Generic Metainformation -->
+<!ATTLIST META
+        http-equiv  NAME    #IMPLIED  -- HTTP response header name  --
+        name        NAME    #IMPLIED  -- metainformation name       --
+        content     CDATA   #REQUIRED -- associated information     --
+                charset         CDATA   #IMPLIED
+        >
+
+<!-- SCRIPT/STYLE are place holders for transition to next version of HTML -->
+
+<!ELEMENT STYLE  - - (#PCDATA)*  -(%head.misc) -- style info -->
+<!ATTLIST STYLE
+        type            CDATA   #IMPLIED
+        title           CDATA   #IMPLIED   >
+
+<!-- Script markup taken from WD-script-960208 found at
+     http://www.w3.org/pub/WWW/TR/WD-script.html -->
+
+<!-- SCRIPT is a character-like element for embedding script code
+      that can be placed anywhere in the document HEAD or BODY -->
+
+<!ENTITY % Event "CDATA" -- event name and optional param list -->
+
+<!ELEMENT SCRIPT        - - (#PCDATA)*   -(%head.misc)>
+<!ATTLIST SCRIPT
+        %attrs;
+    type         CDATA    #IMPLIED -- script language media type --
+    language     CDATA    #IMPLIED -- predefined script language name --
+    src          %URL     #IMPLIED -- URL for an external script --
+    name             CDATA    #IMPLIED
+        >
+
+<!ELEMENT NOSCRIPT - - (%body.content)>
+<!ATTLIST NOSCRIPT
+        %attrs;
+        >
+
+<!--================ Document Structure ===================================-->
+
+<!ENTITY % version.attr "VERSION CDATA #FIXED '%HTML.Version;'">
+
+<!ELEMENT HTML O O  (HEAD, (BODY|FRAMESET) )>
+<!ATTLIST HTML
+                %attrs
+        %version.attr
+        >
+
+<!-- Frames -->
+
+<!ELEMENT FRAMESET      - -     (FRAMESET|FRAME|NOFRAMES)+ >
+<!ATTLIST FRAMESET
+        %attrs;
+        layout  (TILES|PAGES)   TILES
+        rows    CDATA   #IMPLIED
+        cols    CDATA   #IMPLIED
+        framespacing    CDATA   #IMPLIED
+        frameborder     NUMBER  #IMPLIED
+        >
+
+<!ELEMENT FRAME - O     EMPTY >
+<!ATTLIST FRAME
+        %attrs;
+        src             CDATA   #REQUIRED
+        name    CDATA   #IMPLIED
+        height  NUMBER  #IMPLIED
+        hspace  NUMBER  #IMPLIED
+        width   NUMBER  #IMPLIED
+        vspace  NUMBER  #IMPLIED
+        marginwidth     NUMBER #IMPLIED -- check this --
+        marginheight    NUMBER #IMPLIED -- check this --
+        frameborder     CDATA   #IMPLIED        -- need to check with IE --
+        framespacing    NUMBER  #IMPLIED
+        scrolling       (YES|NO|AUTO)   AUTO
+        noresize        (NORESIZE)      #IMPLIED
+        align   (LEFT|CENTER|RIGHT|TOP|TEXTTOP|MIDDLE|ABSMIDDLE|
+                BASELINE|BOTTOM|ABSBOTTOM)      #IMPLIED
+        >
+
+<!ELEMENT IFRAME        - O     EMPTY >
+<!ATTLIST IFRAME
+        %attrs;
+        src             CDATA   #REQUIRED
+        name    CDATA   #IMPLIED
+        marginwidth     NUMBER #IMPLIED
+        marginheight    NUMBER #IMPLIED
+        border  CDATA   #IMPLIED
+        frameborder     CDATA   #IMPLIED
+        framespacing    NUMBER  #IMPLIED
+        scrolling       (YES|NO|AUTO)   AUTO
+        noresize        (NORESIZE)      #IMPLIED
+        align   (LEFT|CENTER|RIGHT|TOP|MIDDLE|BOTTOM)   #IMPLIED
+        >
+
+<!ELEMENT NOFRAMES      - -     %body.content >
+
+<!-- Objects
+
+Adapted from
+WD-object-960422: Inserting objects into HTM
+http://www.w3.org/pub/WWW/TR/WD-object.html
+5/9/96
+
+-->
+
+<!ENTITY % OAlign "(texttop|middle|textmiddle|baseline|
+                            textbottom|left|center|right)">
+
+<!-- OBJECT is a character-like element for inserting objects -->
+<!ELEMENT OBJECT - - (PARAM | %body.content;)*>
+<!ATTLIST OBJECT
+        %attrs      -- id, class, style, lang, dir --
+        declare (declare) #IMPLIED  -- declare but don't instantiate flag --
+        classid %URL     #IMPLIED   -- identifies an implementation --
+        codebase %URL    #IMPLIED   -- some systems need an additional URL --
+        data    %URL     #IMPLIED   -- reference to object's data --
+        type    CDATA    #IMPLIED   -- Internet media type for data --
+        codetype CDATA   #IMPLIED   -- Internet media type for code --
+        standby CDATA    #IMPLIED   -- message to show while loading --
+        align   %OAlign #IMPLIED   -- positioning inside document --
+        height  %Length  #IMPLIED   -- suggested height --
+        width   %Length  #IMPLIED   -- suggested width --
+        border  %Length  #IMPLIED   -- suggested link border width --
+        hspace  %Length  #IMPLIED   -- suggested horizontal gutter --
+        vspace  %Length  #IMPLIED   -- suggested vertical gutter --
+                ismap   (ismap)  #IMPLIED   -- use server image map --
+        usemap  %URL     #IMPLIED   -- reference to image map --
+        shapes  (shapes) #IMPLIED   -- object has shaped hypertext links --
+        name    %URL     #IMPLIED   -- submit as part of form --
+        >
+
+<!ELEMENT PARAM - O EMPTY -- named property value -->
+<!ATTLIST PARAM
+        name      CDATA             #REQUIRED  -- property name --
+        value     CDATA             #IMPLIED   -- property value --
+        valuetype (DATA|REF|OBJECT) DATA       -- How to interpret value --
+        type      CDATA             #IMPLIED   -- Internet media type --
+        >
+
+<![ %HTML.Deprecated [
+
+<!ELEMENT EMBED - - (NOEMBED | %body.content;)* >
+<!ATTLIST EMBED
+        %attrs;
+    name        CDATA   #IMPLIED
+        height  CDATA   #IMPLIED
+        width   CDATA   #IMPLIED
+        param   CDATA   #IMPLIED
+    src         %URL    #REQUIRED  -- URL of image to embed --
+                >
+
+<!ELEMENT NOEMBED       - O     EMPTY>
+
+]]>
+
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/sgml/ie3tables.dtd	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,179 @@
+<!-- Note: I originally excerpted this from the document entitled
+"The HTML3 Table Model" by Dave Raggett, which I found at
+http://www.w3.org/hypertext/WWW/TR/WD-tables. This file 
+identified itself as W3C Working Draft, dated 12/22/95. There are
+slight modifications.
+
+Added width attribute to th and td elements.
+
+Version: 11/07/96
+
+-->
+
+<!-- Content model entities imported from parent DTD:
+
+  %body.content; allows table cells to contain headers, paras,
+  lists, form elements and even arbitrarily nested tables.
+
+  %text; is text characters, including character entities and
+  character emphasis elements, IMG and anchors
+-->
+
+<!ENTITY % attrs
+       "id      ID       #IMPLIED  -- element identifier --
+        class   NAMES    #IMPLIED  -- for subclassing elements --
+        style   CDATA    #IMPLIED  -- rendering annotation --
+        lang    NAME     #IMPLIED  -- as per RFC 1766 --
+        -- dir   (ltr|rtl)  #IMPLIED --  -- I18N text direction --">
+
+<!--
+ The BORDER attribute sets the thickness of the frame around the
+ table. The default units are screen pixels.
+
+ The FRAME attribute specifies which parts of the frame around
+ the table should be rendered. The values are not the same as
+ CALS to avoid a name clash with the VALIGN attribute.
+
+ The value "border" is included for backwards compatibility with
+ <TABLE BORDER> which yields frame=border and border=implied
+ For <TABLE BORDER=1> you get border=1 and frame=implied. In this
+ case, its appropriate to treat this as frame=border for backwards
+ compatibility with deployed browsers.
+-->
+
+<!ENTITY % Frame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
+
+<!--
+ The RULES attribute defines which rules to draw between cells:
+
+ If RULES is absent then assume:
+     "none" if BORDER is absent or BORDER=0 otherwise "all"
+-->
+
+<!ENTITY % Rules "(none | groups | rows | cols | all)">
+        
+<!-- horizontal placement of table relative to window -->
+<!ENTITY % Where "(left|center|right)">
+<!-- horizontal alignment attributes for cell contents -->
+<!ENTITY % cell.halign
+        "align  (left|center|right|justify|char) #IMPLIED
+         char    CDATA   #IMPLIED -- alignment char, e.g. char=':' --
+         charoff CDATA   #IMPLIED -- offset for alignment char --"
+        >
+
+<!-- vertical alignment attributes for cell contents -->
+<!ENTITY % cell.valign
+        "valign  (top|middle|bottom|baseline)  #IMPLIED"
+        >
+
+<!ELEMENT table - - (caption?, colgroup*, thead?, tfoot?, tbody+)>
+<!ELEMENT caption - - (%text;)+>
+<!ELEMENT thead - O (tr+)>
+<!ELEMENT tfoot - O (tr+)>
+<!ELEMENT tbody O O (tr+)>
+<!ELEMENT colgroup - O (col*)>
+<!ELEMENT col - O EMPTY>
+<!ELEMENT tr - O (th|td)+>
+<!ELEMENT (th|td) - O %body.content>
+
+<!ATTLIST table                    -- table element --
+        %attrs;                    -- id, lang, style, dir and class --
+        align   %Where;  #IMPLIED  -- table position relative to window --
+        width   CDATA    #IMPLIED  -- table width relative to window --
+        cols    NUMBER   #IMPLIED  -- used for immediate display mode --
+        border  CDATA    #IMPLIED  -- controls frame width around table --
+        frame   %Frame;  #IMPLIED  -- which parts of table frame to include --
+        rules   %Rules;  #IMPLIED  -- rulings between rows and cols --
+        cellspacing CDATA #IMPLIED -- spacing between cells --
+        cellpadding CDATA #IMPLIED -- spacing within cells --
+		background	%URL	#IMPLIED	-- background picture --
+		bgcolor          CDATA    #IMPLIED  -- table background color --
+		bordercolor      CDATA    #IMPLIED  -- table border color --
+ 		bordercolorlight CDATA    #IMPLIED  -- 3D table border color --
+ 		bordercolordark  CDATA    #IMPLIED  -- 3D table border color --
+        >
+
+<!-- ALIGN is used here for compatibility with deployed browsers -->
+<!ENTITY % Caption "(top|bottom)">
+
+<!ATTLIST caption                  -- table caption --
+        %attrs;                    -- id, lang, style, dir and class --
+        align  %Caption; #IMPLIED  -- relative to table --
+        >
+
+<!--
+COLGROUP groups a set of COL elements. It allows you to group
+several columns together.
+-->
+
+<!ATTLIST colgroup
+        %attrs;                    -- id, lang, style, dir and class --
+        span    NUMBER   1         -- default number of columns in group --
+        width   CDATA    #IMPLIED  -- default width for enclosed COLs --
+        %cell.halign;              -- horizontal alignment in cells --
+        %cell.valign;              -- vertical alignment in cells --
+        >
+
+<!--
+ COL elements define the alignment properties for cells in a given
+ column or spanned columns. The WIDTH attribute specifies the
+ width of the columns, e.g.
+
+     width=64        width in screen pixels
+     width=0.5*      relative width of 0.5
+-->
+
+<!ATTLIST col                      -- column groups and properties --
+        %attrs;                    -- id, lang, style, dir and class --
+        span    NUMBER   1         -- number of columns spanned by group --
+        width   CDATA    #IMPLIED  -- column width specification --
+        %cell.halign;              -- horizontal alignment in cells --
+        %cell.valign;              -- vertical alignment in cells --
+        >
+
+<!--
+    Use THEAD to duplicate headers when breaking table
+    across page boundaries, or for static headers when
+    body sections are rendered in scrolling panel.
+
+    Use TFOOT to duplicate footers when breaking table
+    across page boundaries, or for static footers when
+    body sections are rendered in scrolling panel.
+
+    Use multiple TBODY sections when rules are needed
+    between groups of table rows.
+-->
+<!ATTLIST (thead|tbody|tfoot)      -- table section --
+        %attrs;                    -- id, lang, style, dir and class --
+        %cell.halign;              -- horizontal alignment in cells --
+        %cell.valign;              -- vertical alignment in cells --
+        >
+
+<!ATTLIST tr                       -- table row --
+        %attrs;                    -- id, lang, style, dir and class --
+        %cell.halign;              -- horizontal alignment in cells --
+        %cell.valign;              -- vertical alignment in cells --
+		bgcolor          CDATA    #IMPLIED  -- table background color --
+		bordercolor      CDATA    #IMPLIED  -- table border color --
+ 		bordercolorlight CDATA    #IMPLIED  -- 3D table border color --
+ 		bordercolordark  CDATA    #IMPLIED  -- 3D table border color --
+        >
+
+<!ATTLIST (th|td)                  -- header or data cell --
+        %attrs;                    -- id, lang, style, dir and class --
+        axis    CDATA    #IMPLIED  -- defaults to cell content --
+        axes    CDATA    #IMPLIED  -- list of axis names --
+        nowrap (nowrap)  #IMPLIED  -- suppress word wrap --
+        rowspan NUMBER   1         -- number of rows spanned by cell --
+        colspan NUMBER   1         -- number of cols spanned by cell --
+        %cell.halign;              -- horizontal alignment in cells --
+        %cell.valign;              -- vertical alignment in cells --
+		background	CDATA	#IMPLIED	-- background graphic --
+		bgcolor			CDATA	#IMPLIED  -- background color for cell --
+ 		bordercolor		CDATA	#IMPLIED  -- cell border color --
+ 		bordercolorlight	CDATA	#IMPLIED  -- 3D cell border color --
+ 		bordercolordark		CDATA	#IMPLIED  -- 3D cell border color --
+		height	CDATA	#IMPLIED
+        width   CDATA   #IMPLIED
+       >
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/time/l-jtl-0.0.xpm	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,22 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"10 13 2 1",
+/* colors */
+"` s None c None",
+". c #606060",
+/* pixels */
+"``````````",
+"``````....",
+"`````.....",
+"`````.....",
+"````......",
+"````......",
+"```.......",
+"```.......",
+"``........",
+"``........",
+"`.........",
+"`.........",
+".........."
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/time/l-jtl-0.5.xpm	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,23 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"10 13 3 1",
+/* colors */
+"` s None c None",
+"a c #0AB224",
+". c #606060",
+/* pixels */
+"``````````",
+"``````....",
+"`````.....",
+"`````.....",
+"````......",
+"````......",
+"```.......",
+"```.......",
+"``........",
+"``........",
+"`.........",
+"`aaaaaaaaa",
+".........."
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/time/l-jtl-1.0.xpm	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,23 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"10 13 3 1",
+/* colors */
+"` s None c None",
+"a c #0AB224",
+". c #606060",
+/* pixels */
+"``````````",
+"``````....",
+"`````.....",
+"`````.....",
+"````......",
+"````......",
+"```.......",
+"```.......",
+"``........",
+"``aaaaaaaa",
+"`.........",
+"`aaaaaaaaa",
+".........."
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/time/l-jtl-1.5.xpm	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,24 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"10 13 4 1",
+/* colors */
+"` s None c None",
+"a c #2AD244",
+"b c #DEE614",
+". c #606060",
+/* pixels */
+"``````````",
+"``````....",
+"`````.....",
+"`````.....",
+"````......",
+"````......",
+"```.......",
+"```bbbbbbb",
+"``........",
+"``aaaaaaaa",
+"`.........",
+"`aaaaaaaaa",
+".........."
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/time/l-jtl-2.0.xpm	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,24 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"10 13 4 1",
+/* colors */
+"` s None c None",
+"a c #0AB224",
+"b c #DEE614",
+". c #606060",
+/* pixels */
+"``````````",
+"``````....",
+"`````.....",
+"`````.....",
+"````......",
+"````bbbbbb",
+"```.......",
+"```bbbbbbb",
+"``........",
+"``aaaaaaaa",
+"`.........",
+"`aaaaaaaaa",
+".........."
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/time/l-jtl-2.5.xpm	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,25 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"10 13 5 1",
+/* colors */
+"a s None c None",
+"` c #FE0204",
+"b c #0AB224",
+"c c #DEE614",
+". c #606060",
+/* pixels */
+"aaaaaaaaaa",
+"aaaaaa....",
+"aaaaa.....",
+"aaaaa`````",
+"aaaa......",
+"aaaacccccc",
+"aaa.......",
+"aaaccccccc",
+"aa........",
+"aabbbbbbbb",
+"a.........",
+"abbbbbbbbb",
+".........."
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/time/l-jtl-3.0.xpm	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,25 @@
+/* XPM */
+static char *noname[] = {
+/* width height ncolors chars_per_pixel */
+"10 13 5 1",
+/* colors */
+"a s None c None",
+"` c #FE0204",
+"b c #0AB224",
+"c c #DEE614",
+". c #606060",
+/* pixels */
+"aaaaaaaaaa",
+"aaaaaa````",
+"aaaaa.....",
+"aaaaa`````",
+"aaaa......",
+"aaaacccccc",
+"aaa.......",
+"aaaccccccc",
+"aa........",
+"aabbbbbbbb",
+"a.........",
+"abbbbbbbbb",
+".........."
+};
--- a/etc/xemacs.xpm	Mon Aug 13 08:52:30 2007 +0200
+++ b/etc/xemacs.xpm	Mon Aug 13 08:52:56 2007 +0200
@@ -1,192 +1,177 @@
 /* XPM */
 static char *noname[] = {
 /* width height ncolors chars_per_pixel */
-"388 145 40 2",
+"388 145 25 1",
 /* colors */
-"`` c #787879",
-"`a c #1F2374",
-"`b c #8587AD",
-"`c c #585859",
-"`d c #F5F5F6",
-"`e c #383839",
-"`f c #363ACC",
-"`g c #E5E5E6",
-"`h c #5458B1",
-"`i s background  c None",
-"`j c #5256DA",
-"`k c #282829",
-"`l c #D7D7D8",
-"`m c #494949",
-"`n c #6F73E2",
-"`o c #13154C",
-"`p c #222454",
-"`q c #252992",
-"`r c #B6B8DE",
-"`s c #999DF3",
-"`t c #050508",
-"`u c #494B6F",
-"`v c #B6BAFB",
-"`w c #888888",
-"`x c #9699CE",
-"`y c #686868",
-"`z c #666891",
-"a` c #A6AAF4",
-"aa c #585979",
-"ab c #171718",
-"ac c #4245A2",
-"ad c #868AEB",
-"ae c #A8A8A9",
-"af c #4249D3",
-"ag c #989899",
-"ah c #797CB6",
-"ai c #6266DB",
-"aj c #333785",
-"ak c #B9B9B9",
-"al c #C5C7F3",
+"` c #686869",
+"a c #A6AAF5",
+"b c #585859",
+"c c #797979",
+"d c #09090B",
+"e c #989CEA",
+"f c #383839",
+"g c #363ACC",
+"h c #282829",
+"i c #88888A",
+"j c #13154C",
+"k c #7074DF",
+"l c #5256D8",
+"m c #484949",
+"n c #232788",
+"o s None c None",
+"p c #B8B8B9",
+"q c #4249D0",
+"r c #B6BAF9",
+"s c #868AEB",
+"t c #A8A8A9",
+"u c #C8C8CF",
+"v c #989899",
+"w c #6266DB",
+"x s None c None",
 /* pixels */
-"`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i",
-"`i`i`l`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`l`i`i`i`i`i`i`i`l`i`l`i`i`i`l`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`i`l`l`i`l`i`l`i`i`i`i`l`i`i`l`i`i`i`i`l`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`l`i`i`i`i`i`i`i`l`i`l`i`i`i`l`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`i`l`l`i`l`i`l`i`i`i`i`l`i`i`l`i`i`i`i`l`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`l`i`i`i`i`i`i`i`l`i`l`i`i`i`l`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`i`l`l`i`l`i`l`i`i`i`i`l`i`i`l`i`i`i`i`l`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i",
-"`i`i`i`i`i`i`l`i`l`l`i`l`l`i`l`i`i`i`l`i`i`l`i`i`l`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`l`i`l`i`i`i`i`i`l`i`l`i`i`l`i`i`l`i`i`i`i`i`i`l`i`l`i`i`i`i`i`i`i`l`i`i`i`i`i`l`i`i`l`i`i`i`i`l`i`l`i`l`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`i`i`i`i`i`l`i`l`l`i`l`l`i`l`i`i`i`l`i`i`l`i`i`l`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`l`i`l`i`i`i`i`i`l`i`l`i`i`l`i`i`l`i`i`i`i`i`i`l`i`l`i`i`i`i`i`i`i`l`i`i`i`i`i`l`i`i`l`i`i`i`i`l`i`l`i`l`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`i`i`i`i`i`l`i`l`l`i`l`l`i`l`i`i`i`l`i`i`l`i`i`l`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`l`i`l`i`i`i`i`i`l`i`l`i`i`l`i`i`l`i`i`i`i`i`i`l`i`l`i`i`i`i`i`i`i`l`i`i`i`i`i`l`i`i`l`i`i`i`i`l`i`l`i`l`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`l`i`i`l`i`l`i`i`i`i`i`l`i`i`i`i`i`l`i`l`i`i`i`i`i`l`i`i`i`i`i`i`l`i`l`i`i`i`l`i`l`i`l`l`l`i`l`i`i`i`l`i`l`i`l`i`l`l`i`l`i`l`i`i`i`i`l`i`i`i`l`i`i`i`i`l`i`l`i`l`i`l`i`i`i`l`i`l`l`l`l`i`l`i`l`i`l`i`i`i`i`l`i`i`l`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`l`i`i`l`i`l`i`i`i`i`i`l`i`i`i`i`i`l`i`l`i`i`i`i`i`l`i`i`i`i`i`i`l`i`l`i`i`i`l`i`l`i`l`l`l`i`l`i`i`i`l`i`l`i`l`i`l`l`i`l`i`l`i`i`i`i`l`i`i`i`l`i`i`i`i`l`i`l`i`l`i`l`i`i`i`l`i`l`l`l`l`i`l`i`l`i`l`i`i`i`i`l`i`i`l`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`l`i`i`l`i`l`i`i`i`i`i`l`i`i`i`i`i`l`i`l`i`i`i`i`i`l`i`i`i`i`i`i`l`i`l`i`i`i`l`i`l`i`l`l`l`i`l`i`i`i`l`i`l`i`l`i`l`l`i`l`i`l`i`i`i`i`l`i`i`i`l`i`i`i`i`l`i`l`i`l`i`l`i`i`i`l`i`l`l`l`l`i`l`i`l`i`l`i`i`l`i`i`i`i",
-"`i`i`i`l`i`i`l`i`l`l`i`l`i`l`i`i`l`i`i`l`l`i`l`l`l`i`l`i`l`i`i`i`i`i`l`i`l`i`i`i`l`i`l`l`i`l`i`i`i`l`i`i`i`i`l`l`i`l`i`i`i`i`l`i`l`i`l`i`i`i`i`i`l`i`i`l`l`l`i`i`i`i`i`i`i`l`l`i`l`i`l`l`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`l`i`i`l`i`i`i`i`i`l`i`l`i`l`i`l`i`l`i`i`l`i`i`i`i`l`i`l`l`i`l`i`l`i`i`l`i`i`l`l`i`l`l`l`i`l`i`l`i`i`i`i`i`l`i`l`i`i`i`l`i`l`l`i`l`i`i`i`l`i`i`i`i`l`l`i`l`i`i`i`i`l`i`l`i`l`i`i`i`i`i`l`i`i`l`l`l`i`i`i`i`i`i`i`l`l`i`l`i`l`l`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`l`i`i`l`i`i`i`i`i`l`i`l`i`l`i`l`i`l`i`i`l`i`i`i`i`l`i`l`l`i`l`i`l`i`i`l`i`i`l`l`i`l`l`l`i`l`i`l`i`i`i`i`i`l`i`l`i`i`i`l`i`l`l`i`l`i`i`i`l`i`i`i`i`l`l`i`l`i`i`i`i`l`i`l`i`l`i`i`i`i`i`l`i`i`l`l`l`i`i`i`i`i`i`i`l`l`i`l`i`l`l`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`l`i`i`l`i`i`i`i`i`l`i`l`i`l`i`l`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`l`i`l`i`l`i`i`i`l`i`l`l`i`i`i`i`i`i`l`i`i`l`i`l`l`i`l`i`i`i`i`l`l`i`l`i`i`i`i`i`l`l`i`l`i`l`l`i`l`i`l`i`l`i`i`i`i`i`i`i`l`l`l`i`i`l`i`l`i`i`i`l`l`l`l`l`l`l`i`i`l`i`l`i`l`i`l`l`i`l`i`i`lal`l`i`l`i`l`i`l`i`i`l`i`l`i`l`i`l`l`i`i`l`i`l`i`i`i`l`i`l`i`l`i`l`l`i`l`i`l`i`l`i`i`i`l`i`l`l`i`i`i`i`i`i`l`i`i`l`i`l`l`i`l`i`i`i`i`l`l`i`l`i`i`i`i`i`l`l`i`l`i`l`l`i`l`i`l`i`l`i`i`i`i`i`i`i`l`l`l`i`i`l`i`l`i`i`i`l`l`l`l`l`l`l`i`i`l`i`l`i`l`i`l`l`i`l`i`i`lal`l`i`l`i`l`i`l`i`i`l`i`l`i`l`i`l`l`i`i`l`i`l`i`i`i`l`i`l`i`l`i`l`l`i`l`i`l`i`l`i`i`i`l`i`l`l`i`i`i`i`i`i`l`i`i`l`i`l`l`i`l`i`i`i`i`l`l`i`l`i`i`i`i`i`l`l`i`l`i`l`l`i`l`i`l`i`l`i`i`i`i`i`i`i`l`l`l`i`i`l`i`l`i`i`i`l`l`l`l`l`l`l`i`i`l`i`l`i`l`i`l`l`i`l`i`i`lal`l`i`l`i`l`i`l`i`i`l`i`l`i`l`i`l`l`i`i`l`i`l`i`i`l`l`i`l`i`i`i",
-"`i`i`i`l`i`i`i`i`i`i`i`l`l`i`i`l`i`i`i`l`i`l`i`l`i`l`l`i`i`l`i`l`i`l`l`l`i`l`i`l`i`l`l`l`l`l`i`i`i`i`l`i`i`i`l`i`i`l`i`i`i`l`i`l`i`l`i`i`i`l`i`l`i`l`l`i`l`i`i`i`l`i`l`i`l`l`i`l`l`i`l`i`l`i`l`i`l`i`i`l`i`l`i`l`i`l`i`l`i`i`l`i`l`i`l`l`i`i`i`l`i`l`l`l`l`i`l`i`i`i`l`i`i`i`i`i`i`i`i`l`l`i`i`l`i`i`i`l`i`l`i`l`i`l`l`i`i`l`i`l`i`l`l`l`i`l`i`l`i`l`l`l`l`l`i`i`i`i`l`i`i`i`l`i`i`l`i`i`i`l`i`l`i`l`i`i`i`l`i`l`i`l`l`i`l`i`i`i`l`i`l`i`l`l`i`l`l`i`l`i`l`i`l`i`l`i`i`l`i`l`i`l`i`l`i`l`i`i`l`i`l`i`l`l`i`i`i`l`i`l`l`l`l`i`l`i`i`i`l`i`i`i`i`i`i`i`i`l`l`i`i`l`i`i`i`l`i`l`i`l`i`l`l`i`i`l`i`l`i`l`l`l`i`l`i`l`i`l`l`l`l`l`i`i`i`i`l`i`i`i`l`i`i`l`i`i`i`l`i`l`i`l`i`i`i`l`i`l`i`l`l`i`l`i`i`i`l`i`l`i`l`l`i`l`l`i`l`i`l`i`l`i`l`i`i`l`i`l`i`l`i`l`i`l`i`i`l`i`l`i`l`l`i`i`i`l`i`l`l`l`l`i`l`i`i`i`i`i",
-"`i`i`i`i`l`i`l`i`l`i`l`i`l`i`l`i`i`l`l`l`l`i`l`l`i`i`i`l`l`l`i`l`i`i`i`i`l`i`l`l`l`i`l`i`i`l`l`l`l`i`l`i`i`i`i`l`l`i`l`i`l`i`i`i`l`i`l`i`l`i`l`l`i`l`i`l`l`i`l`i`l`l`l`l`i`l`l`i`i`l`i`l`i`l`i`l`i`l`l`i`l`i`l`i`i`i`l`i`i`l`i`l`l`l`i`l`i`l`i`l`i`l`i`l`i`l`l`l`l`l`i`l`l`l`i`l`l`i`l`i`l`i`l`i`i`l`l`l`l`i`l`l`i`i`i`l`l`l`i`l`i`i`i`i`l`i`l`l`l`i`l`i`i`l`l`l`l`i`l`i`i`i`i`l`l`i`l`i`l`i`i`i`l`i`l`i`l`i`l`l`i`l`i`l`l`i`l`i`l`l`l`l`i`l`l`i`i`l`i`l`i`l`i`l`i`l`l`i`l`i`l`i`i`i`l`i`i`l`i`l`l`l`i`l`i`l`i`l`i`l`i`l`i`l`l`l`l`l`i`l`l`l`i`l`l`i`l`i`l`i`l`i`i`l`l`l`l`i`l`l`i`i`i`l`l`l`i`l`i`i`i`i`l`i`l`l`l`i`l`i`i`l`l`l`l`i`l`i`i`i`i`l`l`i`l`i`l`i`i`i`l`i`l`i`l`i`l`l`i`l`i`l`l`i`l`i`l`l`l`l`i`l`l`i`i`l`i`l`i`l`i`l`i`l`l`i`l`i`l`i`i`i`l`i`i`l`i`l`l`l`i`l`i`l`i`l`i`i`l`i`l`i`l`i`l`i`i`i",
-"`i`i`i`i`i`i`i`i`l`i`i`l`i`i`l`i`l`i`l`i`l`l`i`l`l`l`l`l`i`i`l`i`l`l`l`l`l`l`l`i`l`l`l`l`l`i`i`l`i`i`l`i`l`l`i`l`i`l`l`i`l`i`l`i`l`l`i`i`l`i`i`l`l`l`i`i`l`i`l`i`i`i`l`l`l`l`l`l`l`l`i`l`i`l`l`i`l`i`l`i`l`i`l`l`l`i`l`l`i`l`i`l`i`l`l`l`i`l`i`i`i`l`l`l`l`l`i`l`i`l`l`i`i`l`i`i`l`i`i`l`i`i`l`i`l`i`l`i`l`l`i`l`l`l`l`l`i`i`l`i`l`l`l`l`l`l`l`i`l`l`l`l`l`i`i`l`i`i`l`i`l`l`i`l`i`l`l`i`l`i`l`i`l`l`i`i`l`i`i`l`l`l`i`i`l`i`l`i`i`i`l`l`l`l`l`l`l`l`i`l`i`l`l`i`l`i`l`i`l`i`l`l`l`i`l`l`i`l`i`l`i`l`l`l`i`l`i`i`i`l`l`l`l`l`i`l`i`l`l`i`i`l`i`i`l`i`i`l`i`i`l`i`l`i`l`i`l`l`i`l`l`l`l`l`i`i`l`i`l`l`l`l`l`l`l`i`l`l`l`l`l`i`i`l`i`i`l`i`l`l`i`l`i`l`l`i`l`i`l`i`l`l`i`i`l`i`i`l`l`l`i`i`l`i`l`i`i`i`l`l`l`l`l`l`l`l`i`l`i`l`l`i`l`i`l`i`l`i`l`l`l`i`l`l`i`l`i`l`i`l`l`l`i`l`i`l`l`i`l`l`l`i`l`i`i`i`i`i",
-"`i`i`i`i`i`l`i`iakak`l`l`l`l`i`iae`i`l`l`l`l`l`l`l`lakak`l`l`l`l`i`l`i`l`i`i`l`l`i`l`i`l`l`i`l`lakak`i`i`i`lal`i`i`l`i`l`i`l`i`ialae`i`l`l`l`i`l`i`l`l`l`i`i`l`i`l`l`l`i`l`l`i`l`l`l`l`l`l`i`l`l`i`l`l`l`i`l`i`l`l`l`i`i`l`i`i`l`i`i`l`l`i`l`i`l`l`i`l`l`l`l`l`l`l`i`l`i`laeal`i`i`l`l`l`l`l`i`l`l`i`l`l`l`l`lae`i`l`l`i`l`l`l`l`i`l`i`l`i`i`l`l`i`l`i`l`laeal`l`l`i`i`i`i`lal`i`i`l`i`l`i`l`i`i`l`l`l`l`l`l`i`l`i`l`l`l`i`i`l`i`l`l`l`i`l`l`i`l`l`l`l`l`l`i`l`l`i`l`l`l`i`l`i`l`l`l`i`i`l`i`i`l`i`i`l`l`i`l`i`l`l`i`l`l`l`l`l`l`l`i`l`i`l`i`l`i`i`l`l`l`l`l`i`l`l`i`l`l`l`l`l`l`l`l`l`i`l`l`l`l`i`l`i`l`i`i`l`l`i`l`i`l`l`i`l`l`l`i`i`i`i`lal`i`i`l`i`l`i`l`i`i`l`l`l`l`l`l`i`l`i`l`l`l`i`i`l`i`l`l`l`i`l`l`i`l`l`l`l`l`l`i`l`l`i`l`l`l`i`l`i`l`l`l`i`i`l`i`i`l`i`i`l`l`i`i`i`i`l`l`i`l`l`i`l`i`i`l`i`i",
-"`i`i`i`i`i`i`i`l`i`r`l`i`i`l`l`lak`l`l`l`l`l`l`i`i`l`iak`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`lak`l`l`i`l`i`l`l`l`l`l`i`l`l`iakag`l`l`i`lakaeagak`i`l`l`i`l`l`i`l`i`l`laeaeagaeaeak`l`l`i`l`l`i`l`i`iagak`ialagak`l`l`l`i`l`l`l`i`l`l`l`l`i`i`l`l`i`l`l`l`l`l`l`l`l`i`l`iak`l`i`l`l`i`i`l`l`l`l`l`l`l`l`l`l`iak`l`l`l`i`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`lak`i`l`l`l`l`i`l`i`l`l`l`l`l`i`l`l`i`i`l`l`i`i`l`l`i`l`l`i`l`l`i`l`l`i`l`i`l`l`i`l`i`l`l`l`l`l`i`l`l`i`l`i`l`l`i`l`i`l`l`l`l`l`i`l`l`l`i`l`l`l`l`i`i`l`l`i`l`l`l`l`l`l`l`l`i`l`l`l`i`i`l`l`i`i`l`l`l`l`l`l`l`l`l`l`i`i`l`l`l`i`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`l`l`l`l`i`l`i`l`l`l`l`l`i`l`l`i`i`l`l`i`i`l`l`i`l`l`i`l`l`i`l`l`i`l`i`l`l`i`l`i`l`l`l`l`l`i`l`l`i`l`i`l`l`i`l`i`l`l`l`l`l`i`l`l`l`i`l`l`l`l`l`i`l`l`i`i`l`l`l`i`i`i`i`i",
-"`i`i`i`i`l`lak`i`l`i`i`l`lalak`lak`l`i`i`l`l`l`l`l`l`lak`iak`i`i`i`i`l`iakak`l`i`l`i`lakak`l`i`l`lak`lakakak`l`l`i`l`l`l`l`i`i`iaeak`i`l`l`i`i`lak`l`l`i`l`l`l`iakak`l`l`lak`lak`l`lak`l`l`lakak`i`l`l`lakae`lakak`l`l`l`l`l`l`l`l`iakalak`lak`i`i`l`l`iakak`l`l`l`l`lak`i`gak`l`l`lakak`i`l`l`l`l`l`i`l`l`l`l`lakalak`l`l`l`i`lakak`i`i`i`i`l`iakal`i`l`l`lak`lakak`i`i`l`i`l`l`i`l`l`l`l`i`i`i`l`i`l`l`l`i`i`l`i`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`i`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`i`i`l`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`i`g`l`i`l`l`l`l`l`l`l`l`i`i`l`l`l`l`l`i`l`l`l`l`l`i`i`i`l`i`i`i`i`l`i`l`i`l`l`l`i`i`l`i`i`i`l`i`l`l`i`l`l`l`l`i`i`i`l`i`l`l`l`i`i`l`i`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`i`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`i`i`i`l`i`l`i`l`i`i`i`l`i`l`i`i",
-"`i`i`i`i`iak`iakakak`i`iakakakaeae`g`l`l`l`l`l`l`l`l`laeakakak`i`l`lakaeakakae`l`l`iaeakakae`i`i`lak`laeakak`l`i`l`i`l`l`l`l`l`iae`l`l`i`l`l`l`lak`l`i`l`l`i`lak`iak`i`l`g`l`lak`l`l`l`l`iaeakakaeak`l`l`lakakak`l`l`i`l`l`l`l`l`l`laeakaeaeakae`l`iakaeakakae`l`l`iaeakakaeak`l`iaeakakaeak`l`l`l`l`l`l`l`l`l`lagakakae`l`l`laeakakaeak`l`iakaeakakae`l`i`lak`lagak`i`i`l`i`i`l`i`l`l`l`l`l`l`i`l`i`l`l`l`l`l`l`i`l`l`i`l`i`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`i`i`i`l`l`l`l`i`l`i`l`g`l`l`l`l`l`l`l`l`i`i`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`i`l`i`i`l`l`i`l`l`l`l`l`l`i`l`i`i`l`i`l`l`l`l`l`l`i`l`i`l`l`l`l`l`l`i`l`l`i`l`i`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`l`i`l`i`l`i`i`i`i",
-"`ial`i`i`i`i`i`l`iak`l`lak`l`g`lak`l`lakaeagaeagak`l`lak`l`l`lak`l`lak`l`l`i`iak`iak`l`l`i`lak`l`lakag`i`l`l`i`l`l`l`i`l`l`l`l`l`i`l`l`l`l`l`l`lak`l`l`l`i`i`iaeagakak`l`l`l`lak`l`g`l`lakakakakakag`l`l`l`iag`i`l`l`lakagagaeagak`lakak`lak`lak`l`lak`l`l`i`lak`lak`g`l`l`lak`lakakakakakag`l`laeaeaeagaeak`l`lak`l`gak`l`l`i`i`l`l`lak`l`lak`l`i`l`iak`l`laeag`i`i`l`l`l`l`l`i`l`i`i`l`l`l`l`l`l`l`i`l`l`l`l`l`i`l`l`l`i`i`l`g`l`g`l`l`g`l`l`l`l`g`l`l`l`l`l`l`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`l`l`l`l`l`i`l`i`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`i`l`l`l`l`l`l`l`i`l`l`i`i`l`i`i`l`l`l`l`l`i`l`i`i`l`l`l`l`l`l`l`i`l`l`l`l`l`i`l`l`l`i`i`l`g`l`g`l`l`g`l`l`l`l`g`l`l`l`l`l`l`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`l`i`l`i`i`i`i`i`l`i",
-"`i`i`i`i`i`i`i`l`iak`l`lak`l`l`lak`l`l`l`l`l`l`l`l`l`lak`l`l`lak`l`lak`l`i`l`lak`iak`l`l`l`iak`l`lakakae`i`l`l`i`l`i`l`l`l`l`l`l`l`i`i`l`l`l`i`iak`l`lak`l`lae`i`l`iak`g`l`l`gak`g`l`l`laeakakakakak`l`l`lag`lae`i`l`l`l`l`l`l`l`i`iakak`lak`lak`l`lak`l`l`l`lak`lak`i`l`l`lak`laeakakakakak`l`g`l`l`l`l`l`l`g`lak`l`lak`l`lak`l`l`l`lak`i`lak`i`l`l`lak`l`laeakak`l`l`i`i`i`l`l`l`l`i`l`l`l`l`l`i`l`i`l`l`l`i`l`i`l`l`l`l`l`i`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`i`l`l`i`l`i`l`l`l`l`l`l`i`i`l`l`i`l`l`l`i`l`l`l`l`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`i`i`l`l`i`l`l`l`l`l`l`l`i`i`i`l`l`l`l`i`l`l`l`l`l`i`l`i`l`l`l`i`l`i`l`l`l`l`l`i`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`i`i`l`i`l`i`l`i`l`i`i`i`l`i`l`i`i`i",
-"`i`i`i`i`iak`i`lakak`i`iak`i`l`iag`g`l`l`g`l`l`l`l`g`lak`l`g`lak`l`laeak`i`iae`l`lalae`l`lakak`l`lak`l`iae`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`lak`l`iak`l`lak`l`lakak`l`l`l`lak`l`g`l`l`lag`l`g`l`i`l`lae`i`l`iag`g`l`l`g`g`l`l`l`lakak`iak`lak`l`lakak`l`iag`l`lakak`l`iagak`l`iag`l`l`g`i`l`l`l`l`l`g`l`l`l`lak`l`lak`l`g`lae`i`lakae`l`laeak`l`iae`l`l`lak`lakak`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`l`l`l`i`l`l`i`l`l`l`l`i`l`l`l`l`l`l`l`l`g`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`g`l`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`l`l`l`i`l`l`i`l`l`l`l`i`l`l`l`l`l`l`l`l`g`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`g`l`l`l`l`l`l`i`l`i`l`l`i`l`l`l`i`i`i`i`i`i`i",
-"`iak`i`i`i`iakak`iakak`l`iaeaeaeakae`l`l`l`l`g`l`l`lakagal`lagagal`l`lakagag`i`l`l`lakagag`i`l`laeak`l`lagag`l`i`l`l`l`l`l`l`l`l`l`i`l`i`l`laeagagagagag`l`lakagag`iagak`g`lagagagak`g`l`l`iaeagae`i`lakagak`lakagae`g`l`l`l`l`l`lakagae`lag`iakae`l`laeagae`i`l`l`lakagae`lag`i`l`iaeagae`l`l`l`l`g`l`l`l`l`lagag`l`iagag`g`l`iaeagak`l`l`l`laeagae`i`i`lag`i`l`iagae`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`i`l`l`i`l`g`l`l`l`l`l`i`l`l`l`l`l`g`g`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`i`l`i`l`l`i`l`l`l`i`l`l`l`g`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`g`l`l`g`l`l`l`l`l`l`g`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`i`l`l`i`l`g`l`l`l`l`l`i`l`l`l`l`l`g`g`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`l`i`l`l`i`i`l`i`i`i`i`i`i`i",
-"`i`i`i`i`i`l`i`i`i`l`i`l`l`l`l`g`l`l`l`l`l`g`l`g`l`l`g`l`l`l`l`l`l`l`l`i`l`l`i`i`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`i`g`l`l`l`l`l`l`g`l`l`g`l`g`l`g`l`l`g`l`g`l`l`l`l`i`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`g`l`l`g`l`l`g`g`l`g`l`g`l`l`l`l`l`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`l`l`l`l`g`l`l`i`l`i`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`g`g`l`l`l`l`l`g`l`g`l`g`g`g`l`l`l`l`i`i`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`g`g`l`g`l`l`g`l`g`l`l`g`g`l`l`g`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`i`l`l`i`l`l`l`l`g`l`l`i`l`i`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`g`g`l`l`l`l`l`l`g`l`g`g`l`l`l`l`g`l`i`i`l`l`l`l`l`l`l`l`l`i`l`i`i`i`i`i`l`i`i`i`i",
-"`i`i`i`i`i`i`l`l`i`l`i`i`l`l`i`l`l`l`g`l`l`l`l`l`g`l`l`g`l`l`g`l`l`g`l`l`i`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`l`l`l`l`l`l`g`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`i`l`l`l`l`g`l`l`l`l`l`g`l`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`g`l`l`l`l`l`l`l`l`l`l`g`g`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`i`l`l`l`g`l`g`l`l`l`l`l`l`l`i`i`g`l`g`l`l`l`l`l`g`l`l`l`g`l`l`g`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`g`l`g`l`l`l`l`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`l`i`i`i`i`i`i`i",
-"`i`i`i`i`l`i`i`l`i`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`i`l`l`g`g`l`g`l`l`l`g`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`g`l`g`l`l`l`i`i`l`l`l`l`g`g`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`g`g`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`i`l`l`l`g`l`g`g`g`l`l`l`l`l`l`g`l`l`l`l`l`l`l`i`l`l`g`g`l`g`l`g`l`g`l`l`i`l`i`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`i`i`l`l`i`g`l`g`l`l`l`l`i`l`l`l`l`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`g`g`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`l`g`l`l`l`l`l`l`i`l`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`g`g`g`l`l`g`l`g`l`l`l`l`l`l`l`l`g`l`l`g`l`l`l`l`l`l`l`l`i`i`l`l`i`g`l`g`l`l`l`l`i`l`l`l`l`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`l`g`l`l`g`l`l`g`l`l`l`l`l`l`l`l`i`l`l`l`l`i`l`l`l`l`i`i`l`i`i`i`i`i",
-"`i`i`i`i`i`i`i`l`l`i`l`i`i`i`l`l`l`l`l`l`l`l`l`i`i`l`i`l`i`l`l`g`g`g`l`g`l`l`i`l`l`l`i`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`i`l`g`l`g`l`l`l`l`l`l`l`g`l`l`g`l`g`l`g`l`l`g`g`l`l`l`g`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`i`l`l`i`i`l`l`g`l`g`l`g`l`l`l`l`l`l`i`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`l`l`l`l`l`i`l`l`l`l`l`l`l`g`g`l`l`l`l`l`l`l`g`l`l`g`l`l`l`g`l`l`g`g`l`l`l`g`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`i`l`l`l`g`l`l`g`l`l`l`l`l`l`l`g`l`g`l`l`l`l`i`i`l`l`i`i`l`l`g`l`g`l`l`l`l`i`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`l`l`l`l`l`i`l`l`l`l`l`l`l`g`g`l`l`l`l`l`l`l`g`l`l`g`l`l`l`g`l`l`g`g`l`l`g`l`g`l`g`l`l`g`l`l`l`l`l`l`l`l`l`i`l`l`l`l`i`i`l`l`i`l`i`l`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`i`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`i`g`g`l`i`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`i`g`l`l`l`g`g`g`l`l`l`l`l`l`l`l`i`g`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`l`g`g`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`i`l`l`g`g`l`l`l`l`g`g`l`l`l`l`i`l`l`l`l`l`l`g`l`l`l`l`l`g`l`l`g`l`l`l`g`g`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`l`g`l`g`l`l`l`l`g`l`l`g`l`g`l`l`l`l`l`l`l`l`l`g`g`g`l`l`g`l`g`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`g`l`l`l`l`g`g`g`g`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`g`l`l`g`l`l`l`g`g`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`l`g`g`l`l`l`l`l`g`l`g`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`l`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`l`l`l`l`i`l`i`i`l`l`l`l`l`l`i`l`l`i`l`l`l`i`l`l`l`l`l`l`l`g`l`g`l`l`l`g`l`l`l`l`l`g`l`g`l`l`g`l`l`l`l`g`g`l`i`l`g`g`l`l`l`i`i`l`l`l`l`l`l`l`l`l`g`l`l`l`g`l`l`g`l`g`l`l`l`l`g`l`l`l`g`g`g`g`l`g`g`g`g`l`g`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`l`i`l`l`l`l`l`g`g`g`l`l`l`l`l`l`l`l`g`l`i`l`l`l`l`i`l`i`l`l`l`l`l`l`l`g`l`g`l`g`l`g`l`l`l`l`l`g`g`g`l`l`l`l`l`l`g`g`g`l`l`l`g`g`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`g`l`l`l`g`l`g`l`g`l`l`g`l`l`l`g`g`g`g`l`l`g`g`l`l`l`l`l`g`l`l`l`l`l`g`l`l`l`l`l`l`l`i`l`l`g`l`l`i`l`l`l`l`l`g`g`g`l`l`l`l`l`l`l`g`l`l`l`l`l`l`i`l`l`i`l`l`l`l`i`l`l`g`l`g`l`l`g`l`g`l`g`l`l`g`g`g`l`l`l`l`l`l`g`g`g`l`l`l`g`g`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`g`l`l`l`g`l`g`l`g`l`l`g`l`l`l`g`g`g`g`l`l`g`g`l`l`l`l`l`g`l`l`l`i`l`l`i`l`l`i`l`i`i`i`i`l`i`i`i`i`i",
-"`i`i`i`i`i`l`i`i`l`i`l`l`i`l`l`i`i`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`g`g`g`g`g`l`l`g`g`g`l`g`g`g`l`l`g`l`g`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`g`l`g`l`l`g`l`l`g`l`g`g`l`g`l`g`g`l`g`l`g`g`g`l`l`g`l`l`l`l`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`g`l`i`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`g`g`l`g`l`g`g`g`l`g`l`g`l`l`g`g`l`l`l`l`l`l`i`l`g`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`g`l`l`l`g`g`l`l`g`l`g`l`l`g`l`g`g`l`l`g`g`g`g`g`l`g`l`l`l`l`g`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`g`l`g`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`g`g`g`g`g`l`l`g`l`g`l`g`l`g`l`l`g`g`l`l`l`l`l`l`i`l`g`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`g`l`l`l`g`g`l`l`g`l`g`l`l`g`l`g`g`l`l`g`g`g`g`g`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`l`l`i`l`i`i`i`i`i`i",
-"`i`i`i`i`i`l`i`i`l`i`l`l`l`l`i`l`l`l`l`l`l`l`l`i`i`l`i`l`i`l`l`g`l`i`l`l`l`l`g`l`i`l`d`l`g`l`g`g`g`g`g`g`l`l`g`l`l`g`l`l`l`i`l`l`g`lak`g`l`l`w```l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`l`lak`w`l`g`l`g`g`l`l`l`g`gaeae`l`l`g`l`g`l`l`l`l`g`l`g`g`l`g`l`l`l`g`lak`l`g`l`gak`l`l`l`l`l`l`l`g`l`g`g`g`i`g`l`g`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`i`l`l`l`l`g`l`l`l`g`g`l`g`l`g`g`g`g`g`l`l`l`l`l`l`l`l`l`l`i`l`g`l`l`l`l`l`i`l`i`l`l`l`l`l`l`l`g`l`l`l`l`l`g`g`l`g`l`g`l`g`l`g`g`g`l`l`g`g`g`g`l`l`g`g`l`l`l`g`l`g`l`g`l`l`l`l`l`l`l`l`g`l`l`l`g`l`i`l`l`l`l`l`l`g`l`g`g`l`l`l`g`l`g`l`l`l`l`l`i`l`l`i`l`l`l`g`l`i`l`l`l`l`g`l`i`l`g`g`g`l`g`g`g`g`g`g`l`l`l`l`l`l`l`l`l`l`i`l`g`l`l`l`l`l`i`l`i`l`l`l`l`l`l`l`g`l`l`l`l`l`g`g`l`g`l`g`l`l`l`g`g`g`l`l`g`g`g`g`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`i`l`i`i`i`i`i`l`l`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`g`l`g`l`g`l`l`l`l`g`g`g`g`g`g`d`l`l`l`g`g`g`l`l`g`l`l`l`l`lag`i`g`l`l`lae`l`l`l`g`l`g`l`g`l`g`l`g`g`l`g`l`g`g`gak`g`l`g`l`g`g`g`g`l`g`gak`l`g`g`l`l`l`l`g`g`l`l`l`l`l`l`g`l`l`l`l`w`l`l`l`lag`l`l`l`l`l`i`l`g`g`g`g`g`l`l`l`l`g`l`g`l`l`l`l`l`i`l`l`l`l`l`l`l`l`g`l`g`l`l`l`l`l`i`g`g`g`g`g`g`g`l`l`g`g`g`g`l`g`g`l`l`g`l`g`g`l`g`l`l`l`l`l`l`l`g`l`l`g`l`l`l`l`g`g`g`l`l`g`l`g`l`g`l`l`g`l`g`g`g`l`g`g`g`l`g`l`l`l`l`l`g`l`l`l`l`g`l`l`g`l`l`g`l`l`l`g`l`l`l`l`l`l`l`l`i`l`g`g`g`g`g`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`i`l`l`l`g`l`g`l`l`l`l`l`i`g`g`g`g`g`g`g`l`l`g`g`g`g`l`g`g`l`l`g`l`g`g`l`g`l`l`l`l`l`l`l`g`l`l`g`l`l`l`l`g`g`g`l`l`g`l`g`l`g`l`l`g`l`g`g`l`g`l`g`g`l`g`g`l`l`l`l`g`l`l`l`l`l`i`l`l`i`l`l`i`l`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`g`l`l`l`l`l`l`l`l`i`i`l`g`l`l`l`l`l`g`l`g`g`g`l`g`g`w`g`l`g`l`lae`l`l`l`l`l`lakae`i`l`lakakak`iakak`l`lak`lakak`i`l`g`g`lakak`lak`g`l`l`iakak`l`g`l`g`l`l`g`l`l`g`g`g`gakak`g`l`g`lakak`l`l`g`l`l`l`l`g`g`g`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`d`l`g`l`l`l`l`l`l`l`i`l`g`l`l`l`l`l`l`g`l`g`g`l`l`l`l`g`l`g`l`g`l`l`l`l`l`l`l`l`l`g`g`l`l`g`l`l`g`g`l`g`g`l`g`g`l`g`l`l`g`g`l`g`l`g`g`g`l`g`g`l`l`g`g`g`l`l`l`g`l`g`g`l`g`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`g`g`g`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`d`g`l`l`g`l`l`l`l`l`i`l`g`l`l`l`l`l`l`g`l`g`g`l`l`l`l`g`l`g`l`g`l`l`l`l`l`l`l`l`l`g`g`l`l`g`l`l`g`g`l`g`g`g`g`g`g`l`l`g`g`l`g`g`g`g`g`l`l`l`l`l`l`l`l`l`l`i`l`l`i`l`l`l`l`i`l`i`l`l`i`i`i`i",
-"`i`i`i`i`i`i`l`i`i`l`i`l`l`l`l`i`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`g`l`i`l`g`g`g`g`l`g`l`l`l`l`l`l`g`g`l`g`l`l`g`l`l`l`g`l`g`l`g`l`gakak`g`l`g`l`gae`l`l`g`l`lakaeaeag`l`lae`wae``akaeak`gaeagaeae`w`i`l`gagakae`wae`g`g`iaeaeaeak`l`g`g`g`l`l`g`l`l`i`l`lag`g`l`g`l`l`gae`g`l`l`g`l`l`l`l`l`g`g`l`l`l`g`l`l`l`g`l`l`l`l`l`l`l`l`l`g`l`i`l`g`g`g`d`l`l`l`l`l`l`l`g`g`g`l`l`g`l`g`l`l`l`g`l`g`l`l`g`g`l`g`g`l`g`l`g`i`l`l`g`l`g`g`l`l`l`l`g`l`l`l`l`l`g`l`g`l`g`g`l`g`l`g`g`g`g`g`g`g`g`g`g`l`l`l`g`l`g`l`l`g`l`l`l`l`l`l`l`l`g`l`g`l`g`g`l`g`g`l`g`l`l`l`l`l`g`g`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`g`l`i`l`g`g`g`g`l`g`l`l`l`l`l`g`g`g`l`l`g`l`g`l`l`l`g`l`g`l`l`g`g`l`g`g`l`g`l`g`i`l`l`g`l`g`g`l`l`l`l`g`l`l`l`l`g`g`l`l`l`l`g`l`g`g`l`g`g`g`g`l`g`g`g`g`g`l`l`l`l`g`l`l`l`l`l`l`i`i`l`i`l`i`l`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`l`i`i`i`l`l`l`l`l`i`i`l`l`l`l`l`l`g`l`l`l`l`l`l`g`d`g`g`l`l`g`g`l`l`l`l`l`g`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`g`g`gak`g`g`l`l`g`lak`i`i`g`l`gak`w``ag`l`l`l```lak`l`gae`gae`i`g`l`gae`lak`i`g`g`gag`g`g`lag``aeak`l`g`l`l`g`l`l`g`l`l`g`lae`l`l`l`g`l`lak`l`l`l`l`g`g`l`l`l`g`g`g`g`i`l`g`l`l`l`g`g`l`g`l`l`g`l`l`g`d`g`g`l`l`l`g`g`l`l`l`g`g`l`l`l`g`l`g`l`l`l`l`l`i`g`l`l`g`g`g`g`l`g`g`l`l`l`g`l`l`i`l`l`l`l`g`g`l`l`l`l`g`l`g`g`g`l`g`l`g`g`l`g`l`g`g`g`g`g`g`g`g`g`g`g`g`g`g`l`g`l`l`g`l`g`l`l`l`g`g`l`l`l`l`l`g`l`g`l`l`l`g`l`g`l`l`g`g`g`g`g`i`l`g`g`l`l`g`l`g`l`l`l`l`l`l`g`d`g`l`l`l`g`g`l`l`l`l`l`g`l`l`l`g`l`l`g`l`l`l`l`i`g`l`l`g`g`g`g`l`g`g`l`l`l`g`l`l`i`l`l`l`l`g`g`l`l`l`l`g`l`l`g`l`g`g`g`l`g`g`l`g`g`g`g`g`g`g`g`g`g`l`g`l`g`l`l`l`l`l`l`l`i`l`i`l`i`i`i`i`i`l`i`i`i`i`i",
-"`i`i`i`l`i`i`l`i`l`l`i`l`i`l`i`l`g`l`l`l`l`l`g`l`l`g`g`g`g`g`l`g`l`g`g`l`g`l`l`d`g`g`d`g`g`d`l`l`g`g`g`g`g`g`l`g`l`l`g`l`l`g`g`lae`l`g`g`g`l`lae`l`l`l`l`iag`l`lag`l`l`l```gae`l`gae`lak`l`g`g`lae`gae`g`g`g`gae`g`gag`i`g`iae`g`l`g`l`g`l`g`l`l`l`l`gae`l`l`l`g`l`lae`g`l`g`g`g`l`g`l`g`g`l`l`g`g`g`l`g`g`g`l`g`g`g`g`g`g`g`l`g`l`g`g`l`g`l`l`g`g`d`g`g`g`g`l`l`g`g`g`g`g`g`l`g`l`l`l`l`l`g`g`l`g`g`l`g`g`l`l`l`g`l`l`l`g`l`l`l`g`l`l`l`g`g`l`l`l`g`l`g`l`g`g`g`g`l`g`g`g`g`g`l`l`g`g`g`g`l`g`g`g`l`g`g`l`l`g`l`l`l`l`l`l`g`l`g`l`g`l`g`l`g`l`g`l`g`l`l`g`l`l`g`d`g`l`l`l`g`l`g`g`g`g`g`g`g`l`g`l`d`g`g`l`l`l`d`g`g`g`g`d`g`l`l`g`g`g`g`l`g`l`g`l`l`l`l`l`g`g`l`g`g`l`g`g`l`l`l`g`l`l`l`g`l`l`l`g`l`l`l`g`g`g`l`g`l`g`l`g`l`g`g`g`l`g`g`g`g`g`l`l`g`g`l`g`l`g`l`l`l`l`l`l`l`l`i`l`l`l`i`l`i`i`i`l`i`i`i",
-"`i`i`i`i`l`i`l`i`i`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`g`g`g`g`g`g`l`l`l`g`g`d`g`g`l`g`d`g`g`d`g`g`g`g`g`g`g`g`l`l`g`l`l`g`i`lae`l`l`g`l`lae`l`g`l`lak`i`g`g```g`l`g```gae`l`gae`gae`w`i`gakak`g`i`w`g`lag`w`g`gae`g`gaeak`g`g`g`g`l`g`g`g`g`l`l`gag`g`g`l`l`g`iae`g`g`l`g`g`l`g`i`l`l`g`l`g`g`g`l`l`l`l`l`g`l`l`l`g`g`g`g`g`g`g`g`l`l`l`g`d`g`g`g`g`g`d`d`g`g`g`g`g`g`d`l`g`g`l`g`l`l`l`l`i`g`g`l`g`g`l`l`l`l`g`l`l`g`g`g`l`g`g`l`l`g`g`g`l`l`g`g`g`g`l`g`g`g`g`l`g`g`l`g`g`g`g`g`g`g`g`l`g`g`g`l`g`g`g`l`g`l`g`l`g`l`l`l`g`l`l`g`l`g`g`g`g`l`g`l`l`l`g`l`g`g`g`g`g`l`l`g`l`l`l`g`g`g`g`g`g`g`g`l`g`l`l`g`g`d`g`g`l`g`d`g`d`g`g`g`g`g`d`g`g`g`l`g`l`l`l`l`i`g`g`l`g`g`l`l`l`l`g`l`l`g`g`g`l`g`g`l`l`l`g`l`l`g`l`g`g`g`g`l`g`g`g`l`g`g`l`g`g`l`g`g`l`g`l`l`g`l`l`l`l`l`l`l`l`i`i`l`i`i`l`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`l`i`i`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`i`l`g`g`l`g`d`g`g`g`g`g`g`g`l`l`g`g`g`g`g`l`g`l`g`g`g`g`d`g`l`g`l`l`i`g`l`gag`l`g`iak````````ak`g`l`w```wak```l`````gagak`l``ak```i````ak`g`g`g`l````akagag`lae`````i``ak`l`g`g`l`g`l`l`g`g`g`l`iag`l`g`l`iag`i`l`l`g`l`l`l`g`l`l`l`g`l`lal`l`l`l`lal`l`l`i`l`l`l`l`g`g`g`g`g`g`g`g`g`g`g`g`l`l`l`g`g`l`d`g`l`g`l`g`g`g`d`g`l`l`l`l`l`g`l`g`g`l`l`l`g`l`l`l`g`g`g`l`g`g`g`l`g`l`g`l`l`l`g`l`l`g`l`g`l`l`g`g`g`g`g`g`l`g`l`l`g`l`g`g`l`g`g`l`g`g`l`g`g`l`g`g`g`g`l`g`g`l`l`l`l`l`l`l`g`l`g`l`g`l`l`l`g`l`l`l`l`l`g`l`l`l`g`l`g`l`l`l`g`g`l`g`d`g`g`g`g`g`d`g`l`l`g`g`l`g`g`g`g`l`g`g`g`g`g`g`l`l`l`l`l`g`l`g`g`l`l`l`g`l`l`l`g`g`g`l`g`g`g`l`g`g`g`l`g`l`g`l`l`g`g`l`l`g`g`g`g`g`g`g`l`l`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`i`l`l`l`i`l`l`i`i`l`i`i`i`i",
-"`i`i`i`i`i`i`l`i`i`l`i`l`l`i`l`i`l`l`l`i`l`l`g`l`g`g`g`l`l`g`g`g`g`v`v`val`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`val`gakak`l`l`g`g`lal`v`v`v`v`v`v`v`v`v`va``v`v`v`v`v`v`v`val`l`l`g`g`g`g`g`g`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`v`val`v`v`v`v`vadadadadadadadadadada``g`g`g`g`g`g`l`l`l`l`g`g`g`g`g`g`g`l`l`l`l`g`g`g`g`g`g`d`g`g`l`l`g`l`d`g`g`g`g`l`g`g`g`l`l`l`l`l`g`g`g`g`g`g`g`g`l`l`l`g`g`l`l`g`l`g`l`g`l`g`g`g`g`g`g`l`g`g`g`g`g`l`g`g`l`l`g`l`l`g`l`l`l`l`l`l`l`l`g`g`l`l`l`l`l`l`l`l`l`l`g`l`l`l`g`l`g`g`l`l`g`g`g`g`g`g`g`l`g`g`g`g`l`g`l`l`l`l`l`g`g`g`g`g`g`l`l`l`l`g`g`l`g`g`g`d`g`g`l`l`g`l`d`g`g`g`g`l`g`g`g`l`l`l`l`l`g`g`g`g`l`g`g`l`l`l`l`g`g`l`l`g`l`l`l`g`l`g`g`g`g`g`g`l`l`g`g`l`g`l`g`l`l`l`l`l`l`l`l`i`i`l`i`i`i`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`l`i`l`i`i`l`l`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`n`g`g`g`l`g`l`galai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`n`l`l`l`l`l`g`d`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`faf`f`f`f`f`f`f`fag`l`g`l`l`g`g`g`l`l`g`g`g`g`g`g`g`g`l`g`g`l`l`l`l`g`l`l`g`g`g`l`g`g`g`l`g`g`l`g`l`g`g`g`l`g`g`l`g`l`g`l`g`g`g`l`g`l`l`l`g`g`g`l`g`l`g`l`l`g`l`g`d`l`l`g`l`g`g`l`l`g`g`l`g`l`l`g`g`l`g`g`g`g`g`l`l`l`l`l`l`g`l`l`l`g`l`g`g`l`g`l`l`l`l`l`g`l`g`l`l`g`g`g`l`g`l`l`g`l`g`l`g`g`g`l`l`g`g`g`g`g`g`g`g`l`g`g`g`l`g`l`l`l`g`l`g`g`g`l`g`g`g`l`g`g`l`g`l`g`g`g`l`g`g`l`g`l`g`g`g`g`g`l`g`l`l`l`g`g`g`l`g`g`l`g`l`g`l`g`d`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`i`l`i`l`i`i`i`i`i",
-"`i`i`i`i`i`i`l`l`l`i`l`i`l`l`i`l`i`l`l`l`i`l`g`i`l`l`l`l`l`l`g`l`gal`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`m`g`l`g`g`g`l`lai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`m`g`g`g`g`g`gal`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`l`g`g`g`l`l`g`g`g`g`g`l`g`g`l`g`g`g`g`l`g`g`l`l`l`l`g`l`g`g`l`g`g`g`l`g`g`l`l`g`l`g`g`g`l`g`l`l`g`g`g`g`l`g`g`g`l`l`l`l`l`g`l`g`g`g`g`g`g`g`l`g`g`g`g`l`g`g`l`l`g`g`l`g`g`g`l`l`g`g`l`l`l`g`l`l`g`g`g`l`g`g`l`l`l`g`g`g`g`l`g`g`g`l`l`l`g`g`g`l`g`g`l`l`g`l`l`l`l`g`l`l`l`g`g`g`g`g`g`l`g`g`g`g`g`g`l`g`l`g`l`l`l`l`g`l`g`g`l`g`g`g`l`g`g`l`l`g`l`g`g`g`l`g`l`l`g`g`l`g`l`g`g`g`l`l`l`l`l`g`l`g`g`g`g`g`g`l`g`g`g`g`g`g`g`l`l`l`g`l`l`l`l`l`l`l`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i",
-"`i`i`i`i`l`i`i`i`i`l`i`l`i`l`l`i`l`l`l`g`g`l`l`l`l`l`l`l`l`l`l`l`l`l`n`q`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`q`q`o`c`l`g`g`l`l`g`g`xac`q`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`faj`o`m`l`g`l`l`g`g`d`n`a`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`m`l`l`l`l`l`l`g`g`g`g`l`g`g`g`g`g`l`g`l`l`g`l`g`l`l`l`g`g`g`g`d`g`g`g`g`l`g`g`g`g`g`l`g`g`g`g`l`l`g`g`l`g`g`g`g`g`g`l`g`l`g`g`g`g`l`l`g`l`l`g`g`g`d`g`g`g`g`g`l`l`l`g`d`g`g`g`l`g`l`l`g`l`l`l`g`g`l`l`l`l`g`l`g`g`l`g`l`g`g`l`l`l`l`g`l`l`l`d`g`g`l`g`g`l`g`l`l`l`l`g`l`g`l`l`g`g`g`g`l`g`g`g`l`g`l`g`l`g`l`g`l`g`l`l`g`g`g`g`d`g`g`g`g`l`g`g`g`g`g`l`g`g`g`g`l`l`g`g`g`g`g`g`g`g`g`l`g`l`g`g`g`g`l`l`g`l`l`g`l`g`g`g`g`l`l`l`l`i`l`l`g`l`l`l`l`i`l`l`l`l`i`l`l`i`i`l`i`l`i`i`i",
-"`i`i`i`i`i`i`i`i`i`l`i`i`l`i`l`l`i`l`i`l`g`l`l`g`l`g`l`l`l`l`g`l`l`l`g`m`e`t`a`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`o`t`t`k`m`m```l`l`l`g`l`g`g`g`w`m`m`uaf`f`f`f`f`f`f`f`f`f`f`q`o`t`t`e```g`l`l`l`g`l`l`g`m`mab`t`aaf`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`t`t`o`o`q`q`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o```l`l`l`l`l`l`g`l`g`l`g`l`l`g`l`g`l`g`g`l`l`g`g`g`g`g`g`g`g`g`g`g`d`g`g`l`g`l`g`l`g`l`g`g`g`d`g`l`l`l`l`g`g`g`g`g`l`g`l`l`g`l`l`l`g`l`g`l`g`l`g`g`l`g`l`g`g`g`g`g`l`l`l`g`g`g`g`g`g`g`l`g`l`l`g`g`l`g`g`l`g`l`g`l`g`l`g`l`g`g`g`l`g`g`l`l`l`l`d`d`g`l`g`g`g`g`l`g`l`g`l`g`l`g`g`l`l`g`l`l`l`g`g`g`l`g`g`l`l`g`g`g`g`g`g`g`g`g`g`g`d`g`g`l`g`l`g`l`g`l`g`g`g`d`g`l`l`l`l`g`g`g`g`g`l`l`l`g`g`l`l`l`g`l`g`g`l`g`g`g`l`l`l`g`g`l`g`l`l`i`l`g`l`l`l`l`l`i`l`l`i`i`l`l`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`l`i`l`l`i`l`l`l`l`l`l`l`l`g`l`l`g`l`g`g`l`g`l`l`g`g`g`g`g`lae```h`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`mae`l`l`l`i`i`i`i`i`i`l`i`i`g`d`g`g`lad`f`f`f`f`f`f`f`f`f`o`t`e`y`i`i`i`i`i`i`g`l`l`g`g`d`g`d`g`i`x`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`tab`yak`i`i`i`i`iag`w`w`m`k`o`q`f`f`f`f`f`f`f`f`f`f`f`f`f`t```i`iak`i`l`l`g`l`l`l`l`g`l`l`g`g`l`l`l`g`g`g`l`g`g`l`g`g`g`g`g`g`g`g`g`g`g`l`l`g`g`g`l`l`g`d`g`g`d`g`g`g`l`g`g`g`g`l`g`l`g`g`g`g`l`g`g`g`l`d`g`g`g`g`d`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`l`g`g`g`g`g`g`g`g`l`l`l`l`l`g`g`g`g`g`g`g`g`g`l`g`g`d`l`g`g`g`g`g`g`l`g`g`g`g`g`g`g`g`l`l`g`l`l`g`l`l`l`l`g`g`l`g`g`l`g`g`g`g`g`g`g`g`g`g`g`g`l`l`g`g`g`l`l`g`d`g`g`g`g`g`g`l`g`g`g`d`l`g`l`g`g`g`g`l`g`l`g`l`g`g`l`g`g`g`l`g`g`l`g`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`i`i`l`l`i`i`i`i",
-"`i`i`l`i`i`l`i`i`l`i`l`l`l`l`i`l`l`l`l`i`l`l`g`l`l`l`g`l`g`l`g`g`g`g`g`g`l`l`l`i`i`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`makaeakakakakakakakaeakak`i`i`l`g`g`dalad`f`f`f`f`f`f`f`f`t`taaakakakakakakakakak`i`i`i`l`g`g`g`g`lalai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`kakakakakakaeaeakaeakaeakakak```m`q`f`f`f`f`f`f`f`f`f`f`q`taeaeaeaeakak`i`i`l`l`g`l`l`g`l`l`l`l`l`l`l`l`l`g`g`g`g`l`g`g`g`g`g`g`g`g`g`g`g`l`l`l`l`l`g`g`g`g`g`g`l`d`g`g`g`g`g`g`g`g`l`g`l`g`g`l`l`g`l`g`g`g`g`l`g`g`g`g`g`l`g`d`g`g`g`g`g`g`g`l`g`g`l`l`g`l`g`g`g`g`l`g`g`g`g`l`g`l`l`l`g`g`g`g`g`g`g`g`l`l`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`l`g`l`l`g`l`l`g`l`l`l`l`l`l`l`g`g`g`l`g`g`g`g`g`g`g`g`g`g`g`g`l`l`l`l`l`g`g`g`g`d`g`l`d`g`d`g`g`g`l`g`g`l`g`l`g`g`l`g`l`l`g`l`g`g`l`g`g`g`g`l`l`l`g`g`l`l`l`g`l`l`i`l`l`l`i`l`l`l`i`i`i`i`i`i`i",
-"`i`i`i`i`l`i`i`l`i`i`i`i`i`i`l`l`l`l`l`l`l`l`l`g`l`l`l`g`l`g`g`l`g`g`g`g`g`g`l`lak`r`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`c`w`w`w`w`wagag`wag`wagaeak`i`i`l`l`g`vai`f`f`f`f`f`f`q`tab```w`w```w`w`w`w`wagagaeak`i`i`l`l`g`g`i`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t```w`w`w`w`wag`w`wag`w`w`wag`w`b`w```uaf`f`f`f`f`f`f`f`f`aab```````w`wagae`i`l`l`g`g`g`g`g`g`g`l`l`g`l`l`l`l`l`g`g`g`g`g`g`l`g`g`l`g`g`g`g`g`l`l`g`g`l`l`g`g`g`g`g`g`g`l`g`g`g`g`g`d`g`g`l`l`l`g`g`g`d`l`g`g`g`g`l`g`g`g`g`g`g`g`g`g`g`g`g`g`l`l`g`l`g`g`g`l`g`g`g`l`g`l`g`g`g`l`l`g`l`l`l`g`l`l`g`g`g`g`g`l`l`g`g`d`l`g`g`g`g`g`g`g`g`g`d`g`g`g`g`g`g`g`g`g`g`l`l`g`l`g`l`l`l`g`g`g`g`g`g`l`g`g`l`g`g`g`g`g`l`l`g`g`l`l`l`g`g`g`g`d`l`l`g`g`g`g`g`d`g`g`l`l`l`g`g`g`g`g`g`g`l`g`l`l`l`l`g`g`l`l`l`g`l`l`l`l`l`l`i`l`i`l`i`i`l`i`l`i`l`i`i`i",
-"`i`i`i`i`i`i`i`i`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`g`l`g`l`g`g`g`d`g`g`g`g`lakae`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`m`y`c`c`c`c`c`y`y```````waeak`i`l`g`va``f`f`f`f`f`f`q`tab`c`c`c`c`c`c`c`y`y`y`y```waeak`l`l`g`g`l`l`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`oab`c`c`c`c`c`c`c`c`y`y`y`y`y`y`y`y`y`y`yaaaf`f`f`f`f`f`f`f`o`k`m`c`m`m`c``agak`i`l`g`g`g`g`g`g`g`g`l`g`g`g`g`g`g`g`l`i`g`l`g`g`l`l`l`g`g`g`g`g`g`l`g`g`g`l`l`g`g`g`l`g`g`g`g`g`g`l`g`g`g`g`g`g`g`g`g`g`g`g`l`g`g`g`g`g`g`g`g`g`g`g`g`g`d`d`g`g`g`g`g`l`g`g`l`g`g`l`g`g`g`g`l`g`g`g`g`g`l`l`l`l`g`l`g`g`g`g`g`g`l`g`g`d`g`g`g`g`g`g`g`g`d`d`d`g`g`g`g`g`g`g`g`g`g`g`l`g`l`g`g`g`g`g`l`i`g`l`g`g`l`l`l`g`g`g`g`g`g`l`g`g`g`l`l`g`g`g`l`l`g`g`g`g`g`l`g`g`g`g`g`g`g`g`g`g`g`l`l`g`l`g`g`l`g`g`l`g`g`l`l`l`g`g`l`l`l`l`l`i`l`i`i`i`i`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`l`i`l`i`l`i`i`i`i`l`l`l`l`l`l`l`g`l`g`g`l`l`g`l`g`l`g`g`d`g`l`g`l`iakaga``f`f`f`f`f`f`f`f`f`f`f`f`f`f`pab`k`k`k`k`e`e`m`m`c`y```waeak`i`lal`v`j`f`f`f`f`f`q`tabab`k`e`k`e`e`k`e`e`e`m`c`y`c`m`cae`g`g`gak`i`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`k`k`e`k`k`e`e`e`k`k`m`c`c`c`c`c`c`c`m`m`m`zaf`f`f`f`f`f`f`tab`k`k`k`e`e`y`wae`i`l`g`d`g`g`g`g`l`g`g`g`l`g`g`l`l`g`g`l`g`g`l`l`l`g`l`l`l`l`g`g`d`g`g`g`g`l`g`g`l`g`g`l`d`g`g`d`d`g`l`g`g`g`g`g`g`g`g`g`g`wag`g`g`g`g`g`g`g`g`g`g`g`g`d`g`d`d`d`g`g`g`g`l`l`g`g`g`g`g`g`l`g`g`g`l`g`g`l`g`g`g`g`l`l`g`g`g`g`g`g`g`l`g`g`d`g`g`l`g`g`g`g`g`d`d`g`g`g`d`d`g`g`g`g`l`g`g`g`l`g`g`l`g`l`g`l`g`g`l`l`l`g`l`l`l`l`g`g`d`g`g`g`g`g`g`l`l`g`g`g`g`g`g`d`d`g`g`l`g`g`g`g`g`g`g`g`g`g`g`g`g`l`l`g`g`l`g`l`l`g`g`l`l`g`g`l`l`l`l`l`i`l`l`l`l`l`i`l`i`i`i`i",
-"`i`i`i`l`i`i`i`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`g`l`g`g`g`d`g`g`g`g`g`iakagagai`f`f`f`f`f`f`f`f`f`f`f`f`f`q`tabababab`k`e`m`c`y```wagae`i`l`l`v`n`f`f`f`f`f`q`tab`e`kabababababab`k`k`e`m`c```cae`i`l`g`g`gakal`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`tababababab`k`e`m`e`c`c`y`y`y`c`y`c`c`u`m`e`n`f`f`f`f`f`f`t`t`t`tabab`e`c`y`m`m`y`i`g`g`l`g`g`g`g`l`g`lag`y`y`m`y`m`g`l`g`l`g`l`l`g`g`m`c`g`g`m`y`g`g`g`g`g`l`g`g`g`g`g`d`g`g`g`g`g`l`g`g`d`d`d`g`d`d`g`dae`d`g`d`d`d`d`g`d`g`g`d`g`g`g`d`g`d`d`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`l`l`l`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`d`d`g`d`g`g`g`g`l`g`g`g`g`l`g`l`l`l`g`g`g`g`g`l`g`l`g`l`l`g`g`g`l`g`g`g`d`g`g`g`g`g`l`g`g`g`d`g`g`g`g`g`g`g`l`g`g`d`d`d`g`d`g`g`g`g`g`g`g`g`g`g`g`g`g`l`l`g`l`l`l`l`g`l`l`l`l`l`l`i`i`i`i`i`i`l`i`i`i",
-"`i`i`i`i`i`l`i`l`i`i`i`i`i`l`l`i`l`l`l`l`g`l`l`l`g`l`l`g`l`g`g`g`d`g`g`l`g`g`l`i`iakaead`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`tab`k`e`c```wagagaeak`i`l`vad`f`f`f`f`f`a`t`k`c`e`kab`t`t`t`tab`k`e`c`y`y`y`c`wae`g`g`gaeagalad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`k`e`c`m`w`y`y```w`w`w`y`c`y`yaa`baf`f`f`f`f`a`t`t`t`t`tab`k`c`wae`w`l`g`g`g`g`g`iagae`g`g`gae`l`gag`gae`g`g`gaeagak`l`l`l`l`m`l`i```g`g`g`g`g`g`l`l`gae`iae`iakak`d`g`g`laeae`d`d`d`d`daeak`gae`d`d`gakaeak`g`g`g`g`g`g`g`g`d`gaeakae`dae`l`g`l`gakaeak`g`l`iae`gaeae`l`d`l`g`l`g`l`g`l`l`g`g`l`g`g`g`g`g`g`g`g`g`g`g`g`d`d`d`g`g`g`g`g`g`g`g`g`g`l`g`g`g`g`g`g`l`l`g`g`g`g`l`l`l`g`l`l`l`l`l`l`g`g`l`g`g`g`g`g`g`l`g`g`d`g`g`g`g`g`d`g`g`g`g`d`d`g`d`g`g`d`g`g`d`g`g`g`l`l`l`l`l`l`g`l`l`l`g`g`l`l`l`l`i`l`l`i`l`l`l`i`l`i`i`i`i",
-"`i`i`i`i`i`i`i`l`l`l`i`l`i`l`i`l`i`l`l`l`l`l`g`l`g`l`l`g`g`g`g`g`d`g`g`l`l`g`l`l`i`iak`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`tab`k`c```waeakak`i`i`l`v`s`f`f`f`f`f`q`t`e`c`c`eabab`t`t`tabab`k`e```w`w```yagae`g`g`lae``al`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`t`k`e`c```yae`c`yagakae`c`y`y`c`m`wag`n`f`f`f`f`o`t`t`t`t`tab`e`c`wakag`l`g`g`g`g`gaeaeae`w`l`g`g`g`gae`g`g`g`l```wag`w```g`l`g`i```c`l`g`l`g`d`g`d`g`g`gae`yae`yaeag`i`d`l`yaeae`y`l`g`d``aeae`c`w`g`g```wae`w```g`g`g`g`g`d`d`g`l``ag`w``ae`w`g`g`iaeaeagak`g`i`````wag``ak`g`g`g`g`g`g`g`g`l`g`g`g`g`g`g`g`d`g`g`d`d`d`d`d`d`d`l`l`g`g`g`g`g`g`g`g`g`g`g`l`g`g`g`g`g`g`g`g`l`g`l`l`l`l`g`l`g`g`l`l`g`l`g`g`d`g`d`g`g`g`g`d`d`d`d`d`d`d`d`g`d`d`d`g`d`g`g`g`g`l`l`g`g`g`g`g`l`g`l`l`l`l`g`g`g`l`g`l`l`l`l`l`l`l`i`i`l`i`i`i`i`i`i`i",
-"`i`i`i`i`i`l`i`i`i`i`i`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`g`g`g`l`g`g`g`l`l`g`g`l`l`g`l`lalai`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`k`e`y`waeak`i`i`l`lala`af`f`f`f`f`a`t`m`wakag`y`eabab`tabab`k`m`kagak`i`iag`l`l`l`g`g`gag`v`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`tab`k``ag```mae`i`i`lak`y`wag`w`c`baead`f`f`f`fab`t`t`t`tabab`e`y`wakag`g`l`g`g`g`g`w`c```w`g`l`g`g`gag`g`g`l`i``aeaeag`cak`l`l`i```w`g`l`lak`y`y`y`c`y`d`g`c`dae`d`dae`gae`d`d`d`gae`gae`i`l`d`gag`g`i``agaeae`yak`g`w`y`y`y`yag`daeae`lae`gag`d`d`l```cagae`g`lae`i`d`l`g`w`g`g`l`g`g`g`g`g`g`g`g`l`g`g`g`g`g`g`g`g`g`g`g`g`d`g`g`g`g`g`l`g`g`g`g`g`g`g`g`g`l`g`d`g`g`g`g`l`g`g`g`g`l`l`l`l`l`l`l`g`l`g`l`g`g`d`l`l`d`d`g`l`d`d`d`d`g`g`d`d`d`d`g`g`g`g`g`g`g`g`g`g`l`l`l`l`g`l`g`l`g`l`l`l`g`l`l`l`l`i`l`l`l`l`l`l`i`l`l`l`i`l`i`i",
-"`i`i`i`i`i`i`l`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`g`g`l`l`g`l`l`l`g`l`lad`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`k`m``agak`l`g`l`g`va`af`f`f`f`f`f`t`m`lagak`w`c`eabab`t`k`e`m`c``akak`l`lae`l`g`g`d`l`g`r`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`e`y`wak`wae`y`g`g`lak``agagagagak`i`s`f`f`f`f`tabab`t`t`t`k`m`yagakag`l`g`lae`gaeak`l`l`w`g`g`g`g`gag`g`g`gae``agagagae`i`g`g`wakagae`g`g`d`l`d`g`d`g`g`l`y`dae`g`dae`gae`d`d`d`gae`gae`g`g`l`gae`gak``aeagagag`l`g`g`l`g`d`d`d`daeae`gag`lag`l`l`w`g`d`lae`d`gag`i`g`g`g`w`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`l`g`g`g`g`l`g`l`g`l`g`g`g`l`l`l`g`g`l`g`g`g`g`g`g`l`l`l`l`g`g`g`g`g`g`l`g`g`g`g`d`g`d`d`d`g`d`l`d`d`g`d`d`g`g`g`d`d`g`g`g`g`g`g`g`l`l`g`g`l`g`l`g`l`l`g`l`g`l`l`g`g`g`g`g`g`i`l`i`i`i`i`l`l`l`i`i`i`i`i`i",
-"`i`i`l`i`i`i`i`i`i`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`l`l`l`g`g`l`l`g`g`g`l`g`g`l`g`g`ga``f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`k`m``ae`i`i`g`g`va`af`f`f`f`f`f`tab`i`l`w```w`mabab`k`kab`yagaeak`i`l`i`gag`g`g`g`l`g`la`ad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`m``aeakag`g`i`y`g`g`g`cak`l`gak`g`l`v`f`f`f`q`t`eabab`t`t`k`m``ae`iag`g`l`gag`g`w`g`g`l```g`g`g`g`gae`g`g`g`l`cak`g`d`l`d`daeag`g`g`c`l`g`g`g`g`g`g`g`d`g`y`gae`g`dae`g`iag`d`gagak`g`i```g`g`````l`l`cak`l`g`i`l`g`d`g`d`d`d`d`daeae`gae`lag`l`g`w`g`laeae`d`gae```i`g`wak`l`g`g`g`g`g`g`g`g`g`g`d`l`l`g`g`g`g`g`g`l`g`g`g`g`l`g`g`g`g`g`l`g`g`g`g`g`d`g`g`g`g`g`g`g`g`g`l`g`g`g`g`d`d`d`d`d`g`g`g`g`g`g`g`g`g`g`g`g`d`g`g`g`g`g`d`d`g`d`d`d`g`g`g`g`g`g`g`l`l`l`l`l`l`g`l`l`l`l`l`l`g`g`l`g`l`l`l`l`l`l`i`i`l`i`l`i`i`l`l`l`i`i`i",
-"`i`i`i`l`i`i`l`i`l`i`l`i`i`i`i`l`l`l`l`l`l`g`l`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`lal`j`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`tab`m``ae`i`g`gala`af`f`f`f`f`f`t`t`i`g`iak`y`k`k`k`t`k`m`y`m`m``ak`g`g```c`c`c`w`g`gae`c`r`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`cagae`w`w`l`g`c`c`l`g`g`w`c``ak`g`g`v`f`f`f`aab`c`eababab`k`c`w`w`m`c`c`c`cak`gak`c`cag`w`w`g`gae`c`c`c`l`l`g`g`w`c``ak`g`g`y`y`d`d`c`y`g`d`g`g`g`g`g`g`c`c`gagak`d`y`d`dak`y`cak`g`d`g`i`c`cak`w`w`g`g`w`c``ak`g`g`g`g`d`d`g`dak`y`w`d`c`lak`w`gae`c`c`i`cak`dae`l```c`i`g`l`g`g`g`g`g`g`l`d`g`g`g`d`g`d`g`d`g`g`g`l`l`g`g`l`l`l`g`l`l`g`l`g`g`l`l`l`g`d`g`g`g`g`g`d`g`l`l`g`g`g`g`g`g`g`g`d`d`d`d`d`d`d`d`g`g`g`g`g`g`g`d`d`d`d`d`d`d`d`d`g`g`g`g`g`g`g`g`g`l`l`l`g`l`g`l`g`g`l`g`l`l`g`g`l`g`l`l`l`l`l`i`l`i`i`l`i`i`i`i`i`i`i`i",
-"`i`i`i`i`i`l`i`i`l`i`i`l`l`l`l`i`l`l`l`l`l`l`g`l`l`g`g`l`g`l`l`g`g`i`l`g`l`g`l`l`l`g`l`g`l`n`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`tab`e`yagak`lal`v`j`f`f`f`f`f`tabagak`i`iae```c`e`k`e`m``agae`i`g`g`g`l`l`g`g`g`g`g`g`g`l`vaf`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`yagak`l`g`g`g`g`g`g`g`l`g`g`g`g`g`g`v`f`f`f`o`m```m`kabab`e`y``ak`i`l`g`l`l`g`g`g`g`g`l`g`g`g`l`g`g`g`g`l`g`g`l`l`l`l`g`g`g`g`g`l`g`d`d`d`g`g`d`g`d`g`g`g`d`g`d`d`d`d`g`g`d`g`d`g`g`g`d`g`d`l`l`l`g`g`g`g`g`g`g`g`g`g`d`g`d`d`d`g`g`g`d`g`g`l`l`l`g`g`g`g`g`l`gae`d`g`d`g`g`g`g`l`l`g`l`g`g`g`g`g`g`g`g`g`g`g`d`g`g`d`g`l`g`g`l`l`g`g`g`l`g`g`g`g`g`g`l`l`g`g`g`g`g`g`g`l`g`g`l`l`l`l`g`g`g`g`g`l`g`d`d`g`g`g`d`g`d`g`g`g`g`g`d`d`d`d`g`g`d`g`d`g`g`g`g`g`g`l`l`l`g`l`l`l`g`l`l`l`l`l`g`l`l`g`l`l`l`l`g`l`l`i`l`i`l`i`l`i`i`i`l`i`i",
-"`i`i`i`i`i`l`l`i`l`l`i`i`i`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`g`i`l`l`l`l`g`g`g`g`g`g`s`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`tab`e`cagakal`vai`f`f`f`f`q`tab`i`g`lakae```c`e`e`e`c`y`waeak`l`g`g`g`g`l`g`l`l`g`g`g`g`la``f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`t`k`e```w`l`g`d`g`g`g`g`g`g`l`g`g`l`g`g`l`x`f`f`f`t`````c`e`kab`e`yaeae`i`l`l`g`g`g`g`g`g`g`g`l`g`g`l`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`d`g`g`d`g`g`g`g`g`g`g`g`g`g`d`g`d`d`g`d`d`d`g`i`g`g`g`g`d`g`g`g`l`g`l`l`g`g`g`g`g`g`d`g`g`d`g`d`g`d`d`g`d`d`g`g`g`g`g`g`g`g`g`gae`e`mae`d`d`d`g`g`d`g`g`l`g`g`l`g`g`l`g`g`g`g`g`g`g`g`g`g`l`g`g`d`i`l`g`l`l`g`g`g`g`g`g`g`g`g`g`l`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`d`g`g`d`g`g`g`g`g`g`g`g`g`g`d`g`d`d`g`g`d`g`d`i`g`g`l`g`g`l`g`l`l`l`l`l`g`l`l`g`l`g`g`l`g`l`l`g`l`l`l`l`l`l`l`l`i`i`l`i`i`l`i`i`i`i`i",
-"`i`i`i`i`i`i`l`i`l`l`l`l`l`i`l`i`l`i`l`i`l`l`l`l`l`l`g`l`l`g`l`l`g`g`l`l`l`g`l`l`l`g`g`g`galaf`f`f`f`f`f`f`f`f`f`f`f`f`f`o`tab`k`m`w`v`vai`f`f`f`f`f`tab`i`l`lakae`w`y`e`e`e`c``agae`i`l`l`l`d`g`l`g`g`l`l`g`l`g`galad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`m`waeak`i`g`d`d`gal`g`g`g`g`i`g`l`g`l`l`n`q`q`taeag`y`m`k`k`m``akak`i`l`g`l`l`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`l`g`l`g`g`g`g`g`g`g`d`d`g`g`g`g`g`g`g`g`g`g`g`g`g`g`d`d`g`g`d`d`d`d`l`g`g`g`g`g`g`l`g`g`l`l`g`l`g`g`g`d`g`d`d`g`g`g`g`g`g`g`d`d`d`g`g`l`g`g`g`g`g`g`l`g`l`l`i`d`g`d`d`d`d`g`g`g`i`g`l`g`l`g`g`l`g`l`g`g`g`g`g`g`l`g`d`l`l`l`g`l`l`g`g`g`g`g`g`l`g`g`g`g`g`g`g`g`l`g`l`g`g`g`g`g`g`g`d`d`g`g`g`g`g`g`l`g`d`g`g`g`d`g`d`g`g`g`g`d`d`g`l`l`g`g`g`g`g`l`g`l`l`l`l`l`l`l`l`l`g`g`l`g`l`l`g`l`l`l`l`l`l`l`l`i`l`i`l`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`l`l`l`l`i`l`i`l`i`l`l`i`l`l`g`i`l`l`l`l`l`l`l`g`d`g`l`l`l`g`l`g`l`l`l`g`l`n`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`k`m`x`vai`f`f`f`f`f`tab`i`g`iakae`w`c`m`e`e`m`yagak`i`i`l`g`g`l`g`g`g`g`l`g`g`g`g`g`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c`wae`i`i`g`g`g`vadaia``r`g`l`g`i`g`l`l`g`c`eab`iag```m`e`e`c`wak`g`i`g`l`g`g`g`g`g`l`g`g`d`d`l`g`g`l`g`g`d`g`g`g`l`l`g`g`g`g`g`g`l`g`l`g`g`g`g`g`g`g`d`g`g`d`g`g`g`g`g`g`g`d`d`l`l`l`l`g`g`g`g`g`g`l`g`g`l`g`g`g`d`d`g`g`g`g`g`d`d`g`d`d`d`d`d`g`g`g`g`l`g`g`g`g`l`l`l`i`g`g`g`g`d`d`d`g`g`l`l`l`l`g`l`g`g`d`l`g`g`g`g`g`g`g`g`d`d`l`g`l`g`g`g`g`g`g`g`g`d`d`l`g`g`l`g`g`g`l`l`l`l`l`g`g`g`d`g`d`g`d`g`g`g`g`g`g`g`g`g`g`g`g`g`d`g`d`g`g`g`g`d`l`l`i`l`g`l`g`l`g`l`l`l`l`g`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`i`l`i`l`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`l`l`l`l`l`l`i`l`l`i`l`l`g`g`l`g`g`g`g`g`g`g`g`g`g`l`l`g`l`g`g`g`g`g`g`l`s`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`tab`x`vai`f`f`f`f`f`tab`i`l`i`iae`w`y`m`e`e`m`y`wae`i`g`d`g`g`g`g`g`g`g`g`g`l`g`g`g`g`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`m`yagak`i`l`l`lal`vaf`f`f`bak`g`l`g`g`g`g`g`d`g`g`iak`w`c`e`e`y`w`i`l`l`l`g`g`l`d`g`g`g`g`l`l`i`ialal`i`l`g`d`d`l`g`g`l`g`g`lal`v`v`sadad`s`l`g`g`l`g`g`g`g`g`g`g`g`g`d`d`g`i`v`v`vadadad`s`i`l`g`g`g`l`g`g`g`d`g`d`g`g`g`g`d`g`d`g`g`g`g`d`d`d`d`d`g`g`l`d`lal`v`va`adadad`r`i`l`g`g`g`d`d`d`l`l`l`l`lal`lal`l`d`g`g`d`d`d`g`d`d`d`d`l`g`g`g`g`g`g`g`g`g`l`l`l`l`g`lalal`v`vad`sadad`sal`l`l`g`d`d`g`g`g`d`d`g`g`l`g`g`g`g`g`g`g`g`g`d`g`lal`v`va`adadad`sal`i`g`l`g`l`g`l`i`vadada``l`g`l`l`l`g`l`l`g`l`l`l`l`l`l`l`i`i`l`i`i`i`l`i`i",
-"`i`i`i`i`i`i`l`i`l`i`i`l`l`l`g`l`l`g`l`l`l`g`l`g`l`l`l`l`g`g`g`g`g`g`d`g`l`l`l`g`g`g`g`l`g`lal`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`b`vai`f`f`f`f`q`tab`r`l`iakae`w`y`m`e`e`m`y`waeak`g`d`d`d`d`d`g`d`g`g`g`g`g`g`g`gal`s`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`tab`k`m``ae`i`i`l`g`lalad`f`f`f`tae`d`d`d`g`g`g`d`d`d`g`iak`w`y`m`m``agak`g`g`g`l`l`l`g`lalalal`v`v`vadadaiafadak`g`d`d`d`g`g`g`v`v`sai`f`f`faf`f`f`n`l`l`g`l`g`g`g`g`d`g`g`g`l`va``naf`f`f`f`f`f`f`nal`g`g`g`g`g`l`g`g`g`g`g`d`g`g`d`g`g`g`d`g`d`d`d`d`d`d`g`i`v`vadai`f`f`f`f`f`faf`s`g`g`g`l`v`v`v`sadadadadadaiaiad`d`g`g`g`d`d`g`g`d`d`d`g`l`l`g`d`g`g`g`g`l`g`gal`va`adaiaf`f`f`f`f`f`f`f`jad`v`g`d`g`d`g`g`g`d`g`l`g`g`g`g`g`g`g`g`l`l`va`ad`j`f`f`f`f`f`f`f`jad`r`l`l`l`l`vadaf`f`fag`l`l`g`l`l`l`l`l`l`g`l`l`l`l`l`i`i`i`i`i`i`i`i`i",
-"`i`i`i`i`i`l`i`l`i`l`l`i`i`l`l`l`g`l`g`g`g`l`g`g`g`g`g`l`l`l`g`g`l`g`g`d`g`l`l`g`g`g`d`g`g`galai`f`f`f`f`f`f`f`f`f`f`f`f`f`a`m`vai`f`f`f`f`f`tab`l`l`lakae`w`y`m`e`e`m`yagae`i`i`i`d`d`d`d`d`d`g`d`g`d`g`g`g`g`g`vad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`m`wae`i`i`g`gal`vaf`f`f`q`t`d`d`d`d`d`d`d`d`d`d`d`lak`w`y`c`c`w`ral`v`v`v`v`vadadadadaiai`j`f`f`f`f`f`f`k`y`g`g`d`d`dal`v`saf`f`f`f`f`f`f`f`f`fafak`l`g`g`g`g`g`g`g`l`va``n`f`f`f`f`f`f`f`f`f`f`f`x`d`g`g`g`g`g`g`g`g`g`g`g`g`d`g`d`g`g`d`d`g`d`d`d`lal`vadaf`f`f`f`f`f`f`f`f`f`f`h`g`g`vad`f`f`f`faf`f`f`f`f`f`u`y`g`g`g`g`g`d`g`g`d`d`d`l`g`g`g`d`d`g`d`lal`v`sai`f`f`f`f`f`f`f`f`f`f`f`f`f`fah`g`g`g`g`g`g`g`g`g`l`l`g`g`g`g`g`l`va``n`f`f`f`f`f`f`f`f`f`f`f`f`fai`sa``v`saf`f`f`a`t`g`l`l`g`l`l`l`l`l`l`l`l`l`l`i`l`i`l`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`l`l`i`l`l`l`l`l`l`g`g`l`g`g`g`l`g`g`g`g`l`g`g`g`l`d`g`d`l`l`l`l`l`l`l`l`gad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`vad`f`f`f`f`f`tabak`g`l`iae`w`y`m`m`e`m`y`wae`i`i`l`g`l`g`d`d`d`d`d`d`g`d`g`d`g`g`g`v`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`yagakak`g`l`l`v`n`f`f`f`a`e`d`g`d`g`d`d`d`d`d`d`d`l`iae```y`yag`sai`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`tae`g`l`d`g`v`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`i`l`g`g`g`g`g`l`vadaf`f`f`f`f`f`f`f`f`f`f`f`f`f`b`g`d`g`g`g`g`d`g`g`d`g`g`g`g`d`g`g`g`d`g`d`gal`vadaf`f`f`f`f`f`f`f`f`f`f`f`f`f`u`g`v`j`f`f`f`f`f`f`f`f`f`f`o`y`d`d`d`d`g`d`d`g`g`d`d`d`g`l`g`l`g`lal`v`s`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`j`l`g`g`d`g`g`g`g`g`g`g`g`g`g`l`vadaf`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`m`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`l`i`i`i`i`i`l`l`l`l`l`l`l`g`g`i`l`g`g`g`l`g`g`g`g`g`g`d`g`d`d`g`g`g`l`g`l`g`gal`f`f`f`f`f`f`f`f`f`f`f`f`f`f`n`f`f`f`f`f`tab`i`g`i`iae`w`y`m`e`e`m`y``ae`i`l`g`d`l`w`cae`d`d`d`d`d`dak`d`d`d`g`g`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`t`k`e`yag`i`i`l`l`v`s`f`f`f`f`o`y`g`g`g`l```mak`d`d`i`g`g`iae`w```w`rad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`aab`l`g`l`lala`af`f`f`f`f`f`f`f`f`f`f`f`f`f`f`p`l`iae`i`gal`vad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`w`cak`g`d`g`g`g`g`g`g`g`d`g`g`g`g`g`g`d`gala`ai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`x`v`f`f`f`f`f`f`f`f`f`f`f`tak`d`g`gak`c`w`g`d`d`d`d`d`d`d`g`g`l`va``n`f`f`f`f`f`f`f`q`o`t`tajaf`f`f`f`f`f`f`faf`i`g`g`g`g`g`g`g`l`l`l`l`l`vad`f`f`f`f`f`f`f`f`q`o`t`t`t`o`f`f`f`f`f`f`f`f`f`f`o`m`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`i`l`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`l`l`l`l`l`l`l`l`l`l`l`l`g`g`g`l`l`g`l`l`g`g`g`g`g`d`d`d`g`g`g`g`g`l`l`g`l`lai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`tae`i`l`iaeag`y`c`e`e`m`y``agak`i`g`d`d`dag`g`d`g`g`d`d`d`i`w`d`g`d`dalad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`t`k`c`wae`i`l`l`va`af`f`f`f`f`tak`g`l`i`iakak`w`l`d`d`d`l`i`iagagaeak`x`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`c`l`g`g`va`af`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q```i``ak`i`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`p`e`g`l`l`g`w`m`e`y`g`g`g`d`g`d`d`g`g`g`va`af`f`f`f`f`f`f`f`f`f`a`t`t`taj`f`f`f`zad`f`f`f`f`f`f`f`f`f`f`a`t`l`g`g`l`l`gae`g`d`d`d`d`d`d`g`g`l`vadaf`f`f`f`f`f`f`f`o`t`kag`ialad`f`f`f`f`f`f`f`faj`l`l`l`g`g`g`l`g`l`g`g`v`s`f`f`f`f`f`f`f`f`o`t`m`w`l`l`i```j`f`f`f`f`f`f`f`f`o```l`l`i`i`i`i`i`l`i`l`l`l`l`l`l`l`l`i`i`l`i`l`i`i",
-"`i`i`i`i`i`i`l`i`l`i`i`i`i`l`i`l`l`l`l`l`l`l`l`l`g`g`l`g`l`g`g`l`g`g`l`i`l`g`d`d`g`l`g`g`l`g`l`l`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`yak`iakaeag`y`c`m`e`m`y`waeak`i`l`d`g`d`dag`g`g`d`g`g`d`d`y`d`d`d`g`g`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`t`k`e`wak`i`r`va`af`f`f`f`f`q`tae`i`lakaeaeae```i`l`g`d`d`l`iakakakak`raa`o`o`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`tae`i`w`va`af`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`kaeak`b`vad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`p`yak`i`l`l`g`gae`g`g`g`g`g`gakaeak`l`vad`f`f`f`f`f`f`f`f`f`f`o`t`cakakagah`f`faiai`f`f`f`f`f`f`f`f`f`f`o`eaeak`i`i`i`l`w`g`g`g`l`g`daeaeal`vad`f`f`f`f`f`f`f`f`o`t`cae`i`i`v`n`f`f`f`f`f`f`f`f`f`eak`l`l`iag`iagae`lal`vaf`f`f`f`f`f`f`f`q`t`w`l`l`rakag`waeai`f`f`f`f`f`f`f`t`w`iaeaeagagae`i`iakakak`iak`i`l`l`l`iakal`i`i`i`i",
-"`i`i`i`i`i`i`l`i`i`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`g`g`l`g`l`g`l`l`g`g`g`l`l`g`g`d`d`g`g`g`g`g`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`e`waeakaeag```m`m`e`m`y`wagak`i`l`l`g`g`d`dae`g`g`d`g`g`g`g`w`d`d`d`d```vaf`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`magak`v`vadaf`f`f`f`f`f`a`eag`maeag`w`w`w```i`l`l`g`g`d`g`l`l`i`lak`w`c`c`yad`f`f`f`f`f`f`f`f`f`f`f`f`q`takaka`a`af`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`wag`vad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`maeaeak`i`l`lag`g`g`g`g`g`iagag`x`vad`f`f`f`f`f`f`f`f`f`f`t`t`m`wakaeag`b`j`faf`f`f`f`f`f`f`f`f`f`f`f`t`m`y`cakaeakae`w`i`l`g`g`i`mag`r`vai`f`f`f`f`f`f`f`f`o`t`m`w```cala`af`f`f`f`f`f`f`f`f`f`o`m``akak`y`yagag`walad`f`f`f`f`f`f`f`f`t`e`wakakaeag```c`y``af`f`f`f`f`f`f`tagakag`y```w``ae`iakaeakaeakak`i`iakak`iakak`i`i`i",
-"`i`i`i`l`i`i`i`i`i`i`i`i`l`i`l`l`l`l`l`l`l`l`l`l`l`g`l`g`g`l`g`l`g`l`l`l`l`l`g`g`g`l`d`d`g`d`g`gal`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`tab`m```wag`w`y`m`m`e`m`y`waeak`i`i`l`g`d`g`g`dae`d`g`g`d`g`g`gag`g`g`gakala``f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`e`m`u`b`x`v`v`s`j`f`f`f`f`f`f`f`t```i`i`y`w`y`y```yak`l`g`g`g`g`d`d`g`g`g`g`g`w`l`g`v`f`f`f`f`f`f`f`f`f`f`f`f`o`e`w`ra`af`f`f`f`a`t`oai`f`f`f`f`f`f`f`f`f`f`f`f`t`ya``s`f`f`f`f`a`t`tac`f`f`f`f`f`f`f`f`f`f`f`f`qab`y`wagakak`lag`g`g`g`g`d`l`y```vad`f`f`f`f`f`f`f`f`f`f`t`t`````kag```yahad`f`f`f`f`f`f`f`f`f`f`f`f`q`t`````y`w`w`wag`y`i`l`g`lag`lal`vai`f`f`f`f`f`f`f`f`a`t`e`w`w`w`e`v`n`f`f`f`f`f`f`f`f`f`f`a`eabaeak`w`i`l`gag`vaf`f`f`f`f`f`f`f`f`tae`wag`w```y`c`m`u`cad`f`f`f`f`f`f`t`wag`w`y````ag`wak`iae`lak`l`ial`lakak`i`i`iak`i`i",
-"`i`i`i`i`i`l`i`l`i`i`l`i`l`i`i`l`l`l`l`l`l`l`l`l`l`l`g`g`g`g`g`l`l`l`g`l`g`l`g`l`l`l`l`d`d`g`g`l`lad`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`k`e`c`````y`c`e`e`m`y``agak`i`i`l`l`l`g`d`d`gae`d`g`g`g`g`g`lag`l`g`gagalad`f`f`f`f`f`f`f`f`f`f`f`f`f`fad`v`v`v`v`vadad`x`nai`f`f`f`f`f`f`f`f`f`f`tag`iaeaa`yaa`y`````i`i`g`g`g`d`g`g`d`d`g`g`lag`g`g`v`f`f`f`f`f`f`f`f`f`f`f`f`t`m`x`v`j`f`f`f`o`t`caea``f`f`f`f`f`f`f`f`f`f`f`q`t`xa`af`f`f`f`t`taa`iaead`f`f`f`f`f`f`f`f`f`f`f`qab`e`m`y`wak`i`w`g`gag`g`g`w`i`vadaf`f`f`f`f`f`f`f`f`f`o`t```y`y`m`y`c`e`mad`f`f`f`f`f`f`f`f`f`f`f`f`oab`c`m`m`m`c`y`w`yak`i`l`gaeal`vai`f`f`f`f`f`f`f`f`f`t`m`c```y`y`z`v`f`f`f`f`f`f`f`f`f`f`f`qab`e```w``ak`i`lae`s`f`f`f`f`f`f`f`f`f`tae`y```c`m`m`e`k`e`mah`j`f`f`f`f`a`t`y`y`y`m`m`c```wak`iag`lak`l`lak`lakak`iak`i`i`i`i",
-"`i`i`i`i`i`i`l`i`l`i`i`l`i`l`i`l`l`l`l`l`g`l`l`g`l`l`l`l`l`l`d`g`g`g`l`l`g`l`g`g`g`g`l`l`g`d`g`g`g`s`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`tab`k`m`m`c`m`e`m`m`y`wagak`i`l`l`g`g`g`g`d`g`dag`d`d`g`l`g`g`g```g`l`l`g`v`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`iae`c`c`c`m`c`w`y`i`l`g`g`g`g`g`g`g`d`d`d`gag`g`l`v`f`f`f`f`f`f`f`f`f`f`f`a`taa`vai`f`f`q`t`taaak`i`v`f`f`f`f`f`f`f`f`f`f`f`qaa`v`j`f`f`f`tabak`l`ga`ad`f`f`f`f`f`f`f`f`f`f`f`o`tab`e`m`y`wak`w`g`gag`g`g`walad`f`f`f`f`f`f`f`f`f`f`a`t`k`w```y`m`e`kab`zad`f`f`f`f`f`f`f`f`f`f`f`f`tab`k`kab`k`k`m`y`yak`l`l`l`r`vai`f`f`f`f`f`f`f`f`f`tabak`e```w````ad`f`f`f`f`f`f`f`f`f`f`f`a`t`e`m```yak`i`ia`ad`f`f`f`f`f`f`f`f`f`t`w`m`m`e`k`k`e`k`m`m`y`n`f`f`f`f`aab`m`m`e`e`e`m```wak`iag`gak`l`l`i`lakak`i`i`i`i`i`i",
-"`i`i`i`i`i`i`l`i`l`i`i`l`i`l`i`l`l`l`l`l`l`g`l`g`g`l`l`l`l`g`g`g`g`g`g`g`l`g`l`l`g`l`l`g`g`g`d`l`galaf`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`tab`k`e`e`e`e`m`c`waeak`l`g`g`g`g`g`g`g`d`d`dae`g`d`d`g`g`g`g```i`g`g`g`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`e`m`k`y`c`m`e`p`k`e`m`w`d`d`l`g`g`g`d`d`d`w`c`m`m`xad`f`f`f`f`f`f`f`f`f`f`f`oab`vad`f`f`f`t`t`m`eakaea``f`f`f`f`f`f`f`f`f`f`f`q`vad`f`f`f`t`tag`i`i`ga``n`f`f`f`f`f`f`f`f`f`f`f`o`t`tab`k`m`m`e`m`m`m`c`g`g`va`af`f`f`f`f`f`f`f`f`f`q`t`m```eabab`k`kab`t`bad`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`tab`kab`k`e`e`c`l`g`vai`f`f`f`f`f`f`f`f`f`q`tagae`w`eababaaad`f`f`f`f`f`f`f`f`f`f`f`a`tab`e`e`k`makae`xai`f`f`f`f`f`f`f`f`f`o`k`kababababab`k`k`e`y`s`f`f`f`f`o`t`k`kabab`k`m`c``akagag`lak`i`iae`l`l`iakak`i`i`i`i",
-"`i`i`i`i`i`i`i`i`l`i`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`g`g`l`g`l`l`g`g`d`l`d`l`g`g`l`g`g`l`l`g`g`d`d`l`l`n`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`tabab`k`k`e`e`y``agak`l`l`g`l`l`g`l`g`g`d`d`d`wae`i`d`d`d`g`g`g```l`lal`s`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`wag``aa`m`e`m`yagak`i`l`g`g`d`d`g`g`l`g`d`d`d`d`dal`n`f`f`f`f`f`f`f`f`f`f`f`t`xa``f`f`f`t`t`m``ae`i`vad`f`f`f`f`f`f`f`f`f`f`fad`s`f`f`f`t`t`cagakak`w`v`j`f`f`f`f`f`f`f`f`f`f`f`t`t`t`tab`e`c`wak`l`g`g`lal`vaf`f`f`f`f`f`f`f`f`f`f`oab`w`c`m`eabababab`kad`j`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`tabab`m`yae`i`g`g`vad`f`f`f`f`f`f`f`f`f`f`t`eag```y`m`e`k`ead`f`f`f`f`f`f`f`f`f`f`fab`t`tab`e`m``ag`i`vai`f`f`f`f`f`f`f`f`f`fab`kababab`k`m`y`wagaea``j`f`f`f`o`k`kababab`k`m``aeak`i`l`l`l`l`l`l`l`l`i`l`i`i`i`i`i",
-"`i`i`i`i`i`i`l`i`i`i`l`i`l`i`l`i`l`l`l`g`l`l`l`l`l`l`l`g`g`g`g`l`l`l`g`g`g`d`l`g`g`l`g`l`g`l`g`d`d`g`s`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`tab`k`e`c``aeak`i`g`g`g`g`g`g`g`g`d`d`d`g`iag`i`g`g`d`g`g`g`g`g`g`v`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`o`o`o`o`a`q`f`f`f`f`f`f`f`f`f`f`f`f`q`t`w`w`c`e`p`k`m`yaeak`l`g`g`g`g`d`d`d`d`g`g`g`g`d`d`vai`f`f`f`f`f`f`f`f`f`f`q`u`v`j`f`f`t`t`k`c`waeak`v`n`f`f`f`f`f`f`f`f`f`f`f`vaf`f`f`t`t`e`y`wakae`xa``f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`k`m``ae`i`g`g`l`vai`f`f`f`f`f`f`f`f`f`f`q`t`c`y`e`kabab`tab`k`e`rai`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c``ae`i`l`va``f`f`f`f`f`f`f`f`f`f`a`tag```c`e`k`kab`k`z`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`k`e`yagakalai`f`f`f`f`f`f`f`f`f`f`aab`tabab`e`c``agaeakak`n`f`f`f`t`k`kab`tab`k`m``aeak`i`i`l`i`i`l`l`i`l`l`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`l`i`i`l`l`l`i`l`i`l`l`l`l`l`g`l`l`g`l`g`l`l`g`g`l`g`g`g`g`l`d`l`g`g`g`g`g`g`g`g`d`dalaf`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`tabab`k`c``agak`l`l`l`g`g`g`g`l`g`d`d`d`l`g`g`g`l`g`d`d`d`g`g`l`g`g`v`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`tabab`o`o`f`f`f`f`f`f`f`f`f`aab```y`e`k`k`k`m``ae`l`g`g`g`g`d`g`d`g`g`g`d`g`d`g`g`v`f`f`f`f`f`f`f`f`f`f`f`a`vad`f`f`o`tab`m`yagakae`v`j`f`f`f`f`f`f`f`f`f`f`n`n`f`f`a`t`t`e`c``aeak`v`n`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`tabab`m``ag`i`g`g`vad`f`f`f`f`f`f`f`f`f`f`f`oab`c`e`kabab`tab`k`e`c`vaf`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c`wak`i`l`vaf`f`f`f`f`f`f`f`f`f`f`t`e```c`e`kabab`k`e`mai`f`f`f`f`f`f`f`f`f`t`t`t`t`tab`k`c``ae`vai`f`f`f`f`f`f`f`f`f`faf`t`t`t`k`m``agak`i`l`lad`f`f`f`t`c`eababab`k`c`wae`i`i`i`l`l`l`i`i`l`i`l`i`l`i`i`i`i",
-"`i`i`i`i`l`i`l`i`l`i`i`i`i`l`i`l`i`l`l`l`l`l`l`g`l`g`l`g`l`g`g`l`g`l`g`g`l`d`g`g`d`i`l`g`l`g`g`g`g`g`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`k`e`yagak`i`l`g`g`g`g`d`g`d`g`d`d`d`d`l`g`l`g`g`g`d`d`g`g`g`l`l`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`k`c``ag`yaf`f`f`f`f`f`f`f`o`k`m`e`kabab`k`c`wak`i`g`d`g`g`g`d`g`d`d`g`g`d`g`galad`f`f`f`f`f`f`f`f`f`f`fa``s`f`f`q`t`t`k`m``agak`ra``f`f`f`f`f`f`f`f`f`f`fad`f`f`q`t`tab`e`c`wagae`v`j`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`k`e``agak`lala`af`f`f`f`f`f`f`f`f`f`f`q`t`m`m`k`t`t`t`tab`e`cag`v`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`m`yagak`l`v`n`f`f`f`f`f`f`f`f`f`f`q`taa`m`e`kab`tab`k`m``ag`h`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`m``ae`rai`f`f`f`f`f`f`f`f`f`f`fac`tab`k`m``aeak`i`l`l`l`f`f`q`t`y`m`kabab`e`c`waeak`l`l`i`i`l`l`i`i`l`l`i`l`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`l`i`l`i`l`i`i`l`i`l`g`l`g`l`l`g`l`l`g`l`g`g`g`l`l`g`g`l`l`g`g`g`d`d`i`l`g`g`g`gala`af`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`tab`k`m`wae`i`l`d`g`g`d`d`d`d`d`d`g`g`g`g`g`l`g`l`l`g`l`d`d`d`g`lalad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`tab`k`m`y``agagai`f`f`f`f`f`f`t`k`kab`tabab`e`c`wak`l`g`g`g`d`g`g`g`d`d`d`g`g`g`dal`n`f`f`f`f`f`f`f`f`f`faf`vaf`f`q`t`tab`e`c`wagae`rad`f`f`f`f`f`f`f`f`f`f`jaf`f`f`t`t`tab`e`y`wag`xa``f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`m``ag`i`l`v`n`f`f`f`f`f`f`f`f`f`f`f`tab`eababab`tabab`e`m``a`ad`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`m`wae`iala``f`f`f`f`f`f`f`f`f`f`f`oab`m`kabab`tab`k`e`yagae`iaa`a`q`q`q`o`t`t`t`t`t`t`t`tab`m``aealad`f`f`f`f`f`f`f`f`f`f`f`f`p`t`k`m`wae`i`l`i`l`l`i`t`t`k`w`c`e`k`k`e`y`wak`i`i`l`i`l`i`l`l`i`l`i`l`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`l`i`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`g`g`l`g`l`g`g`g`g`l`l`g`l`g`l`g`g`d`d`g`l`g`gal`v`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`k`m``ak`l`g`d`d`d`g`d`l`g`d`d`g`g`l`g`g`d`l`g`g`l`g`g`g`d`d`g`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`tab`k`e`c`c`y`yad`f`f`f`f`f`q`tababab`tabab`m`yag`i`g`g`d`g`g`d`d`g`g`g`d`d`d`d`l`v`j`f`f`f`f`f`f`f`f`f`f`n`n`f`f`o`t`tab`m`yagaeag`vai`f`f`f`f`f`f`f`f`f`faf`f`f`a`t`t`tab`e`c`y``a`ad`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`tab`k`m``ae`ial`s`f`f`f`f`f`f`f`f`f`f`f`q`t`k`k`t`t`t`tab`k`m`yag`r`n`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c`wak`i`v`j`f`f`f`f`f`f`f`f`f`f`f`t`e`eab`t`t`tab`e`c`wak`l`d`d`l`c`e`eababab`t`t`t`t`tab`k`m``ae`i`s`f`f`f`f`f`f`f`f`f`f`f`f`f`p`k`m``ae`i`l`g`l`g`l`l`iakag`y`m`k`k`m`yagakak`l`l`i`l`i`l`l`i`l`i`l`i`l`i`i`i",
-"`i`l`i`i`i`l`i`l`i`l`i`i`l`i`l`l`i`l`l`l`l`l`g`l`g`l`l`g`l`g`l`l`g`g`g`g`l`g`l`g`l`g`g`d`g`d`g`v`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`tab`k`m``ae`i`g`d`d`d`g`g`g`g`d`g`g`d`l`g`d`d`g`g`g`g`g`g`g`d`d`d`vaf`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`t`tab`k`e`m`m`c`cahai`f`f`f`f`o`t`t`t`t`t`t`k`m``ae`i`l`g`g`d`d`d`g`d`d`d`g`g`g`d`g`v`f`f`f`f`f`f`f`f`f`f`fad`f`f`q`t`tab`k`m`y`w`w`b`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`tabab`e`m`y```v`j`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`t`k`m`wae`r`v`j`f`f`f`f`f`f`f`f`f`f`f`o`t`kab`t`t`tabab`e`c`wak`vai`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`e`yagak`v`s`f`f`f`f`f`f`f`f`f`f`f`a`t`kabab`t`tab`k`m``agak`i`l`g`l`lae`w`c`eab`t`t`t`t`tab`k`c`wak`ial`f`f`f`f`f`f`f`f`f`f`f`f`fafab`e`yag`i`l`g`l`l`l`l`iakae`w`m`e`e`m``agak`i`i`l`l`i`i`l`i`l`i`i`i`l`i`i`l`i",
-"`i`i`i`l`i`l`i`i`i`i`l`i`l`l`i`l`l`l`l`l`g`l`l`l`g`l`l`l`g`g`g`l`g`g`g`g`g`l`g`l`g`l`g`d`g`dal`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`tab`m`yae`i`l`g`g`d`g`g`l`g`l`g`g`g`g`g`g`d`g`g`g`l`g`l`g`g`d`la``f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`k`e`m`c`c`c`c```n`f`f`f`f`o`t`t`t`t`tab`e`c`wae`i`g`d`g`g`d`g`g`g`g`d`d`g`d`galad`f`f`f`f`f`f`f`f`f`f`j`j`f`f`t`t`tab`k`c`y`````x`s`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`tab`e`m`c`ba``f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c`wakal`s`f`f`f`f`f`f`f`f`f`f`f`f`tabab`t`t`t`tab`k`c`waeak`v`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`t`k`m``aeal`v`j`f`f`f`f`f`f`f`f`f`f`f`tab`k`t`t`t`tab`k`c`wae`i`l`l`g`l`lae`w`c`eab`t`t`t`t`tab`e`c`wak`i`l`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`k`c``ae`i`l`g`l`l`l`l`iaeag`c`m`e`c``aeak`i`i`i`l`l`l`i`i`l`l`l`i`l`i`i`i`i",
-"`i`i`i`i`i`i`i`l`i`l`i`l`i`l`l`l`l`i`l`i`l`l`g`l`l`l`g`l`l`g`l`g`g`g`g`g`g`g`l`l`g`l`g`g`d`l`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`fab`tab`e`cagak`l`l`g`g`d`gae`d`l`l`l`d`g`g`d`d`d`l`g`d`g`g`d`g`galad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`tabab`c```w`w`c`xad`f`f`f`q`t`t`t`t`t`tabab`eagak`i`g`g`d`g`g`g`g`d`g`g`g`d`g`d`vai`f`f`f`f`f`f`f`f`f`faf`f`f`a`t`t`tab`e`m``````a``n`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`tabab`e`e`ma``n`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`k`y`wak`v`j`f`f`f`f`f`f`f`f`f`f`f`o`tab`t`t`t`tabab`m`yagakal`s`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`m``aeal`s`f`f`f`f`f`f`f`f`f`f`f`f`tabab`t`t`t`t`k`m`yaeak`l`g`g`g`g`lakag`y`m`kabab`tabab`e`m``agak`l`g`v`f`f`f`f`f`f`f`f`f`f`f`f`f`fac`m``agak`l`l`g`l`l`l`iakag```c`c`c`wakak`i`l`l`i`i`l`l`l`i`i`i`i`i`i`i`i`i",
-"`i`i`i`l`i`i`i`l`i`i`l`l`i`i`i`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`g`l`g`g`g`g`g`g`g`g`l`l`l`g`l`vad`f`f`f`f`f`u`j`f`f`f`f`f`f`f`f`f`f`f`f`f`a`tab`k`m`wak`l`g`g`g`g`y`i`g`g`g`g`g`g`g`l`d`d`d`d`g`g`g`g`gag`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tabab`m```waeaeae`waead`f`f`f`q`tabab`t`tabab`e`maeak`l`g`g`g`g`g`g`g`g`d`d`d`g`d`g`vaf`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`tabab`e`c`y`y`w`vaf`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`tabab`eab`y`vaf`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`t`k`e`yag`v`s`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`tab`k`c`wak`i`v`n`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`cagak`v`n`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`k`c``ak`i`l`g`g`d`l`gakae`w`c`e`k`k`k`k`e`m`yagak`i`l`g`l`n`f`f`f`f`f`f`f`f`f`f`f`f`f`faj`c``ae`i`l`l`l`l`l`i`iae`w`y`y``agak`i`i`i`l`l`l`i`i`i`i`l`i`l`i`i`i`i`i",
-"`i`i`i`i`i`l`i`i`i`l`i`i`l`l`l`i`l`l`l`l`l`l`g`l`g`g`l`g`l`g`l`l`g`l`g`g`g`g`g`g`g`g`g`l`vad`f`f`f`f`f`t`pad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`tab`m`yae`i`g`g`g`d`y`g`l`l`g`iagae`g`d`gakak`g`lag`i`g`i```v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tabab`m`yaeak`i`w`walad`f`f`f`o`k`k`kab`tab`k`m`cae`i`l`g`g`g`d`d`g`d`iagakag`gaeal`s`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`tab`e`c`y`y`x`s`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`tabab`k`k`b`s`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`t`k`m``ae`v`j`f`f`f`f`f`f`f`f`f`f`f`a`tab`t`t`t`tabab`m`yagak`l`vaf`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`e``agal`v`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`t`k`e`y`wak`l`g`d`g`d`g`g`l`iag`w`y`c`m`m`m`c`yagae`i`g`g`g`g`vaf`f`f`f`f`f`f`f`f`f`f`f`f`f`faj`y`wae`i`l`l`l`l`i`iakae`w`w`waeak`i`i`l`l`i`l`l`l`l`l`i`l`i`i`l`i`l`i",
-"`i`i`i`i`i`l`l`i`i`i`l`l`i`l`l`l`i`l`l`l`i`i`l`l`l`l`g`l`g`l`g`g`g`g`g`g`g`l`g`l`g`gal`vad`f`f`f`f`f`o`tag`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`tab`e`c`wak`l`d`dakak`g`l`g`l`wagag`w`g`gak`w`g`iagae`l`i`x`s`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`k`m``ak`i`lag`y`lad`f`f`f`t`c`e`e`kabab`e`c`cak`l`l`l`g`l`g`g`g`d`i`y`w`w`yag`xad`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`tabab`k`c`y`v`n`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tabab`k`ma``n`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c`w`ra``f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`tab`k`c`wae`ial`s`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c``aealad`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c`yae`i`l`g`g`d`g`g`g`l`iakae`w`w`y`````wagakak`g`g`d`d`d`gad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`e``agae`i`l`l`g`l`i`iakaeaeaeak`i`i`l`l`l`l`l`l`i`i`i`i`i`i`i`i`i`i`i",
-"`i`i`i`l`i`i`l`l`i`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`g`l`g`l`g`g`g`g`g`l`g`galad`f`f`f`f`f`o`tag`d`v`j`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`k`m`wae`l`g`gae`d`d`g`l`l```m`y`w`d`d`lag`l`d`gag`g`ga``n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`e`wak`i`l`g`laealad`f`f`f`tag`c`m`kab`k`m`y`yak`g`g`g```m`m`m`m```dagag`gae`g`vai`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`tabababab`c```vaf`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tabab`e`y`vaf`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`e`y`w`v`n`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`tab`e`yagak`l`v`n`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`c`wak`vai`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`e`yagae`i`l`g`g`d`g`g`d`g`g`l`lakaeaeagagaeak`i`i`g`d`g`d`g`d`gai`f`f`f`f`f`f`f`f`f`f`f`f`f`faj`m``ag`i`i`i`l`l`l`i`i`iakak`i`i`l`l`l`l`i`l`l`l`l`i`l`i`l`i`i`l`i`i",
-"`i`i`i`i`i`i`i`l`i`i`l`l`l`l`l`i`l`l`l`g`l`l`i`i`l`l`l`g`l`g`g`g`g`g`g`l`g`g`l`g`l`va`af`f`f`f`f`o`tag`g`l`i`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`k`e`yagak`g`gag`g`g`d`dagak`l`l`w`g`g`lag`l`d`gae`g`g`v`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`e`wak`i`l`l`gag`g`n`f`f`oabae`y`y`e`k`k`m`````i`g`g`d`g`l`l`g`g`g`gaeae`dag`g`v`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tabab`k`c`x`s`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`tab`k`e`x`s`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`t`k`e``ae`vaf`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`k`c``ae`i`i`vaf`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`e`yag`i`v`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`tabab`m`yae`l`i`l`g`g`g`g`g`g`d`g`g`l`l`l`iak`i`i`i`l`l`g`g`g`g`g`g`g`gaf`f`f`f`f`f`f`f`f`f`f`f`f`f`f`p`c`wagak`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`i`i`i`i`i`i`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`g`g`g`g`g`g`g`va`af`f`f`f`f`q`t```g`l`iak`s`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`tab`e`y`wak`i`g`iag`g`d`g```g`d`i`y`g`g`g```l`lagag`d`l`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`e`maeak`l`g`g`gag`g`saf`f`o`y`l`````m`e`e`c`w``alalal`g`g`g`g`g`l`g`lagag`gaealad`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`tabab`e`e`y`r`n`f`f`f`f`f`f`f`f`f`f`f`q`o`t`t`t`t`t`tab`k`ca``n`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c``a``s`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`tab`e`y`wak`lal`s`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`t`k`m``ag`r`s`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`c`wae`i`d`g`g`g`d`g`g`g`g`d`l`d`d`g`l`g`l`l`l`l`l`l`g`g`g`g`g`g`l`vaf`f`f`f`f`f`f`f`f`f`f`f`f`f`f`k`y`waeak`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`l`l`i`l`i`i`i`i`i",
-"`i`i`i`i`i`i`l`i`i`i`l`l`l`l`l`l`l`l`l`g`g`g`g`g`l`l`l`l`l`l`g`g`g`l`g`l`g`g`l`va`af`f`f`f`f`q`t`m`l`i`l`i`b`b`j`f`f`f`f`f`f`f`f`f`f`f`f`f`p`t`t`k`c``aeak`g`g`y`g`d`d`l`m`mag`w`w`l`l`i`m`mak`makalad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tababab`k`e`y`l`gae`c`m`c`m`y`m`t`k`e`e`k`k`e`m`k`k`ma`ah`j`n`g`d`d`g`l`gae`c```g`c`v`n`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`t`tab`c```v`j`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`t`t`k`e```vaf`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`e`yag`r`n`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`m``ae`i`l`v`n`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`m`wae`vad`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`cag`i`i`l`d`g`g`g`d`g`d`l`g`g`d`d`d`l`g`g`l`g`g`g`l`g`g`g`g`g`d`d`lad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`m`y`wakak`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`i`i`i`l`i`i`i`i`i",
-"`i`i`i`l`i`i`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`l`l`l`l`l`g`l`g`g`g`l`gala`af`f`f`f`f`q`t`m`l`l`iakag```y`n`f`f`f`f`f`f`f`f`f`f`f`f`f`a`tab`k`e``agak`l`lakak`g`g`g`g`d`g`g`g`d`d`g`g`g`g`g`g`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`c`wak`l`g`g`d`d`g`d`g`g`d`g`g`iae`w`c`m`c``aeala``j`f`f`m`l`d`g`d`g`g`g`g`g`g`vaf`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`e`uaea``f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`tab`k`c`x`s`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tabab`m`yag`v`j`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`e`y`wak`l`la``f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`e`yagakalai`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`yag`i`l`g`l`d`d`l`d`g`d`g`g`g`g`g`d`d`g`d`d`d`g`g`l`l`g`g`g`d`g`g`g`i`n`f`f`f`f`f`f`f`f`f`f`f`f`f`fab`m``agak`i`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`i`l`i`l`i`l`i`i",
-"`i`i`i`i`l`l`i`l`i`l`i`l`l`l`l`l`g`l`l`g`g`l`l`g`l`g`l`g`l`g`l`l`l`g`l`g`lal`vai`f`f`f`f`f`t`m`g`lakakag```y`e`x`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`tab`e`yagak`i`l`l`d`g`d`g`d`d`g`g`g`d`g`g`d`l`g`g`l`vaf`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`yagak`l`g`g`d`g`d`d`d`d`d`g`g`iak`w`c`m`c`wak`vai`f`f`q`t`i`d`d`d`g`d`l`d`gala``f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`t`t`k`m`y`vad`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`t`t`k`e`y`r`n`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c`wak`v`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`t`k`e``ag`i`l`vad`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`m``ag`i`vai`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`tab`k`m`wae`i`d`g`l`g`g`d`d`d`g`g`g`g`g`g`d`d`d`d`d`g`d`g`d`g`l`l`l`g`g`g`g`g`l`j`f`f`f`f`f`f`f`f`f`f`f`f`f`o`e`m``agak`i`l`g`g`l`l`l`l`l`l`l`l`l`l`i`l`i`l`i`i`i`l`i`i`i`i",
-"`i`i`i`l`i`i`i`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`g`gal`vai`f`f`f`f`f`tab`d`l`lakag```c`m`eah`j`f`f`f`f`f`f`f`f`f`f`f`f`f`o`tab`e`c`wae`i`l`g`l`g`g`g`g`g`g`d`d`d`d`g`d`g`d`g`l`s`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`tabab`m``ae`i`i`g`g`d`g`g`g`d`d`g`g`g`iae`w`y`c`yag`vad`f`f`f`o`e`g`g`g`g`l`g`l`g`galad`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`tab`e`c`w`v`j`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tabab`k`c```v`j`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`e`yag`r`s`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`m`wae`ial`vaf`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`t`k`m``ae`i`v`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`tab`e`c`wak`i`d`l`g`g`g`d`d`d`d`l`g`g`d`d`d`d`d`d`d`d`g`d`g`g`g`l`g`l`g`g`g`l`l`r`j`f`f`f`f`f`f`f`f`f`f`f`f`f`t`e`y`wae`i`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`i`i`l`i`l`i`i`i`i",
-"`i`i`i`i`i`l`i`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`l`l`l`l`l`l`gal`vai`f`f`f`f`q`tab`i`g`lakae```y`m`e`e`cad`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`k`m``ae`i`i`l`g`g`g`g`g`g`g`g`g`g`g`g`g`g`g`galad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`m`wae`l`g`g`d`g`d`g`g`d`g`g`g`l`lak`w```y```ra`af`f`f`f`o```g`g`l`g`l`d`l`l`l`vai`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`m`y`xa``f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`t`o`p`e`z`xa``f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`t`k`e`yaealad`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`e`yagak`ial`n`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`y`wak`g`v`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`tab`e`y`wak`l`g`g`l`g`g`g`g`d`g`d`g`d`d`d`g`g`g`d`d`d`vad`v`d`g`g`l`g`l`g`g`g`l`ia`af`f`f`f`f`f`f`f`f`f`f`f`f`t`k`m`yagak`i`l`l`l`l`g`l`l`l`l`l`l`i`l`i`l`l`l`i`l`i`l`i`i`i",
-"`i`i`i`i`i`i`l`i`i`i`l`l`l`l`l`l`l`g`g`l`g`l`g`l`g`l`l`l`l`l`l`g`l`lal`vai`f`f`f`f`f`tab`i`l`i`iak`w`y`m`e`m`c```s`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`k`e``agak`g`l`l`g`g`g`g`d`g`g`g`g`g`l`g`g`l`g`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`y`wak`g`g`d`d`l`d`g`d`d`g`g`g`l`lakae`w``a``v`j`f`f`f`q`tak`g`g`g`i`i`l`i`gal`v`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`t`t`k`c`w`rad`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`tabab`e`c`w`rad`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`eab`k`c``ae`vad`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`t`k`m``ag`ial`vaf`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`tabab`e`yagak`l`v`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`tabab`m``ae`i`i`d`g`g`g`g`g`l`v`g`g`d`d`d`g`d`g`g`d`d`ga``f`f`n`g`g`g`g`l`g`g`g`g`l`iad`f`f`f`f`f`f`f`f`f`f`f`f`oab`k`m``agak`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`i`i`i`l`i",
-"`i`i`l`i`i`i`l`i`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`g`g`l`g`l`g`l`l`g`l`v`n`f`f`f`f`f`oab`i`i`i`iae`w`y`m`e`e`c``ag`raf`f`f`f`f`f`f`f`f`f`f`f`f`f`o`tab`e`c`wak`i`g`g`l`g`g`l`g`g`g`g`g`d`l`g`g`l`l`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`yag`i`l`g`d`g`l`d`g`g`g`g`g`g`l`l`lakae`r`vai`f`f`f`f`aab`g`g`l`i`iakakak`lalad`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`tab`e`yae`vai`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`o`o`k`e`zag`vai`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`k`vadaa`y`wak`rai`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`tab`k`c``ae`i`vad`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`m`u`c`wae`i`l`v`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`k`m``akak`g`g`d`g`g`g`laladaf`s`d`d`d`g`d`g`g`g`d`gad`f`f`f`c`g`g`g`g`l`l`g`g`l`iak`n`f`f`f`f`f`f`f`f`f`f`f`q`t`k`e`y`wae`i`i`l`g`g`l`l`l`l`l`l`l`l`l`i`l`l`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`l`l`l`l`l`l`l`l`l`l`g`l`l`g`l`g`g`g`g`g`l`l`l`vad`f`f`f`f`f`o`tag`l`iakae`w`y`c`m`e`c`yagak`r`n`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`k`m``ag`i`g`d`g`g`g`g`g`g`g`l`l`g`l`g`l`galad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`t`k`c``ae`i`l`d`g`g`g`g`d`g`g`l`g`g`l`l`i`i`r`vai`f`f`f`f`f`t`y`g`l`iakaeaeakak`lal`n`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`k`m``ae`v`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`t`o`k`u``ae`vaf`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`ta``s`f`faaae`i`vai`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`e`cagakala`af`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`tab`vadahagak`g`d`v`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`tab`k`c`wak`i`l`g`d`g`g`gala`af`f`f`h`d`d`g`g`g`g`d`d`lad`f`f`f`t`g`g`d`g`g`l`g`g`l`l`i`raf`f`f`f`f`f`f`f`f`f`f`a`t`t`k`m``agak`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`l`i`i`i`i",
-"`i`i`i`i`i`l`i`l`i`l`l`l`l`l`l`l`l`l`g`l`l`l`g`l`g`g`g`l`g`g`g`l`vad`f`f`f`f`f`o`tag`l`i`iae`w`y`m`e`m`m```wak`l`lad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`tab`e`yagak`i`l`g`g`d`g`g`g`g`l`l`g`g`g`g`g`v`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`c`wak`l`g`g`d`l`l`g`g`d`g`g`g`g`g`l`gal`vai`f`f`f`f`f`f`tak`l`iakae`w`wagak`i`v`j`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`tab`e`y`w`vad`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`tabab`eaa`w`ra``f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`z`vaf`f`f`o`y`ialai`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`k`e```w`r`v`n`f`f`j`f`f`f`f`f`f`f`f`f`f`t`t`t`t`ta`a``f`f`h`i`g`galaf`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`tab`k`cagak`i`g`g`d`d`gal`v`j`f`f`f`o`m`d`g`g`d`d`d`dal`n`f`f`f`o`i`g`l`g`g`g`g`g`l`l`iakad`f`f`f`f`f`f`f`f`f`f`q`t`tab`e`c`wae`i`l`l`l`g`l`l`l`l`l`l`l`l`l`i`i`l`i`i`i`l`i`i",
-"`i`i`i`i`i`i`i`i`l`i`i`l`l`l`g`l`l`l`l`g`l`l`l`g`g`g`l`g`l`g`l`vad`f`f`f`f`f`a`tag`l`iakae`w`y`m`m`e`m```wae`i`g`l`v`f`f`f`f`f`f`f`f`f`f`f`f`f`fab`tab`k`c`wae`i`g`g`g`g`g`g`l`l`l`l`l`g`g`l`g`v`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`e`cag`i`i`l`l`g`g`g`g`g`d`g`g`g`g`g`g`v`vai`f`f`f`f`f`f`q`t`g`iakag`w`y`y`waeala``f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tabab`m`yag`vai`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tabab`m`yag`vad`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`k`v`n`f`f`a`t`w`ialai`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`tab`k`m``ae`vad`f`f`n`f`f`f`f`f`f`f`f`f`f`a`t`t`t`tah`vaf`f`f`o`c`l`g`lai`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`tab`e`y`w`i`g`g`g`g`dal`vai`f`f`f`q`t`w`g`g`d`g`g`g`dalai`f`f`f`aag`l`g`l`l`l`g`g`l`l`l`i`vaf`f`f`f`f`f`f`f`f`f`q`t`t`t`k`m``aeak`l`l`g`l`g`g`g`l`l`l`l`l`l`i`l`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`l`l`l`l`l`l`l`l`l`l`l`g`l`l`g`l`g`l`g`i`vadaf`f`f`f`f`q`t`c`l`i`iae`w`y`c`e`e`m`y`wak`i`l`g`gal`j`f`f`f`f`f`f`f`f`f`f`f`f`f`q`tab`k`m``aeak`i`l`g`l`g`g`g`g`l`g`g`g`g`gala``f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`m`yag`i`l`g`g`l`l`d`d`g`w`cak`l`g`l`va`af`f`f`f`f`f`f`f`o`m`l`iae```y`c`y``aealad`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c`wak`v`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`m``ae`r`n`f`f`f`f`f`f`f`f`f`f`f`o`t`tab`s`s`f`f`f`t`m`i`lalai`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`k`c`w`va`af`f`fad`f`f`f`f`f`f`f`f`f`f`a`t`t`t`u`vai`f`f`q`t```g`g`l`n`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`tab`e`cagak`l`g`g`d`g`vad`f`f`f`f`t`e`g`g`g`d`l`l`g`g`v`j`f`f`f`f`m`i`iakak`i`i`l`l`g`l`l`i`n`f`f`f`f`f`f`f`f`f`o`t`t`tab`e`y`wak`i`l`l`l`l`l`l`l`l`i`i`l`l`i`i`l`i`l`i`i`i`i",
-"`i`i`i`i`l`i`l`iak`i`i`l`l`l`l`l`l`i`l`l`l`l`g`l`l`g`lak`l`vad`f`f`f`f`f`f`t`k`l`iakaeag```m`m`e`m`y`wae`i`l`g`g`dalai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`tab`e`yagak`i`l`g`d`l`g`g`g`g`l`l`l`g`gal`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`m``ae`i`i`g`g`g`g`l`g`g`g`lag`l`v`vad`f`f`f`f`f`f`f`f`f`t`wakaeag`c`e`m`yagae`vai`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`e`yag`v`s`f`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`t`tab`e`c`wak`vai`f`f`f`f`f`f`f`f`f`f`f`t`t`ta`a`af`f`f`o`tag`i`l`l`n`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`tab`e`y`va`af`f`fai`n`f`f`f`f`f`f`f`f`f`f`o`t`t`e`vad`f`f`f`t`e`l`g`d`d`s`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`tab`e`yag`i`l`d`gal`vad`f`f`f`f`oab`i`g`l`l`g`g`l`i`l`v`f`f`f`f`f`o`iakaeaeakak`l`l`g`l`l`l`s`f`f`f`f`f`f`f`f`f`t`t`t`tab`k`c`wae`i`l`l`l`g`l`l`i`l`l`l`l`i`i`l`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`l`iak`i`l`l`l`iak`iak`g`l`l`lakak`i`l`l`ia``vad`f`f`f`f`f`f`q`t`iagakaeag`y`c`e`e`m`y`w`w`wae`g`d`dae`rad`f`f`f`f`f`f`f`f`f`f`f`f`f`faj`tab`e`c`wae`i`l`g`g`iaeakag`lag`i`g`g`l`v`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`c`wae`l`l`iagag`g`g`l`l`g`l`v`v`s`j`f`f`f`f`f`f`f`f`f`q`t`w`w`w`y`eab`e`m`yak`v`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`e``ae`v`n`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`t`k`m`yagak`v`j`f`f`f`f`f`f`f`f`f`f`f`taba`a`af`f`f`a`t`yak`l`g`gad`f`f`f`f`f`f`f`f`f`f`f`faf`t`t`tab``a`a`af`f`f`a`vai`f`f`f`f`f`f`f`f`f`f`o`t`e`vad`f`f`f`oabag`l`g`l`galaf`f`f`f`f`f`f`f`f`f`f`f`faf`t`tab`e`yag`i`l`gal`vai`f`f`f`f`o`tag`g`g`l`i`iak`iak`l`v`f`f`f`f`faj`wae`wagagak`i`l`l`l`l`l`v`f`f`f`f`f`f`f`f`f`t`t`t`tab`k`m``agak`l`l`l`l`l`l`l`i`l`i`l`l`i`l`i`i`l`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`l`i`l`lakakakag`l`l`iagakakagak`lal`vai`f`f`f`f`f`f`f`q`k`c``ae`w```c`e`e`m`c`wag`wag`wak`g`gaea`ad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`k`t`k`m``aeak`l`g`g`l```w`w`yag`y`g`g`v`s`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`e`c`wak`i`gagagag`w`g`g`lal`v`s`j`f`f`f`f`f`f`f`f`f`f`f`pab```e`y`m`kab`k`c`w`v`s`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c`wae`vaf`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`c``aeak`v`f`f`f`f`f`f`f`f`f`f`f`f`z`va`af`f`f`f`t`kag`i`l`gak`v`f`f`f`f`f`f`f`f`f`f`f`f`faiahah`v`vadaf`f`f`q`t`v`f`f`f`f`f`f`f`f`f`f`f`h`x`vad`f`f`f`o`t`y`i`l`g`l`lakad`f`f`f`f`f`f`f`f`f`f`f`f`faiaa`e`e`yae`ral`va``j`f`f`f`f`a`t```g`l`i`iaeagagaeakal`s`f`f`f`f`f`f`p`w```y``ae`i`l`l`l`l`i`v`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`m`yaeak`l`l`l`l`g`l`l`l`i`l`i`l`i`i`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`iak`i`l`i`l`laeak`l`g`l`laeakakaeak`w`va`ai`f`f`f`f`f`f`f`f`f`mak``ag```c`e`e`e`c``agae`y`c`wag`l`l`l`rad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`faf`pab`e`e`e`c`c`c`w`daeae`gag`lag`lal`v`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`tab`e`eae`i`g`w`c``agal`v`vad`j`f`f`f`f`f`f`f`f`f`f`f`f`f`t`m```y`c`e`k`k`c``ak`v`n`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`e`yag`r`s`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`k`cagak`i`v`f`f`f`f`f`f`f`f`f`f`f`f`fai`f`f`f`f`t`t``ae`i`l`lakaeai`f`f`f`f`f`f`f`f`f`f`f`f`f`faiai`f`f`f`f`f`t`e`v`f`f`f`f`f`f`f`f`f`f`f`fai`j`f`f`f`q`t`eak`i`l`l`iakaea`af`f`f`f`f`f`f`f`f`f`f`f`f`fafad`s`v`va`ad`j`f`f`f`f`f`q`t`m`l`l`g`iaeag`w``agae`rad`f`f`f`f`f`faf`y`c`c`y`wak`i`l`l`g`v`s`f`f`f`f`f`f`f`f`t`t`t`t`t`t`k`m`yagak`i`l`l`l`l`l`l`l`l`l`i`l`l`l`l`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`l`l`i`l`l`lakae`i`laeakakak`r`v`saf`f`f`f`f`f`f`f`f`f`f`nae`````c`e`e`e`c``agak`w`i`g`iae`g`lal`v`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`faf`b`y`y`wae`i`g`g`gaeae`dag`lae`v`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`fafaa`e`t`tab`k`c``aeal`i`r`ral`va`adai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`w`m`k`k`kab`k`y`wak`v`j`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`m``ae`vad`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`t`k`m`yaeak`i`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`m`wak`i`iak`x`wad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`tab`i`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`tab`wakak`lakakae`wagad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`c`i`l`gakae`w```c`y``ae`vad`f`f`f`f`f`f`fac`m`m`c``ak`l`g`l`i`v`j`f`f`f`f`f`f`f`o`t`t`t`t`t`tab`e`yagak`i`l`l`l`l`l`l`l`l`i`l`i`i`i`i`i`l`l`i`i`i",
-"`i`i`i`i`l`i`i`iak`l`i`lak`i`l`g`iak`l`iag`v`v`sai`f`f`f`f`f`f`f`f`f`f`f`f`f`jada``x`e`e`m``agak`i`w`gal`v`v`va`ad`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`jada``ral`l`g`gaeaeal`v`va`adaf`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`faf`nad`v`v`v`v`v`v`sadad`naiaf`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`aab`y`m`kabab`k`k`yag`ra``f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`t`t`k`c`wae`v`j`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`m`wak`i`lal`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`k`y`wak`iakag`w`````j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`tae`gal`j`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t```wakak`iae`w`w```wagah`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`m`d`g`iakaeag```c`c`y``ae`rai`f`f`f`f`f`f`f`f`n`c`m``ag`i`lal`vad`f`f`f`f`f`f`f`o`t`t`t`t`t`tab`k`m``agak`i`l`l`l`l`l`l`l`l`l`i`i`l`l`i`l`i`i`i`i`i",
-"`i`i`i`i`i`i`i`iak`i`i`l`iakaeagak`l`g`lal`saf`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`faf`q`m`y`wak`l`lae`c`vaiaf`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`j`x`gak`yag`vai`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`oabababab`tabab`m`e`m`xad`f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`e`y`w`ra``f`f`f`f`f`f`f`f`f`f`f`q`t`t`t`t`t`tab`e`c`w`i`i`g`l`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`tab`m`yagakakae`w```y`wadaf`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`w`g`g`g`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`e`yaeaeakaeag```y`y`waeak`n`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`o`t`m`g`l`gakakag```y`m`c`y`wae`vai`f`f`f`f`f`f`f`f`f`j`s`x`r`v`va``n`f`f`f`f`f`f`f`o`t`k`k`t`t`t`t`tab`m``ag`i`l`l`l`l`l`l`l`l`l`l`l`i`i`i`l`i`i`i`i`i`i",
-"`i`i`i`i`l`i`l`i`i`i`i`i`l`i`l`l`l`l`l`l`lad`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`fab``ag`i`l`g`d`g`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`faj```d`d`d`v`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`k`kab`tabab`k`c`wak`vai`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`tab`k`m``ae`v`n`f`f`f`f`f`f`f`f`f`f`f`o`t`t`t`t`t`t`k`e``agak`i`g`galaf`f`f`f`f`f`f`f`f`f`f`f`q`o`t`t`k`m`yagaeae`w`y`y`y`wae`b`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`t`yak`i`i`i`raf`f`f`f`f`f`f`f`f`f`f`f`q`t`tab`m`yagagaeag`w`y`y```wak`i`i`z`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`t`t`w`l`l`i`iaeag```y`m`c`y`waeak`vaf`f`f`f`f`f`f`f`f`f`f`f`faiai`j`f`f`f`f`f`f`f`f`o`t`e`m`k`t`t`t`tab`k`c`waeak`l`l`l`l`l`l`l`l`i`i`l`l`i`l`i`i`l`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`l`i`l`l`l`l`g`l`l`l`la``f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`t`wak`i`g`g`d`g`g`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`m`l`g`g`g`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`t`kab`t`t`t`k`e`yagae`l`f`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`m`wae`i`n`f`f`f`f`f`f`f`f`f`f`f`t`t`t`t`t`tab`k`m``ae`i`l`g`l`g`r`f`f`f`f`f`f`f`f`f`f`a`t`t`t`t`k`e`y`w`w`````y`y``agak`iah`f`f`f`f`f`f`f`f`f`f`f`f`a`t`t`c``agaeaeaeagah`f`f`f`f`f`f`f`f`f`f`o`t`t`tab`e`c`wag`w```y`y`y`wae`i`i`l`i```a`f`f`f`f`f`f`f`f`f`f`f`f`f`f`q`o`t`kae`i`lakakae`w```c`m`m`c``agak`l`v`f`f`f`f`o`o`oaj`f`f`f`f`f`f`f`f`f`f`f`f`f`f`a`tab`````m`kab`t`tabab`e`y`wae`i`l`l`l`l`l`l`l`l`l`l`i`i`l`l`i`l`i`i`i`i`i",
-"`i`i`i`i`i`l`i`i`l`i`l`l`l`l`l`l`l`l`l`l`g`lag`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`wae`l`g`g`g`g`g`g`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`e`i`l`l`g`d`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`tab`t`t`tab`k`e``agak`l`l`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`tab`e`cagak`i`l`m`t`t`t`t`t`t`t`t`t`t`t`t`t`t`t`tab`k`c`wae`l`l`g`g`l`l`i`a`q`q`f`f`q`a`o`t`t`t`t`t`tab`e`c`c`y`y`c`c```wak`i`i`lak`a`q`f`f`f`f`f`f`q`o`t`t`t`k`m`c```w`w`````y`u`a`f`f`f`f`f`f`a`t`t`t`t`tab`e`m`y`y`y`c`c`y``aeak`i`l`l`lakae`e`o`q`f`f`f`f`f`f`f`f`q`a`o`tab``aeaeaeaeae`w```y`c`m`m`c``agakak`ial`f`f`f`tab```z`mab`o`q`f`f`f`f`f`f`f`f`q`o`t`t`cakae`w`m`k`t`t`tab`k`m``aeak`i`i`l`l`l`l`l`l`i`l`l`l`l`l`l`i`i`l`i`l`i`i",
-"`i`i`i`i`i`i`l`i`i`l`l`i`l`l`l`l`g`l`g`l`l`g`l`g`l`l`l`l`i`iakaeag```y`m`kab`t`t`tab`k`m``aeak`i`l`l`g`g`g`g`g`g`g`g`l`l`i`iakaeag`c`eab`t`t`t`t`t`t`t`t`t`t`tab`e`c``agakak`i`l`i`g`l`g`g`g`l`g`gakakag```c`eab`t`t`t`t`t`t`t`t`t`t`tab`e`y`wak`i`i`l`g`l`l`l`i`lakakakakaeag`w`w```y`m`e`kabab`t`t`t`t`t`t`e`c`wae`i`l`l`g`g`l`l`lakag`y`mab`t`t`t`t`t`t`t`k`e`yag`i`l`g`g`g`g`g`l`iak```m`kab`t`t`t`t`t`tab`m`yagak`i`l`g`g`l`g`l`g`z`m`t`t`t`t`t`t`t`t`t`t`tabab`e`m`m`c`c`y`waeak`i`l`i`ial`cab`o`o`o`o`t`t`t`t`t`tab`k`e`m`c`c`c`m`c`caa`k`o`o`o`t`t`t`t`t`t`t`t`t`k`k`m`m`c`c`y``agak`i`l`l`g`l`iae`b`y`k`t`t`o`o`o`o`t`t`t`t`t`k`c`y`````w`````y`c`m`m`m`c``agae`i`l`l`i`x`o`oabak`iae```m`k`t`t`t`o`o`o`o`t`t`t`m```l`lakag`y`eabab`tab`k`e`y`waeak`i`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`i`i`i`i`i",
-"`i`i`i`i`i`i`i`i`i`i`i`l`l`i`l`l`l`l`g`l`l`l`l`g`l`l`i`l`iakae`w```c`m`kabab`t`t`tab`k`e`y`wagaeak`i`l`l`g`g`g`g`g`l`l`iakaeaeag```c`kab`t`t`t`t`t`t`t`t`t`t`tabab`e`c`y`wagaeakak`l`i`l`l`l`l`lakakag`w`c`m`kab`t`t`t`t`t`t`t`t`t`t`tab`k`m```waeaeakakakakakaeakaeagag`w`w```y`c`m`e`k`kab`t`t`t`t`t`tabab`e`yagak`i`l`g`l`g`g`l`lakag`c`eabab`t`t`t`t`tab`k`m``ae`i`l`g`g`g`g`g`iakag```m`k`t`t`t`t`t`tab`k`m``ae`i`l`g`l`g`g`l`l`l`iakagaa`eab`t`t`t`t`t`t`t`tabab`e`e`m`y`wagak`i`l`g`g`iakae```cab`t`t`t`t`t`t`t`t`tabab`k`e`e`e`e`c`y``agag`u`e`kab`t`t`t`t`t`t`tabab`k`e`m`c`yagaeak`l`l`g`g`g`iakae``aa`eabab`t`t`t`t`t`t`tab`k`e`e`m`c`m`m`m`e`e`e`m`c``agaeak`i`l`g`g`i`wagae`l`iag```e`kab`tab`k`k`m`c`yak`i`i`i`l`iae`w`c`e`kababab`e`c``ae`i`i`i`l`l`l`l`l`l`g`l`l`l`i`l`l`i`i`l`i`l`i`i`i",
-"`i`i`i`l`i`i`l`i`l`l`i`i`l`l`l`l`l`l`l`g`i`l`l`i`g`l`iakaeag`w`y`c`e`kabab`t`t`t`t`tab`k`m`y```wagak`i`l`g`g`g`g`l`iakaeagag```y`c`e`kab`t`t`t`t`t`t`t`t`t`t`t`tab`k`e`c`y```wagaeak`i`i`l`i`iakag`w`y`c`e`kab`t`t`t`t`t`t`t`t`t`t`t`t`t`k`e`m`y```w`wagagag`w`w`w`w```y`y`c`m`e`e`k`kabab`tab`t`t`t`t`t`t`k`m`yaeak`i`l`l`l`g`g`l`lak`w`c`eab`t`t`t`t`t`tab`e`c`wak`i`g`g`g`g`g`l`iakag`y`eabab`t`t`t`t`tab`k`c`wae`i`l`g`g`l`l`g`g`l`lakag```e`k`t`t`t`t`t`t`t`tabab`k`m`c``agak`i`l`g`i`g`l`lakag```m`kab`t`t`t`t`t`t`t`tababab`k`e`m`y``agaeaeag`y`e`k`t`t`t`t`t`t`tabab`k`e`c`y`waeak`i`l`g`g`g`g`g`iakae```c`eabab`t`t`t`t`t`t`t`tab`k`k`k`e`k`k`k`e`e`c``agakak`i`g`l`i`l`l`l`g`g`lakag`y`mababababab`e`u`y`wagaeaeakakae`w`y`m`kabab`k`e`c``agakak`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`i`i`i`i`i`i",
-"`i`i`i`i`l`i`i`i`l`i`i`l`i`l`i`i`l`l`l`g`l`g`l`g`l`l`lakae`w`y`c`e`e`kababababababab`k`k`e`m`c`y`wagak`l`g`g`g`g`i`iakag`w`y`y`m`m`k`kababab`tab`tab`tabababababab`k`k`e`m`c`c```waeak`i`l`iakag```y`c`m`k`kabababab`tab`tab`tababababab`k`k`e`m`c`y`y`y`y`y`y`y`c`c`c`c`m`e`e`k`kababababababababababab`k`e`c`wae`i`g`g`l`g`l`l`l`iae`w`c`e`kabababababab`k`m`yagak`l`g`g`g`g`g`l`iae`w`y`e`kabababababab`k`m`yagak`i`l`g`l`g`l`g`g`g`l`iae```c`eab`t`t`t`t`tababab`e`m`c``agak`i`l`l`g`l`g`l`l`iae`w`y`e`kab`t`t`t`t`t`t`tabab`k`e`m`y`waeak`iakag`w`c`eab`t`t`t`t`t`tab`k`e`m`y`wakak`i`l`g`l`l`g`l`g`l`iaeag```c`m`kabab`t`t`t`t`t`t`tabababab`k`k`e`m`c``agae`i`lak`d`g`l`l`g`l`g`l`iakag`y`e`kabab`k`k`e`e`c`y```wagag`w```y`m`e`k`k`k`e`c``agae`i`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`i`l`l`i`i`l`i`i",
-"`i`i`i`i`i`l`l`l`i`l`l`l`i`l`l`l`l`l`l`g`g`l`g`l`l`l`lakag```y`m`m`e`k`e`k`k`k`k`k`k`e`e`e`m`c`y```wae`i`l`g`g`l`l`iaeag```y`c`m`m`e`e`e`k`k`e`k`e`k`k`k`k`k`k`k`k`e`e`e`m`m`c`y``agak`i`i`iakag```y`m`m`m`e`e`e`k`k`e`k`e`k`e`k`k`k`e`k`e`e`m`m`c`c`c`c`c`c`c`c`c`m`m`m`m`m`m`e`e`e`e`e`k`k`k`k`k`e`k`e`e`m``agak`i`g`g`g`l`g`g`l`iae`w`c`m`e`k`k`k`k`k`e`m`c`waeak`l`g`g`g`d`l`l`iakag`y`m`e`e`k`k`k`e`e`m`c``aeak`l`l`l`l`g`l`l`g`g`l`iakag`y`m`e`kababab`kab`e`e`m`y`wae`i`i`g`l`g`l`g`i`g`i`iakag`w`y`m`k`kababababababab`k`e`m`y``aeak`i`l`iakag`y`m`eababababab`k`k`e`c```wae`i`l`l`i`g`g`g`g`g`l`l`l`iakag`w`y`m`e`k`kabababababababab`k`k`e`m`c`y`wagak`i`l`g`g`g`l`g`l`g`l`g`l`iakag`y`m`e`e`e`e`m`e`e`m`c`c`y`y`y`y`c`m`m`e`e`e`m`y``agae`i`i`l`i`l`l`l`i`l`l`l`l`i`i`l`l`l`l`l`i`i`l`i`i`i`i",
-"`i`i`i`i`i`i`i`l`i`l`l`i`l`l`i`i`l`l`l`l`l`g`l`g`l`l`l`iae`w```y`c`c`c`c`c`c`c`c`c`c`c`c`y`c`y`y`wagak`i`l`g`g`g`l`iakag```y`y`y`c`c`c`c`c`c`c`c`c`c`c`c`c`c`c`c`c`c`c`c`y`y`y```wagak`i`i`iakag`w```y`y`c`c`c`c`y`c`c`c`c`c`c`c`c`m`c`c`c`c`c`c`y`y`y```y`y`y`y`y`y`y`c`c`y`c`m`c`c`c`c`c`c`c`m`c`c`c`y`y``agae`i`l`g`g`l`g`l`l`l`iakag```y`c`c`c`c`c`y`y`y``agak`i`l`g`g`g`g`l`l`lakae`w`y`c`c`c`c`c`c`c`y`wagak`l`l`l`l`l`g`l`l`g`l`l`iakae`w`y`c`m`e`e`e`e`m`c`y```waeak`l`l`g`g`d`d`g`g`l`l`i`iakag`w`y`m`m`e`k`k`k`k`e`e`m`c``agaeak`g`l`g`l`iak`w`y`m`e`k`k`k`k`e`m`y``agae`i`l`l`g`l`g`i`g`g`l`l`l`l`l`iakae`w```y`m`e`e`k`k`k`k`k`k`e`e`m`c`y``agaeak`i`i`g`l`g`g`l`g`l`g`g`g`l`iakag```c`c`c`c`y`y`y`c`c`c`c`c`c`c`y`c`m`m`m`c`y``agaeak`i`l`g`g`l`l`i`l`i`l`l`l`l`l`l`l`l`i`i`l`i`i`l`i`i`i`i",
-"`i`i`i`i`i`l`i`l`i`l`l`l`l`l`l`l`i`l`l`l`g`g`g`l`g`l`i`iakaeag`w`w`w`w`w`w`w`wag`w`wag`wag`w`wagaeakakak`g`g`g`g`l`lakakaeagag`wag`w`wag`w`w`w`w`w`w`w`w`w`w`w`w`w`w`w`w`w`wagagaeae`i`i`l`iae`cagag`w`w`wag`w`w`w`w`w`m`c`w`w`wagag`w`w`w``ag`w`w`wag`w``ag`w`w`c`m```m`w`w`w`y`w`w`w`w`w`w```c`w`w`w`wagaeakak`l`l`l`g`g`g`l`l`i`lakae`m``agag`wag`w`wagagaeak`i`l`g`g`g`g`g`g`l`l`i`c`cagagag`w`w`w```cagaeakakak``ak``ak`l`l`l`g`g`l`l`i`iaeag`````y`c`y`y`````waeakak`i`l`l`g`g`g`g`gagag`g`g`g`iakaeag```y`c`m`c`c`c`y`y```wagak`i`w`yak`g`l`lakakag```y`c`m`c`c`y``agaeak`i`i`l`g`g`g`g`l`l`l`g`gak`y`l`g`i`iakaeag`````c`m`c`m`m`c`c`c`y`y`wagaeakak`l`l`l`g`g`g`g`g`g`l`l`l`l`g`lakag`w```````w`wag`w`w```y`y`y`y`y`c`y`y`y`y```wagaeak`i`i`l`g`l`l`g`l`g`g`i`l`l`l`l`i`i`l`l`l`i`l`i`i`i`i`l`i",
-"`i`i`i`l`i`i`i`l`i`l`i`l`i`l`l`l`l`l`l`l`l`l`g`g`l`g`g`l`iakakakakakakakakaeakaeakakakak`iakakakak`i```i`l`g`g`l`l`l`i`iakakakakakakakakakakakaeakakakakakakakaeaeakaeakaeakaeakak`i`i`i`l`l`iagakakakakaeakakakakakae`eaeakakakaeakakak`yaeakaeakaeakag``akakak`w`m`w`eakakakak``akak`iakakak``akakakakak`i`i`g`l`g`d`g`l`g`g`g`l`l`l`iak`waeakakakakakagakak`i`l`l`g`g`g`g`g`g`l`l`i`iagakakak`iak`waeak`cag`i`l`l`e`l`eak`g`l`l`l`l`l`l`i`iakakaeagag`w`wagaeaeakak`i`i`l`g`g`g`l`g`l`g`gae`g`l`g`g`l`i`waeag`w```````w`wagaeakak`i`l`l`gae`g`g`g`l`iakaeag`w`w`w`wagagak`i`l`l`g`g`g`g`g`l`g`l`g`g`l`gae`l`l`l`l`i`iakaeagag```c```w```wagagagaeak`i`l`l`g`g`d`g`g`g`g`g`g`l`g`g`g`g`l`lakae`wagaeaeakakakaeaeagag`w`w```w`w`wagagaeaeak`i`l`l`l`l`l`g`l`g`l`i`g`l`l`l`i`l`l`i`i`l`i`l`l`i`l`i`i`i`i",
-"`i`i`i`i`i`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`i`i`lak`iak`i`i`l`i`i`i`i`l`l`i`i`i`i`i`l`w`g`g`g`g`laeae`l`l`laeakakaeak`i`iaeakakaeag`l`i`i`l`iaeag`i`l`iaeaeaeaeak`l`l`l`lakae`iae`l`l`l`i`i`i`i`i`i`i`w```i`i`i`i`l`i`i`i```l`i`iak`i`i```i`i`i`iae`yak`m`i`i`i`i`w`i`i`l`i`l`iakag`i`i`i`i`l`l`d`l`l`g`gakak`iaeae`l`i`i`laeaeag`i`i`lak``aeagae`l`gaeakae`iakak`g`l`l`lae`i`i`i`l`gag`i`l`i`i`l`l`g`m`l`y`i`g`l`g`g`g`l`g`l`g`l`i`i`iakakakakak`i`i`l`i`g`l`l`g`l`l`g`g`g`gae`iae`i`l`lak``ag`w`waeaeagag`wagakag`i`i`g`l`gae`g`g`g`l`l`i`iakakae`wag`waeakag`g`l`g`gakae`i`g`g`l`iakae`lae`g`l`l`iaeae`lakakakak``aeaeakaeakakak`i`i`l`l`g`l`g`g`d`g`l`g`g`g`g`l`g`g`l`g`g`iakak`iak`i`i`i`i`i`iakakaeaeaeaeakaeak`iak`i`i`l`l`l`l`g`l`l`g`l`l`l`l`l`l`l`l`l`i`i`l`i`l`i`i`l`i`i`i`i`i",
-"`i`i`i`i`i`i`i`l`i`l`l`l`l`l`l`l`l`l`g`g`g`l`g`g`g`g`g`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`g`g`g`l`l`g`lakak`g`g`l`laeaeaeag`g`lae```waeagag`lak`w``aeae```l`lae``aeag```i`lak``agaeagak`g`laeagae`w```i`l`l`l`l`l`l`l`l`l`w`i`l`l`l`l`l`l`gakak`l`i`l`l`i`lag`g`i`l`l`i`w`l`w`l`g`l`g`lag`l`g`g`g`g`lag`l`g`g`g`g`g`g`d`g`g`gak`w``aeae```l`l`l`yaeae```g`gak`waeaeak`g`gae`wae``aeagak`g`l`lae`g`g`g`l`gak``ae`i`g`g`g`l```g`w`l`g`i`g`l`g`l`g`g`g`l`l`i`i`l`i`l`i`l`i`l`l`l`g`l`g`g`g`l`g`l`g`g`wagaeae`i`g`i`wagagagak`iag`yag``aeaeag`l`g`g`gae`g`l`g`g`g`l`l`i`i`iae``ae``aeaeae`g`g`wagae`wae`l`gaeagae`w```g`lae`waeae```i`i`i`iaeae`i`i`i`i`l`l`l`l`g`g`g`g`g`l`g`g`g`g`l`g`g`g`l`g`g`l`l`l`i`i`l`i`l`l`g`l`l`l`i`i`i`i`iak`i`i`i`i`i`l`l`l`g`l`l`g`l`l`l`g`l`l`l`l`l`l`l`l`i`i`i`i`l`l`i`l`i`l`i`i`i",
-"`i`i`i`l`i`i`i`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`g`g`g`l`l`g`d`l`l`d`g`l`g`l`g`l`g`g`l`g`g`g`l`g`g`g`gae`g`g`g`g`gag```wag`g`g`gag`g`g`gae`l`gag`l`l`l`iae`l`wakaeaeag`w`l`gae`g`g`lae`l`gag`g`g`lag`l`l`l`l`l`g`l`l`l`g`g`l`g`g`g`g`l`l`lae`l`l`g`l`l`l`lae`l`g`l`g`g`g`l`g`l`l`l`g`gag`l`l`g`l`g`l`iag`g`g`l`g`g`g`g`g`l`g`dag`l`g`l`iak`l`gae`g`gae`g`g`dae`l`g`g`g`g`g```gak`g`lak`l`g`gae`g`l`g`g`g`g`l`gagak`g`l`g`l`l`g`g`g`l`l`l`l`g`g`g`l`g`l`l`l`l`g`l`l`l`l`l`l`l`l`g`l`l`l`g`g`l`g`lak`g`l`lae`l`lae`g`l`i`l`l`l```lae`g`lak`l`g`l`lae`g`g`l`g``````````ak`l```lae`g`gak`gak`i`d`g`gae`g`lag`g`l`gag`g`g`wakaeakag`w`l`g`l`gae`l`l`l`l`l`l`l`g`g`l`g`g`g`g`g`g`l`g`g`l`g`l`g`l`l`g`g`l`l`i`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`i`l`l`l`g`g`l`g`l`g`g`l`g`l`l`g`l`l`l`l`l`l`l`i`l`i`i`i`i`i`i`i`i`i`i`i",
-"`i`i`i`i`i`l`i`i`i`l`i`l`l`l`l`l`i`l`l`g`l`g`g`l`g`l`l`l`g`l`l`g`g`g`g`l`g`l`l`l`g`g`g`g`l`l`g`g`gae`g`g`g`lakak`g`gag`g`g`gag`g`g`lae`l`gag`g`g`l`iae`g``aeakaeae`i`l`lae`l`g`gae`g`gae`g`g`lak`g`l`l`g`l`l`g`g`l`g`g`g`g`g`g`l`g`g`lak`g`l`l`l`l`l`lae`g`g`l`g`l`g`l`g`l`l`l`l`g`i`w`g`g`g`g`g`l```g`g`g`g`d`g`g`g`l`g`gag`l`g`g`iae`g`gae`l`lae`g`g`gae`g`l`g`l`g`g```gae`g`lak`l`g`gae`g`g`g`g`g`i`l`g`iae`g`l`g`g`l`l`g`g`l`g`g`l`l`l`l`g`g`l`g`g`g`g`g`g`g`g`l`g`l`g`l`g`l`g`g`g`g`g`gae`g`l`gae`g`gae`g`i`l`l`l`l```lae`g`gae`l`g`l`lae`g`l`g`g`l`g`g`l`g`l`l```gae`g`dak`gae`l`g`g`lae`g`gae`g`l`gae`l`l``akaeakaeak`g`l`g`gae`g`g`g`g`g`g`g`g`g`g`g`l`g`g`g`g`g`g`g`l`g`l`g`g`l`l`g`g`l`g`g`l`l`g`l`g`g`l`g`l`g`g`g`l`g`l`l`l`l`l`g`l`l`g`l`g`l`g`l`l`l`l`l`l`l`l`l`l`i`l`i`l`l`l`i`l`l`i`i`i`i",
-"`i`i`i`i`i`i`l`i`i`l`i`l`l`l`l`g`l`l`l`l`l`g`l`g`g`g`l`l`g`g`g`l`g`l`l`g`g`g`g`g`l`g`g`g`g`l`l`l`l`lae`g`g`gag`g`g`iag`l`l`g`y`i`l`iae`g`g`wag`g`l`w`l`lagag`l`g`l`i`l`gae`l`l`gae`g`g`w`l`gak```l`g`g`l`g`l`g`l`g`l`g`l`g`l`g`g`l`l`l`iak`g`l`l`l`l`lag`l`l`g`l`g`l`l`l`l`g`g`l`l`lag`g`l`g`g`g`gakak`g`g`g`gae`w`g`l`l`gagae`g`iag`g`l`lak`g`gae`g`g`dag`g`l`l`i`g`g`w`gae`g`lak`l`g`gae`g`l`g`l`g`wagagae`l`g`g`l`l`l`g`l`l`g`g`l`l`l`g`l`l`g`l`g`l`g`g`g`l`d`i``ak`g`l`l`g`l`g`l`g`l`g`gae`g`g`lae`l`gae`i`l`l`i`l`g```gae`g`lak`l`l`l`gae`l`l`l`l`g`g`g`g`g`g`g```gak`g`gak`g`g`w`i`gakae`g`g`w`i`gak```g`gagae`g`g`l`i`l`g`lag`g`g`g`g`l`l`g`l`l`l`l`g`g`g`g`g`g`l`g`g`l`g`g`l`l`l`g`l`l`g`l`l`l`g`l`l`i`g`l`g`g`g`g`g`l`d`g`g`g`g`l`l`g`g`l`g`g`l`g`g`l`g`l`l`l`l`l`l`l`l`i`l`i`i`l`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`l`i`i`l`i`i`l`l`l`l`l`l`l`l`l`l`g`g`g`g`l`g`g`g`l`g`g`l`g`g`l`g`g`g`g`g`g`g`g`l`l`l`gag`g`l`g`l```waeaeae`l`lakag`wag`g`g`gakak`w`w`l`l`l`gak`w``ae`l`lae``ae`lae```l`g`gag``aeak`w`l`l`g`l`l`l`l`g`l`g`l`g`l`g`g`g`g`l`lag`l`g`l`l`l`lae`i`g`l`g`g`l`l`l`l`l`l`l`g`l`iag`l`g`g`g`g`g`w`l`g`g`gak`w`g`g`l`lakak``ag`i`l`g```w`g`i```w`g`g`i`w`w`wak`l`w```gaeak`g`w`lak```w```wak`g`g`g`gak`l`l`g`l`g`l`l`l`g`g`l`l`l`l`l`l`l`g`l`g`g`g`g`g`l`g`g`i`wak`g`l`l`l`g`l`g`g`l`lae```i`g`w`wak`g`gag````ae`lag```iakae`gagak`i```w````ae`l`l`l`l`g`g`g`gag`wakakag`lae`i`g`iag``ae`g`l`g`g`w`wagak`w`g`l`i`w`wak`l`l`l`lag`g`g`g`g`g`g`g`g`l`g`g`l`g`l`g`g`g`g`g`l`l`g`l`g`l`l`l`g`g`l`l`l`l`g`l`l`g`l`l`g`l`g`l`g`g`l`l`l`l`g`l`l`l`l`l`l`g`l`l`l`l`g`l`l`l`l`l`l`l`i`i`i`i`l`i`l`l`i`l`i`i`i",
-"`i`i`i`i`i`i`i`l`i`i`l`l`i`l`l`l`l`g`l`l`l`g`l`l`g`g`g`g`l`l`l`g`l`g`g`g`l`g`g`l`g`g`g`g`l`l`l`l`g`lakak`g`g`g`l`l`g`l`l`g`lae`g`l`g`g`g`lak`g`l`g`g`g`l`l`l`l`g`l`l`l`l`g`l`g`l`l`g`l`g`g`l`g`g`l`l`g`l`l`l`g`l`l`g`g`g`l`l`l`l`g`l`g`lakak`l`l`l`l`l`lae`g`g`l`g`l`g`l`l`l`l`l`l`g`l`i`l`l`l`l`g`dak`l`l`g`l`l`g`g`g`g`lae`g`g`l`g`g`g`g`l`l`g`g`g`g`l`g`l`l`g`g`l`g`l`g`g`g`l`l`g`l`l`g`g`l`g`l`g`g`gak`g`g`l`g`g`l`l`l`l`l`g`l`l`l`g`g`l`g`l`l`l`l`g`g`l`g`l`l`l`l`l`g`l`l`l`l`l`g`g`l`l`l`l`l`l`g`l`g`l`l`l`l`l`l`g`l`g`l`l`g`g`l`l`l`l`g`l`l`g`l`g`l`l`l`l`g`g`g`l`l`g`g`l`g`g`g`g`l`l`l`g`l`g`g`g`g`g`g`l`g`l`g`l`l`g`l`laeak`g`l`l`g`g`l`l`g`l`l`g`l`l`g`l`g`g`l`g`g`g`g`g`g`l`l`l`l`l`g`l`l`l`l`g`l`g`l`g`l`g`g`g`l`g`g`l`l`g`l`l`l`l`g`l`g`g`l`g`l`l`l`l`l`l`l`l`i`l`i`l`i`l`i`l`i`i`l`i`i`i`i",
-"`i`i`i`i`i`i`i`i`l`i`l`l`i`l`l`l`l`g`l`l`l`l`l`l`l`g`g`g`g`l`l`g`l`l`g`l`g`l`g`l`g`g`l`g`g`g`g`g`l`g`g`l`g`l`g`g`g`g`g`g`l`w``ag`l`g`l`gae```w`i`l`l`l`l`l`l`l`l`l`g`l`l`g`l`g`l`g`g`g`l`g`g`l`g`l`l`l`g`g`l`g`l`l`l`l`g`g`l`g`l`g`l`g`g`g`l`l`l`l`l`l`l`l`l`g`g`g`g`l`g`l`g`l`g`l`g`l`g`l`g`g`g`g`g`g`l`l`l`l`l`g`g`g`gae`````i`l`g`l`g`l`g`g`l`g`l`g`g`g`l`g`l`l`l`g`l`g`g`l`g`g`g`g`g`l`l`g`l`g`g`l`g`g`g`g`l`l`l`g`l`l`l`l`l`g`g`l`l`g`l`g`g`g`g`g`g`g`g`l`g`l`g`l`g`l`g`g`l`g`l`g`g`l`g`l`g`g`l`g`l`g`l`l`l`l`l`l`g`l`g`g`g`g`g`l`g`l`l`l`g`l`g`l`g`l`g`g`g`g`g`l`l`g`l`l`l`g`g`g`g`g`l`l`g`l`g`l`l`l`g`g`g`g`g`g`g`l`g`g`g`l`l`g`g`g`l`g`l`g`g`g`g`l`g`g`l`l`g`g`l`g`g`l`l`l`l`l`g`l`l`l`l`l`g`l`l`g`l`g`l`g`l`g`g`g`l`g`g`l`l`l`g`g`l`g`l`l`l`g`l`g`l`l`l`g`l`l`l`l`l`i`i`l`i`l`i`l`i`l`i`i`i`i`i",
-"`i`i`l`i`i`l`i`l`i`i`i`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`g`g`g`g`l`l`g`l`g`l`g`l`g`g`l`g`g`l`l`l`l`g`l`l`l`g`l`g`l`g`l`g`l`g`l`g`l`l`l`g`g`l`g`l`l`l`g`l`g`g`l`l`l`l`l`g`g`l`l`l`g`g`l`l`l`g`l`l`l`l`l`g`l`l`l`g`l`l`g`l`g`l`g`g`l`g`l`l`g`l`l`g`l`g`l`l`l`l`g`g`l`g`g`g`g`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`g`g`l`l`g`l`l`g`g`g`g`g`l`l`g`l`g`l`g`l`g`g`g`g`l`g`l`l`g`g`l`l`g`l`l`g`g`g`l`g`l`g`g`l`l`l`g`g`l`g`l`l`g`l`l`g`l`l`l`l`l`l`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`g`l`l`l`l`g`g`g`l`g`l`g`l`l`g`g`g`l`g`l`l`l`l`l`g`l`g`g`g`g`l`l`l`l`l`l`l`l`l`g`l`l`g`g`g`g`l`l`l`l`l`l`g`d`g`g`l`l`l`l`g`g`g`l`l`g`l`g`l`g`l`l`l`g`l`l`l`l`g`l`g`g`l`g`g`l`g`l`l`l`l`g`g`g`l`g`l`g`g`l`g`l`l`l`l`l`l`g`g`l`l`g`l`g`g`l`g`l`l`l`l`l`g`g`l`l`l`g`l`l`l`g`l`g`l`g`g`l`l`l`l`l`l`l`l`l`l`i`l`i`i`i`l`i`l`l`i`i",
-"`i`i`i`i`i`i`i`l`i`l`i`i`l`l`l`l`l`g`l`l`l`l`l`l`l`g`g`g`g`g`g`l`l`l`l`g`g`l`g`g`g`g`g`l`g`l`l`g`g`l`l`l`g`g`l`g`l`l`l`l`g`g`l`g`l`g`g`l`g`g`l`l`g`l`g`g`l`g`l`l`l`l`g`g`g`l`l`g`g`g`l`g`l`l`g`l`l`l`l`l`l`l`g`l`l`l`g`l`l`g`l`g`g`l`l`g`l`l`l`l`l`l`l`l`l`l`l`g`l`g`l`g`l`l`l`l`l`l`l`g`l`g`g`l`g`g`l`l`l`g`l`l`l`g`g`g`g`g`g`l`l`l`l`g`l`g`l`g`g`g`g`l`l`g`l`l`g`g`l`l`g`g`l`g`l`l`l`l`l`g`g`g`l`g`g`g`l`g`l`g`g`l`g`g`l`l`l`g`l`l`g`g`l`g`l`g`g`g`g`l`g`l`l`l`l`l`l`l`g`l`l`l`l`g`l`l`l`g`l`g`g`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`l`g`l`g`l`g`l`l`l`l`l`l`l`g`l`g`l`g`l`l`g`l`g`l`g`g`l`g`g`g`g`l`g`l`l`l`g`g`l`g`g`g`l`g`l`l`l`g`g`l`l`l`g`g`g`l`l`l`l`l`g`g`l`g`g`g`g`l`l`g`l`l`g`l`g`g`l`l`l`g`l`l`g`g`l`g`l`l`g`l`g`g`l`l`l`l`l`l`l`l`l`l`g`l`l`l`g`l`g`l`l`g`g`l`l`l`l`l`i`l`i`i`l`i`l`i`i`i`i`i`i`i",
-"`i`i`i`l`i`i`l`i`i`l`i`l`i`l`l`l`l`l`l`l`l`g`g`l`l`l`l`l`g`g`g`l`g`l`g`l`g`l`g`l`g`g`g`l`l`g`l`l`g`g`g`l`l`l`g`l`g`l`g`l`i`g`g`g`g`g`g`l`l`g`l`g`l`l`g`l`g`l`g`l`l`l`g`l`l`g`l`l`g`l`g`l`g`g`l`g`l`g`l`l`l`l`l`l`l`l`l`g`g`l`l`g`g`g`l`l`l`l`l`g`l`l`l`l`l`l`g`l`g`l`g`l`g`g`l`g`l`l`l`l`l`g`l`l`l`g`l`l`g`l`g`l`l`l`l`l`g`g`g`l`g`g`l`g`g`l`g`g`g`l`g`l`l`l`g`l`g`g`l`l`l`l`g`l`g`l`g`l`l`l`g`g`g`g`g`l`l`g`l`l`l`l`l`g`g`g`l`l`l`l`g`l`g`l`l`l`g`g`l`g`l`g`g`g`l`g`l`l`l`l`g`l`l`l`l`g`g`l`g`l`g`g`l`l`l`l`l`l`g`l`l`l`l`l`l`l`g`g`l`g`l`l`g`l`l`g`l`l`l`g`l`l`l`g`l`l`g`g`l`l`l`l`l`l`g`g`g`l`l`g`l`g`g`l`g`g`g`g`g`l`g`l`g`l`g`g`g`l`l`l`g`g`g`l`l`l`l`g`g`g`l`g`g`l`g`l`g`l`l`l`l`g`g`l`g`l`l`l`g`l`g`l`l`g`g`g`l`l`g`g`g`l`l`g`l`l`l`l`l`l`l`l`l`g`l`l`g`l`l`l`l`l`i`l`l`l`l`l`i`i`i`i`l`l`i`l`i`i",
-"`i`i`i`i`i`i`i`l`i`i`l`i`l`l`l`l`l`l`l`g`l`l`l`g`l`g`l`l`l`g`g`g`l`g`g`l`g`g`g`g`l`l`g`l`g`g`g`l`l`l`g`g`l`l`l`g`g`l`g`l`l`l`l`g`g`l`g`l`g`l`l`g`l`l`g`l`g`l`g`l`l`l`g`g`l`l`g`g`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`g`g`l`g`l`g`l`l`l`l`l`g`g`l`l`l`l`l`l`g`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`g`g`l`g`l`l`g`l`l`l`g`g`l`l`g`g`l`g`g`l`g`l`g`g`l`g`g`l`l`l`g`g`g`l`l`l`g`g`l`g`l`l`l`l`g`g`l`l`g`g`l`g`g`l`g`g`l`g`l`g`l`l`l`g`l`l`g`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`g`g`g`g`l`l`l`l`g`l`l`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`g`l`l`g`l`l`g`l`l`l`g`g`g`l`g`g`l`g`l`g`g`l`l`g`l`g`g`l`l`l`l`g`l`g`l`l`g`l`g`l`l`l`l`l`g`g`g`l`l`g`l`l`g`l`l`g`g`l`g`l`l`l`l`g`l`l`g`l`g`l`l`g`l`l`l`l`l`l`l`l`l`g`l`l`g`l`l`l`g`g`l`g`g`g`g`l`l`l`l`i`l`l`l`i`l`l`i`i`i`i`i`i`i",
-"`i`i`i`i`i`i`i`l`i`l`i`l`i`l`i`l`l`g`l`l`l`l`g`l`l`l`l`l`l`g`l`g`l`l`g`l`l`l`g`g`l`g`l`l`l`g`l`l`l`l`l`l`g`g`l`g`l`l`g`l`l`l`l`l`l`g`g`g`l`l`g`l`g`l`l`l`g`l`g`l`l`l`l`g`l`g`l`l`g`g`l`l`l`l`g`l`l`l`l`l`l`l`g`l`g`l`g`l`l`l`g`l`g`g`l`l`l`g`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`g`l`l`l`g`g`l`l`l`l`l`l`g`g`l`l`g`l`l`g`g`g`l`l`g`l`l`g`g`l`l`l`l`l`g`g`g`l`l`l`g`g`l`l`l`l`l`g`g`l`l`l`g`l`l`l`l`g`l`l`g`l`l`l`l`g`g`l`l`l`g`g`l`l`l`g`l`l`l`l`l`l`l`l`l`l`g`l`g`l`l`l`l`g`l`g`l`l`l`l`l`g`l`l`l`l`l`g`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`g`g`l`l`l`l`l`l`g`g`l`l`g`l`l`g`g`l`g`g`l`l`l`g`g`l`g`l`l`l`l`g`l`g`l`g`g`l`l`l`l`l`l`g`g`g`l`l`g`l`g`l`l`g`l`l`g`l`l`l`l`g`g`l`l`l`g`l`l`l`l`g`g`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`g`l`l`l`l`i`l`l`i`l`i`l`i`i`l`l`i`l`i`i`i",
-"`i`i`i`i`l`i`i`i`i`i`i`l`l`l`l`l`l`l`g`l`l`l`l`g`l`l`l`l`l`l`g`l`g`g`l`g`g`l`l`g`l`l`g`g`l`l`g`g`g`l`l`l`g`g`l`g`l`g`l`g`g`l`l`g`l`l`g`g`g`l`l`l`g`l`l`l`l`l`g`g`l`l`l`g`l`l`g`l`l`l`l`l`g`l`l`l`l`g`l`l`l`i`l`l`l`l`l`g`l`l`l`g`l`g`g`l`i`l`l`l`l`l`l`l`l`l`l`g`i`l`l`l`l`l`lak`l`i`l`l`l`g`l`g`g`g`l`g`l`l`l`l`l`l`l`l`l`l`g`l`g`g`g`l`g`l`l`l`g`l`l`g`l`l`g`g`g`l`l`l`g`l`g`l`g`l`l`g`i`l`g`l`l`g`g`g`g`l`l`l`g`l`l`l`l`g`l`g`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`g`l`l`l`g`l`g`g`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`l`g`l`l`l`l`l`l`l`l`g`l`g`g`g`l`g`l`l`l`l`l`l`l`l`l`l`l`g`g`g`l`g`l`g`l`l`l`l`g`g`l`l`g`l`g`l`g`l`g`g`l`l`g`l`l`g`l`g`l`g`l`l`g`g`g`l`l`l`g`l`l`l`l`g`l`g`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`g`l`g`l`l`l`g`l`g`i`l`l`l`i`i`i`l`i`i`i`l`i`l`i`i`i",
-"`i`i`l`i`i`i`i`l`l`i`l`i`i`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`g`g`g`g`l`g`g`l`l`g`l`l`l`l`l`l`l`l`g`l`g`l`l`g`l`g`l`l`l`g`g`l`l`g`l`l`l`l`g`g`l`i`g`l`l`l`l`l`l`g`g`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`lak`l`i`iagaeaeae`l`l`lag`g`g`l`l`l`lae`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`iag`l`g`g`l`g`g`l`g`g`l`l`l`l`l`l`l`l`l`l`g`l`iagak`l`g`l`g`l`lae`i`l`l`l`laeag`iag`g`l`l`l`l`l`i`l`l`l`g`g`l`l`l`g`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`lagak`l`l`l`l`g`l`l`l`l`l`l`i`l`l`l`i`l`l`l`l`lagag`l`l`g`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`lakae`l`l`g`g`l`g`l`g`l`gak`l`l`l`l`l`lak`g`l`l`g`l`g`g`l`g`l`l`g`g`l`l`g`l`l`l`l`g`g`l`l`l`l`l`i`l`l`l`g`g`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`i`i`l`l`i`l`l`i`l`l`i`i`i`i`i`l`i",
-"`i`i`i`i`i`l`i`i`i`i`l`i`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`g`l`l`g`l`l`l`l`l`l`l`g`l`l`l`l`g`l`g`l`g`l`g`l`g`l`l`g`l`l`g`l`l`g`l`g`g`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`g`l`g`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`lae`i`l`l`lagaeagag`l`l`l`i`i`l`l`l`g`l`lae`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`iak`l`l`l`g`l`g`lak`l`g`l`l`g`l`l`l`l`l`l`l`l`l`lak`l`g`g`l`lae`l`l`w`l`g`lak`wak```l`l`g`l`l`l`l`l`l`l`l`g`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`lak`l`l`l`i`l`lak`g`l`g`l`l`l`l`l`l`l`l`l`l`i`lak`l`l`g`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`lak`g`l`g`g`l`g`l`g`l`lae`l`l`l`g`l`l`iak`l`g`l`l`l`l`g`l`g`l`l`l`g`l`l`l`g`l`g`g`l`l`g`l`l`l`l`l`l`l`l`g`l`g`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`i`l`i`i`l`i`i`i`l`i`l`i`i`i`i",
-"`ial`l`i`i`i`l`l`l`i`l`i`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`g`g`l`l`g`l`l`l`l`l`l`l`l`g`l`l`l`l`l`g`l`l`l`l`l`g`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`i`l`i`l`i`l`l`l`l`i`l`l`l`l`l`l`l`l`l`g`l`lag`l`l`i`lagakaeae`l`l`l`lae`l`l`l`l`l`lae`i`l`l`l`l`l`l`l`l`l`l`l`l`lakak`i`l`l`lak`lak`i`g`l`lakaeakak`i`l`iak`iak`lak`i`g`l`l`gak`l`i`l`g`gak`l`l`i`g`l`lakag`i`w`l`l`g`l`l`l`l`l`l`l`l`l`g`l`g`l`l`g`l`g`l`l`l`i`l`i`i`i`l`l`l`l`lakakak`l`l`lakaeakakak`l`lakakak`iakak`l`l`l`lak`l`l`l`l`l`l`l`l`l`l`iakakak`i`iak`l`l`l`lakak`l`l`l`l`lakak`lak`l`g`l`iak`i`l`l`g`g`lae`l`l`l`l`l`lae`l`g`l`g`l`l`l`g`l`l`l`l`l`g`l`l`l`g`l`l`l`l`g`l`l`l`l`l`g`l`l`l`g`l`g`l`l`l`l`g`l`l`l`i`l`i`i`i`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`g`l`l`i`l`i`l`l`i`l`i`l`i`i`i`i`l`i`i",
-"`i`i`i`i`l`i`i`i`i`i`l`i`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`g`l`l`l`l`l`g`l`g`l`l`l`l`l`l`g`l`l`l`l`g`l`l`l`l`l`g`l`l`l`l`g`l`g`g`g`l`g`l`l`l`l`l`l`l`l`l`g`l`g`l`g`l`l`l`g`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`iak`l`l`i`lae`iakak`l`l`g`l`i`i`l`l`l`l`l`lae`l`l`l`l`l`l`l`l`l`l`l`iagakakaeak`l`lakaeakakak`l`lakaeakak`l`g`iaeaeakaeakae`l`l`l`lak`g`l`l`i`lakaeak`l`l`l`g`lae`lae`g`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`wakakae`l`lakaeakak`i`l`lakagakagakakak`l`i`lak`l`g`l`l`g`l`i`l`l`l`lakagakagakakak`l`iagakakae`i`l`laeakakagae`l`gaeaeakaeae`l`l`g`gak`l`l`l`l`l`g`iak`l`l`l`g`l`i`l`l`g`l`l`g`l`g`l`l`g`l`g`l`l`l`l`l`l`l`i`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`l`l`l`l`l`i`i`l`i`l`i`i`l`l`i`i`i`i`i",
-"`i`i`i`i`i`i`i`l`l`i`l`l`i`l`l`l`i`i`l`l`l`l`l`i`l`l`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`g`l`l`l`g`l`l`l`l`l`l`l`l`l`i`l`l`i`l`l`l`l`l`l`l`l`i`l`i`l`l`l`l`lak`l`l`i`l`i`l`l`l`l`l`l`l`l`lae`l`l`l`l`l`lak`i`l`l`l`i`l`l`i`l`l`lakakakakakag`g`lak`g`l`lak`l`l`lak`l`l`l`l`gakak`lak`lak`l`l`l`lak`l`l`l`l`l`l`l`lae`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`g`l`l`l`g`l`l`l`l`l`l`i`l`l`l`l`l`l`lak`l`lak`i`l`lak`i`l`l`l`l`lag`iak`i`lak`l`l`lak`l`l`l`l`iagaeagagag`l`lag`lak`l`lak`lak`l`l`l`iak`lak`i`l`l`gak`l`iaeakakakag`i`l`l`lak`l`g`l`l`l`l`lak`l`l`l`l`l`l`l`l`l`g`l`l`l`g`l`l`l`g`l`l`l`l`l`l`l`l`l`l`g`l`g`l`l`g`g`l`l`g`l`l`l`l`l`l`i`l`l`i`l`l`l`l`l`l`l`l`i`l`i`l`l`l`l`l`l`l`l`i`l`i`i`i`i`i`i`i`i`l`i`i`i",
-"`i`i`i`i`i`l`i`i`l`i`l`l`l`l`i`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`g`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`l`l`l`l`i`l`l`l`i`l`i`l`l`l`l`lak`l`l`l`l`i`i`i`l`i`l`i`l`l`lak`i`l`l`l`l`l`iae`l`l`l`l`i`l`l`l`i`laeakakakakak`l`lak`l`l`gak`l`l`lak`l`l`l`l`lakak`gak`lak`l`l`l`lak`l`l`l`lak`l`l`lak`l`g`l`g`l`g`l`l`l`l`l`l`l`l`l`l`g`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`l`i`l`l`lak`l`lak`l`i`lak`l`l`l`l`l`lae`lak`i`lak`i`l`lak`l`l`l`l`l`l`l`l`l`l`l`lae`lak`l`iak`lak`l`i`l`lak`lak`l`l`l`lak`g`iaeakakakak`i`l`l`lak`l`l`l`l`l`l`lak`l`l`l`l`l`l`l`i`l`l`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`l`l`l`l`i`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`l`i`i`i`i`i`i",
-"`i`i`i`l`i`i`i`l`i`i`l`i`l`i`l`l`i`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`i`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`i`l`i`l`l`l`l`l`l`g`l`l`g`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`i`l`l`l`l`i`l`l`l`i`l`l`l`l`l`l`l`l`l`l`iak`i`l`i`l`l`l`i`l`l`l`l`l`l`iak`l`l`l`i`i`lak`l`l`l`i`laeae`i`l`i`iae`i`l`l`i`g`lak`l`l`lak`i`i`lak`l`l`l`l`lakak`l`i`lak`l`l`l`lak`l`l`i`lakakaeakak`g`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`g`l`l`l`lakae`l`l`i`l`l`i`l`l`l`l`l`lak`l`lak`i`l`iak`l`i`l`i`l`lag`lak`l`iak`i`l`lak`l`l`l`l`l`l`l`l`l`l`l`lae`lak`l`lak`lakak`i`lae`i`l`lae`l`lakae`i`lag`i`l`l`i`l`l`l`lak`l`l`l`l`l`lak`l`l`l`l`l`l`i`l`i`l`i`l`l`g`l`l`l`l`g`l`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`l`l`l`l`l`l`l`i`l`l`l`l`l`i`l`l`l`l`l`l`i`l`i`l`i`l`i`l`i`l`i`l`i`l`i",
-"`i`i`i`i`i`i`i`l`l`i`l`l`l`l`l`l`l`l`l`i`l`l`l`i`l`l`l`l`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`i`l`l`i`l`l`l`l`g`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`g`l`l`l`l`l`l`i`l`l`i`i`i`i`l`i`l`l`l`i`l`i`l`l`i`i`l`l`l`l`lak`l`l`l`i`i`l`l`i`l`i`l`l`l`iak`i`i`l`l`l`l`iak`l`l`l`laeak`g`l`l`l`iaeaeak`i`l`iaeak`iakaeak`l`lakaeaeak`i`iaeak`lae`l`iak`laeaeaeaeae`l`l`i`lak`l`l`l`l`g`l`g`l`l`l`l`l`l`l`l`l`l`i`l`l`l`i`l`l`l`l`l`lakae`l`l`l`i`i`i`l`i`i`l`laeae`i`iaeae`l`i`iaeaeae`i`laeae`lakak`lae`lakaeaeaeae`i`l`l`l`l`l`l`l`laeae`lak`i`lae`l`l`iaeae`i`i`i`l`iaeae`iakak`l`lakaeae`i`l`l`l`iak`l`l`l`l`l`lae`l`l`i`l`l`l`i`l`l`i`l`l`i`l`l`g`l`l`l`l`l`l`g`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`i`i`i`i`l`l`l`i`l`i`i`l`l`i`l`l`l`l`l`l`l`l`l`l`i`l`i`l`i`i`i`i`i`i`i",
-"`i`i`i`l`i`i`l`i`i`l`i`l`l`i`l`l`l`l`i`l`i`i`i`l`i`i`l`l`l`l`i`l`i`l`i`i`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`i`i`i`l`l`l`l`i`i`i`i`l`l`i`g`l`l`l`l`l`l`l`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`i`l`l`l`l`i`l`i`i`i`l`i`l`i`l`l`l`l`i`l`l`l`i`i`l`l`l`l`l`l`l`i`l`l`i`l`l`l`i`l`l`l`l`l`lak`l`l`l`l`l`l`i`i`i`i`l`l`i`i`i`l`i`l`i`l`i`l`i`i`l`l`l`l`i`l`l`l`l`l`i`l`i`i`l`l`l`l`l`l`i`l`i`i`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`l`l`l`i`l`i`i`i`l`i`l`i`i`l`l`l`i`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`i`l`i`i`i`l`l`i`l`l`i`l`i`l`i`i`i`l`l`l`i`l`i`l`i`l`i`l`l`l`l`i`i`l`i`i`i`i`l`i`i`l`lae`l`l`l`l`l`lak`i`l`i`l`i`l`l`l`i`i`i`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`l`i`l`l`l`i`l`l`l`l`l`l`l`i`l`l`i`l`l`i`l`l`l`l`i`i`i`l`i`l`i`l`i`l`l`l`i`l`l`l`l`l`l`l`i`l`l`i`l`i`l`i`i`i`i",
-"`i`i`i`i`i`i`l`i`l`i`l`i`l`i`i`l`l`l`l`l`l`l`i`l`l`i`l`i`l`l`i`l`l`l`i`l`l`i`l`i`i`l`l`l`l`l`i`l`i`l`i`l`l`l`i`l`i`l`l`l`l`i`l`l`i`l`l`l`l`l`l`i`l`l`i`l`l`l`l`i`l`i`l`i`i`l`l`l`l`l`l`l`i`l`i`i`i`i`l`i`l`i`l`i`l`i`l`i`i`i`l`l`i`l`i`l`i`l`l`l`l`l`l`l`l`l`i`l`i`i`i`i`l`i`i`l`i`l`l`l`i`i`l`l`l`l`l`l`l`i`i`l`l`l`i`l`l`l`i`l`l`l`i`l`i`i`i`l`i`l`l`i`l`l`l`l`l`i`i`i`i`l`l`l`l`i`l`i`i`i`l`l`l`i`l`l`l`l`i`l`l`i`i`l`l`l`l`i`l`i`l`l`l`l`l`l`l`l`l`l`i`i`l`i`i`i`l`l`l`i`l`i`l`l`i`i`l`l`l`i`l`l`l`l`l`l`l`l`l`i`l`i`l`l`i`l`l`l`i`l`l`i`i`l`l`i`l`i`l`i`l`l`l`i`l`i`l`i`l`l`i`l`i`i`l`l`i`l`l`l`l`i`l`l`i`i`l`l`l`l`l`l`l`i`i`i`l`i`l`l`l`l`i`l`l`i`l`i`l`l`i`l`l`l`l`l`i`i`l`l`l`i`l`l`l`i`l`l`l`l`l`l`l`l`l`l`l`i`l`i`i`l`i`i`i`i`l`i`l`i`l`i`l`i`l`i`l`i`l`l`i`l`l`l`l`i`l`l`i`l`i`l`i`i`i`i`i`i",
-"`i`i`i`i`l`i`i`l`i`l`i`l`l`l`l`i`l`i`i`i`i`i`l`i`l`l`l`l`l`i`l`i`l`i`l`i`i`l`l`l`l`i`l`i`l`i`l`i`l`i`l`i`l`i`l`l`i`l`i`i`i`l`i`i`l`i`l`l`l`i`i`l`l`i`l`l`i`l`l`l`l`l`l`l`l`l`l`l`l`l`l`i`l`i`i`l`i`l`i`l`i`l`i`l`i`l`i`l`l`l`l`i`l`i`l`i`l`l`i`i`i`i`l`i`i`i`l`l`l`l`i`l`l`i`l`l`i`l`i`l`l`i`l`i`l`i`i`i`i`l`l`l`i`l`l`l`l`i`l`i`l`i`l`i`l`l`l`l`l`i`l`l`i`i`i`l`i`l`l`l`l`i`l`l`i`l`i`l`i`i`i`i`l`i`l`l`l`i`l`i`l`l`l`l`i`l`l`l`l`l`i`l`l`l`l`l`l`l`l`l`i`l`i`i`l`i`i`l`i`l`i`l`i`i`l`l`i`i`l`i`l`i`i`l`l`l`i`l`i`l`i`l`i`l`l`l`i`l`i`i`l`i`l`l`i`l`l`l`l`l`i`i`l`i`l`i`l`i`l`i`l`l`l`l`l`i`l`i`l`i`l`i`l`i`l`l`i`i`l`l`i`i`i`l`l`i`l`i`i`i`l`l`l`i`l`i`i`l`i`i`i`l`i`l`l`i`l`i`l`l`l`l`l`l`l`l`l`i`l`l`l`i`l`l`l`l`i`l`i`l`l`i`i`l`l`l`l`i`l`i`l`l`i`l`i`l`l`i`l`i`l`i`l`i`i`l`i`l`l`i`l`l`i`l`l`i`i`i",
-"`i`i`i`i`i`i`i`i`l`i`i`i`i`i`l`i`i`l`l`l`l`i`l`i`i`i`i`i`l`i`l`i`l`i`l`l`i`i`l`i`l`i`l`i`l`l`l`i`l`i`i`i`i`i`i`l`i`l`l`i`i`i`l`i`l`i`i`i`l`l`i`l`l`i`l`l`i`i`l`i`l`l`l`l`i`l`i`l`i`i`l`l`l`l`i`l`i`l`i`l`i`l`i`l`i`l`i`i`i`i`l`i`l`l`l`l`i`i`l`l`l`l`l`l`l`l`i`i`l`i`i`i`l`i`i`l`i`l`i`l`i`i`l`i`l`l`l`l`i`i`i`l`i`i`i`i`l`i`l`i`l`i`l`i`i`i`i`l`l`i`l`l`l`l`i`l`i`i`i`i`i`i`i`l`i`l`l`i`i`l`i`i`l`i`l`i`i`l`l`i`l`i`i`l`i`l`l`i`l`l`l`l`i`l`i`l`i`i`l`i`l`l`i`l`i`l`i`i`l`l`i`i`l`i`i`l`l`i`l`i`l`l`i`l`i`i`i`l`l`l`l`l`i`l`i`l`i`l`i`l`i`l`i`l`i`i`i`i`i`i`l`l`i`l`l`i`l`i`l`i`i`i`l`i`l`i`l`i`l`i`l`i`l`i`l`l`l`i`l`i`l`l`l`i`i`i`i`l`i`i`l`i`i`l`i`l`i`l`i`l`i`l`i`i`l`l`i`l`i`i`l`i`i`l`l`i`l`l`l`l`l`i`l`i`l`l`l`l`i`l`i`l`i`i`i`i`l`i`l`i`i`l`i`l`i`i`l`i`l`l`l`l`i`l`i`l`l`i`l`l`i`i`i`i`i`i`i`i",
-"`i`i`i`i`l`i`i`l`i`l`i`l`i`l`i`i`l`i`l`i`i`l`i`l`i`l`l`l`i`l`i`i`i`l`i`i`l`l`i`l`i`l`l`l`i`i`i`l`i`i`i`l`i`l`i`l`l`i`i`i`l`i`i`i`i`i`l`i`i`i`l`i`i`l`i`i`l`l`i`i`i`l`l`l`i`l`l`i`l`l`i`i`i`i`l`i`l`i`l`i`i`l`l`i`i`i`l`l`i`l`i`l`l`i`i`l`i`i`i`i`i`i`i`l`l`i`l`l`i`l`l`l`i`i`l`i`l`i`i`i`i`l`i`i`i`i`l`i`l`l`l`i`l`l`l`l`i`l`i`l`i`l`i`l`l`l`l`i`i`l`i`i`l`i`l`i`l`i`i`l`i`l`i`l`i`i`l`i`i`l`i`i`l`i`i`l`i`i`l`l`i`l`l`i`l`i`i`i`i`l`l`l`i`l`l`i`l`i`l`i`l`i`l`i`l`i`l`i`i`i`l`l`i`l`i`i`i`l`i`l`l`i`l`l`i`l`i`i`i`l`i`l`l`i`l`i`l`i`i`i`l`i`i`i`l`l`i`l`i`l`i`i`i`l`i`l`i`l`i`l`i`l`i`l`i`l`i`i`i`l`i`l`i`l`l`i`i`l`l`i`l`l`i`l`l`i`i`l`i`i`i`l`i`l`i`i`i`i`i`i`l`i`l`i`i`i`l`l`i`l`i`l`l`i`i`i`i`l`i`l`i`l`i`l`i`i`i`i`l`i`l`i`i`l`l`i`i`l`i`l`i`l`i`i`l`l`i`l`i`i`i`l`i`i`i`i`i`l`i`l`l`l`l`i`l`i`i`i",
-"`i`i`i`i`i`i`i`l`i`i`i`l`i`l`i`i`l`i`l`l`i`l`i`l`i`l`i`l`i`l`l`i`l`i`l`i`l`i`l`l`i`i`i`l`l`l`i`l`l`i`i`l`i`i`i`i`l`i`l`i`i`i`l`i`l`i`l`i`l`i`i`l`i`l`i`i`i`l`i`i`i`i`i`l`i`l`i`l`i`l`l`l`i`i`l`i`l`i`i`l`i`i`i`l`l`i`i`i`i`l`i`i`i`l`i`l`i`l`i`l`l`i`l`i`l`i`l`i`l`i`i`i`i`i`i`i`i`l`l`i`i`l`i`l`i`i`l`i`l`i`i`i`i`i`i`l`i`l`i`i`l`i`i`i`l`i`l`l`i`l`l`i`l`i`l`i`l`i`i`i`i`l`i`i`l`i`l`i`l`i`i`i`l`i`i`i`l`i`i`l`i`i`i`i`l`i`i`i`i`i`i`l`i`l`i`l`i`l`i`l`i`l`i`l`i`l`i`l`l`i`i`i`i`l`i`l`i`i`i`i`i`i`i`l`i`i`l`i`i`l`i`l`i`l`l`i`l`l`l`i`i`l`i`i`i`i`l`i`i`i`i`l`i`i`l`l`i`l`l`i`l`l`i`l`i`l`l`i`l`i`i`l`i`i`l`l`i`i`l`i`l`i`l`i`i`i`l`i`l`i`i`l`i`i`l`i`l`i`i`l`i`l`i`i`l`i`i`l`i`l`i`i`i`l`i`i`i`i`l`l`l`l`i`l`l`l`l`i`i`i`l`l`i`i`l`i`i`l`i`i`i`l`i`i`i`l`i`l`i`l`i`l`l`i`l`i`i`l`i`l`i`i`l`i`i`i`i`i",
-"`i`i`i`i`i`l`i`i`i`l`i`i`i`i`l`i`i`i`i`i`l`i`l`i`i`i`l`i`i`i`i`l`i`i`i`l`i`i`i`i`l`i`l`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`l`i`l`i`i`i`i`l`i`i`i`l`i`i`i`i`l`i`i`i`l`i`i`i`l`i`l`i`i`i`l`i`i`i`l`i`i`i`i`i`l`i`i`l`i`i`i`i`l`i`i`i`i`l`i`i`i`l`i`i`i`i`i`i`i`l`i`l`i`l`i`i`l`i`l`i`l`i`i`i`i`l`i`i`i`i`l`i`i`i`i`l`l`l`l`i`l`i`i`i`i`l`i`i`l`i`i`i`i`i`i`i`i`l`i`i`i`l`i`i`i`l`i`i`i`i`i`l`i`i`i`l`i`i`i`l`l`i`i`i`i`i`i`l`l`i`i`i`i`l`i`i`l`i`i`l`i`i`l`i`l`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`i`i`i`l`i`l`i`l`i`l`i`i`i`l`i`i`l`i`l`i`i`l`i`i`i`i`i`i`i`l`i`i`i`l`i`l`i`l`i`i`i`i`i`l`i`i`i`i`l`i`i`i`i`l`i`l`i`i`l`i`i`i`l`i`i`l`i`i`i`l`i`i`i`i`i`i`i`l`i`i`l`i`i`l`i`i`i`i`l`i`l`i`i`i`i`i`l`i`i`i`l`i`l`i`i`i`i`i`i`l`i`i`i`l`l`i`i`i`l`i`i`l`i`i`l`i`l`i`l`i`i`i`i`i`i`i`l`i`i`i`i`i`l`i`i`l`i`l`l`i`i`l`i`i",
-"`i`i`i`i`i`i`i`i`i`l`i`i`l`i`i`l`i`l`i`l`i`i`l`i`l`i`i`l`i`l`i`i`i`i`i`i`l`i`l`i`i`i`i`l`i`i`l`i`i`l`i`i`i`i`l`i`i`i`l`i`i`i`i`i`i`i`l`l`i`i`l`i`l`i`i`l`i`i`i`l`i`i`l`i`i`l`i`i`i`l`l`i`i`l`i`l`i`i`i`l`i`i`l`i`l`i`i`l`i`i`i`i`i`l`i`i`l`i`i`i`l`i`i`i`i`l`i`l`i`l`i`i`i`i`l`i`i`i`i`i`l`i`l`i`i`l`l`l`i`i`i`i`i`i`i`l`i`l`i`iak`i`l`i`l`i`l`i`l`i`i`i`l`i`i`i`i`l`i`i`i`i`i`i`i`i`iak`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`l`i`i`i`l`i`i`i`l`i`i`l`i`i`i`l`i`l`i`i`i`l`i`l`i`i`i`i`l`i`l`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`l`l`i`l`i`l`i`l`i`l`i`i`i`l`i`i`i`i`i`i`l`i`l`l`i`i`l`i`l`i`i`l`i`l`i`i`i`i`l`i`i`l`l`i`i`l`i`i`i`l`i`i`i`i`i`l`i`i`i`i`i`l`i`i`i`i`i`i`l`i`i`i`i`i`l`i`i`i`i`l`i`i`i`i`i`l`i`i`l`i`i`i`l`l`i`i`i`i`i`i`i`l`i`i`l`i`i`i`i`i`l`i`i`i`l`i`i`i`l`i`l`i`l`i`i`i`i`l`i`i`l`l`i`i`i`i",
-"`i`i`l`i`l`l`i`l`i`i`i`i`i`i`i`i`l`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`l`i`i`i`i`i`l`i`i`i`i`i`i`i`l`i`i`i`l`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`l`i`i`i`i`l`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`l`i`i`l`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`i`l`i`l`i`i`i`i`i`l`i`i`i`i`i`l`i`i`i`l`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`l`i`i`i`i`l`i`i`i`i`i`i`i`l`i`i`i`l`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`l`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`l`i`i`i`i`l`i`i`i`l`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`l`i`i`i`i`l`i`i`i`i`i`l`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`l`i`l`i`i`i`i`i`i`l`i`i`i`i`l`l`i`l`i`i`i`i`i`i`l`i`l`i`l`i`i`l`i`i`l`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`l`i`l`i`i",
-"`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`l`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`l`i`l`i`i`l`i`i`i`i`l`l`i`i`i`l`i`i`i`i`l`i`i`l`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`iak`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`iak`i`i`i`i`i`i`i`i`i`i`l`i`i`i`iak`l`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`l`i`l`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`l`i`i`i`i`l`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`l`i`l`i`i`i`i`i`l`i`i`i`i`i`i`i`l`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i",
-"`i`i`l`i`i`i`i`i`i`i`i`i`i`l`i`l`i`l`i`i`l`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`iak`i`i`i`i`i`i`i`iak`i`i`i`iak`i`i`i`i`i`i`i`iak`i`i`i`i`i`i`l`i`i`iak`iak`i`iak`l`i`i`i`i`i`i`i`i`i`iak`iak`i`i`iak`i`iak`i`i`i`i`i`i`i`i`i`i`i`i`iak`i`i`i`i`i`i`i`i`i`i`i`iak`i`i`i`i`i`i`iak`iak`i`i`i`iak`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`l`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`i`i`i`l`i`i`i`i`l`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`l`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`l`i`l`i`l`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i",
-"`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`l`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`iak`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`iak`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`iak`l`i`i`i`i`i`i`i`i`i`iak`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`l`i`i`i`i`i`l`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i`i"
+"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
+"oxxoxxoxxoxxoxxoxoxoxoxxoxxoxxoxxxxoxxoxxxoxxoxxoxxoxxoxoxxoxxxoxxoxxoxxoxxoxoxxoxxoxxxoxxoxxoxoxoxoxxoxxoxoxoxxoxxoxoxoxoxoxoxxoxxoxxoxxoxxoxxoxoxoxoxxoxxoxxoxxxxoxxoxxxoxxoxxoxxoxxoxoxxoxxxoxxoxxoxxoxxoxoxxoxxoxxxoxxoxxoxoxoxoxxoxxoxoxoxxoxxoxoxoxoxoxoxxoxxoxxoxxoxxoxxoxoxoxoxxoxxoxxoxxxxoxxoxxxoxxoxxoxxoxxoxoxxoxxxoxxoxxoxxoxxoxoxxoxxoxxxoxxoxxoxoxoxoxxoxxoxoxoxoxxoxoxoxoxoxoxoxxoxx",
+"xxxxxxxoxxxxxoxxxxxxxxoxxxxxxxxxoxxxoxxxoxxxxxxxxoxxxxxxxoxxxoxxxxxxxxxxxoxxxxoxxxxxxoxxxxxoxxxxxxxxoxxxxxxxxxoxxxxxxxxxxxxxxxoxxxxxxxxoxxxxxoxxxxxxxxoxxxxxxxxxoxxxoxxxoxxxxxxxxoxxxxxxxoxxxoxxxxxxxxxxxoxxxxoxxxxxxoxxxxxoxxxxxxxxoxxxxxxxxxoxxxxxxxxxxxxxxxoxxxxxxxxoxxxxxoxxxxxxxxoxxxxxxxxxoxxxoxxxoxxxxxxxxoxxxxxxxoxxxoxxxxxxxxxxxoxxxxoxxxxxxoxxxxxoxxxxxxxxoxxxxxxxxxxxoxxxxxxxxxxxxxxoxxxx",
+"oxxoxxxxoxoxxxxxoxoxoxxxoxxoxxoxxxoxxoxxxxoxxoxxxxxoxxoxxxxoxxxxxxxxxoxxxxoxxxxxxxoxxxxxoxxxxoxoxoxxxxoxoxxoxxxoxoxxxoxoxoxoxxxxoxxoxxxxoxoxxxxxoxoxoxxxoxxoxxoxxxoxxoxxxxoxxoxxxxxoxxoxxxxoxxxxxxxxxoxxxxoxxxxxxxoxxxxxoxxxxoxoxoxxxxoxoxxoxxxoxoxxxoxoxoxoxxxxoxxoxxxxoxoxxxxxoxoxoxxxoxxoxxoxxxoxxoxxxxoxxoxxxxxoxxoxxxxoxxxxxxxxxoxxxxoxxxxxxxoxxxxxoxxxxoxoxoxxxxxoxoxxoxxxxxxxxoxoxoxoxxxxxoxx",
+"xxxxoxxxxxxxxxoxxxxxxxxxxoxxxxxoxxxxxxoxxxxxxxxoxxxxoxxxoxxxoxxoxxxxxxxxxxxxoxxxoxxxxxoxxxoxxxxxxxoxoxxxxoxxxxxxxxxoxxxxxxxxoxxxxxxxoxxxxxxxxxoxxxxxxxxxxoxxxxxoxxxxxxoxxxxxxxxoxxxxoxxxoxxxoxxoxxxxxxxxxxxxoxxxoxxxxxoxxxoxxxxxxxoxoxxxxoxxxxxxxxxoxxxxxxxxoxxxxxxxoxxxxxxxxxoxxxxxxxxxxoxxxxxoxxxxxxoxxxxxxxxoxxxxoxxxoxxxoxxoxxxxxxxxxxxxoxxxoxxxxxoxxxoxxxxxxoxoxxxxxxoxxxoxoxxoxxxxxxxxoxoxxxxx",
+"xoxxxoxxxxoxoxxxxxxoxoxoxxxxoxxxoxxoxxxxxoxxoxxxoxxxxxxxxxoxxoxxoxxxxoxxxxxxxoxxxxoxxxxxxxxxxxoxoxxxxxxoxxxoxxoxxoxxxxxxxoxxxxxoxoxxxoxxxxoxoxxxxxxoxoxoxxxxoxxxoxxoxxxxxoxxoxxxoxxxxxxxxxoxxoxxoxxxxoxxxxxxxoxxxxoxxxxxxxxxxxoxoxxxxxxoxxxoxxoxxoxxxxxxxoxxxxxoxoxxxoxxxxoxoxxxxxxoxoxoxxxxoxxxoxxoxxxxxoxxoxxxoxxxxxxxxxoxxoxxoxxxxoxxxxxxxoxxxxoxxxxxxxxxxoxoxxxxxoxoxxxxoxxxxxxxxxxxxoxxxxxxoxox",
+"xxoxxxxoxxxxxoxxxoxxxxxxxxoxxxxxxoxxxoxoxxxxxxxxxxoxxoxxxxxoxxxxxoxxxxoxxoxxxxxxxxxxoxxxxxxxoxxxoxoxxoxxxxxxoxxxxxxxxxxoxxxoxxxxxxoxxxxoxxxxxoxxxoxxxxxxxxoxxxxxxoxxxoxoxxxxxxxxxxoxxoxxxxxoxxxxxoxxxxoxxoxxxxxxxxxxoxxxxxxxoxxxoxoxxoxxxxxxoxxxxxxxxxxoxxxoxxxxxxoxxxxoxxxxxoxxxoxxxxxxxxoxxxxxxoxxxoxoxxxxxxxxxxoxxoxxxxxoxxxxxoxxxxoxxoxxxxxxxxxxoxxxxxxxxxxxooxoxxxxoxxxxoxxxoxxxxxoxxxoxxxxxxxx",
+"xxxxxoxxxoxxxxoxxxxxoxxoxxxxxxoxxxxoxxxxxxxxoxxxoxxoxxxxoxxxoxxoxxxxxxxoxxxxxoxxxxxxxxxxxoxxxxxoxxxxxxxoxoxxxxoxxoxxoxxxxxxxoxxoxxxxxoxxxoxxxxoxxxxxoxxoxxxxxxoxxxxoxxxxxxxxoxxxoxxoxxxxoxxxoxxoxxxxxxxoxxxxxoxxxxxxxxxxxoxxxxxoxxxxxxxoxoxxxxoxxoxxoxxxxxxxoxxoxxxxxoxxxoxxxxoxxxxxoxxoxxxxxxoxxxxoxxxxxxxxoxxxoxxoxxxxoxxxoxxoxxxxxxxoxxxxxoxxxxxxxxxxxoxxxxoxxxxxoxoxxxoxxxoxxxxxoxxxxxxxoxxxxoxx",
+"xoxoxxxxxxxoxxxoxxxxxoxxoxxxoxxxoxxxxxxxxoxxxxxxxoxxoxoxxxxxxoxxoxxoxxxxxxxoxxxxxxxxxxoxxxxxxxxxxoxoxxxxxxoxxxxxxxxxxoxxxxxxxxxxxoxxxxoxxxxoxxxoxxxxxoxxoxxxoxxxoxxxxxxxxoxxxxxxxoxxoxoxxxxxxoxxoxxoxxxxxxxoxxxxxxxxxxoxxxxxxxxxxoxoxxxxxxoxxxxxxxxxxoxxxxxxxxxxxoxxxxoxxxxoxxxoxxxxxoxxoxxxoxxxoxxxxxxxxoxxxxxxxoxxoxoxxxxxxoxxoxxoxxxxxxxoxxxxxxxxxxoxxxxxoxxxoxxxxxxoxxxxoxxxxxxxxoxxxxxxxxxoxxox",
+"xxxxxoxoxoxxoxxxoxxxxxxxxoxxxxoxxxxoxxxxxxxxxxxxxxoxxxxxxoxoxxoxxoxxoxxxoxxxxoxoxxxxxxxxxxxxoxxxxxxxoxxoxxxoxxoxxxxxoxxoxxxxxxxxxxxoxxxxxoxxoxxxoxxxxxxxxoxxxxoxxxxoxxxxxxxxxxxxxxoxxxxxxoxoxxoxxoxxoxxxoxxxxoxoxxxxxxxxxxxxoxxxxxxxoxxoxxxoxxoxxxxxoxxoxxxxxxxxxxxoxxxxxoxxoxxxoxxxxxxxxoxxxxoxxxxoxxxxxxxxxxxxxxoxxxxxxoxoxxoxxoxxoxxxoxxxxoxoxxxxxxxxxxxxxxxxxxxoxxxxxxoxxxxoxxxxoxxoxxxxxxxxxxxx",
+"xxoxxxxxxxxxxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxoxoxxxxxxxxxxxxxxxxoxxxxxxxxoxoxxxxxxxxoxxxoxxoxxxxxxoxxxoxxxoxxxxxxxoxxxxxxxxxxxoxoxxxxxxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxoxoxxxxxxxxxxxxxxxxoxxxxxxxxoxoxxxxxxxxoxxxoxxoxxxxxxoxxxoxxxoxxxxxxxoxxxxxxxxxxxoxoxxxxxxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxoxoxxxxxxxxxxxxxxxxoxxxxxxxxoxoxxxxxxxxxxxoxxxxxxxoxoxxxoxxxxoxxxxxxxoxxxxxxxoxxx",
+"xxxoxxoxuuxoxxxopxxxxxxxxxuuxxxxoxxxoxxxxxxxxxoxuuoxxxoxoxxxoxoxopoxxxxxoxxxooxxxxxxxxxxxxxxoxxxxxxxoxxxxxxxxxoxxxxxoxoxxxxxxxxxxxxxxpoxoxxxoxxxxxxxxxxpoxxxxxxxoxxxoxxxxxxxxpooxxoxxxoxoxxxoxxoxxxxxxxxoxxxooxxxxxxxxxxxxxxoxxxxxxxoxxxxxxxxxoxxxxxoxoxxxxxxxxxxxxxxxxxoxxxoxxxxxxxxxxxxxxxxxxxoxxxoxxxxxxxxoxoxxoxxxoxoxxxoxxoxxxxxxxxoxxxooxxxxxxxxxxxxxxxxxxoxoxxxxxxxxxoxoxxxxxoxoxxxxxxxxxxoxx",
+"xxxxxxxxxoxxoxxxuxxxxxxxxxxuxxoxxxxxxxxoxxxxxxxxxuxxoxxoxxxxxxxoupxoxxupppxxxxxxxxxoxpptpuuxxxoxxxxotuxotuxxoxxxoxxxxxxoxxxxxxxxxxoxxxuxoxxxxxxxoxxxxxxxuxxxxoxxxxxxxxxoxxxxxxuxxxxoxxoxxxxxxoxxoxxxoxxxxxoxxxxxxxxoxxxoxxxxxxoxxxxxxxoxxxxoxxxxoxxxxxxoxxxxxxxxxxoxxxoxoxxxxxxxoxxxxxxxxxxxoxoxxxxxxxxoxxxxxxxxoxxxoxxoxxxxxoxxoxxxoxxxxxoxxxxxxxxoxxxoxxxxxxoxxxxxxxxxxxxxxxxxoxxxxxxoxxoxxxxxxxxx",
+"xoxxoxooxoxxxouooxxxxxxxxxxooooxooxouoxxoxxuuxoxxuxouuxxoxxxxoxxtuxxxxxxuxxxxxxouoxxxoxoxxoxxxuuooxxopxuoxxxxxxxxooouxuoxoxouoxxxxxooxuxxxuuoxxxxxxxxxxxuouxxxxxuuoooxxouoxoxxuxuuoxoxxoxxxxxxoxxoxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxxxxxxxxxxxxoxxxoxxoxxxxxxxxxxxxxoxxxxxxxxxxxxxoxxxxxxxooxooxxxoxxxxxoxxoxoxoxxxxxxxxoxxoxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxoxxoxoxoxxxxxxxxxxxxxoxxxxxoxoxxxoxx",
+"xoxxxuoouuoxuuoppxxxxxxxxxopuuuoxxupuppxxopuupooxuxpuoxxxoxxxxxopxxxxoxxuxoxooxouuoxxxxuxxxxxpuuuuxoxuupxxxxxxxxxopuupupxxupuupxxxpuupoxopuupuxxxxxxxxxxtuupxxxpuopuxoupuupxxxuxtuoxoxxoxoxxoxxoxxxxxxxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxooxxoxxoxxxxxxxxoxoxoxxoxxoxxxxxxxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxxoxxxxx",
+"xoxxoxoxxuxxuxxxuxxuptptuxxuxxxuxxuxxxooouxxxxuxxutoxoxoxxoxxxxxxxoxxxxxuxxxxooppuoxxxxoxxxxuuouutxxxotoxxxutptpuxuuxuxuxxuxxoxuxuxxxouxuuuuotxxppptpoxxoxxuxxooxxxuxxuxxoxuxxppoxxoxxxxxxoxxxxxooxxxxxxoxxxxoxxxxxxxxxxxxxxxxxxxxoxoxoxxxxxxxxxxxxxoxxoxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxxxxxooxoxoxxxxxxoxxxxxooxxxxxxoxxxxoxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxooxxxxxoxxxxxoxx",
+"xoxxoxxxxoxxoxxxuxxxxxxxxxxuxxxuxxuxoxouxuxoxxuxxuotxoxxxoxxxxxxoxoxxxoxuxxuxxpoxouxxxxuxxxxpuuouuxxxtxpoxxxxxxxxouuxuxuxxuxxxxuxuxxxxuxpuouuuxxxxxxxxxxuxxuxxuxxxxuxxuoxxxuxxpuuxxxooxoxoxxxxxxxxoxoxoxoxxoxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxooxxoxxoxxxxxoxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxoxxoxxxxxxxxooxooxoxxxxxxxxoxoxoxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxooxxxoxxxxxxoxoxxox",
+"xoxxoooxuuxxuoxotxxxxxxxxxxuxxxuxxpuxopxoopxxpoxxuxopxxxoxxxxxxoxxxoxxxouoouxxuoxuuxxxxuxxxxotoxxoxxpoxotxxxxxxxxxuuouxuxxuuxopoxuuxopuxotoxxxxxxxxxxxxxuxxuxxxpoxopoxpoxotxxxuxuuxxxxxxxxxxxxxoxoxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxxoxxxoxxxxxxoxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxoxxxxxxxxxxxxxxxxxxxoxoxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxoxxxxxoxxxxx",
+"xooxxxuuouuxxppuotxxxxxxxxutoxttoxxpttoxxxuttooxppxxttoxxxoxxxxxoxxoxxutttttxxuttotuxxpttuxxxxptpoxotuxotpxxxxxoxutpxtoupxopttoxxxutpotoxoptpxxxxxxxxxxttxottxxoptpxxxoptpooxtuxotpxxoxoxxoxxxxxxxxoxxxoxxxxxxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxoxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxxxxxxxxoxxoxxxxxxxxxoxxxoxxxxxxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxxxoxoxxxxoxxx",
+"xxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxoxxoxxoxxxxxxoxxoxxxxoxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxxxxxxxxxxxoxxoxxoxxxxxxxoxoxxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxoxxxxxxoxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxoxxxoxxoxxxoxxoxxoxxxxxxxoxoxxoxxxxoxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxoxxxxxxxxxoxoxxoxx",
+"xoxxxxxxxxoxxxoxxxxxxxxxxxxxxxxxxxxxooxxxxoxxxxxxxxoxxxxoxxoxxxxoxoxxxxoxxxxoxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxoxxxxoxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxoxoxoxxxxxxxxoxxxxooxoxxxxoxoxxxxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxxxxxxxxxxoxxxxooxoxxxxoxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxxxxxoxxox",
+"xxxoxxoxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxoxxxxoxoooxxxxxxxxoooxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxxxxxxoxoxxoxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxoxxooxxxxxxxxxoooxxxxxxxxxxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxoxxxxxxxxxxxxoxoxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxoxxxoxxoxoxxxxxxxxoooxxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxoxxxxxxxxxxxoxxxxxx",
+"xoxxoxxxxxxxoxxxxxxxxxoooxxxxxxxxxxxoxoxxooxoxxxxoxoxxxxxxxxxxxxxxxoxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxxxxxxxxxxooxxxxxxxxxoxxxxxxxxxoooxxxxxxxxxxxxxooxxoxoxxxoxxxoxxxxoxxxxxxxxxoxoxxoxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxoooxxxxxxxxxxxoxoxxxooxxxxxxxxoxxoxxxxxxxxxxxoxoxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxxoxxxxoxxxxoxoxx",
+"xxxxxxoxoxxxxxoxxxxxxxxxxoxoxxxxxxxxxxxooxxxxxxxxxxxxxxoxoxxxxxoxoxxxoxoxxoxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxoxxxxooxxxxxxxxoxxxxxxxxxxooxxxxxxxxxxxxxoxxxxxxxxxxxxxxoxxxxxxxoxoxxoxoxxxoxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxoxxxxoxxooxxxxxxxxoxxxxxoxxxxoxoxxxxxxxxxxxxoxxxxxxxoxxxxxoxxxxxxxxoxoxxoxoxxoxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxxxxxxxxoxxxoxxx",
+"xoxoxxxxxxxoxxxxxxxooxooxoxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxoxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxoxoxoxxxxooxxoxxxxxxxxxxxxxxooxoxxoxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxooxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxoxoxoxxxxxoxxoxxxxxxxxxxxxxxxooxooxxoxoxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxoxooxxxoxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxoxoxxoxxxxox",
+"xxxxoxoxxxxxooxooxxxxxxxxoxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxooxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxoxxxxxooxxxxxxxooxooxxxxxxxxoxoxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxoxoxxooxxxxxxxooxooxxxxxxxxoxoxxxxoxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxoxxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxoxxx",
+"xoxxxxxoxxxxxxxxxxxxxxoooxoooxoxxoxoxxxxxxxxxxxxxxxxxxxxxxxxooxxxxuxxxiixooxxxxxxxxxoxxxxxovxxxxxxxxxxupxxxxxxxxxxxxxxoxxoxxuxxxxuxxxxoxxxxxxxoxxxxxxxoooxxooxoxooxoxxxxoxxxxxxxxxxxxxxxxxxxooxxxxoxxxooxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxxxxxoxxxoxxxxxxxoxxxxxxxooxxoooxoxxooxxxxxxxxxxxxxxxxxxxxxxxxxooxxxxxxxxooxooxxoxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxoxoxxoxx",
+"xxxoxoxxxxxxxxxooxxoxxxxxoxxoxooxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvoxxxxpxxxxoxxoxoxxxxxxxxxuxxxxxxxxxxxuxxxoxxxxoxxxoxxxoxxovoxxxvxoooxoxxxxxxxxooxxxxxxxooxxoxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxoxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxoxxxoxxxoxxxxxxooxoxxxxxxxxooxxxxxxxoxxoxooxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxoxxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxoxxxxxxoxxxxxxxox",
+"xoxxxxooxxxxxxxxoxxxoxxxxxxxxxxoxoxxxxxxxoxxxxxxxxxxxxxoxxxxxxxxxvxxxxxtooxxoxppoxxpupoouxxpxouxxxxxuuxpxxxupuxxxxoxxxxxxxxpuxxxouuxxxxoxxxxxxxxoxxxooxoxxxoxxxxxxoxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxoooxxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxxxxxxxxxxxoxxoxxxoxxxxxxxxoxxxooxooxxxxxxoxxoxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxoooxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxoxoxoxxx",
+"xxxxoxxxxxxxxxxoxxxoxoxooooxooxxooxxxxxxxxooxxxxxxxxxxxoxxxxxxxxuoxoxxxpxxxxxuppvoxpipiptuxpvtpixxxvupipxxopptuxxxxoxoxxxxxtxxxxxxtxxxxxxxxxxxoxxxxoxxxooxoxooxxooxxxxxxxoooxxxxxxxxxxxoxxxxxxxxxxxxxxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxoxxxoxxxxxoooooxxooxxxxxxxxooxxxxxxxxxxxoxxxxxxxxxxxoxxxoxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxxxxxxxxxxx",
+"xoxxxxoxoxoxxxxxooxxxxxxxxxxxoxxxxxxxxxxxoxxxxxxxxxxoxoooxxxxxxxpxxxxxxpooxoxuiivxxxixpxxpxpoxxxtxuxxxxtxxxvitpxxxxxxxoooxxpoxoxxopoxoxxxxxxxxxxooxxxxxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxoxoooxxxxxxxxxxxxxxxooxoxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxoxoxxoxxxxoxxxxxxxxxooxxxoxxxxxxxoxxxxxxxxxxoxxxxxxxxxxxoxoooxxxxxxxxxxxxxxxooxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxoxxoxxxoxo",
+"xxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxpxxxxxopxoxoovxxtoxoixpxxpxpxxxxpxpxxxxuxxtoxopxxxxxxxxxxxxpoxxxxxpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxoxxxoxxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxoxxxxxxxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxxoxxxx",
+"xoxxxoxxoxoxxoxxxxxxoxxxoxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxoxxoxpxxxxotxxxxpoxxixoxcxpxxpxpvoxuuxovxxtvxxtxxppxxxxxxxxxoxxtxxxxxopxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxooxxoxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxoooxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxoxoxxxxxoxxx",
+"xxxoxxoxxxxoxxxxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxvoxopccccuxxviipixcixvuxcuiociuxxxxicuttxpiioiuxxxxxxxxxxxuvxoxovuoxxxxxxxoxxxxooooouoooooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxoooxxxxxxxxoxxxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxxxxxxoxxoxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxoxxox",
+"xoxxxxxoxoxxoxxoxxxoxxxxxxxxxxxxxuururuurrrruururrurururrrrrrrruxuuoxxxxurrrrrrrrrrrrrrrrrrruxxxxxxxxrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrssssssssseaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxoxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxoxoxxxxxooxoxooxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxoxxoxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxxxxxxoxxxxox",
+"xxoxoxxxxxxxxoxxxxxxxxxxxxxxxxxxxrgqggggqgqgggggqggqggggggggggggkxxxxxxxrwgggggggggggggggggggkxxxxxxxrggggggggggggggggggggggggggggggggggggggggggggggqggggggqtxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxoxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoooxxxoxxxxxxxoxoxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxoxxoxxoxoxxx",
+"xxxxoxoxxoxoxxoxoxxxoxxxxxxxxxxxxuggggggggggggggggggggggggggggggnmxxxxxxowgggggggggggggggggggnmxxxxxxogggggggggggggggggggggggggggggggggggggggggggggggggggggndxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxxxxoxxxoxxooxxxxxxxxxxooxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxoxxxoxxxooxxxxoxxoxxxxoxx",
+"xxoxxxxxxxxxoxxoxxxxxxxxoxoxoxxxxxknggggggggggggggggggggggggggnnjmxxxxxxxegnggggggggggggggggnjmxxxxxxxkngggggggggggggggggggggggggggggggggggggggggggggggggggjmoxxxoxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxooxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxoxxxxxxxxoxxooxxxxxxoxxxxoxxxxoooxxxxxxxxxxxxxoooxxxxoxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxooxxxxxxxxoxoxxxxxxoxxox",
+"xxxxoxoxoxxxxxxxoxxxxxoxxxxoxoxoxoxbfjjgggggggggggggggggggnjddfmmcxoxoxxxximmmqggggggggggnjddfcxoxxxxxxmmjdnqggggggggggggggggggjdddddddjjnnggggggggggggggggjcoooooxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxxxxoxxxoxxxxxxxxooxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxxxxxx",
+"xxoxxoxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxopclggggggggggggggggjdmtooooouooooooxxxxosgggggggggjdf`ououoooxxxxxxxxueggggggggggggggggndjcpuuuouviimfjngggggggggggggdiuuuuooxxxxxxxxxxooxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxoxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxxxxxxxxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxx",
+"xxxoxxoxxxxxxoxxxxxoxxxxxxxxxxxxxxxxxoxuokgggggggggggggggjmpppupuppptpuuoxxxxusggggggggdd`ppppppppuuuoxxxxxouwgggggggggggggggdhpppuppppppppppcmnggggggggggndtptpppuoooxoxxxxxooxooxxxxxxxxxxxxxxxxxooooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxoxoxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxoxxxxxooxooxxxxxxxxxxxxxxxxxooooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxoxxxxoxxox",
+"xoxxxxxxoxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxourlggggggggggggggdbiiiiiivvvvvtpuoxxxrwggggggnddciiiiiivvvttpuoxxxxorwggggggggggggggndciiviiviiviiiviviimqggggggggjhciciivpuooxxxxxxxxoxooxoxxxxxxxxxxxxxxxxooxxxxxxxxxxxxxxxxxxxxoooxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxoxxoooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxooxoxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxoooxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxxxxxxx",
+"xxoxxoxxoxoxoxxxxxoxxxxxxxxxxxxxxxxxxxxoptkggggggggggggggjbbbbb`b```ccvppuoxuaggggggndhm`bb`b`b`b`citpoxxxxorwggggggggggggggjjbbbbbb``b``````````bqgggggggjhmbmb`cvpuxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxoxoxooxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxoxxoxox",
+"xxxoxxoxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxoopvaggggggggggggggjhhfhfffmb``cituoxurlgggggnddjhfhfhfffmmb``mbtxxxpurgggggggggggggggdhhfhffffhfbbbbbbbbbmmwqggggggddhhhhf`ipuxxxxxxxxxxxoxxxxxxxxxxxooxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvtxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxxxxx",
+"xoxxxxxoxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxopvvwgggggggggggggndddhdhfmm`civtuoorkgggggndhfhdhdhdhhhfbbcbpuxxxxuurggggggggggggggndddhddhhfmfb``````bbbmmkggggggdddddhhb`bm`oxxxxxxxxxov``b`bxxooxxoxxmbxxbcxxxxxoxxxxxxxxxxxxxxxxxxxxxxpxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxoooxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoooxxxxxxooxoooxxoxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxx",
+"xxxxoxxxxxoxxxooxxoxxxxxxxxxxxxxxxxxxxxooptsggggggggggggggdddddhfbcivtpuuursgggggndhmmfddddddhfb```bvtxxxttusggggggggggggggjdddddddhfbbi``cvii`bb`bsqggggnddddddfbitvoxxxxxuttxxxtoxvxtxxxpvpoooomxocoxxxxxxxxpopxuoxxxxtuxxxxxppxuxxxotoxxxxxxxxxxpupxtoxxxutuxootxttoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxoxxxxxxooxxoooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxoxx",
+"xxxxxoxoxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxoouurggggggggggggggddddhfbcvtppuoouegggggndfbbfhdddddhhfcvii`vpxxxtcrkggggggggggggggjddddddhfbc`tbcippb`cbbiikggggjdddddhfbipvxxxxxxtttioxxxxtxxxocivicxxxuc`xxxxxxxxxxt`t`tvuxx`tpcxxxipt`vxxivtiixxxxxxxxxcvvipcxxuttvuxuicvtcpxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxoxooooxoxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxx",
+"oxoxxxxxxxoxxxxxxxxoxxxxxxxxxxxxxxxxxoxoxxouwgggggggggggggjdddhf`ituuuooraqggggndmiui`fhdddhhmhvpuuvoooxxxtrlggggggggggggggddddddddfcvcbtooop`vvimvtsggggddddddhf`vpvoxxxxxvbcvxxxxxtxxxucttvbpooo`iooxpc``bcxx`xpxxpxpxxxxpxtoxxxvxucttt`uxvc`ccvxttxvxtxxocbvtxxvoxxxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxoxxxxoooooxoxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxox",
+"xxxoxoxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxoxooxxokgggggggggggggndddhfctpoxxxraqgggggdmovpibfdhdhfm`cpuootoxxxoxarggggggggggggggnddddddhfbvpcp`ooxpcvvtvpueggggdjddddhf`tpvoxotxtpooixxxxxvxxxpcvvttoxxipttxxxxxxxxxx`xpxxpxtxxxxtxtxxxxtxpcttvtoxxxoxxxxptxtotxxvxxxtxxtuxxxvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxoooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxoxxxxxxxxxx",
+"oxxxxxoxoxoxxxoxoxxxxoxxxxxxxxxxxxxxoxxxoxxxrggggggggggggggdddhmctuooxraqgggggddooicimhdhhh`vttoooxvxxxxxxasggggggggggggggjddddddhmctuvxucxoxbpxouxxrgggndfhdddhmctuvxxxvxixxocxxxxxtxoxobuxxxxxttxx`oxxxxxxxxx`xpxxpxotxxvuxocxoicxxbpooooxxxxxxxxptxtovoovxxtuxxtcoxipoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxoxxxoxx",
+"xoxxxxxxxxxoxxxxxxoxxxxxxxxxxxxxooxoxooxxxooulgggggggggggggjddhmctoxxuaqggggnddooop`hhhdhm`mmcuooibbbixxtbrkggggggggggggggdddddddfbvpcioxbbxxxibcpoxrgggndbhhddfbcvbbbbbuxubbtiixxtb`booxxibcpxx``xx``xxxxxxxx``xvuxcxxu``pxxxobbpiixxi`cpxxxxxxxxobix`opixvbbubpxpocbuxxoxxxxxxxxxxxxxxxxxxxxxxxoxooxoxxxooxxxxxxxxxxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxxxxx",
+"xxoxxxxoxoxxoxoxxxxxxxxxxxxxxxoxxooxxxooxxxxokgggggggggggggnddhf`vpoorlgggggdjvpoutcbfhfmcvtuxxxooxxxxxxxorqgggggggggggggnddddddhf`vpoxxxxxoxoxxxxxxrgggjmcmhdhfbitooxooxxxxxoxxxxxxxxxxxoooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoooxoxxxxxxxxxxxxxxxxxxxxoxxxxxxxxtxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxuoxxxooxxxxxoxxxxxxxoxxxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxoxxxxxxxxxxxxxxxxxxxxoxoxxxoxoxx",
+"xxxoxxxxxxxxxxxxoxxoxxxxxxxxxxoxxxooxoxoxxxxxaggggggggggggggdddfbvprrwgggggdjuxoptibfffb`ituoxxxxoxooxxxxoaggggggggggggggndddddddm`voxxxxxxxxoxxoxxoegggdcibfhhf`ttuooxxoxxxxxxxxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxpmbpxxxxxxxxoxxoxxxxxxxxxxxxooxxxooxoxoxxxxxxxxxoxxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxxxxxxxxxxxxxxxxoxxxxoxx",
+"xoxxxoxxxxxxxoxoxxoxxxxxoxxxxxxoxxoooxooxxxxxuqgggggggggggggjddhbirrwggggnddoouuti`fffbcvtuooxxxxoxooxoxxrsggggggggggggggjddddddhmivuoxxxxooxxxoxooookngdtv`fhhmcppooxooxxxxxxoxxxoxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoooxxxxxxxxxxxxxxxxxxxxxoxxxxxxoxooxxxxxxxxxxoxxxoxxxxxxxxxxxxxxoooxooxxxxxxoxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxooxxxxxxxxxxxxxxxxxxxxxoxxxxxxxox",
+"xxxoxoxxxxxxxxxoooxooxxxxxoxxxxxxxxxxoxxxxxoxokgggggggggggggnddhmtrwgggggdjuxoutibmffm`vpuooxxoxxxxooxxxxrwggggggggggggggddddddhhbipuoxxxrswarxooooxoxmhdutcmffbipxuxoxxxxxoxxxxxxxoxxxxxxoooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxxxxxxooxoxxxxxxxxxxxxxxxxxxxxxxoxxoooouoxxxxxxxxxooooxoxxxxxxxxxoxxxxxxoxxxxxoxxxxxxxxxxxoooooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxxxxxxooxooooxxxxxxxxxxxxxxxxxxoxoxoxxx",
+"xoxxxxxooxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxoeggggggggggggggdddsrwgggggdduoopti`mffb`ituxxxxxxoxxxxxxxxxrggggggggggggggnddddddhm`vpuoooorqggipxooxooxxxxupi`ff`vuoooxxxxxxxxoxuuuruoxxxoxxoxxoorreseeoxxxxxxxxxxxxxxxourrssseooxxxoxxxxxxxxxxxxxxxxxxxxxxxoxxourrasssroxxxxxxxoouooouooxxxxxxxxxxxooxxxxxxxxoxooxourrrsssserxxxxxxxxxxxxxxxxxxxxxxxxoorrassserooxxxxxorserxxxxxxxxxxxxxxxxoxxxxxoxx",
+"xxoxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxxxxxxrggggggggggggggjdirwgggggdjuouuti`mffm`vtuoxxxxxxxxxxoxxxxoeggggggggggggggnddddddhmctuuoxorsgggdtxxxxxxxxxxopibmm`vuxxxouoooururrrsswqsuxxxxxxxrrswggggggkoxoxxxxxxxxxxrakqggggggkrxxxxxxxxxxxxxxxxxxxxxxxxxxxorrswgggqggqexxxxrrressssslksxxxxxxxxxxxxooxxxxoxoxorraswqggggggglsuxxxxxxxxxxxxxxxxxxxxraslgggqggglkrooxorsgggtxxxxxxxxxxxxxxxxoxoxxxox",
+"oxxoxoxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxooxxxxxxxowgggggggggggggnfrwggggnddooopti`mmfm`ippoxxxxxxxxxxxxxxoxrkggggggggggggggdddddddhmituoxxurqggndxxxxxxxxxxxopv`bbiprrrrrrsssswwlggggggjcxxxxxureqgggggggggqpoxxxxxxxorakgggggggggggexxxxxxxxxxxxxxxxxxxxxxxxorrsqggggggggggwxxrsggggggggggqcxxxxxxxxxxxooxxxxxxorrewgggggggggggggqsxxxxxxxxxooxxxxxorakgggggggggggggwsareqggndxxxxxxxxxxxxxxxxxxxxoxxx",
+"xxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxsggggggggggggggrsgggggdjuxouti`mffm`ituooxoxxxxxxxxxxxxxxrlggggggggggggggddddddhfbvpuoourkgggnfxxxxxxxxxxxxutc``vewlgggggggggggggggggdtxxxxorwggggggggggggguxoxxxxorsqgggggggggggggixxxxxxxxxxxxxxxxxxxxxxorsqgggggggggggggmxrlggggggggggd`xxxxxxxxxxxxxoxxxxurelgggggggggggggggggloxxxxxxxxxxxxxxrsqggggggggggggggggggggggnmxxxxxxxxxxxxxxxxxxxxxxox",
+"xoxoxoxxxxxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxrggggggggggggggsgggggdduouuti`mmfm`ituoxxov`pxxxxxxuxxxxxrggggggggggggggnddddddhfctuuooreggggjcxxxxibuxxoxooticipsggggggggggggggggggjhoxxxraqggggggggggggggnootoxureggggggggggggggggvbuxxxxxxxxxxxxxxxxxxrawggggggggggggggggvrgggggggggggduxxxu`vxxxxxxxxxxorakgggggggnjddmqgggggggqoxxxxxxxooooorsggggggggnjdddjggggggggggjmxxxxxxxxxxxxxxxxoxxoxxxx",
+"xxxxxoxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxowggggggggggggggggggjdpooupi`bffm`cvpoxxxxvxxxxxxxovxxxxosggggggggggggggjddddddhmcpuooraqggggdpxxuuupixxxxoouvvtpeggggggggggggggggggjboxxraqgggggggggggggggn`ucpurwgggggggggggggggggjfoxxxibfcxxxxxxxxxxrrqgggggggggndddggggweggggggggggndoxxxoxtxxxxxxxxxorsqqggggggjdhvuusgggggggggoxoxxoooxoxreggggggggjdmvoxuclggggggggjixooooooxxxxxxxxxxxxxxoxx",
+"xxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxookgggggggggggggggggjdbpuutv`bmfm`itpuxxxxxtxxxxxxxcxxxxxrwggggggggggggggdddddddhfipupraqggggndvooptttcoxxxxouupuppljjgggggggggggggggdtuiraqggggggggggggggggghtpirsggggggggggggggggggn`uuoooxtxxxxxxutpxrsggggggggggddbppvkggwwggggggggggjhtuuuuovxxxxxxtpursggggggggjdbtourkgggggggggfpuouvuvtoorqgggggggndcoouptvpwgggggggdiopttvpoouoooooxxxoooxxox",
+"xxxoxxxoxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrggggggggggggggggjdfivptvcbffm`ivpuooxxxxpxxxxxxxixxxxirqggggggggggggggdddddddhmvprreqgggggjfvmtviii`uoxxxxxouuopibb`sggggggggggggndppaaqggggggggggggggggggdivrsgggggggggggggggggggnfttpuoovxxxxxottvrsggggggggggddmiptvilgqgggggggggggdm`bptptiooxxobvarwggggggggjdmicbraqgggggggggjmcpu``vvirsggggggggdfvpptvcbccqggggggdtutciiitoutupuooxouoouxxo",
+"xoxxxoxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxulggggggggggggggjddbcivi`bfmm`itpuooxxxxxpxxxxxxxtxxxpuaggggggggggggggnddddfmbitrrslgggggggjcuu`i``i`uoxxxxxxxxoxxcoxrggggggggggggjhvaaqgggndjwggggggggggggd`reggggnddqggggggggggggnh`ivtuovxxxxxo`creggggggggggdd`chii`ikggggggggggggndcc`iiiv`uoxovourwggggggggjdfiicfrkggggggggggnfhvpiooxvrqggggggggdtivii``fbbsggggggdivv`civvuxtxuxxoxuoooooxx",
+"xxoxxxoxooxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxokgggggggggggggnddhfbcc`mmfm`cvpuoooxxxxxtxxxxxxovoxxvusggggggggggggggsrarrrssskwggggggggggdvut``bbc`uooxxxxxxxxxxvxxrggggggggggggdmerlgggjdbtaggggggggggggdsaqgggddbutkgggggggggggndfmcituixxvxxiursggggggggggjdc``b`mmmsggggggggggggjdbmmmb`c`puooturwgggggggggdmbccbcrgggggggggggndmcicpootegggggggggdtccbbfmhmmclggggnd`c`mb`iiuopxuxxoxuoooooxx",
+"oxxxoxxxxxoxxxoxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxeggggggggggggggdddhmmbmmfm`itpuooxxxxxxxtxxxxxxxcxooorlggggggggggggggggggggggggggggggggggndupmbbmbicuoxxxxxxxxxxxvoorgggggggggggndbrwgggdd`purgggggggggggnbrlgggddpoxasgggggggggggjdhhm`vpioxvxxirsggggggggggjdhic`mfhj`sggggggggggggdhhhdhhmc`pooxrrwgggggggggdjpfciccsgggggggggggndhb``puoasgggggggggdimbfhhhhmm`sggggndmmmffbcvuotxoxxoxuoxoxxxx",
+"xxxxxoxxxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxuqgggggggggggggjddhhffhfmbitpoxxoxxxxxxxpxxxxxxxcuoxxrgggggggggggggggggggggggggggggggggggjfff`bmmhhfmixxxxxxxxxvbmmesgggggggggggjdrsgggddffptagggggggggggnrsgggddvuoorkgggggggggggjdddhmffmmmmxxraqggggggggggdmcfjhhhddisggggggggggggdddddhhdhfmmoorwgggggggggndvtifjhbsgggggggggggndhhfhmptewgggggggggjhhdjhhjhff`eggggjdhhjdhmbcutpxuoxpxxouoooxo",
+"xoxoxxxoxoxxxxoxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxokgggggggggggggnddddhhfmbcvpooooooxxxxxxvtxxxxxxxioxregggggggggggggggggggggggggggggggggggdivcbfff`vpuxxxxxxxxxxxxxxrkgggggggggggdeaggnddmitursgggggggggggseggndd`vptirlgggggggggggddddhfbipoxxourqggggggggggjdibmhhddhhslgggggggggggjddddddhm`tuxorsggggggggggdfvc`mhhfsgggggggggggdddhfmcturwgggggggggghhhddhm`ivtalgggjhhhdhhmituoxoxxxxxxxxxxxxx",
+"xxxxoxxxxoxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxeggggggggggggggddddhhfbitpuoxxxxoxxxxxxuvuxxxxxoooxrkggggggggggggggjdjjjjnnggggggggggggndiibmhfm`tpoxxxxxxxxxxxxxxuwggggggggggnmrlggddhbiturkgggggggggggrqggjdh`iptvaggggggggggggdddddhmctoxxorwggggggggggndb`fhdddhhfawgggggggggggjddddddhmctuoraggggggggggndicbffhjh`ggggggggggnddddhf`iprwggggggggggndddhfbitpuukgggdhhddhhbipuoxxooxxxxxxxoxox",
+"oxoxxoxoxxoxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxuqgggggggggggggjddddfmcvpooxxxxxoxxxxxxxxxxxxxxxxxxrlggggggggggggggddddddddjjjgggggggggnjibfhhhmctuxxxxxxxxxxxxxxxrgggggggggggnrsggjdjf`vptrlggggggggggkkggjddfbitpasgggggggggggndddddhm`tpoxrsgggggggggggdhbfhhdddhfbrqgggggggggggdddddddfbvpuorqggggggggggdmcbfhddhfmwgggggggggddddddfmiprwgggggggggggdddhmcvpuoosgggd`fhddfbipoooxxxxxxoxxxxxxx",
+"xxxoxxxxoxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxuwgggggggggggggndddhf`vpuoxoxxxxxxxxxxoxoxxxxxxxooorggggggggggggggndddddddfbcv`qgggggggjhmfhjdhbipoxxxxxxxxxxxxxxosgggggggggggaeggnddhmcvppagggggggggggsggndddfbivtrlgggggggggggjdddddhfcvpooaqggggggggggndmfhddddhfbvrgggggggggggnddddddhf`vuorkggggggggggndbmfhddhhmcvqgggggggjddddddhmctpwggggggggggggddhmituooooggndcmhhhfbvpuxxoxxoxxxxxoxxox",
+"oxxxxxoxxxoxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxraqggggggggggggggdddhmituoxxxxxxxxxxxxxxoxoxxxxxxxorsggggggggggggggjddddddhhm`cvvwggggggdhhdddhfbipoxxxxxxxxxxxxxxrkgggggggggggrqggdddfbivtrsgggggggggglqggdddhf`iveaggggggggggggddddddhmcvuorkgggggggggggjdfhdddddhmcasgggggggggggjddddddhmituragggggggggggjjmhhdddhf`ipobnnnnjddddddddhmctusggggggggggggfdhmipuoooxoddhibfhhf`vpooxoxxxxxxxxxxxxx",
+"xxoxxxoxoxxxxxxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxorwgggggggggggggggjddhbcpoxxxxxxxxxxxxoxxxoxxoxxxxxxuwggggggggggggggddddddddhfbb``sgggggndhddddhf`vuxxxxxxxxxxxxxxxrlggggggggggswggjddhm`vtvrwggggggggggqggnddddfb`ctsggggggggggggddddddhfcturegggggggggggndhhddddhhmcvpsgggggggggggdddddddhbiporlgggggggggggdfhhdddhhbipoxxobffjddddddddhmcpueggggggggggggghhmctoxxxxxouut`mhhm`tuooxxxoxxoxxxxxxxx",
+"xxxoxxxxxoxoxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrrwggggggggggggggggjddhmctoxxxxxxxxxxxxoxxxxoxoxxxxxxrqgggggggggggggnddddddddhfmmbbcwggggjddddddhmctuxxxxxxxxxxxxxxxrgggggggggggsggndddhm`ciirgggggggggggggnddddhfm`crlgggggggggggjddddddhmiturlgggggggggggjdhdddddhfbiprlggggggggggnddddddhf`vpregggggggggggjdhhddddhmcvpuoxootibfdddddddhmiporgggggggggggggghf`vuoxxoxooutibffmcvuooxxoxxxxxoxoxoxx",
+"xoxxxxoxxxxxxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxorwggggggggggggggggggddhf`vuxxxxxxxxoxxxxxxxxxxxxxxxxxaggggggggggggggndddddddhfmbbbbckggggdddddddfbituxxxxxxxxxxxxxxosggggggggggllggddddhmciceegggggggggggggjdddddfmbiaggggggggggggjddddddhbipregggggggggggndjddddddhbitprgggggggggggjddddddhfcturlgggggggggggjdhdddddfbituxoxootibfhdddddhfbipookgggggggggggggghbipuxxoxxxopv`mmbituxooxxxoxoxxxxxxxx",
+"xxxxxxxxoxoxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxorwgggggggggggggggggggdddf`vuoxxxxopxoxxxxxxxxoxxxxxxxusggggggggggggggjddddddhdhbcii`vsggggddddddhdfipoxxxxxxxxxxxxxxrwggggggggggqggjdddhfb`ccakggggggggggggndddddhffmakgggggggggggnddddddhf`iprlgggggggggggjdddddddhm`vpuegggggggggggdddddddhbcpregggggggggggndhdddddhm`tpooxoxupv`mhddddhhbcvuoxrggggggggggggggqmcvpoxxoxooutc`b`vpuoxxoxxxxxxxxxxoxx",
+"xxoxxoxxxxxoxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxrsgggggmlgggggggggggggnddhmcpoxxxx`uxxoxxxxxxxxxxxxxxvrwggggggggggggggddddddddb`itttiasgggnddddddhmmtpoxxxxxxxxxxxxxxrqgggggggggggggddddhfb``irqggggggggggggjdddddhhj`rqgggggggggggndddddddf`vreggggggggggggddddddddhbiturkgggggggggggdddddddfbvprkgggggggggggndddddddfbcpuoxxxxxutibffhhhhm`vpuoxokggggggggggggggmbipuoxoxooupv`cctpoooxoxxoxoxoxoxxxx",
+"oxxxxxxoxoxxxxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxorsgggggjhkgggggggggggggnddhm`tuxxxx`xooxuvtxxxpuxotuxucrggggggggggggggnddddddhdmctpuiiusgggjhfhdddhmbpuoxxxxxxxxtutxtuegggggggggggggndddddhbb`eeggggggggggggnddddddhhhieggggggggggggdddddddhmctrlgggggggggggndddddddhm`vuorqggggggggggjddddddhfcvurggggggggggggjddddddhf`vpoxxxxxoouvi`mmmmb`vtuoxxxrqggggggggggggggf`vpooxoxooptvivpuoxxxxxxxxxxxxxxoxx",
+"xxxoxxxxxoxxxxxxoxxxoxxxxxxxxxxxxxxxxxxxxxorsgggggjdtaggggggggggggggdddfbipoxxupxooxivtixxpiouvvoueeggggggggggggggndddddddhmcpuov`osgggdmffhdhfbbpoooxxxxxxo`ii`tesgggggggggggggdddddhdfb`akggggggggggggjddddddhhmakggggggggggggdddddddfbiraggggggggggggddddddddhbituuegggggggggggjddddddhmctrsggggggggggggdddddddhm`tuoxxxxxxouutvccccivpuoxxxxxsgggggggggggggggfcvpooxxxooupppuooxxoxxxoxooxoxxxox",
+"xoxxxxxxxxoxoxxxxxxxxxoxxxxxxxxxxxxxxxxxxxrsgggggjdvxrlgggggggggggggjddhbctoxxtxxxoocm`ixxxvxxxvxxakggggggggggggggjddddddhfcpuooovusgggdvbbhhhf``pxxxcmbbbixvvxvxrlggggggggggggjddddddhdbcrqgggggggggggnddddddddf`rqgggggggggggjdddddddf`irkggggggggggggdddddddhf`vporkgggggggggggdddddddfbvprwgggggggggggndddddddf`vtuoxxxxxxxooopttvvtpuoxxxxxxxwgggggggggggggggmctuooxoxoouuuuoxxxxoxxxxxxxxoxxxx",
+"xxoxoxoxxxxxxxxoxxxxxxoxxxxxxxxxxxxxxxxxoraqggggjdvxookggggggggggggggddhfcvuxxvxxxxvpoxixxoioxxtxxrlggggggggggggggddddddhffvpoooxvokggjdpb`fhhmc`uxxxxoooxxxttxtorgggggggggggggjdddddhhhbveggggggggggggjdddddddhmseggggggggggggjddddddhm`trqgggggggggggjdddddddhmctuorqggggggggggnddddddhf`vurggggggggggggnddddddhm`touxxxxxxxxxoooouuuuoooxxxxxxxxqggggggggggggggj`ctuooxoxxoooxxxxxxxoxoxoxoxxoxxx",
+"oxxxxxxxxxxxxxxxxxxxxxoxoxxxxxxxxxxxxxxxraqggggndcxoopsggggggggggggggdddfbipuxutxxxixxu`xxoixovvxorggggggggggggggnddddddhfmvpoxxxvxeqgjboccmffbicuruxxooxooovtxvosggggggggggggndddddddhm`rkggggggggggggddddddddhbakgggggggggggndddddddhmiaeggggggggggggdddddddhf`vpouegggggggggggjddddddhm`treggggggggggggjddddddhbitoxxxxxxxxxxxxxxoooooooxxxxxxxxrqggggggggggggggh`ituooxxxxxxxxxxxxxxoxxxxxxxxoxx",
+"xxoxxoxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxraqggggndmououvvqgggggggggggggjddfmctuxx`xxxobmviixoumbpmprsggggggggggggggjdddddddhhf`oxtmbmb`mdhffhhmmhfmaslkxxxxxopmixbrkggggggggggggjdddddddhmcrlgggggggggggjjddddddhfcrqgggggggggggnddddddhf`vrkggggggggggggdddddddhmctporkgggggggggggdddddddhbctusggggggggggggdddddddfbvuuoxxxxxxxxxxxxxxoxoxxxoxxxxxxxxsggggggggggggggnm`vpuoxoxxxxoxxxxxxxxxoxoxoxxxox",
+"oxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxuaqggggndmooupvcbsgggggggggggggnddhmcvpoxpuxxxxxxxxxxxxoxxxrwggggggggggggggdddddddhbipuxxxxxxxxxxxutibfbctraqggbxxxxxxooxxrqggggggggggggdddddddhfbtaggggggggggggddddddddhbeeggggggggggggdddddddhm`vrlgggggggggggnddddddhh`ipooagggggggggggnddddddhf`vprwggggggggggggddddddhm`vooxxxxxxxxxxxxxxxxxxxxxoxxxxxxxookgggggggggggggghmcvpoxxxoxxxoxxxxxxoxxxxxxxxxxx",
+"xxoxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxurwgggggdmxoupvc`msggggggggggggggdddf`vpuooxxxxxxxxxxxxxxxxorqggggggggggggggddddddhf`vuoxxxxxxxxxxxoti`m`iprwggnduxxxxxxxxuaggggggggggggjdddddddhm`asgggggggggggndddddddhf`akggggggggggggdddddddhbiprggggggggggggjddddddhfcvuorsgggggggggggjddddddhfcvurwggggggggggggddddddhmctuxxoxxxxxxxxxxxxxxxxxxxxxoxoxxxxxolgggggggggggggjfbctuooxxxxxxxxxxxxxxxoxxxxoxxx",
+"oxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxurwggggndhxooptcbmfcqgggggggggggggjdhhbituooxxxxxxxxxxxxxxxxoeggggggggggggggnddddddhmctuoxxxxxxxxxxxuti`b`vrsgggjfxxxxxxoxxusggggggggggggddddddddfbirlgggggggggggjddddddjhbirlgggggggggggjdddddddfbvreggggggggggggdddddddhbipuurqgggggggggggdddddddhbitorggggggggggggnddddddhbipoxoxxxxxxxoxxxxxxxxxxxxxxxoxxxxxooulgggggggggggggdf`vtuxxxxxxxxxoxxxxxxxxoxxxoxx",
+"xxoxxoxxxxxxxxxxxxxxxxxxxxxxxxoxxxxurwgggggdjuxoutc`mfmbsgggggggggggggnddhmituooxxxxxxxxxxxxxxxxrsggggggggggggggjddddddhmitooxxxxxxxxxxoopic`craqgggjixxxooxxoorwggggggggggggdddddddhm`tagggggggggggnddddddjhm`vaggggggggggggdddddddhm`tusgggggggggggndddddddf`iuursggggggggggggdddddddfbiporggggggggggggndddddhf`vpoxxoxxxxxxxxxxxxxxxxxuerxxxoxxxxxouaqggggggggggggdhm`vuooxxxxxxxxxxxxxoxxxxoxxox",
+"oxxxoxxoxxxxxxxxxxxxxxxxxxxxoxxxxxorwgggggdhuouupibmfmbcaggggggggggggggddhf`tpooooxxxxxxxxxoxxxxrwggggggggggggggdddddddf`ipxxxxxxxxxxxxoopticarlggggdpxxxououoorggggggggggggjdddddddhbiasgggggggggggnddddddjfbirsggggggggggggdddddmdhmctrkgggggggggggnddddddhmcvuurqgggggggggggnddddddhfcvporggggggggggggndddddhmcvuoxxxxxxxoxxxxxxxxxxxxaggkxxxooxxxxousggggggggggggjdhbctuoxxxxxxxxxoxxxxxxxxxxxxx",
+"xxoxxxxoxxxxxxxxxxxxxxxxxxxxoxxxxorkgggggjduooutv`bfmmcvaqgggggggggggggjddfbipoxxxxxxxxxxxxxxooorggggggggggggggnddddddhf`tuoxxxxxxxxxxxoooptprwggggjjxooouppuorsggggggggggggdddddddhf`trwgggggggggggddddddjhf`vrwgggggggggggjddddhrs``ipuwgggggggggggjddddddhbctorsggggggggggggjdddddmmmituorggggggggggggndddddhmipuoxxxxxxrsqaxxxxxxxxxxegggmxxxoxoxxxouwgggggggggggndhf`ipuxxxxxxxxxxxxxxxxxxoxxxx",
+"xxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxoorsgggggjdvouppi`bfmmcvprkgggggggggggggjddhm`tuoxxxxxxxxoxxoxoxrsggggggggggggggnddddddhmctuxxxxxxxxoxxxooourrwgggggd`xoupttpporkgggggggggggndddddddhmctrggggggggggggddddddjhmctrqgggggggggggdddddaegg`turwgggggggggggjdddddhf`vpraqggggggggggggdddddjrssiuxxrggggggggggggndddddhbipuxxxxxxraqqgkxxxxxxxxosgggdxxxxxxoxoourqggggggggggnddhmctuoxxxxxxxxxxxxxoxxxxoxox",
+"xoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxorsgggggjdvoouti`mfmmcipoosggggggggggggggddhf`vpooxxxxxxxoooxxoxukggggggggggggggjddddddhbiuoxxxxxxxxxxoxooxurwggggggdpouptiivpurlgggggggggggjddddddhh`irsgggggggggggjddddddjf`iaaggggggggggggdddd`rgggjcuuwgggggggggggjdddddhf`vprkgglggggggggggdddddeaggluxxuqggggggggggggdddddhbvuuxxxxxurlgggjbxxxxxxxokgggjoxxoxxxxoxuusggggggggggnddhfbipooxxxxxxxxxxxxxxxoxxxxx",
+"xxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxrsgggggjdvoouticmmfmcvtuxorggggggggggggggdddhbipuxxxxxxoooxoxxoxrlggggggggggggggdddddddf`vuooxxxxxxxxxxxxxrrwggggggndxopti``ituaggggggggggggdddddddhm`trwgggggggggggdddddddhf`vrsgggggggggggndddhrkggndiorwgggggggggggjdddddhmctrsggkggggggggggnddddcrqggjbxxowggggggggggggdddddf`iuxxxxxorwgggndvxxxxxxxrwgggnvoxoooxxoooorqgggggggggndddhmctuxxxxxxxxxxxxxooxxxxoxx",
+"xoxoxxxoxoxxxxxxxxxxxxxxxxxxxorsgggggndbxuupi`bfmm`ipuoxxulgggggggggggggnddhmctpuxoxxxoxooxxxxuaggggggggggggggnddddddhf`vuoxxxoxxxvbpoxoraqgggggggjmoptc`b`itreggggggggggggdddddddhbiprggggggggggggdddddddhbitrkgggggggggggjdddeegggdmuoowgggggggggggjdddddhbiraqggsggggggggggjdddmrwggndcxxokggggggggggggndddhh`vpxxxxxrsggggdhxxxxxxxxrlggggmuuuuuoooxoousgggggggggjdddhf`vpoxxxxxxxxxxxxxxoxxxxox",
+"xxxxxoxxuxxxxxxxxxxxxxxxxxxuorsggggggdfooutvcbffm`ituxxxxowggggggggggggggddhf`vpooxxoxxxoxooxxukggggggggggggggjddddddhmctuooxxxxxxxxvorrkgggggggggdvptv`fm`vprlgggggggggggjddddddhf`vregggggggggggnddddddjfbiprwgggggggggggdddaaqggjdvuookggggggggggggdddddf`raqggwkggggggggggjddfrsgggdfoxxxegggggggggggggdddhf`vuxxxorsggggjjoxxxxxooorgggggjupttppoooxooegggggggggdddddfbipoxxxxxxxxxxxxxxxoxoxxx",
+"xoxoxxxxuxxxxxoooxxxxuoxxxxareggggggnduvppicbffm`iiipxxxprsggggggggggggggnddfbituoxxotpvovuoxorlggggggggggggggjddddddhbitoxutvxxxoooarelgggggggggndivi`fhhm`urggggggggggggjddddddhfctrkgggggggggggjddddddhf`vprlgggggggggggddaaqggndbuooxsggggggggggggqdddh`aaqggnrwggggggggggjdfrsgggjdtoxxxoqggggggggggggqdddf`tuoxurwggggjdvxxouuuuuorggggggvtivvpuoooxorgggggggggdddddhbctuoxxxxxxoxoxxoxxxxxoxx",
+"xxxxxoxooxxxxuuutxxotuptpxurwgggggggnfbctvcbffmbivivipxxttsggggggggggggggghdhmctuoxxociicvcxxregggggggggggggggjdddddhf`vpuxvvvixxourelgggggggggggjhcf`mhhfbireggggggggggggdddddddhbiprqgggggggggggdddddddhbiturggggggggggggwraqggndhtuoxurgggggggggggggwkcrrsqggndrggggggggggglsrsgggjd`uooooukggggggggggggglbmf`turralggggndcxoouptvtpuegggggghic`ituooooorggggggggjdddddhmctuxxxxxxxxxxoxxxoxoxxxx",
+"xoxxxxxoxxxxxpooxxxpuupuvrawgggggggggmpivcbffmbivp`bitxoorsgggggggggggggggqhhfffmbbixptxvovorrlgggggggggggggggjdddddddhmtuxi`cvurrslgggggggggggggdfc`mfhhmcprkgggggggggggnddddddhf`vregggggggggggnddddddhhbvpurgggggggggggggwggggjd`tuouptwggggggggggggggwwgggggdhrggggggggggggwlgggndfpuxoupptqgggggggggggggqserraelgggggndmoooutvccvtrsggggggq`bb`vuooooregggggggnddddddhfctuoxxxxxxxxxxxxxxxxoxox",
+"xxoxoxooxxxxxxxopxxtuuprreqggggggggggktccbfffbcvpioxotoorrlggggggggggggggggqk``ipoxxxtpxvoprrwggggggggggggggggqbfdddhbituoprrraswgggggggggggggggndibhhhhh`vprlgggggggggggjddddddhmctrsgggggggggggjddddddhm`vuurgggggggggggggggggjdmvpuoptisggggggggggggggggggggdhurggggggggggggggggndhipuoupvvvsgggggggggggggggggggggggggndmooxupic``ctrsgggggggqbmbcpoxoorlgggggggjddddddhm`tpoxxxxxxxxxoxoxxoxxxxx",
+"xxxxxxxooxxxuoxxouxotrrewggggggggggggglsrvffmcvpuixrrrraslggggggggggggggggggglsaruxxxppurrasqggggggggggggggggggqksrrrrrresskwqggggggggggggggggggnj`mhddhh`vpaggggggggggggdddddddhbitrlgggggggggggdddddddhbipooulgggggggggggggggjdh`vpuuvicclggggggggggggggggggjdtxulgggggggggggggggdd`vppppiicivkgggggggggggggggggggggggndmxxoptvcbb`ctrwggggggggwbm`tuxursgggggggjdddddddhfctuoxxxxoxxxxxxxoxxxxoxx",
+"xoxxoxoxuoxxouppuxxxoeqggggggggggggggggggqnm`ipoxt`rwqggggggggggggggggggggggggggglexu`vrwgggggggggggggggggggggggggggggggggggggggggggggggggggggggdhhddhdhfmmesgggggggggggnddddddhf`vragggggggggggndddddddfbvuoxokggggggggggggggjddm`vpptic`isqggggggggggggggggjdixxosggggggggggggggddfcvpppvi`citpkgggggggggggggggggggggjdmxxxppvc`mb`vtrwgggggggggletarrakgggggggjdhhdddddhmctoooxxxxxxxxxoxxoxoxxxx",
+"xxoxxxxxooxoxxxxxxxxosggggggggggggggggggggghctuoxxxrggggggggggggggggggggggggggggggncxxxrggggggggggggggggggggggggggggggggggggggggggggggggggggggggdhhhddhhbiprwgggggggggggjddddddhmctrkgggggggggggjddddddhfcvpoxxuqggggggggggggjddhmcvttic``ipsgggggggggggggggdd`puoupqgggggggggggnddjf`vttvc``cvpuo`ggggggggggggggggggnddioouupvc`mb`iturqggggggggggggwwlggggggggjdfmhdddddfbitooxxxxxxxoxxxxxxxxoxox",
+"oxxxxxoxxoxxxxxxxxxxxagggggggggggggggggggggdipoxxxxxggggggggggggggggggggggggggggggnmxxxxgggggggggggggggggggggggggggggggggggggggggggggggggggggggndhddddhf`vpoggggggggggggdddddddhmitukgggggggggggdddddddhmctuoxoxrggggggggggjddddhf`ivic``cvpucggggggggggggjddbivtptvcggggggggggjdddhf`ivic```ituooucnggggggggggggggnjdhtooupticbmm`cvporggggjjjnggggggggggggggjdj`imhddddhf`vpooxxoxxxxxxoxxxxoxxxxx",
+"xxoxoxxxxxxxxxxxxxxxxxtdddddddddddddddddddddipoxxxxxxddddddddddddddddddddddddddddddfooxxxdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddhmctpooddddddddddddddddddf`vpoxmdddddddddddddddddfbipooxxoxunngggnnjddddddhhbb`bb`cvpuoopnnggggggnjdddhf`ciicc`bnggggggnddddddhm````b`itpoooouthjnggggggggnnjddctttttvccbmbbcvpuuugggdjccmjjnggggggggnjdd`ppimhddddhbctuooxxxxoxxxxxxxxxxxoxxx",
+"oxxxxoxoxoxxxxxxxxxxxxxxxoooooppvc`mhdddddhmctuoxxxxxxxxxxooouppibfdddddddddddddfbcvpuoooxoxxooxoupvcbfjddddddddddddf`ipuuoooooouuppptvvi``mfhhdddddddhbitooxxoooouv`fjdddddddhfcvuoxxxxxoupcmhdddddddhm`vuooxxxoxo`fddddddddddddhfmmbb`ituuxuoubjjjjjddddddjhfmbbbbmbbfjjjdddddddddhfmbbb`cvpuooxoupi`hddjjjjdddddfbcciicc`bmmmbcvtuoooejdhpupcmhdddjjjjdddmcoouvcfhdddhm`ipuoxxxxxxxxxxxxxxxxxxxox",
+"xxoxxxxoxxoxxxxxxxxxxxoxxxoouptvc`mhhdddddhmbivppooxxxxxxooupptvcbhhddddddddddddhfbcivppuuooooooppvi`fhdddddddddddddfmcvtppupppppttvvic`bmfhhddddddddhf`vpuoxxxxoouv`fhdddddddhmctuxxxxxxoptcmhdddddddhmctuoxxxxxoooui`fddddddddddhffb`ivpooxxuutcbhddddddddddhhfffmm`cvvmfhdddddddddhhfmbcvpuoxxxxoutibfhdddddddddhhmmmbmmfffmbcvtuoxxouvvtxuvcmhdddhhmb`uuuooutibfhdhhfbituooxoxoxxxxxxxxxxxxxxxxx",
+"xxxxxoxxxxxxxxxxxxxxoxxxxxoupti`bfhhdddddddfm`citpuxxxxxxuuptvccbfhddddddddddddddhfm`civtuuoxooptv`bmhhdddddddddddddhfm`civvvvviiic``bmmfhhhdddddddddhm`tuooooxxoopibfdddddddhfbvpoxxxxxoopv`fhddddddhhbitoxxxooxxxouv`mhdddddddddhhmbctuooxoxoouv`mhddddddddddjhhfm`ivtpv`mhdddddddddhfb`ituuxxxxxooptcbfhddddddddddhhhfhhffmbcvupuxooxoxxxouv`fhdjdhfb`ittppppicmhhdhfbcvuuxxxxxxxxxxxxxxxxxoxxoxx",
+"xoxxxxxxoxoxoxxxxxxxxxxxxxxuticbmhhdhddhdhhhfmb`itpoxxxxoupvicbbmhhdddddddddddhdhhhfmb`citpoouuvc`bffhhddddddddddhdhhhfmb```````bbbbmffhhhdhhddddddhhfbipuxxxxxooupibfhdddddhhm`vuoxxxxxootv`fhdddddhhm`vpooxxxoxxxoupcbhhddddddhhhmbivpuxoxxxoouti`mhdddddddddhhfm`ituuptcbhhddddddhhfb`vppooxoxxxxoupvcbmhhdddddddddhdhhhfmbivpuxuxxooxoxoopt`mhhhhhhfb`civvvc`mfhhhmbctpuoxoxxxxxxxxxxxxxxxxxxxxx",
+"xxoxxxxxxxxxxxxxxxxxxxxxxoouti`mmffhfhfhhhffmmb`cvpoxxxxoupvc`bmmffffffhfhffhfhfhffmmbb`ivpuoupvc`bmffffffhffhfhhhhhffmmbb`b`bbbbbmmmmmffffhffffffhffbcvpoxxxoxxooti`mfffffhfmbitpxxxxxxxupv`bffffffff`cpuooxoxxoxxoopv`mhhhdhdhhfm`ituoxoxxxoxoopti`mfhddddhdhhfm`ituooopvcmhhddddhhfb`vtuoooxxxxxoooopti`mfhdhddddhdhhhfmbcivpuoxxxxxoxoxoopv`mfhfffmmmm```c`bbmffmm`itpooxoxoooxxxxxxxxxxxxoxxoxx",
+"xxxxoxxxxxxxxxoxxxxxxxxxxxoutvc```bbbbbbbbbb```civpoxxxxxupvi`c```bbbbbbbbbbbbbbbb`bb`ccitpooouvic```bbbb`bb`bbbbbbb`b````c`c```````b``mbbbbbbmmbbb``ivpuxxxxxxoxopvc`bbbbb```itpoxxxxxxxouti``bbbbb``ivpoxooxxxoxxouupicbfffffmb`cvtuooxxxxxxxooupti`bmffhhhffm`cvtpoxxoopicmffhfhfb`cvpuoxxxxoxxxxxoouutvc`bmffhfhhhffmb`ivtuuxxxxxxxxxxxouptcbbb````bbbbbbb`bmmmb`cvtuooxxxxxxoxxxxoxxxxxxxxxxxox",
+"xxoxxxoxxxxxxxxxxxxxxxxxxxoouttiiiviivivvvvvviivtpupxxxxoouptvvivivvvviiiviiviiiiviiiivvtpuuoot`tvviiivvvivmbivvvviiiciivivvcvvv`mcmivi`ivivvii`iiivvtpuooxxxxxoooupbcvvvvivvvtpoxxxxxxxoou`bvvvviicbttpupcucpoxoxxxooupvic````civtpuoxxxxxxxvtxxxoptvi`bbbbb``citpovcpxxoupvi`bmb``cvppooxxxxxxxxxxpcxxouptvc``mbmbbb``civtpuooxxxxxxxxxxxxxuticciivvviccc```````ccitpuooxxxxxxxxooxxxoxxxxoxxoxxxx",
+"xxxxoxxxxxxxoxxxxxxxxxxxxxxxouuppppppppppppuupppuuiuxxxxxxouuuupuupppupppppuppuptpppppppuoooooovuupppppppptftppuppuuctpppppvipppvbifpppuippupppippppuuoxxxxxxxxxooouuippppuuvuuuoxxxxxxxxooovuppuuvtp`vooomompxxoxoxoooupttvvvvttpuuooxxxxxxxxpxxxxxuitviiiiivvtpuuooxpxxxooptviiiivtpuooxxxxxxxxxxxxtxooxouutvvibiiiivvtppooxxxxxxxxxxxxxxxooutvvtppppptvviiiiivvttppuoxoxxxxxxxxxxxxxxooxxxxxxoxxx",
+"xoxxxxoxxxxxxxxxxxxxxxxxxxxxoooxuouoooouuooxoooooxixxxxotpoxotuptpooppottoooxutvoooppptuoooxututooooooooooviooooooouioouuouioooot`uboooovuooxoouvoooooxxxxxxuuoptooootpvooopitttxxpopxuuxxxotoooootooooxxxmx`oxxxxxxxoxoouupppuuuooooxxxxxxxxxpopoxouivvivtvvvtptooxxxpxxxoxouuppvvvtupxxxxupoxxooptopxxootpouuppcttppppuuooxxxxxxxxxxxxxxxxxxopuuuuoooouupppttpppuuoooxxxxxxxxxxxxxxxxxxxoxxxoxxxox",
+"xxoxxxxxoxxxxxxxxxxxxxxxxxxxxoooxxooxoxxoxxxxoxxouuxxxxppttxxtiipvtouictpcoxtiptcoopctttuxxttpicoooooxoxoovuxoxxoxxupoooooovxooooixioxxoxvxxxxxxvxxxxxxxxxxxuiitpcxxx`ptixxuiptuxxpcpittpxxxpxxxxxucpuxxxxcxvxxoxxxxxxxxxoooooooooxxxxxxxxxxxxvtttuxoittvuutcvctttxxxxpxxxxxxxouotctctptxxtvpipoxptpiioxtvppcuoooppouoooooxxxxxxxxxxxxxxxxxxxxouoooxoxooxoooououuooooxoxxxxxxxxxxxxxxxooxxxoxxxxoxxx",
+"xxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxpxxxxxtcvtxxxtxxxtxxtoxoopovpppvixxpxxopoxtxxxtxxxxxxoxxxxxxxxxoxopxxxooxopoxxxxxxxxoxxxtoxxxxxotxxxxxxxxxxxtxxxopxxpxxpxxxpxxxxxxixpxxpxxxpxxxxxxxxtpxxxxoxxxxoxxxxxxoxxoxxxxxxoxoxxxxxxxxxxpxxxpxxpxooooocxtxxpxxxxpxxxxciccipxixpxxuxuoxxxpxxtxxxtxxvppptvxxxxtxxxoxoxxxxxxxxxxxxxxxxxxoxxxooxoxxxxxoooxoxoxooooxxxxxxxxxxxxxxxoxxxoxoxxoxoxxoxx",
+"xoxoxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxpxxxxpuxxtxxxtxxxtxxtxxxopxcpptpuxopxxxpxxpxxxpxoxxxxxxxxxxxxxxxxopxxxxxoxpxxxxxxxxxoxxxovxxxxxxixxxxxxxxxxxtxxxopxxpxxpxxxpxxxxxxixpxxpxxxpxxxxxoxxopxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxpxxxtxxpxoxoxxixpxxpoxoopxxxxxxxxxoxixpxxuxpxxxxpxxpxxxpxxipppppxxxxpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxox",
+"xxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxuxxxtxxovxxxcoxotxxvtxovoxttxxxoxxpoxxpxxvxxucxxxxxxxxxxxxxxxxxxxopxxooxotxxxxxxoxxxxxoxtxxxxxxuoxxxxuvxxxxvtxovxxxpxxuxxxtxxxoxxvxpxxpxxxuxxxxxvvttxxxxoxxxxxxxxxxoxxxxxxxxxxoiuxxxxxxxxxxxpxxxpxxpoxoooxixpxxpoxxxpxxxxxxxxxxxixuxxuxxvoxutxxvoxucxxttxxxoxxxtxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxoxxxxxxxxxxxxxxoxxxxxxxxxxxxoxxxxxoxxoxxoxxxxxx",
+"xoxoxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxvxxxxiiptpxxptitxxxuuivooxxuiipoxtipxtixxxtituixxxooxxxxxxxxxxxxxxvxxxooxtoxxxxxooxxoxxxotxxxxxxvxxxxuvxxxxuuivoxxiixuivxxxvivuxiixpuxixpiivvuxxxxuxxxxxxxxxxxoxoxxoxxxxxxxxxxoiuxxxxxxxxxxpiuxiiuxxtiipotiuutxtuoiiiitxxxxxxxxtiuupxpoxxvvtxxxxvituixxovipxooxvxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxoxxxxxxxxxxxxxxxoxxxxxxxxxxxxxoxxxxoxxoxxxoxoxx",
+"xxxxxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxxxxxxxxxpxxxxxxpxxxxxxoxxxxoxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxuuxoxxxxtxxxxxxxxxxoxxxuxxxxxxoxxxxxxxxxxpxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxuxxxxxoxoxxxxoxxxxxxxxxxxxxxoxxxxoxxxxxxxxxxxxxxxoxoxoxxxxxxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxtoxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxoxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxoxoxoxxxxxxxxox",
+"xxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxvivxxxxpivoxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxpiioxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxxxxx",
+"oxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxoxxxoxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxoxoxxoxxxxxxxx",
+"xxoxxxxxxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxoxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxoxxoxxxxoxx",
+"oxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxoxxxxoxxxxxxxxxxxxxxxooxxxxxxxxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxoxxxxoxxxoxxxxx",
+"xxoxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxoxxxxxxxoxxxxoxox",
+"xxxoxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxxxxxxxxxxxoxxxxxoxxxxxxxxxoxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxoxxxxxxxxxxxxxoxxxxxooxxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxoxxxxxxxxxxxxxxoxxxxoxxxxxxxxxx",
+"xoxxxxoxxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxxxxxxxxxxxxoxooxxxxxxxxxxxxxouxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxoxxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxxxxxxxxxxxxxoxoxxoxoxoxxxox",
+"xxxxoxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxoxuxxxvpppxxxpxxxxxxpoxxxxxxxxxxxxxxxxxxxopxxxxxxxxxxxxxxxxxxxxxxpuxxxxxxpxxxxxupopxxxxxxxxxxxxxxxxxxxxxxxxoxoxxxootuxxxxxxxxxxxoooxoxxoxxtpxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxuuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxoxxxxxoxxxxxxxxxxxxxoxxxoxxxxxxxxxxx",
+"xxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxooxoxoxxxxxxxxxxxxxxtoxxxtpttxxxooxxxxxxpxxxxxxxxxxxxxxxxxxxxuxxxxxxxoxxxxxxxxxxxxxxxuxxxxxuxxvxxxuvuixxxxxxxxxxxxxxxxxxxxxxoxoxxoxxxoxuxxxxxxoxxxxxxxxoxxxxxxuxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxuxxxxxxxxxxuxxxxxxxuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxoxoxxxoxxxxxxxxxxxoxxoxxxoxxoxxxxx",
+"oxxoxoxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxoxxxxxxxxxxxxpoxoxtuptxxxxpxxxxxxpooxxxxxxxxxxxxuuoxxxuxoxxxxupooxxxoooxoxxxxxoxxxxxuxxxxxxutxvxxxxxxxxxxxxxxxxxxxxxxxxxoxooxxxouuuxxxupouuxxuuuouuxxoxuxxxxxxxxxxououoooxxxxuuxxxxxuuxoxxxxoxxxxxxuxxxxxxuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxoxxxxoxxxxxxxxxxxxxxoxxxoxxoxxoxoxx",
+"xoxxxxxxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxouxxoopoouxxxxouxxxxxxpxxxxxxxxxxxotuupuxxupuuuxxopuuxxoppppupxxxxoxxxxxupuxxxxxpxpxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxtuupxxotuuoxxututupuxoxuxxxxxxxoxxoututupoxotuutoxxpuutuxxupuupxxxxuxxxxxxooxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxoxooxxoxxxxxxxxx",
+"xxxxxxoxxxxxxxoxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxoxxxoxxxxxxxuxoxxxxxoxoxxxxpxxxxxxuoxxxoxxxxxxuuuuutxxoxxxoxxxuxxxxxuoxuxuxxxxuxxxxxxxxuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxooxxxxxxuxxuxoxuxxxxxxtxuxxuxxxoxxxxopttptxxtxuxxuxuxxxxuxuoxxxuxxpuuupxxxxoxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxoxxxoxxxxxxxxoxxoxxxoxoxxxox",
+"xxxoxxxoxxxxxxxoxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxxxxxxxxoxxxxxxuxxxoxoxoxxxxxxuoxxoxxopxxxxoxoxxopuuuuuxxoxxxooxxuxxxxxuuxoxuxxxxoxxxxuxxxuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxuxouxxxuxxxxxxpxuxxuxoxuxxxxxxxxxxxxpxuxouxuxoxxuxuxxxxoxopuuuuoxxxuxxxxxxxuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxoxxxxxxoxxoxxxxxxxxxoxoxxxxxxoxxx",
+"xoxxxxxxxoxxxxxxoxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxoxxoxoxxxxxoxxxxxxxxxxoooxxxxxxxoxxxxxuxxxoxxuxxxxxpuoxxopoxxxxxuxxxuxoxuxxxxxuoxuxoxxxxuxxoxoppuoxxxxxxxxxxoxxxxxxxxxxxxxxxupoxxoxxxoxoxxuxxooxxuxoxxxxtxuxouxxxuxxxxxxxxoxxxpxuxxuoouxxpoxouxxupxxpoxxxxxxxuxxxxxxuxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxoxxxoxxxxxoxxxxxxxxxxxxxxxxxxxoxxoxxxxx",
+"xxoxxoxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxooxxxoxoxxoxxxxxxpxxxoxxxxxoxxxxuoxxxxxouxxxxpuxxxxxppuoxopuxupuxxoppuoopuxpxouxpppppxxxxuxxxxxxxxxxxxxxxxxxxxxxxxxxxxopxxxxoxxxxoxppooppxoouppoxppxuoxpxuppppoxxxxxxxxppxuoxpxxoppooxxoppouuxxuppoxxxxuxxxxxxuxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxooxxxoxxoxxoxxxxxxxxxoxxxxxxoxxox",
+"xxxoxxxxxxoxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxxxxxxxoxxxxxooxxxxxxxxxxoxxxoxxxxxxoxxxxxxxxxxxxxxxxxxxoxxoxoxxxxxxxxxxxxxxxxxxxoxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxoxxoxxxxxxxxoxoxoxxxxxxpxxxxxxuoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxoxxoxxxxxxxxxxxxxxxxxxoxxxoxxx",
+"xoxxxoxxoxxxoxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxoxoxxoxxoxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxxoxoxxxxxxoxxxxxxxxxxxxxxxxxxoxxxxxxxxoxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxoxxxoxoxxoxxoxxxxxxxxxxoxxxxxxxxxxxoxxxxxxoxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxxxxxxoxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxoxxxxxxxxoxxxoxxoxxxxxxxoxxxxxxxox",
+"xxxoxxxxxxxxxxoxxxxxoxoxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxxxxxoxxxoxxxxxxxoxxoxxxxoxxxoxoxxxxxxxxxxxxoxxxoxoxxxxxxoxxxxoxxxxxxxxoxxxoxoxxxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxoxxxxxxxxxxoxxxxxxxxxxxxxxxxoxoxxxoxxxxxxxxxxxoxxoxoxxxxxxxoxxxxxxxxxxxxxxxxxoxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxoxoxoxxxoxxxxxxxxxoxxxxxxxxxoxxx",
+"xxxxxoxxxxoxxxxxoxxxxxxoxxxxxxxxxxoxoxxxxxxxxxxxxoxooxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxoxxxxxoxoxxxoxxxxxxoxxxxxxxxxxxxxxxxxoxxxxxxxoxxxxxoxxxxoxxoxxxxoxxxoxxxxxxxxxxxxxoxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxoxxxxoxxoxxoxxxxxxxoxoxxxxxxxxxxxxxxxxoxoxxxoxxxxxxxxxxoxoxxxxxxoxxoxxxxxxxxxxxxxooxoxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxxxxxxoxxxxxoxxxxxxxxxxxxxoxxxxxx",
+"oxxoxxoxoxxxoxoxxxxxxxxxxxxxxxxoxxxxxxxxxxxxxxxxxxxxxxoxoxxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxoxxxxxxxoxxxxoxxxxxoxxxxxxxxxxxoxxxxoxxoxoxxxoxxxxxoxxxxxxxxoxxxxxxxxxxxxxxxxxxoxxoxxxxxxoxoxxxxxxoxxxxxxxxxxxxxxxxxxxxxxxxoxxxxoxxxoxxxxxxxxoxxxxxxxxxxxxoxxxxoxxoxxxxoxoxxoxxoxxxxxxxxoxxxoxxxxxxxxxxxxxxxxoxxxxxxoxxoxxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxxoxxxxoxxxxxxxxoxxxxxxxxoxoxxxxxxxoxoxx",
+"xxxxoxxxxxoxxxxoxxoxxxxxxxxxxxxxxxxxxxxxxxxxxxxoxoxoxxoxxxoxxxoxxxxxxoxxxxoxxxxxxxxxxxxxxxxxxxxxoxxxxoxoxxxxoxxxxoxxoxxoxxxxxxxxxxxoxxxxoxxxxxoxxxoxxxxxxxxxxoxxxxoxxxxxxxxxxoxoxxxoxxoxxoxxxxxxxxxxxxoxxxoxxxxxxxxxxxxxxoxxoxxxxoxxxxxxxoxoxxoxxxxxoxoxoxxxxxxxxxxxxxoxxxxxxoxxoxxxxoxxxxxxxoxxxxoxxxxoxxoxxoxxxoxoxoxxxxxxxxxxxxxxxoxxxxoxxxxxxxxxxxxxxxxxxxxxoxxxxoxoxxoxxoxxxoxxxxxxoxxxxxxxxxox",
+"xoxxxxoxoxxxxxxxxxxoxxxoxxoxoxxxoxoxxxxxxxxxxoxxxxxxoxxxoxxxoxxxxxoxxxoxoxxxoxxxxxxxxxoxxxxxxoxxxxoxxxxxxxxxxxxoxxxxxxxxxoxxxxxoxxxxoxoxxxxoxxxoxxxxxxxoxxoxxxxoxxxxxoxxoxoxxxxxxoxxoxxoxxxxoxoxoxxxxxxxoxxxxoxxxxxxxxxxxxxxxxoxxxxoxxoxxxxxoxxxoxxxxoxxxoxxxxxxxxxoxxxoxoxxxxxxxxoxxxoxxxxxxxxoxxxxoxxxxxxxxxxxxxxxxxoxoxxoxoxoxxxxxxoxoxxxoxxxxxxxxxxxoxxxxoxxxxxoxxxxxxxoxxxoxxxxoxoxxxxxxxxxxxxx",
+"xxoxxxxxoxxxoxoxoxxxxoxxxxxxxoxxxxxxoxxxxxoxxxxoxoxxxoxxxxxxxoxoxxxxoxxxxxxxxoxxxxxxxxxxoxxxxxxoxxxoxxoxxoxoxoxxxoxxoxoxxxoxoxxxxxxxxxxoxoxxxxxxxxxxxxxxxxxxxxxxuoxxxxxxxxxxoxxoxxxxxoxxxxouoxxxxoxooxxxxoxxxxoxxxxxxxoxoxxxxxxoxxxxoxxxoxxxxxxxxoxxxxoxxxxxxxoxxoxxxoxxxxxoxxoxxxxxxxxxoxxoxxxxoxxxxxoxxxoxoxxoxoxoxxxxxoxxxxxxoxoxoxxxxxxxxoxxxxxxxxoxxxxxxxoxxoxxxoxxoxxxxoxxxoxxxxxoxoxxxxxxoxxx",
+"xxxxxxxxxxoxxxxxxxxxxxxxoxxoxxxxoxoxxoxoxxxxxoxxxxxoxxxoxxoxxxxxxoxxxxoxoxxoxxxxxoxxxoxxxxxxoxxxoxxxoxxxxxxxxxxxxxxxxoxxoxxxxxxxoxxxxxxxxxxoxxxoxxxoxxxoxoxoxoxxxoxoxoxoxxoxxxxxxoxoxxoxoxxxxoxoxxxoxoxoxxxoxxxxoxoxxxxxoxxoxxxoooxxxxxxxxxxoxxoxxxxoxxxoxoxoxxxxxxxxxxxxoxxxxxxxxoxxxxxxoxxxoxxxoxxoxxoxxxxxoxxxxxxoxoxxxxxoxoxxxxxxxoxoxoxxxoxxxoxxxxxxxoxxxxoxxxoxxxxxxxxxxxxxxxxxoxxxxxoxoxxxoxx",
+"xoxxoxoxxxxoxxxxxxxoxxoxxxxxxoxxxxxoxxxxoxoxxxoxoxxxoxxxoxxxoxoxxoxxxxxxxoxxxoxxxxxoxxxoxxxxxxxxxxoxxxxoxxoooxxooxxoxxooooooxoxxxooxoxxxxxxxooxoxoxxxoxoxxxxxxooxoxxxooxoxxxoxoxxxxoooxxxoxxoxxxooxoxxxxxooooxxxooxoxoxxooxxxoxxoxxoxoxoxxoxxxxxxxxxxxoxxxxxxoxoxxxxxoxxxxoxoxxxxxxoxxoxxxxoxxxoxxoxxxxxoxxoxxoxoxoxxxxoxxoxxxxoxoxxxxxxxxxoxxxxxxxxoxxxoxxxoxxxxoxxxoxoxxoxoxxoxxoxxxoxoxxxxxoxxxxx",
+"xxoxxxxxoxxxxoxxoxxxxxxxoxoxxxoxxoxxoxoxxxxoxxxxxxoxxoxxxxoxxxxxxxoxoxxoxxxoxxoxxxxxxxxxoxxoxoxxoxxxoxxxxxoxooxxxoxooxxxooxoxxxooxooxxoxoxoxxooooooxxxoxooxoxooooxoxooxoxoxoxxxxxoxxoxoxxxoxxoxxxxooxxoxoxoxooxooxooxxxxxoxxxxxxoxxxxxxxoxxxxoxxoxoxoxxxxoxoxxxxxxoxxxoxoxxxxxoxxxxxxxxxoxxxxoxxxxxxoxoxxoxxxxxxxxxoxoxxoxxxxoxxxxoxxoxxoxxxoxoxxxxxxoxxxxxxxxoxxxxoxxxxxxxxxoxxxxxxoxxxxxoxoxxxxoxx",
+"xxxxoxoxxxoxxxxxxoxxoxxxxxxoxxxxxxxxxxxoxoxxoxxoxxxoxxoxoxxoxxoxoxxxxoxxoxxxoxxoxxxxxoxxxxxxxxoxxxxxxoxoxxooxoxoxoxxoxoxxxxxoxxoxxxoxxooooooxxxxxxoxooxxoxxxoxxxxoxoxooooxxoooooxxoxoooxoxxxoxxoxxxoxxxxxoxoxxxxoxxxxoxxxoxxoxxxoxoxxoxxxxoxxxoxxxxxxoxoxxxxxoxxoxxoxxxxxxoxxxxoxoxxoxxxxoxxxxxoxoxxxxoxxxoxxoxxoxxxxxoxxoxxxxoxoxxoxxoxxoxxxxxoxoxxxxxoxxoxxxxoxxxxoxxoxoxxxxxoxoxxoxoxoxxxxoxoxxox"
 };
--- a/lib-src/update-elc.sh	Mon Aug 13 08:52:30 2007 +0200
+++ b/lib-src/update-elc.sh	Mon Aug 13 08:52:56 2007 +0200
@@ -85,7 +85,7 @@
 # vm is hard, and must be done first ...
 #
 echon "Compiling VM... "
-( cd lisp/vm ; make EMACS=$REAL )
+( cd lisp/vm ; ${MAKE:-make} EMACS=$REAL autoload)
 echo done.
 
 echo Compiling files without .elc...
@@ -133,58 +133,58 @@
 
 if [ -d lisp/ediff ]; then
   echo Compiling EDIFF...
-  ( cd lisp/ediff ; make EMACS=$REAL elc )
+  ( cd lisp/ediff ; ${MAKE:-make} EMACS=$REAL elc )
   echo EDIFF done.
 fi
 
 if [ -d lisp/viper ]; then
   echo Compiling Viper...
-  ( cd lisp/viper ; make EMACS=$REAL elc )
+  ( cd lisp/viper ; ${MAKE:-make} EMACS=$REAL elc )
   echo Viper done.
 fi
 
 if [ -d lisp/efs ]; then
   echo Compiling efs...
-  ( cd lisp/efs ; make EMACS=$REAL )
+  ( cd lisp/efs ; ${MAKE:-make} EMACS=$REAL )
   echo efs done.
 fi
 
 # Gnus now has a makefile...
 echo Compiling Gnus...
-( cd lisp/gnus ; make EMACS=$REAL some )
+( cd lisp/gnus ; ${MAKE:-make} EMACS=$REAL some )
 echo Gnus done.
 
 # and gee w3 has its own makefile as well
 # (no especial need to use it, though)
 echo Compiling W3...
-( cd lisp/w3 ; make EMACS=$REAL )
+( cd lisp/w3 ; ${MAKE:-make} EMACS=$REAL )
 echo W3 done.
 
 # Hyperbole has to be different as well.  What is it with these big packages?
 echo Compiling Hyperbole...
-( cd lisp/hyperbole ; make EMACS=$REAL elc )
+( cd lisp/hyperbole ; ${MAKE:-make} EMACS=$REAL elc )
 echo Hyperbole done.
 
 # OO-Browser too
 echo Compiling OO-Browser...
-( cd lisp/oobr ; make EMACS=$REAL HYPB_ELC='' elc )
+( cd lisp/oobr ; ${MAKE:-make} EMACS=$REAL HYPB_ELC='' elc )
 echo OO-Browser done.
 
 # this is not strictly necessary but there are some special dependencies
 echo Compiling EOS...
-( cd lisp/eos ; make -k EMACS=$REAL )
+( cd lisp/eos ; ${MAKE:-make} -k EMACS=$REAL )
 echo EOS done.
 
 # ilisp would seem to take a little extra now as well
 # previously this was up top, but it requires that comint.elc exists.
 
 echo Compiling Ilisp...
-( cd lisp/ilisp ; make elc -f Makefile EMACS=$REAL )
+( cd lisp/ilisp ; ${MAKE:-make} elc -f Makefile EMACS=$REAL )
 echo Ilisp done.
 
 # AUC TeX requires special treatment
 echo Compiling AUC TeX...
-( cd lisp/auctex ; make some -f Makefile EMACS=$REAL )
+( cd lisp/auctex ; ${MAKE:-make} some -f Makefile EMACS=$REAL )
 echo AUC TeX done.
 
 #
--- a/lisp/comint/comint.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/comint/comint.el	Mon Aug 13 08:52:56 2007 +0200
@@ -355,6 +355,23 @@
 (put 'comint-scroll-show-maximum-output 'permanent-local t)
 (put 'comint-ptyp 'permanent-local t)
 
+(defface comint-input-face '((((class color)
+			      (background dark))
+			     (:foreground "red"))
+			    (((class color)
+			      (background light))
+			     (:foreground "blue"))
+			    (((class mono))
+			     (:bold t))
+			    (((class grayscale))
+			     (:bold t))
+			    (t 
+			     (:bold t)))
+  "How to display user input for comint shells."
+  :group 'comint-input-face)
+
+
+
 (defun comint-mode ()
   "Major mode for interacting with an inferior interpreter.
 Interpreter name is same as buffer name, sans the asterisks.
@@ -1346,7 +1363,9 @@
 	  (set-marker comint-last-input-start pmark)
 	  (set-marker comint-last-input-end (point))
 	  (set-marker (process-mark proc) (point))
+	  (comint-input-done)
 	  (funcall comint-input-sender proc input)
+	  (comint-input-setup)
 	  ;; XEmacs - A kludge to prevent the delay between insert and
 	  ;; process output affecting the display.  A case for a
 	  ;; comint-send-input-hook?
@@ -1354,6 +1373,27 @@
 			      (concat input "\n"))
 	  (comint-output-filter proc "")
 	  )))))
+(defun comint-input-done ()
+  "Finalized comint-input-extent so nothing more is added."
+  (if (not comint-input-extent)
+      (comint-input-setup))
+  (set-extent-property comint-input-extent 'start-closed nil)
+  (set-extent-property comint-input-extent 'end-closed nil)
+  (set-extent-property comint-input-extent 'detachable t)
+  )
+
+(defun comint-input-setup ()
+  "Insure the comint-input-extent is ready."
+  (setq comint-input-extent (make-extent (point) (point-max)))
+  (set-extent-property comint-input-extent 'detachable nil)
+  (set-extent-property comint-input-extent 'start-closed t)
+  (set-extent-property comint-input-extent 'end-closed t)
+  (set-extent-face comint-input-extent 'comint-input-face)
+  )
+
+(defvar comint-input-extent nil
+  "Current extent used for displaying text in buffer.");
+(make-variable-buffer-local 'comint-input-extent)
 
 ;; The purpose of using this filter for comint processes
 ;; is to keep comint-last-input-end from moving forward
@@ -1369,6 +1409,9 @@
 		opoint (point)
 		obeg (point-min)
 		oend (point-max))
+	  ;; Keep stuff being output (before input) from using input-extent
+	  (if comint-input-extent
+	      (set-extent-property comint-input-extent 'start-closed nil))
 	  (let ((buffer-read-only nil)
 		(nchars (length string))
 		(ostart nil))
@@ -1393,6 +1436,11 @@
 	    (set-marker comint-last-output-start ostart)
 	    (set-marker (process-mark process) (point))
 	    (redraw-modeline))
+	  ;; Now insure everything inserted after (user input) is in extent
+	  (if (not comint-input-extent)
+	      (comint-input-setup))
+	  (set-extent-endpoints comint-input-extent (point) (point-max))
+	  (set-extent-property comint-input-extent 'start-closed t)
 
 	  (narrow-to-region obeg oend)
 	  (goto-char opoint)
--- a/lisp/custom/ChangeLog	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/custom/ChangeLog	Mon Aug 13 08:52:56 2007 +0200
@@ -1,3 +1,53 @@
+Fri Mar 14 18:03:55 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.63 released.
+
+Fri Mar 14 18:00:40 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* custom.el (custom-help-menu): Use :filter to generate menu on
+	XEmacs. 
+	* cus-edit.el (custom-menu-update): Support use as :filter on
+	XEmacs, popup menu on Emacs.
+
+Tue Mar 11 16:27:50 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* Version 1.62 released.
+
+Tue Mar 11 11:30:39 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* cus-face.el (custom-set-face-font-size): Use
+	`font-set-face-font' instead of `set-face-font'.
+	(custom-set-face-font-family): Ditto.
+
+	* Version 1.61 released.
+
+Tue Mar 11 11:27:19 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* cus-face.el (custom-set-faces): If face already exists,
+	overwrite it now.
+
+Mon Mar 10 15:40:29 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* cus-face.el (custom-face-attributes): Changed default colors to
+	black and white.
+
+	* wid-edit.el (color-item): Set `:sample-face-get'.
+
+	* cus-face.el (custom-declare-face): Don't initialize an existing
+	saved face. 
+
+	* wid-edit.el (color): Changed default color from "default" to
+	"black". 
+
+	* Version 1.60 released.
+
+Mon Mar 10 11:32:51 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* widget.el (:tab-order): New keyword.
+	* wid-edit.el (widget-move): Use it.
+	* widget.texi (Basic Types): Documented it.
+	Patch by "William M. Perry" <wmperry@aventail.com>.
+
 Sat Mar 08 17:21:12 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
 
 	* Version 1.59 released.
--- a/lisp/custom/cus-edit.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/custom/cus-edit.el	Mon Aug 13 08:52:56 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.59
+;; Version: 1.63
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:
@@ -1835,17 +1835,23 @@
       item)))
 
 ;;;###autoload
-(defun custom-menu-update ()
+(defun custom-menu-update (event)
   "Update customize menu."
-  (interactive)
+  (interactive "e")
   (add-hook 'custom-define-hook 'custom-menu-reset)
-  (let ((menu `(,(car custom-help-menu)
-		,(widget-apply '(custom-group) :custom-menu 'emacs)
+  (let* ((emacs (widget-apply '(custom-group) :custom-menu 'emacs))
+	 (menu `(,(car custom-help-menu)
+		,emacs
 		,@(cdr (cdr custom-help-menu)))))
     (if (fboundp 'add-submenu)
-	(add-submenu '("Options") menu)
-      (define-key global-map [menu-bar help-menu customize-menu]
-	(cons (car menu) (easy-menu-create-keymaps (car menu) (cdr menu)))))))
+	(progn 
+	  (add-submenu '("Options") menu)
+	  (cdr emacs))
+      (let ((map (easy-menu-create-keymaps (car menu) (cdr menu))))
+	(define-key global-map [menu-bar help-menu customize-menu]
+	  (cons (car menu) map))
+	(when (fboundp 'x-popup-menu)
+	  (x-popup-menu event map))))))
 
 ;;; Dependencies.
 
--- a/lisp/custom/cus-face.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/custom/cus-face.el	Mon Aug 13 08:52:56 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.59
+;; Version: 1.63
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:
@@ -207,8 +207,7 @@
   (unless (get face 'factory-face)
     (put face 'factory-face spec)
     (when (fboundp 'facep)
-      (unless (and (custom-facep face)
-		   (not (get face 'saved-face)))
+      (unless (custom-facep face)
 	;; If the user has already created the face, respect that.
 	(let ((value (or (get face 'saved-face) spec))
 	      (frames (custom-relevant-frames))
@@ -243,9 +242,11 @@
 Control whether the text should be underlined.")
 		set-face-underline-p)
     (:foreground (color :tag "Foreground"
+			:value "black"
 			:help-echo "Set foreground color.")
 		 set-face-foreground)
     (:background (color :tag "Background"
+			:value "white"
 			:help-echo "Set background color.")
 		 set-face-background)
     (:invert (const :format "Invert Face\n" 
@@ -308,14 +309,14 @@
     (let* ((font (apply 'face-font-name face args))
 	   (fontobj (font-create-object font)))
       (set-font-size fontobj size)
-      (apply 'set-face-font face fontobj args)))
+      (apply 'font-set-face-font face fontobj args)))
 
   (defun custom-set-face-font-family (face family &rest args)
     "Set the font of FACE to FAMILY"
     (let* ((font (apply 'face-font-name face args))
 	   (fontobj (font-create-object font)))
       (set-font-family fontobj family)
-      (apply 'set-face-font face fontobj args)))
+      (apply 'font-set-face-font face fontobj args)))
 
   (nconc custom-face-attributes
 	 '((:family (editable-field :format "Font Family: %v"
@@ -461,7 +462,8 @@
 		(now (nth 2 entry)))
 	    (put face 'saved-face spec)
 	    (when now
-	      (put face 'force-face t)
+	      (put face 'force-face t))
+	    (when (or now (custom-facep face))
 	      (when (fboundp 'copy-face)
 		(copy-face 'custom-face-empty face))
 	      (custom-face-display-set face spec))
--- a/lisp/custom/custom.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/custom/custom.el	Mon Aug 13 08:52:56 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, faces
-;; Version: 1.59
+;; Version: 1.63
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:
@@ -297,8 +297,10 @@
 
 ;;; Menu support
 
-(defconst custom-help-menu '("Customize"
-			     ["Update menu..." custom-menu-update t]
+(defconst custom-help-menu `("Customize"
+			     ,(if (string-match "XEmacs" emacs-version)
+				  '("Emacs" :filter custom-menu-update)
+				["Update menu..." custom-menu-update t])
 			     ["Group..." customize t]
 			     ["Variable..." customize-variable t]
 			     ["Face..." customize-face t]
--- a/lisp/custom/wid-browse.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/custom/wid-browse.el	Mon Aug 13 08:52:56 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: extensions
-;; Version: 1.59
+;; Version: 1.63
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:
--- a/lisp/custom/wid-edit.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/custom/wid-edit.el	Mon Aug 13 08:52:56 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: extensions
-;; Version: 1.59
+;; Version: 1.63
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:
@@ -733,7 +733,11 @@
 		       (button (goto-char button))
 		       (field (goto-char field))
 		       (t
-			(error "No buttons or fields found")))))))))
+			(error "No buttons or fields found"))))))
+	(setq button (widget-at (point)))
+	(if (and button (widget-get button :tab-order)
+		 (< (widget-get button :tab-order) 0))
+	    (setq arg (1+ arg))))))
   (while (< arg 0)
     (if (= (point-min) (point))
 	(forward-char 1))
@@ -767,7 +771,11 @@
       (cond ((and button field)
 	     (goto-char (max button field)))
 	    (button (goto-char button))
-	    (field (goto-char field)))))
+	    (field (goto-char field)))
+      (setq button (widget-at (point)))
+      (if (and button (widget-get button :tab-order)
+	       (< (widget-get button :tab-order) 0))
+	  (setq arg (1- arg)))))
   (widget-echo-help (point))
   (run-hooks 'widget-move-hook))
 
@@ -2328,7 +2336,7 @@
 (define-widget 'color-item 'choice-item
   "A color name (with sample)."
   :format "%v (%{sample%})\n"
-  :button-face-get 'widget-color-item-button-face-get)
+  :sample-face-get 'widget-color-item-button-face-get)
 
 (defun widget-color-item-button-face-get (widget)
   ;; We create a face from the value.
@@ -2341,7 +2349,7 @@
   "Choose a color name (with sample)."
   :format "%[%t%]: %v"
   :tag "Color"
-  :value "default"
+  :value "black"
   :value-create 'widget-color-value-create
   :value-delete 'widget-children-value-delete
   :value-get 'widget-color-value-get
--- a/lisp/custom/widget-example.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/custom/widget-example.el	Mon Aug 13 08:52:56 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, extensions, faces, hypermedia
-;; Version: 1.59
+;; Version: 1.63
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 (require 'widget)
--- a/lisp/custom/widget.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/custom/widget.el	Mon Aug 13 08:52:56 2007 +0200
@@ -4,7 +4,7 @@
 ;;
 ;; Author: Per Abrahamsen <abraham@dina.kvl.dk>
 ;; Keywords: help, extensions, faces, hypermedia
-;; Version: 1.59
+;; Version: 1.63
 ;; X-URL: http://www.dina.kvl.dk/~abraham/custom/
 
 ;;; Commentary:
@@ -41,7 +41,7 @@
   :must-match :type-error :value-inline :inline :match-inline :greedy
   :button-face-get :button-face :value-face :keymap :entry-from
   :entry-to :help-echo :documentation-property :hide-front-space
-  :hide-rear-space) 
+  :hide-rear-space :tab-order) 
 
 ;; These autoloads should be deleted when the file is added to Emacs.
 (unless (fboundp 'load-gc)
--- a/lisp/ediff/ediff-wind.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/ediff/ediff-wind.el	Mon Aug 13 08:52:56 2007 +0200
@@ -535,8 +535,12 @@
     
     (if use-same-frame
 	(let ((window-min-height 1))
-	  ;; avoid dedicated and non-splittable windows
-	  (ediff-skip-unsuitable-frames)
+	  (if (and (eq frame-A frame-B)
+		   (eq frame-B frame-C)
+		   (frame-live-p frame-A))
+	      (select-frame frame-A)
+	    ;; avoid dedicated and non-splittable windows
+	    (ediff-skip-unsuitable-frames))
 	  (delete-other-windows)
 	  (setq merge-window-lines
 		(max 2 (round (* (window-height) merge-window-share))))
@@ -698,8 +702,10 @@
     
     (if use-same-frame
 	(let (wind-width-or-height) ; this affects 3way setups only
-	  ;; avoid dedicated and non-splittable windows
-	  (ediff-skip-unsuitable-frames)
+	  (if (and (eq frame-A frame-B) (frame-live-p frame-A))
+	      (select-frame frame-A)
+	    ;; avoid dedicated and non-splittable windows
+	    (ediff-skip-unsuitable-frames))
 	  (delete-other-windows)
 	  (switch-to-buffer buf-A)
 	  (setq wind-A (selected-window))
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/efs/README	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,28 @@
+This version of EFS was modified for integration with XEmacs by
+Mike Sperber <sperber@informatik.uni-tuebingen.de>.
+He is the current maintainer of this version of EFS.
+
+A Few Things That You Should Know About EFS:
+--------------------------------------------
+
+For documentation, see the first page of the file efs.el.  If you
+access FTP via a gateway, then be sure to read the documentation in
+efs.el on how to configure efs to use a gateway.  To find the section
+on user customization variables in efs.el, search for the first
+occurrence of the string ">>>>".  TeXinfo documentation is
+forthcoming.
+
+The file CHANGES contains a description of changes to EFS from the
+previous release to this release.  It also tells you where you can get
+the latest version of efs.
+
+The file LISTS contains a description of mailing lists relevant to
+efs.  It too tells you where you can get the latest version of efs.
+We encourage users to join these lists.
+
+EFS and archie.el:
+------------------
+
+To use archie.el (by Jack Repenning) with efs, you need at least
+archie.el V3.0.1.  Problems using efs with archie may be posted to the
+efs mailing lists.
--- a/lisp/gnus/ChangeLog	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/ChangeLog	Mon Aug 13 08:52:56 2007 +0200
@@ -1,10 +1,113 @@
+Fri Mar 14 20:11:01 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+	* gnus.el: Gnus v5.4.26 is released.
+
+Fri Mar 14 19:57:41 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-setup.el (gnus-use-sc): Changed default.
+
+Fri Mar 14 19:53:05 1997  Kurt Swanson  <kurt@dna.lth.se>
+
+	* gnus-art.el (gnus-article-goto-next-page): Place point.
+
+Fri Mar 14 18:46:54 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-art.el (gnus-article-mode-syntax-table): Make "-"
+	word-constituant. 
+
+	* gnus-sum.el (gnus-article-sort-by-author): Don't bug out on
+	Froms without names.
+
+	* messagexmas.el (message-xmas-make-caesar-translation-table): Use
+	char-int.
+
+Fri Mar 14 18:44:33 1997  Per Abrahamsen  <abraham@dina.kvl.dk>
+
+	* message.el (message-faces): New group.
+
+Fri Mar 14 18:43:16 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-sum.el (gnus-summary-limit-to-unread): Also exclude souped
+	articles. 
+
+Fri Mar 14 18:35:06 1997  Matt Armstrong  <Matt_Armstrong@geoworks.com>
+
+	* gnus-score.el (gnus-all-score-files): Remove duplicates.
+
+Fri Mar 14 18:21:07 1997  Andy Norman  <ange@hplb.hpl.hp.com>
+
+	* gnus-xmas.el (gnus-xmas-switch-horizontal-scrollbar-off): Check
+	whether we have a scrollbar first.
+
+Fri Mar 14 18:15:32 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* nnfolder.el (nnfolder-save-mail): Don't fold case when doing
+	From_. 
+
+Wed Mar 12 06:51:49 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* nnfolder.el (nnfolder-possibly-change-group): Accept a
+	dont-check param.
+	(nnfolder-request-group): Don't load folder.
+
+	* gnus.el (gnus-home-directory): New variable.
+
+Tue Mar 11 17:25:46 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-async.el (gnus-async-prefetch-article): Raise the level of
+	the message.
+
+Mon Mar 10 06:30:59 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus-score.el (gnus-score-find-trace): Would clobber the score
+	of other articles.
+
+	* nneething.el (nneething-create-mapping): Make sure
+	nneething-directory exists.
+
+	* nnfolder.el (nnfolder-adjust-min-active): New function.
+	(nnfolder-request-expire-articles): Use it.
+	(nnfolder-request-move-article): Ditto.
+	(nnfolder-request-scan): Switch to the right server first. 
+
+Mon Mar 10 06:28:58 1997  Joev Dubach  <dubach1@husc.harvard.edu>
+
+	* nnfolder.el (nnfolder-generate-active-file): Didn't work.
+
+Fri Mar 14 12:07:12 1997  Steven L Baur  <steve@altair.xemacs.org>
+
+	* gnus-msg.el (gnus-extended-version): Add XEmacs beta # to
+	default X-Mailer/X-Newsreader.
+
+Sun Mar  9 18:38:37 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
+
+	* gnus.el: Gnus v5.4.25 is released.
+
+Sun Mar  9 04:11:02 1997  Lars Magne Ingebrigtsen  <larsi@ifi.uio.no>
+
+	* gnus.el: Inlined and defsubsts various functions.
+
+	* nnmail.el (nnmail-search-unix-mail-delim): Made into subst.
+
+	* nnfolder.el (nnfolder-request-scan): Don't do anything when not
+	getting mail.
+
+	* nnmh.el (nnmh-request-accept-article): Return the correct
+	value. 
+
+	* gnus-group.el (gnus-group-kill-all-zombies): Touch dribble.
+
+	* gnus-score.el (gnus-score-find-trace): Message default score.
+
 Sat Mar  8 18:17:53 1997  Steven L Baur  <steve@altair.xemacs.org>
 
 	* gnus-util.el (gnus-byte-code): Use better (and still compatible)
 	name of `compiled-function-p'.
 
+Sat Mar  8 18:17:53 1997  Steven L Baur  <steve@altair.xemacs.org>
+
 	* messagexmas.el (message-xmas-make-caesar-translation-table):
-	char-int is braindamaged and stupid name for a conversion
+	char-int is a braindamaged and stupid name for a conversion
 	function.
 
 Sun Mar  9 01:51:16 1997  Lars Magne Ingebrigtsen  <larsi@menja.ifi.uio.no>
--- a/lisp/gnus/gnus-art.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-art.el	Mon Aug 13 08:52:56 2007 +0200
@@ -419,10 +419,10 @@
 (defface gnus-header-from-face
   '((((class color)
       (background dark))
-     (:foreground "spring green" :bold t :italic t))
+     (:foreground "spring green" :bold t))
     (((class color)
       (background light))
-     (:foreground "indianred" :bold t :italic t))
+     (:foreground "red3" :bold t))
     (t
      (:bold t :italic t)))
   "Face used for displaying from headers."
@@ -432,10 +432,10 @@
 (defface gnus-header-subject-face
   '((((class color)
       (background dark))
-     (:foreground "SeaGreen3" :bold t :italic t))
+     (:foreground "SeaGreen3" :bold t))
     (((class color)
       (background light))
-     (:foreground "firebrick" :bold t :italic t))
+     (:foreground "red4" :bold t))
     (t
      (:bold t :italic t)))
   "Face used for displaying subject headers."
@@ -510,7 +510,7 @@
 
 (defvar gnus-article-mode-syntax-table
   (let ((table (copy-syntax-table text-mode-syntax-table)))
-    ;;(modify-syntax-entry ?_ "w" table)
+    (modify-syntax-entry ?- "w" table)
     table)
   "Syntax table used in article mode buffers.
 Initialized from `text-mode-syntax-table.")
@@ -2039,6 +2039,7 @@
   "Show the next page of the article."
   (interactive)
   (when (gnus-article-next-page)
+    (goto-char (point-min))
     (gnus-article-read-summary-keys nil (gnus-character-to-event ?n))))
 
 (defun gnus-article-goto-prev-page ()
--- a/lisp/gnus/gnus-async.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-async.el	Mon Aug 13 08:52:56 2007 +0200
@@ -196,7 +196,7 @@
 		      (nntp-server-buffer
 		       (get-buffer gnus-async-prefetch-article-buffer)))
 		  (when do-message
-		    (gnus-message 7 "Prefetching article %d in group %s"
+		    (gnus-message 9 "Prefetching article %d in group %s"
 				  article group))
 		  (gnus-request-article article group))))))))))
 
--- a/lisp/gnus/gnus-cache.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-cache.el	Mon Aug 13 08:52:56 2007 +0200
@@ -134,8 +134,7 @@
   (when (and (or force (not (eq gnus-use-cache 'passive)))
 	     (numberp article)
 	     (> article 0)
-	     (vectorp headers))
-					; This might be a dummy article.
+	     (vectorp headers))		; This might be a dummy article.
     ;; If this is a virtual group, we find the real group.
     (when (gnus-virtual-group-p group)
       (let ((result (nnvirtual-find-group-art
--- a/lisp/gnus/gnus-group.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-group.el	Mon Aug 13 08:52:56 2007 +0200
@@ -2623,6 +2623,7 @@
   (interactive)
   (setq gnus-killed-list (nconc gnus-zombie-list gnus-killed-list))
   (setq gnus-zombie-list nil)
+  (gnus-dribble-touch)
   (gnus-group-list-groups))
 
 (defun gnus-group-kill-region (begin end)
--- a/lisp/gnus/gnus-int.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-int.el	Mon Aug 13 08:52:56 2007 +0200
@@ -201,7 +201,7 @@
   "Check whether a connection to METHOD has been opened."
   (when (stringp method)
     (setq method (gnus-server-to-method method)))
-  (funcall (gnus-get-function method 'server-opened) (nth 1 method)))
+  (funcall (inline (gnus-get-function method 'server-opened)) (nth 1 method)))
 
 (defun gnus-status-message (method)
   "Return the status message from METHOD.
@@ -219,10 +219,10 @@
 
 (defun gnus-request-group (group &optional dont-check method)
   "Request GROUP.  If DONT-CHECK, no information is required."
-  (let ((method (or method (gnus-find-method-for-group group))))
+  (let ((method (or method (inline (gnus-find-method-for-group group)))))
     (when (stringp method)
-      (setq method (gnus-server-to-method method)))
-    (funcall (gnus-get-function method 'request-group)
+      (setq method (inline (gnus-server-to-method method))))
+    (funcall (inline (gnus-get-function method 'request-group))
 	     (gnus-group-real-name group) (nth 1 method) dont-check)))
 
 (defun gnus-list-active-group (group)
@@ -243,7 +243,7 @@
 
 (defun gnus-close-group (group)
   "Request the GROUP be closed."
-  (let ((method (gnus-find-method-for-group group)))
+  (let ((method (inline (gnus-find-method-for-group group))))
     (funcall (gnus-get-function method 'close-group)
 	     (gnus-group-real-name group) (nth 1 method))))
 
--- a/lisp/gnus/gnus-load.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-load.el	Mon Aug 13 08:52:56 2007 +0200
@@ -99,7 +99,7 @@
 (put 'gnus-article 'custom-loads '("gnus-cite" "gnus-art"))
 (put 'gnus-group-foreign 'custom-loads '("gnus-group"))
 (put 'programming 'custom-loads '("cus-edit"))
-(put 'mesage-sending 'custom-loads '("message"))
+(put 'message-sending 'custom-loads '("message"))
 (put 'nnmail-prepare 'custom-loads '("nnmail"))
 (put 'picons 'custom-loads '("gnus-picon"))
 (put 'gnus-article-signature 'custom-loads '("gnus-art"))
--- a/lisp/gnus/gnus-msg.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-msg.el	Mon Aug 13 08:52:56 2007 +0200
@@ -530,11 +530,17 @@
      (concat "Emacs " (substring emacs-version
 				 (match-beginning 1)
 				 (match-end 1))))
-    ((string-match "\\([A-Z]*[Mm][Aa][Cc][Ss]\\)" emacs-version)
+    ((string-match "\\([A-Z]*[Mm][Aa][Cc][Ss]\\)[^(]*\\(\\((beta.*)\\|'\\)\\)?"
+		   emacs-version)
      (concat (substring emacs-version
 			(match-beginning 1)
 			(match-end 1))
-	     (format " %d.%d" emacs-major-version emacs-minor-version)))
+	     (format " %d.%d" emacs-major-version emacs-minor-version)
+	     (if (match-beginning 3)
+		 (substring emacs-version
+			    (match-beginning 3)
+			    (match-end 3))
+	       "")))
     (t emacs-version))))
 
 ;; Written by "Mr. Per Persson" <pp@gnu.ai.mit.edu>.
--- a/lisp/gnus/gnus-nocem.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-nocem.el	Mon Aug 13 08:52:56 2007 +0200
@@ -48,7 +48,7 @@
    "clewis@ferret.ocunix.on.ca;" ; Chris Lewis
    "jem@xpat.com;"		 ; Despammer from Korea
    "snowhare@xmission.com"       ; Benjamin "Snowhare" Franz
-   "red@redpoll.mrfs.oh.us (Richard E. Depew)"
+   "red@redpoll.mrfs.oh.us (Richard E. Depew)" ; ARMM! ARMM!
    )
   "List of NoCeM issuers to pay attention to."
   :group 'gnus-nocem
--- a/lisp/gnus/gnus-score.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-score.el	Mon Aug 13 08:52:56 2007 +0200
@@ -2181,24 +2181,29 @@
 (defun gnus-score-find-trace ()
   "Find all score rules that applies to the current article."
   (interactive)
-  (let ((gnus-newsgroup-headers
-	 (list (gnus-summary-article-header)))
-	(gnus-newsgroup-scored nil)
-	trace)
-    (save-excursion
-      (nnheader-set-temp-buffer "*Score Trace*"))
-    (setq gnus-score-trace nil)
-    (gnus-possibly-score-headers 'trace)
-    (if (not (setq trace gnus-score-trace))
-	(gnus-error 1 "No score rules apply to the current article.")
-      (set-buffer "*Score Trace*")
-      (gnus-add-current-to-buffer-list)
-      (while trace
-	(insert (format "%S  ->  %s\n" (cdar trace)
-			(file-name-nondirectory (caar trace))))
-	(setq trace (cdr trace)))
-      (goto-char (point-min))
-      (gnus-configure-windows 'score-trace))))
+  (let ((old-scored gnus-newsgroup-scored))
+    (let ((gnus-newsgroup-headers
+	   (list (gnus-summary-article-header)))
+	  (gnus-newsgroup-scored nil)
+	  trace)
+      (save-excursion
+	(nnheader-set-temp-buffer "*Score Trace*"))
+      (setq gnus-score-trace nil)
+      (gnus-possibly-score-headers 'trace)
+      (if (not (setq trace gnus-score-trace))
+	  (gnus-error
+	   1 "No score rules apply to the current article (default score %d)."
+	   gnus-summary-default-score)
+	(set-buffer "*Score Trace*")
+	(gnus-add-current-to-buffer-list)
+	(while trace
+	  (insert (format "%S  ->  %s\n" (cdar trace)
+			  (file-name-nondirectory (caar trace))))
+	  (setq trace (cdr trace)))
+	(goto-char (point-min))
+	(gnus-configure-windows 'score-trace)))
+    (set-buffer gnus-summary-buffer)
+    (setq gnus-newsgroup-scored old-scored)))
 
 (defun gnus-score-find-favourite-words ()
   "List words used in scoring."
@@ -2616,9 +2621,9 @@
       (pop score-files))
     (let ((files score-files))
       (while (cdr files)
-	(when (member (cadr files) (cddr files))
-	  (setcdr files (cddr files)))
-	(pop files)))
+ 	(if (member (cadr files) (cddr files))
+ 	    (setcdr files (cddr files))
+ 	  (pop files))))
     ;; Do the scoring if there are any score files for this group.
     score-files))
 
--- a/lisp/gnus/gnus-setup.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-setup.el	Mon Aug 13 08:52:56 2007 +0200
@@ -75,7 +75,7 @@
   "Set this if you want to use SENDMAIL for mail reading")
 (defvar gnus-use-vm nil
   "Set this if you want to use the VM package for mail reading")
-(defvar gnus-use-sc t
+(defvar gnus-use-sc nil
   "Set this if you want to use Supercite")
 (defvar gnus-use-mailcrypt t
   "Set this if you want to use Mailcrypt for dealing with PGP messages")
--- a/lisp/gnus/gnus-soup.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-soup.el	Mon Aug 13 08:52:56 2007 +0200
@@ -34,10 +34,11 @@
 
 ;;; User Variables:
 
-(defvar gnus-soup-directory "~/SoupBrew/"
+(defvar gnus-soup-directory (nnheader-concat gnus-home-directory "SoupBrew/")
   "*Directory containing an unpacked SOUP packet.")
 
-(defvar gnus-soup-replies-directory (concat gnus-soup-directory "SoupReplies/")
+(defvar gnus-soup-replies-directory
+  (nnheader-concat gnus-soup-directory "SoupReplies/")
   "*Directory where Gnus will do processing of replies.")
 
 (defvar gnus-soup-prefix-file "gnus-prefix"
@@ -53,7 +54,7 @@
   "*Format string command for unpacking a SOUP packet.
 The SOUP packet file name will be inserted at the %s.")
 
-(defvar gnus-soup-packet-directory "~/"
+(defvar gnus-soup-packet-directory gnus-home-directory
   "*Where gnus-soup will look for REPLIES packets.")
 
 (defvar gnus-soup-packet-regexp "Soupin"
--- a/lisp/gnus/gnus-start.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-start.el	Mon Aug 13 08:52:56 2007 +0200
@@ -33,13 +33,13 @@
 (require 'gnus-util)
 (require 'message)
 
-(defcustom gnus-startup-file "~/.newsrc"
+(defcustom gnus-startup-file (nnheader-concat gnus-home-directory ".newsrc")
   "Your `.newsrc' file.
 `.newsrc-SERVER' will be used instead if that exists."
   :group 'gnus-start
   :type 'file)
 
-(defcustom gnus-init-file "~/.gnus"
+(defcustom gnus-init-file (nnheader-concat gnus-home-directory ".gnus")
   "Your Gnus elisp startup file.
 If a file with the .el or .elc suffixes exist, it will be read
 instead."
@@ -1290,12 +1290,35 @@
 	     (> (cdr cache-active) (cdr active))
 	     (setcdr active (cdr cache-active)))))))
 
+(defun gnus-activate-group (group &optional scan dont-check method)
+  ;; Check whether a group has been activated or not.
+  ;; If SCAN, request a scan of that group as well.
+  (let ((method (or method (inline (gnus-find-method-for-group group))))
+	active)
+    (and (inline (gnus-check-server method))
+	 ;; We escape all bugs and quit here to make it possible to
+	 ;; continue if a group is so out-there that it reports bugs
+	 ;; and stuff.
+	 (progn
+	   (and scan
+		(gnus-check-backend-function 'request-scan (car method))
+		(gnus-request-scan group method))
+	   t)
+	 (condition-case ()
+	     (inline (gnus-request-group group dont-check method))
+	   (error nil)
+	   (quit nil))
+	 (gnus-set-active group (setq active (gnus-parse-active)))
+	 ;; Return the new active info.
+	 active)))
+
 (defun gnus-get-unread-articles-in-group (info active &optional update)
   (when active
     ;; Allow the backend to update the info in the group.
     (when (and update
 	       (gnus-request-update-info
-		info (gnus-find-method-for-group (gnus-info-group info))))
+		info (inline (gnus-find-method-for-group
+			      (gnus-info-group info)))))
       (gnus-activate-group (gnus-info-group info) nil t))
     (let* ((range (gnus-info-read info))
 	   (num 0))
@@ -1400,9 +1423,10 @@
       ;; newsgroup to t.  This means that Gnus thinks that there are
       ;; unread articles, but it has no idea how many.
       (if (and (setq method (gnus-info-method info))
-	       (not (gnus-server-equal
-		     gnus-select-method
-		     (setq method (gnus-server-get-method nil method))))
+	       (not (inline
+		      (gnus-server-equal
+		       gnus-select-method
+		       (setq method (gnus-server-get-method nil method)))))
 	       (not (gnus-secondary-method-p method)))
 	  ;; These groups are foreign.  Check the level.
 	  (when (<= (gnus-info-level info) foreign-level)
@@ -1462,28 +1486,6 @@
       (while list
 	(gnus-sethash (car list) (pop list) gnus-killed-hashtb)))))
 
-(defun gnus-activate-group (group &optional scan dont-check method)
-  ;; Check whether a group has been activated or not.
-  ;; If SCAN, request a scan of that group as well.
-  (let ((method (or method (gnus-find-method-for-group group)))
-	active)
-    (and (gnus-check-server method)
-	 ;; We escape all bugs and quit here to make it possible to
-	 ;; continue if a group is so out-there that it reports bugs
-	 ;; and stuff.
-	 (progn
-	   (and scan
-		(gnus-check-backend-function 'request-scan (car method))
-		(gnus-request-scan group method))
-	   t)
-	 (condition-case ()
-	     (gnus-request-group group dont-check method)
-	   (error nil)
-	   (quit nil))
-	 (gnus-set-active group (setq active (gnus-parse-active)))
-	 ;; Return the new active info.
-	 active)))
-
 (defun gnus-parse-active ()
   "Parse active info in the nntp server buffer."
   (save-excursion
@@ -1589,10 +1591,12 @@
 		    (gmethod (gnus-server-get-method nil method))
 		    groups info)
 		(while (setq info (pop newsrc))
-		  (when (gnus-server-equal
-			 (gnus-find-method-for-group
-			  (gnus-info-group info) info)
-			 gmethod)
+		  (when (inline
+			  (gnus-server-equal
+			   (inline
+			     (gnus-find-method-for-group
+			      (gnus-info-group info) info))
+			   gmethod))
 		    (push (gnus-group-real-name (gnus-info-group info))
 			  groups)))
 		(when groups
@@ -2253,7 +2257,7 @@
 	;; Don't write foreign groups to .newsrc.
 	(when (or (null (setq method (gnus-info-method info)))
 		  (equal method "native")
-		  (gnus-server-equal method gnus-select-method))
+		  (inline (gnus-server-equal method gnus-select-method)))
 	  (insert (gnus-info-group info)
 		  (if (> (gnus-info-level info) gnus-level-subscribed)
 		      "!" ":"))
@@ -2393,9 +2397,11 @@
 	    (narrow-to-region (point-min) (point)))
 	  ;; If these are groups from a foreign select method, we insert the
 	  ;; group prefix in front of the group names.
-	  (and method (not (gnus-server-equal
-			    (gnus-server-get-method nil method)
-			    (gnus-server-get-method nil gnus-select-method)))
+	  (and method (not (inline
+			     (gnus-server-equal
+			      (gnus-server-get-method nil method)
+			      (gnus-server-get-method
+			       nil gnus-select-method))))
 	       (let ((prefix (gnus-group-prefixed-name "" method)))
 		 (goto-char (point-min))
 		 (while (and (not (eobp))
--- a/lisp/gnus/gnus-sum.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-sum.el	Mon Aug 13 08:52:56 2007 +0200
@@ -3190,11 +3190,11 @@
    (let ((extract (funcall
 		   gnus-extract-address-components
 		   (mail-header-from h1))))
-     (or (car extract) (cdr extract)))
+     (or (car extract) (cadr extract) ""))
    (let ((extract (funcall
 		   gnus-extract-address-components
 		   (mail-header-from h2))))
-     (or (car extract) (cdr extract)))))
+     (or (car extract) (cadr extract) ""))))
 
 (defun gnus-thread-sort-by-author (h1 h2)
   "Sort threads by root author."
@@ -5668,7 +5668,7 @@
 	   gnus-killed-mark gnus-kill-file-mark
 	   gnus-low-score-mark gnus-expirable-mark
 	   gnus-canceled-mark gnus-catchup-mark gnus-sparse-mark
-	   gnus-duplicate-mark)
+	   gnus-duplicate-mark gnus-souped-mark)
      'reverse)))
 
 (defalias 'gnus-summary-delete-marked-with 'gnus-summary-limit-exclude-marks)
--- a/lisp/gnus/gnus-topic.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-topic.el	Mon Aug 13 08:52:56 2007 +0200
@@ -236,8 +236,8 @@
 	result found)
     (while (and topology
 		(not (setq found (equal (caaar topology) topic)))
-		(not (setq result (gnus-topic-parent-topic topic
-							   (car topology)))))
+		(not (setq result (gnus-topic-parent-topic
+				   topic (car topology)))))
       (setq topology (cdr topology)))
     (or result (and found parent))))
 
--- a/lisp/gnus/gnus-util.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-util.el	Mon Aug 13 08:52:56 2007 +0200
@@ -458,7 +458,7 @@
     (let ((ids (inline (gnus-split-references references))))
       (car (last ids (or n 1))))))
 
-(defun gnus-buffer-live-p (buffer)
+(defsubst gnus-buffer-live-p (buffer)
   "Say whether BUFFER is alive or not."
   (and buffer
        (get-buffer buffer)
--- a/lisp/gnus/gnus-uu.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-uu.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1206,7 +1206,6 @@
 (defun gnus-uu-grab-articles (articles process-function
 				       &optional sloppy limit no-errors)
   (let ((state 'first)
-	(gnus-asynchronous nil)
 	has-been-begin article result-file result-files process-state
 	gnus-summary-display-article-function
 	gnus-article-display-hook gnus-article-prepare-hook
--- a/lisp/gnus/gnus-xmas.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus-xmas.el	Mon Aug 13 08:52:56 2007 +0200
@@ -142,7 +142,8 @@
 This is ugly, but it works around a bug in `window-displayed-height'.")
 
 (defun gnus-xmas-switch-horizontal-scrollbar-off ()
-  (set-specifier scrollbar-height (cons (current-buffer) 0)))
+  (when (featurep 'scrollbar)
+    (set-specifier scrollbar-height (cons (current-buffer) 0))))
 
 (defun gnus-xmas-summary-recenter ()
   "\"Center\" point in the summary window.
--- a/lisp/gnus/gnus.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/gnus.el	Mon Aug 13 08:52:56 2007 +0200
@@ -226,7 +226,7 @@
   :link '(custom-manual "(gnus)Exiting Gnus")
   :group 'gnus)
 
-(defconst gnus-version-number "5.4.24"
+(defconst gnus-version-number "5.4.26"
   "Version number for this version of Gnus.")
 
 (defconst gnus-version (format "Gnus v%s" gnus-version-number)
@@ -711,7 +711,14 @@
 (require 'gnus-util)
 (require 'nnheader)
 
-(defcustom gnus-directory (or (getenv "SAVEDIR") "~/News/")
+(defcustom gnus-home-directory "~/"
+  "Directory variable that specifies the \"home\" directory.
+All other Gnus path variables are initialized from this variable."
+  :group 'gnus-files
+  :type 'directory)
+
+(defcustom gnus-directory (or (getenv "SAVEDIR")
+			      (nnheader-concat gnus-home-directory "News/"))
   "Directory variable from which all other Gnus file variables are derived."
   :group 'gnus-files
   :type 'directory)
@@ -2378,18 +2385,6 @@
   (memq option (assoc (format "%s" (car method))
 		      gnus-valid-select-methods)))
 
-(defun gnus-server-extend-method (group method)
-  ;; This function "extends" a virtual server.	If the server is
-  ;; "hello", and the select method is ("hello" (my-var "something"))
-  ;; in the group "alt.alt", this will result in a new virtual server
-  ;; called "hello+alt.alt".
-  (if (or (not (gnus-similar-server-opened method))
-	  (not (cddr method)))
-      method
-    `(,(car method) ,(concat (cadr method) "+" group)
-      (,(intern (format "%s-address" (car method))) ,(cadr method))
-      ,@(cddr method))))
-
 (defun gnus-similar-server-opened (method)
   (let ((opened gnus-opened-servers))
     (while (and method opened)
@@ -2399,6 +2394,18 @@
       (pop opened))
     (not method)))
 
+(defun gnus-server-extend-method (group method)
+  ;; This function "extends" a virtual server.	If the server is
+  ;; "hello", and the select method is ("hello" (my-var "something"))
+  ;; in the group "alt.alt", this will result in a new virtual server
+  ;; called "hello+alt.alt".
+  (if (or (not (inline (gnus-similar-server-opened method)))
+	  (not (cddr method)))
+      method
+    `(,(car method) ,(concat (cadr method) "+" group)
+      (,(intern (format "%s-address" (car method))) ,(cadr method))
+      ,@(cddr method))))
+
 (defun gnus-server-status (method)
   "Return the status of METHOD."
   (nth 1 (assoc method gnus-opened-servers)))
@@ -2426,9 +2433,9 @@
 	    gnus-select-method
 	  (setq method
 		(cond ((stringp method)
-		       (gnus-server-to-method method))
+		       (inline (gnus-server-to-method method)))
 		      ((stringp (cadr method))
-		       (gnus-server-extend-method group method))
+		       (inline (gnus-server-extend-method group method)))
 		      (t
 		       method)))
 	  (cond ((equal (cadr method) "")
@@ -2438,7 +2445,7 @@
 		(t
 		 (gnus-server-add-address method)))))))
 
-(defun gnus-check-backend-function (func group)
+(defsubst gnus-check-backend-function (func group)
   "Check whether GROUP supports function FUNC.
 GROUP can either be a string (a group name) or a select method."
   (ignore-errors
--- a/lisp/gnus/message.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/message.el	Mon Aug 13 08:52:56 2007 +0200
@@ -93,6 +93,11 @@
   "Composing Mail Messages"
   :group 'message)
 
+(defgroup message-faces nil
+  "Faces used for message composing."
+  :group 'message
+  :group 'faces)
+
 (defcustom message-directory "~/Mail/"
   "*Directory from which all other mail file variables are derived."
   :group 'message-various
@@ -398,7 +403,7 @@
 	(t '(nnspool "")))
   "Method used to post news."
   :group 'message-news
-  :group 'mesage-sending
+  :group 'message-sending
   ;; This should be the `gnus-select-method' widget, but that might
   ;; create a dependence to `gnus.el'.
   :type 'sexp)
@@ -614,7 +619,7 @@
     (t
      (:bold t :italic t)))
   "Face used for displaying From headers."
-  :group 'message-headers)
+  :group 'message-faces)
 
 (defface message-header-cc-face
   '((((class color)
@@ -626,7 +631,7 @@
     (t
      (:bold t)))
   "Face used for displaying Cc headers."
-  :group 'message-headers)
+  :group 'message-faces)
 
 (defface message-header-subject-face
   '((((class color)
@@ -638,7 +643,7 @@
     (t
      (:bold t)))
   "Face used for displaying subject headers."
-  :group 'message-headers)
+  :group 'message-faces)
 
 (defface message-header-newsgroups-face
   '((((class color)
@@ -650,7 +655,7 @@
     (t
      (:bold t :italic t)))
   "Face used for displaying newsgroups headers."
-  :group 'message-headers)
+  :group 'message-faces)
 
 (defface message-header-other-face
   '((((class color)
@@ -662,7 +667,7 @@
     (t
      (:bold t :italic t)))
   "Face used for displaying newsgroups headers."
-  :group 'message-headers)
+  :group 'message-faces)
 
 (defface message-header-name-face
   '((((class color)
@@ -674,7 +679,7 @@
     (t
      (:bold t)))
   "Face used for displaying header names."
-  :group 'message-headers)
+  :group 'message-faces)
 
 (defface message-header-xheader-face
   '((((class color)
@@ -686,7 +691,7 @@
     (t
      (:bold t)))
   "Face used for displaying X-Header headers."
-  :group 'message-headers)
+  :group 'message-faces)
 
 (defface message-separator-face
   '((((class color)
@@ -698,7 +703,7 @@
     (t
      (:bold t)))
   "Face used for displaying the separator."
-  :group 'message-headers)
+  :group 'message-faces)
 
 (defface message-cited-text-face
   '((((class color)
@@ -710,7 +715,7 @@
     (t
      (:bold t)))
   "Face used for displaying cited text names."
-  :group 'message-headers)
+  :group 'message-faces)
 
 (defvar message-font-lock-keywords
   (let* ((cite-prefix "A-Za-z")
--- a/lisp/gnus/messagexmas.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/messagexmas.el	Mon Aug 13 08:52:56 2007 +0200
@@ -101,8 +101,8 @@
   "Create a rot table with offset N."
   (let ((i -1)
 	(table (make-string 256 0))
-	(a (char-to-int ?a))
-	(A (char-to-int ?A)))
+	(a (char-int ?a))
+	(A (char-int ?A)))
     (while (< (incf i) 256)
       (aset table i i))
     (concat
--- a/lisp/gnus/nndir.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/nndir.el	Mon Aug 13 08:52:56 2007 +0200
@@ -63,8 +63,6 @@
 	    server))
   (unless (assq 'nndir-directory defs)
     (push `(nndir-directory ,server) defs))
-  ;(when (equal server "")
-  ;  (setq server (cadr (assq 'nndir-directory defs))))
   (push `(nndir-current-group
 	  ,(file-name-nondirectory (directory-file-name nndir-directory)))
 	defs)
--- a/lisp/gnus/nneething.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/nneething.el	Mon Aug 13 08:52:56 2007 +0200
@@ -188,69 +188,70 @@
 
 (defun nneething-create-mapping ()
   ;; Read nneething-active and nneething-map.
-  (let ((map-file (nneething-map-file))
-	(files (directory-files nneething-directory))
-	touched map-files)
-    (when (file-exists-p map-file)
-      (ignore-errors
-	(load map-file nil t t)))
-    (unless nneething-active
-      (setq nneething-active (cons 1 0)))
-    ;; Old nneething had a different map format.
-    (when (and (cdar nneething-map)
-	       (atom (cdar nneething-map)))
-      (setq nneething-map
-	    (mapcar (lambda (n)
-		      (list (cdr n) (car n)
-			    (nth 5 (file-attributes
-				    (nneething-file-name (car n))))))
-		    nneething-map)))
-    ;; Remove files matching the exclusion regexp.
-    (when nneething-exclude-files
-      (let ((f files)
+  (when (file-exists-p nneething-directory)
+    (let ((map-file (nneething-map-file))
+	  (files (directory-files nneething-directory))
+	  touched map-files)
+      (when (file-exists-p map-file)
+	(ignore-errors
+	  (load map-file nil t t)))
+      (unless nneething-active
+	(setq nneething-active (cons 1 0)))
+      ;; Old nneething had a different map format.
+      (when (and (cdar nneething-map)
+		 (atom (cdar nneething-map)))
+	(setq nneething-map
+	      (mapcar (lambda (n)
+			(list (cdr n) (car n)
+			      (nth 5 (file-attributes
+				      (nneething-file-name (car n))))))
+		      nneething-map)))
+      ;; Remove files matching the exclusion regexp.
+      (when nneething-exclude-files
+	(let ((f files)
+	      prev)
+	  (while f
+	    (if (string-match nneething-exclude-files (car f))
+		(if prev (setcdr prev (cdr f))
+		  (setq files (cdr files)))
+	      (setq prev f))
+	    (setq f (cdr f)))))
+      ;; Remove deleted files from the map.
+      (let ((map nneething-map)
 	    prev)
-	(while f
-	  (if (string-match nneething-exclude-files (car f))
-	      (if prev (setcdr prev (cdr f))
-		(setq files (cdr files)))
-	    (setq prev f))
-	  (setq f (cdr f)))))
-    ;; Remove deleted files from the map.
-    (let ((map nneething-map)
-	  prev)
-      (while map
-	(if (and (member (cadar map) files)
-		 ;; We also remove files that have changed mod times.
-		 (equal (nth 5 (file-attributes
-				(nneething-file-name (cadar map))))
-			(caddar map)))
-	    (progn
-	      (push (cadar map) map-files)
-	      (setq prev map))
+	(while map
+	  (if (and (member (cadar map) files)
+		   ;; We also remove files that have changed mod times.
+		   (equal (nth 5 (file-attributes
+				  (nneething-file-name (cadar map))))
+			  (caddar map)))
+	      (progn
+		(push (cadar map) map-files)
+		(setq prev map))
+	    (setq touched t)
+	    (if prev
+		(setcdr prev (cdr map))
+	      (setq nneething-map (cdr nneething-map))))
+	  (setq map (cdr map))))
+      ;; Find all new files and enter them into the map.
+      (while files
+	(unless (member (car files) map-files)
+	  ;; This file is not in the map, so we enter it.
 	  (setq touched t)
-	  (if prev
-	      (setcdr prev (cdr map))
-	    (setq nneething-map (cdr nneething-map))))
-	(setq map (cdr map))))
-    ;; Find all new files and enter them into the map.
-    (while files
-      (unless (member (car files) map-files)
-	;; This file is not in the map, so we enter it.
-	(setq touched t)
-	(setcdr nneething-active (1+ (cdr nneething-active)))
-	(push (list (cdr nneething-active) (car files)
-		    (nth 5 (file-attributes
-			    (nneething-file-name (car files)))))
-	      nneething-map))
-      (setq files (cdr files)))
-    (when (and touched
-	       (not nneething-read-only))
-      (nnheader-temp-write map-file
-	(insert "(setq nneething-map '")
-	(gnus-prin1 nneething-map)
-	(insert ")\n(setq nneething-active '")
-	(gnus-prin1 nneething-active)
-	(insert ")\n")))))
+	  (setcdr nneething-active (1+ (cdr nneething-active)))
+	  (push (list (cdr nneething-active) (car files)
+		      (nth 5 (file-attributes
+			      (nneething-file-name (car files)))))
+		nneething-map))
+	(setq files (cdr files)))
+      (when (and touched
+		 (not nneething-read-only))
+	(nnheader-temp-write map-file
+	  (insert "(setq nneething-map '")
+	  (gnus-prin1 nneething-map)
+	  (insert ")\n(setq nneething-active '")
+	  (gnus-prin1 nneething-active)
+	  (insert ")\n"))))))
 
 (defun nneething-insert-head (file)
   "Insert the head of FILE."
--- a/lisp/gnus/nnfolder.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/nnfolder.el	Mon Aug 13 08:52:56 2007 +0200
@@ -193,9 +193,8 @@
 		    (point) (progn (end-of-line) (point)))))))))))
 
 (deffoo nnfolder-request-group (group &optional server dont-check)
-  (nnfolder-possibly-change-group group server)
+  (nnfolder-possibly-change-group group server t)
   (save-excursion
-    (nnmail-activate 'nnfolder)
     (if (not (assoc group nnfolder-group-alist))
 	(nnheader-report 'nnfolder "No such group: %s" group)
       (if dont-check
@@ -217,22 +216,24 @@
 			     (car range) (cdr range) group))))))))
 
 (deffoo nnfolder-request-scan (&optional group server)
-  (nnfolder-possibly-change-group group server t)
-  (nnmail-get-new-mail
-   'nnfolder
-   (lambda ()
-     (let ((bufs nnfolder-buffer-alist))
-       (save-excursion
-	 (while bufs
-	   (if (not (buffer-name (nth 1 (car bufs))))
-	       (setq nnfolder-buffer-alist
-		     (delq (car bufs) nnfolder-buffer-alist))
-	     (set-buffer (nth 1 (car bufs)))
-	     (nnfolder-save-buffer)
-	     (kill-buffer (current-buffer)))
-	   (setq bufs (cdr bufs))))))
-   nnfolder-directory
-   group))
+  (nnfolder-possibly-change-group nil server)
+  (when nnfolder-get-new-mail
+    (nnfolder-possibly-change-group group server)
+    (nnmail-get-new-mail
+     'nnfolder
+     (lambda ()
+       (let ((bufs nnfolder-buffer-alist))
+	 (save-excursion
+	   (while bufs
+	     (if (not (buffer-name (nth 1 (car bufs))))
+		 (setq nnfolder-buffer-alist
+		       (delq (car bufs) nnfolder-buffer-alist))
+	       (set-buffer (nth 1 (car bufs)))
+	       (nnfolder-save-buffer)
+	       (kill-buffer (current-buffer)))
+	     (setq bufs (cdr bufs))))))
+     nnfolder-directory
+     group)))
 
 ;; Don't close the buffer if we're not shutting down the server.  This way,
 ;; we can keep the buffer in the group buffer cache, and not have to grovel
@@ -320,19 +321,7 @@
       (unless nnfolder-inhibit-expiry
 	(nnheader-message 5 "Deleting articles...done"))
       (nnfolder-save-buffer)
-      ;; Find the lowest active article in this group.
-      (let* ((active (cadr (assoc newsgroup nnfolder-group-alist)))
-	     (marker (concat "\n" nnfolder-article-marker))
-	     (number "[0-9]+")
-	     (activemin (cdr active)))
-	(goto-char (point-min))
-	(while (and (search-forward marker nil t)
-		    (re-search-forward number nil t))
-	  (setq activemin (min activemin
-			       (string-to-number (buffer-substring
-						  (match-beginning 0)
-						  (match-end 0))))))
-	(setcar active activemin))
+      (nnfolder-adjust-min-active newsgroup)
       (nnmail-save-active nnfolder-group-alist nnfolder-active-file)
       (nconc rest articles))))
 
@@ -362,7 +351,9 @@
        (goto-char (point-min))
        (when (search-forward (nnfolder-article-string article) nil t)
 	 (nnfolder-delete-mail))
-       (and last (nnfolder-save-buffer))))
+       (when last
+	 (nnfolder-save-buffer)
+	 (nnfolder-adjust-min-active group))))
     result))
 
 (deffoo nnfolder-request-accept-article (group &optional server last)
@@ -452,6 +443,21 @@
 
 ;;; Internal functions.
 
+(defun nnfolder-adjust-min-active (group)
+  ;; Find the lowest active article in this group.
+  (let* ((active (cadr (assoc group nnfolder-group-alist)))
+	 (marker (concat "\n" nnfolder-article-marker))
+	 (number "[0-9]+")
+	 (activemin (cdr active)))
+    (goto-char (point-min))
+    (while (and (search-forward marker nil t)
+		(re-search-forward number nil t))
+      (setq activemin (min activemin
+			   (string-to-number (buffer-substring
+					      (match-beginning 0)
+					      (match-end 0))))))
+    (setcar active activemin)))
+
 (defun nnfolder-article-string (article)
   (if (numberp article)
       (concat "\n" nnfolder-article-marker (int-to-string article) " ")
@@ -473,7 +479,7 @@
 	     (point))
 	 (point-max))))))
 
-(defun nnfolder-possibly-change-group (group &optional server scanning)
+(defun nnfolder-possibly-change-group (group &optional server dont-check)
   ;; Change servers.
   (when (and server
 	     (not (nnfolder-server-opened server)))
@@ -489,35 +495,36 @@
       (push (list group (cons 1 0)) nnfolder-group-alist)
       (nnmail-save-active nnfolder-group-alist nnfolder-active-file))
 
-    (let (inf file)
-      ;; If we have to change groups, see if we don't already have the
-      ;; folder in memory.  If we do, verify the modtime and destroy
-      ;; the folder if needed so we can rescan it.
-      (when (setq inf (assoc group nnfolder-buffer-alist))
-	(setq nnfolder-current-buffer (nth 1 inf)))
-
-      ;; If the buffer is not live, make sure it isn't in the alist.  If it
-      ;; is live, verify that nobody else has touched the file since last
-      ;; time.
-      (when (and nnfolder-current-buffer
-		 (not (gnus-buffer-live-p nnfolder-current-buffer)))
-	(setq nnfolder-buffer-alist (delq inf nnfolder-buffer-alist)
-	      nnfolder-current-buffer nil))
+    (unless dont-check
+      (let (inf file)
+	;; If we have to change groups, see if we don't already have the
+	;; folder in memory.  If we do, verify the modtime and destroy
+	;; the folder if needed so we can rescan it.
+	(when (setq inf (assoc group nnfolder-buffer-alist))
+	  (setq nnfolder-current-buffer (nth 1 inf)))
 
-      (setq nnfolder-current-group group)
+	;; If the buffer is not live, make sure it isn't in the alist.  If it
+	;; is live, verify that nobody else has touched the file since last
+	;; time.
+	(when (and nnfolder-current-buffer
+		   (not (gnus-buffer-live-p nnfolder-current-buffer)))
+	  (setq nnfolder-buffer-alist (delq inf nnfolder-buffer-alist)
+		nnfolder-current-buffer nil))
+
+	(setq nnfolder-current-group group)
 
-      (when (or (not nnfolder-current-buffer)
-		(not (verify-visited-file-modtime nnfolder-current-buffer)))
-	(save-excursion
-	  (setq file (nnfolder-group-pathname group))
-	  ;; See whether we need to create the new file.
-	  (unless (file-exists-p file)
-	    (gnus-make-directory (file-name-directory file))
-	    (nnmail-write-region 1 1 file t 'nomesg))
-	  (when (setq nnfolder-current-buffer (nnfolder-read-folder group))
-	    (set-buffer nnfolder-current-buffer)
-	    (push (list group nnfolder-current-buffer)
-		  nnfolder-buffer-alist)))))))
+	(when (or (not nnfolder-current-buffer)
+		  (not (verify-visited-file-modtime nnfolder-current-buffer)))
+	  (save-excursion
+	    (setq file (nnfolder-group-pathname group))
+	    ;; See whether we need to create the new file.
+	    (unless (file-exists-p file)
+	      (gnus-make-directory (file-name-directory file))
+	      (nnmail-write-region 1 1 file t 'nomesg))
+	    (when (setq nnfolder-current-buffer (nnfolder-read-folder group))
+	      (set-buffer nnfolder-current-buffer)
+	      (push (list group nnfolder-current-buffer)
+		    nnfolder-buffer-alist))))))))
 
 (defun nnfolder-save-mail (group-art-list)
   "Called narrowed to an article."
@@ -532,9 +539,10 @@
       (goto-char (point-min)))
     ;; Quote all "From " lines in the article.
     (forward-line 1)
-    (while (re-search-forward "^From " nil t)
-      (beginning-of-line)
-      (insert "> "))
+    (let (case-fold-search)
+      (while (re-search-forward "^From " nil t)
+	(beginning-of-line)
+	(insert "> ")))
     (setq save-list group-art-list)
     (nnmail-insert-lines)
     (nnmail-insert-xref group-art-list)
@@ -712,12 +720,17 @@
     (while (setq file (pop files))
       (when (and (not (backup-file-name-p file))
                  (message-mail-file-mbox-p
-		  (concat nnfolder-directory file)))
-        (nnheader-message 5 "Adding group %s..." file)
-        (push (list file (cons 1 0)) nnfolder-group-alist)
-        (nnfolder-possibly-change-group file)
-        (nnfolder-close-group file))
-      (message ""))))
+		  (nnheader-concat nnfolder-directory file)))
+        (let ((oldgroup (assoc file nnfolder-group-alist)))
+          (if oldgroup
+              (nnheader-message 5 "Refreshing group %s..." file)
+            (nnheader-message 5 "Adding group %s..." file))
+          (setq nnfolder-group-alist (remove oldgroup nnfolder-group-alist))
+          (push (list file (cons 1 0)) nnfolder-group-alist)
+          (nnfolder-possibly-change-folder file)
+          (nnfolder-possibly-change-group file)
+          (nnfolder-close-group file))))
+    (message "")))
 
 (defun nnfolder-group-pathname (group)
   "Make pathname for GROUP."
--- a/lisp/gnus/nnmail.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/nnmail.el	Mon Aug 13 08:52:56 2007 +0200
@@ -771,7 +771,7 @@
 	  (setq end (point-max))))
       (goto-char end))))
 
-(defun nnmail-search-unix-mail-delim ()
+(defsubst nnmail-search-unix-mail-delim ()
   "Put point at the beginning of the next Unix mbox message."
   ;; Algorithm used to find the the next article in the
   ;; brain-dead Unix mbox format:
--- a/lisp/gnus/nnmh.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/nnmh.el	Mon Aug 13 08:52:56 2007 +0200
@@ -291,18 +291,19 @@
   (nnmh-possibly-change-directory group server)
   (nnmail-check-syntax)
   (nnmail-cache-insert (nnmail-fetch-field "message-id"))
-  (if (stringp group)
-      (and
-       (nnmail-activate 'nnmh)
-       (car (nnmh-save-mail
-	     (list (cons group (nnmh-active-number group)))
-	     noinsert)))
-    (and
-     (nnmail-activate 'nnmh)
-     (car (nnmh-save-mail (nnmail-article-group 'nnmh-active-number)
-			  noinsert))))
-  (when last
-    (nnmail-cache-close)))
+  (prog1
+      (if (stringp group)
+	  (and
+	   (nnmail-activate 'nnmh)
+	   (car (nnmh-save-mail
+		 (list (cons group (nnmh-active-number group)))
+		 noinsert)))
+	(and
+	 (nnmail-activate 'nnmh)
+	 (car (nnmh-save-mail (nnmail-article-group 'nnmh-active-number)
+			      noinsert))))
+    (when last
+      (nnmail-cache-close))))
 
 (deffoo nnmh-request-replace-article (article group buffer)
   (nnmh-possibly-change-directory group)
--- a/lisp/gnus/nnoo.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/nnoo.el	Mon Aug 13 08:52:56 2007 +0200
@@ -207,7 +207,7 @@
 	(pop defs))
       (nconc bstate (list (cons current state))))))
 
-(defun nnoo-current-server-p (backend server)
+(defsubst nnoo-current-server-p (backend server)
   (equal (nnoo-current-server backend) server))
 
 (defun nnoo-current-server (backend)
--- a/lisp/gnus/nntp.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/nntp.el	Mon Aug 13 08:52:56 2007 +0200
@@ -172,6 +172,158 @@
 
 
 
+;;; Internal functions.
+
+(defsubst nntp-send-string (process string)
+  "Send STRING to PROCESS."
+  (process-send-string process (concat string nntp-end-of-line)))
+
+(defsubst nntp-wait-for (process wait-for buffer &optional decode discard)
+  "Wait for WAIT-FOR to arrive from PROCESS."
+  (save-excursion
+    (set-buffer (process-buffer process))
+    (goto-char (point-min))
+    (while (or (not (memq (following-char) '(?2 ?3 ?4 ?5)))
+	       (looking-at "480"))
+      (when (looking-at "480")
+	(erase-buffer)
+	(funcall nntp-authinfo-function))
+      (nntp-accept-process-output process)
+      (goto-char (point-min)))
+    (prog1
+	(if (looking-at "[45]")
+	    (progn
+	      (nntp-snarf-error-message)
+	      nil)
+	  (goto-char (point-max))
+	  (let ((limit (point-min)))
+	    (while (not (re-search-backward wait-for limit t))
+	      ;; We assume that whatever we wait for is less than 1000
+	      ;; characters long.
+	      (setq limit (max (- (point-max) 1000) (point-min)))
+	      (nntp-accept-process-output process)
+	      (goto-char (point-max))))
+	  (nntp-decode-text (not decode))
+	  (unless discard
+	    (save-excursion
+	      (set-buffer buffer)
+	      (goto-char (point-max))
+	      (insert-buffer-substring (process-buffer process))
+	      ;; Nix out "nntp reading...." message.
+	      (when nntp-have-messaged
+		(setq nntp-have-messaged nil)
+		(message ""))
+	      t)))
+      (unless discard
+	(erase-buffer)))))
+
+(defsubst nntp-find-connection (buffer)
+  "Find the connection delivering to BUFFER."
+  (let ((alist nntp-connection-alist)
+	(buffer (if (stringp buffer) (get-buffer buffer) buffer))
+	process entry)
+    (while (setq entry (pop alist))
+      (when (eq buffer (cadr entry))
+	(setq process (car entry)
+	      alist nil)))
+    (when process
+      (if (memq (process-status process) '(open run))
+	  process
+	(when (buffer-name (process-buffer process))
+	  (kill-buffer (process-buffer process)))
+	(setq nntp-connection-alist (delq entry nntp-connection-alist))
+	nil))))
+
+(defsubst nntp-find-connection-entry (buffer)
+  "Return the entry for the connection to BUFFER."
+  (assq (nntp-find-connection buffer) nntp-connection-alist))
+
+(defun nntp-find-connection-buffer (buffer)
+  "Return the process connection buffer tied to BUFFER."
+  (let ((process (nntp-find-connection buffer)))
+    (when process
+      (process-buffer process))))
+
+(defsubst nntp-retrieve-data (command address port buffer
+				   &optional wait-for callback decode)
+  "Use COMMAND to retrieve data into BUFFER from PORT on ADDRESS."
+  (let ((process (or (nntp-find-connection buffer)
+		     (nntp-open-connection buffer))))
+    (if (not process)
+	(nnheader-report 'nntp "Couldn't open connection to %s" address)
+      (unless (or nntp-inhibit-erase nnheader-callback-function)
+	(save-excursion
+	  (set-buffer (process-buffer process))
+	  (erase-buffer)))
+      (when command
+	(nntp-send-string process command))
+      (cond
+       ((eq callback 'ignore)
+	t)
+       ((and callback wait-for)
+	(save-excursion
+	  (set-buffer (process-buffer process))
+	  (unless nntp-inside-change-function
+	    (erase-buffer))
+	  (setq nntp-process-decode decode
+		nntp-process-to-buffer buffer
+		nntp-process-wait-for wait-for
+		nntp-process-callback callback
+		nntp-process-start-point (point-max)
+		after-change-functions
+		(list 'nntp-after-change-function-callback)))
+	t)
+       (wait-for
+	(nntp-wait-for process wait-for buffer decode))
+       (t t)))))
+
+(defsubst nntp-send-command (wait-for &rest strings)
+  "Send STRINGS to server and wait until WAIT-FOR returns."
+  (when (and (not nnheader-callback-function)
+	     (not nntp-inhibit-output))
+    (save-excursion
+      (set-buffer nntp-server-buffer)
+      (erase-buffer)))
+  (nntp-retrieve-data
+   (mapconcat 'identity strings " ")
+   nntp-address nntp-port-number nntp-server-buffer
+   wait-for nnheader-callback-function))
+
+(defun nntp-send-command-nodelete (wait-for &rest strings)
+  "Send STRINGS to server and wait until WAIT-FOR returns."
+  (nntp-retrieve-data
+   (mapconcat 'identity strings " ")
+   nntp-address nntp-port-number nntp-server-buffer
+   wait-for nnheader-callback-function))
+
+(defun nntp-send-command-and-decode (wait-for &rest strings)
+  "Send STRINGS to server and wait until WAIT-FOR returns."
+  (when (and (not nnheader-callback-function)
+	     (not nntp-inhibit-output))
+    (save-excursion
+      (set-buffer nntp-server-buffer)
+      (erase-buffer)))
+  (nntp-retrieve-data
+   (mapconcat 'identity strings " ")
+   nntp-address nntp-port-number nntp-server-buffer
+   wait-for nnheader-callback-function t))
+
+(defun nntp-send-buffer (wait-for)
+  "Send the current buffer to server and wait until WAIT-FOR returns."
+  (when (and (not nnheader-callback-function)
+	     (not nntp-inhibit-output))
+    (save-excursion
+      (set-buffer (nntp-find-connection-buffer nntp-server-buffer))
+      (erase-buffer)))
+  (nntp-encode-text)
+  (process-send-region (nntp-find-connection nntp-server-buffer)
+		       (point-min) (point-max))
+  (nntp-retrieve-data
+   nil nntp-address nntp-port-number nntp-server-buffer
+   wait-for nnheader-callback-function))
+
+
+
 ;;; Interface functions.
 
 (nnoo-define-basics nntp)
@@ -561,78 +713,6 @@
 
 ;;; Internal functions.
 
-(defun nntp-send-command (wait-for &rest strings)
-  "Send STRINGS to server and wait until WAIT-FOR returns."
-  (when (and (not nnheader-callback-function)
-	     (not nntp-inhibit-output))
-    (save-excursion
-      (set-buffer nntp-server-buffer)
-      (erase-buffer)))
-  (nntp-retrieve-data
-   (mapconcat 'identity strings " ")
-   nntp-address nntp-port-number nntp-server-buffer
-   wait-for nnheader-callback-function))
-
-(defun nntp-send-command-nodelete (wait-for &rest strings)
-  "Send STRINGS to server and wait until WAIT-FOR returns."
-  (nntp-retrieve-data
-   (mapconcat 'identity strings " ")
-   nntp-address nntp-port-number nntp-server-buffer
-   wait-for nnheader-callback-function))
-
-(defun nntp-send-command-and-decode (wait-for &rest strings)
-  "Send STRINGS to server and wait until WAIT-FOR returns."
-  (when (and (not nnheader-callback-function)
-	     (not nntp-inhibit-output))
-    (save-excursion
-      (set-buffer nntp-server-buffer)
-      (erase-buffer)))
-  (nntp-retrieve-data
-   (mapconcat 'identity strings " ")
-   nntp-address nntp-port-number nntp-server-buffer
-   wait-for nnheader-callback-function t))
-
-(defun nntp-send-buffer (wait-for)
-  "Send the current buffer to server and wait until WAIT-FOR returns."
-  (when (and (not nnheader-callback-function)
-	     (not nntp-inhibit-output))
-    (save-excursion
-      (set-buffer (nntp-find-connection-buffer nntp-server-buffer))
-      (erase-buffer)))
-  (nntp-encode-text)
-  (process-send-region (nntp-find-connection nntp-server-buffer)
-		       (point-min) (point-max))
-  (nntp-retrieve-data
-   nil nntp-address nntp-port-number nntp-server-buffer
-   wait-for nnheader-callback-function))
-
-(defun nntp-find-connection (buffer)
-  "Find the connection delivering to BUFFER."
-  (let ((alist nntp-connection-alist)
-	(buffer (if (stringp buffer) (get-buffer buffer) buffer))
-	process entry)
-    (while (setq entry (pop alist))
-      (when (eq buffer (cadr entry))
-	(setq process (car entry)
-	      alist nil)))
-    (when process
-      (if (memq (process-status process) '(open run))
-	  process
-	(when (buffer-name (process-buffer process))
-	  (kill-buffer (process-buffer process)))
-	(setq nntp-connection-alist (delq entry nntp-connection-alist))
-	nil))))
-
-(defun nntp-find-connection-entry (buffer)
-  "Return the entry for the connection to BUFFER."
-  (assq (nntp-find-connection buffer) nntp-connection-alist))
-
-(defun nntp-find-connection-buffer (buffer)
-  "Return the process connection buffer tied to BUFFER."
-  (let ((process (nntp-find-connection buffer)))
-    (when process
-      (process-buffer process))))
-
 (defun nntp-make-process-buffer (buffer)
   "Create a new, fresh buffer usable for nntp process connections."
   (save-excursion
@@ -731,82 +811,6 @@
 	      (funcall callback (buffer-name
 				 (get-buffer nntp-process-to-buffer))))))))))
 
-(defun nntp-retrieve-data (command address port buffer
-				   &optional wait-for callback decode)
-  "Use COMMAND to retrieve data into BUFFER from PORT on ADDRESS."
-  (let ((process (or (nntp-find-connection buffer)
-		     (nntp-open-connection buffer))))
-    (if (not process)
-	(nnheader-report 'nntp "Couldn't open connection to %s" address)
-      (unless (or nntp-inhibit-erase nnheader-callback-function)
-	(save-excursion
-	  (set-buffer (process-buffer process))
-	  (erase-buffer)))
-      (when command
-	(nntp-send-string process command))
-      (cond
-       ((eq callback 'ignore)
-	t)
-       ((and callback wait-for)
-	(save-excursion
-	  (set-buffer (process-buffer process))
-	  (unless nntp-inside-change-function
-	    (erase-buffer))
-	  (setq nntp-process-decode decode
-		nntp-process-to-buffer buffer
-		nntp-process-wait-for wait-for
-		nntp-process-callback callback
-		nntp-process-start-point (point-max)
-		after-change-functions
-		(list 'nntp-after-change-function-callback)))
-	t)
-       (wait-for
-	(nntp-wait-for process wait-for buffer decode))
-       (t t)))))
-
-(defun nntp-send-string (process string)
-  "Send STRING to PROCESS."
-  (process-send-string process (concat string nntp-end-of-line)))
-
-(defun nntp-wait-for (process wait-for buffer &optional decode discard)
-  "Wait for WAIT-FOR to arrive from PROCESS."
-  (save-excursion
-    (set-buffer (process-buffer process))
-    (goto-char (point-min))
-    (while (or (not (memq (following-char) '(?2 ?3 ?4 ?5)))
-	       (looking-at "480"))
-      (when (looking-at "480")
-	(erase-buffer)
-	(funcall nntp-authinfo-function))
-      (nntp-accept-process-output process)
-      (goto-char (point-min)))
-    (prog1
-	(if (looking-at "[45]")
-	    (progn
-	      (nntp-snarf-error-message)
-	      nil)
-	  (goto-char (point-max))
-	  (let ((limit (point-min)))
-	    (while (not (re-search-backward wait-for limit t))
-	      ;; We assume that whatever we wait for is less than 1000
-	      ;; characters long.
-	      (setq limit (max (- (point-max) 1000) (point-min)))
-	      (nntp-accept-process-output process)
-	      (goto-char (point-max))))
-	  (nntp-decode-text (not decode))
-	  (unless discard
-	    (save-excursion
-	      (set-buffer buffer)
-	      (goto-char (point-max))
-	      (insert-buffer-substring (process-buffer process))
-	      ;; Nix out "nntp reading...." message.
-	      (when nntp-have-messaged
-		(setq nntp-have-messaged nil)
-		(message ""))
-	      t)))
-      (unless discard
-	(erase-buffer)))))
-
 (defun nntp-snarf-error-message ()
   "Save the error message in the current buffer."
   (let ((message (buffer-string)))
--- a/lisp/gnus/nnvirtual.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/gnus/nnvirtual.el	Mon Aug 13 08:52:56 2007 +0200
@@ -579,7 +579,7 @@
     ))
 
 
-(defun nnvirtual-reverse-map-sequence (group articles)
+(defsubst nnvirtual-reverse-map-sequence (group articles)
   "Return list of virtual article numbers for all ARTICLES in GROUP.
 The ARTICLES should be sorted, and can be a compressed sequence.
 If any of the article numbers has no corresponding virtual article,
--- a/lisp/hyperbole/hsite-ex.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/hyperbole/hsite-ex.el	Mon Aug 13 08:52:56 2007 +0200
@@ -37,6 +37,9 @@
 
 (message "Initializing Hyperbole, please wait...")
 
+;; The following line must not be deleted.
+(require 'hyperbole)
+
 ;;; ************************************************************************
 ;;; TIMEZONE SETTING
 ;;; ************************************************************************
@@ -304,10 +307,9 @@
   (let ((nextstep-suffixes '(("\\.\\(adaptor\\|app\\|bshlf\\|clr\\|concur\\|create\\|diagram\\|dp\\|e?ps\\|frame\\|gif\\|locus\\|Mesa\\|nib\\|project\\|rtf\\|sense\\|tiff\\|tree\\)$" . "open")))
 	(x-suffixes '(("\\.e?ps$" . "ghostview")
 		      ("\\.ps\\.g?[zZ]$" . "zcat %s | ghostview -")
-		      ("\\.\\(gif\\|tiff?\\|xbm\\|pm\\|pbm\\|jpe?g\\)"  . "xv")
+		      ("\\.\\(gif\\|tiff?\\|xpm\\|xbm\\|pm\\|pbm\\|jpe?g\\)"  . "xv")
 		      ("\\.xwd$" . "xwud -noclick -in")
 		      ("\\.ra?s$" . "snapshot -l")
-		      ("\\.xpm$" . "sxpm")
 		      ("\\.\\(fm\\|frame\\|mif\\)$" .
 		       "frame.pl -vn -preader -c -f%s") ;; was "msgfm_driver"
 		      ("\\.\\(doc\\|boo\\)$" . "ileaf")
--- a/lisp/mel/mel-g.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/mel/mel-g.el	Mon Aug 13 08:52:56 2007 +0200
@@ -7,7 +7,7 @@
 ;;	modified by MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Maintainer: Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
 ;; Created: 1995/10/25
-;; Version: $Id: mel-g.el,v 1.5 1997/03/09 02:37:18 steve Exp $
+;; Version: $Id: mel-g.el,v 1.6 1997/03/16 05:55:17 steve Exp $
 ;; Keywords: Gzip64, base64, gzip, MIME
 
 ;; This file is not part of MEL (MIME Encoding Library) yet.
@@ -37,14 +37,14 @@
 ;;;
 
 (defvar gzip64-external-encoder
-  (let ((file (file-installed-p "mmencode" exec-path)))
+  (let ((file (exec-installed-p "mmencode")))
     (and file
 	 (` ("sh" "-c" (, (concat "gzip -c | " file))))
 	 ))
   "*list of gzip64 encoder program name and its arguments.")
 
 (defvar gzip64-external-decoder
-  (let ((file (file-installed-p "mmencode" exec-path)))
+  (let ((file (exec-installed-p "mmencode")))
     (and file
 	 (` ("sh" "-c" (, (concat file " -u | gzip -dc"))))
 	 ))
--- a/lisp/modes/cc-mode.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/modes/cc-mode.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,13 +1,13 @@
 ;;; cc-mode.el --- major mode for editing C, C++, Objective-C, and Java code
 
-;; Copyright (C) 1985, 87, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
-
-;; Authors: 1992-1996 Barry A. Warsaw
+;; Copyright (C) 1985,87,92,93,94,95,96,97 Free Software Foundation, Inc.
+
+;; Authors: 1992-1997 Barry A. Warsaw
 ;;          1987 Dave Detlefs and Stewart Clamen
 ;;          1985 Richard M. Stallman
 ;; Created: a long, long, time ago. adapted from the original c-mode.el
-;; Version:         4.322
-;; Last Modified:   1996/10/04 20:28:14
+;; Version:         4.379
+;; Last Modified:   1997/03/10 00:59:10
 ;; Keywords: c languages oop
 
 ;; NOTE: Read the commentary below for the right way to submit bug reports!
@@ -32,58 +32,51 @@
 
 ;;; Commentary:
 
-;; This package provides modes in GNU Emacs for editing C, C++, 
+;; This package provides modes in GNU Emacs for editing C, C++,
 ;; Objective-C, and Java code. It is intended to be a replacement for
-;; c-mode.el (a.k.a. BOCM -- Boring Old C-Mode), and c++-mode.el
-;; (a.k.a cplus-md.el and cplus-md1.el), both of which are ancestors
-;; of this file.  A number of important improvements have been made,
-;; briefly: complete K&R C, ANSI C, `ARM' C++, Objective-C, and Java
-;; support with consistent indentation across all modes, more
+;; c-mode.el (a.k.a. BOCM -- Boring Old C-Mode), c++-mode.el,
+;; cplus-md.el, and cplus-md1.el, all of which are in some way
+;; ancestors of this file.  A number of important improvements have
+;; been made, briefly: complete K&R C, ANSI C, `ARM' C++, Objective-C,
+;; and Java support with consistent indentation across all modes, more
 ;; intuitive indentation controlling variables, compatibility across
 ;; all known Emacsen, nice new features, and tons of bug fixes.  This
-;; package is called "cc-mode" to distinguish it from its ancestors,
-;; but there really is no top-level cc-mode.  Usage and programming
-;; details are contained in an accompanying texinfo manual.
+;; package is called "CC Mode" to distinguish it from its ancestors,
+;; but there is no cc-mode command.  Usage and programming details are
+;; contained in an accompanying texinfo manual.
 
 ;; NOTE: This mode does not perform font-locking (a.k.a syntactic
-;; coloring, keyword highlighting, etc.).  Typically this is done by a
-;; package called font-lock.el which I do *not* maintain.  You should
-;; contact the Emacs maintainer for questions about coloring or
-;; highlighting in any language mode.
+;; coloring, keyword highlighting, etc.) for any of the supported
+;; modes.  Typically this is done by a package called font-lock.el
+;; which I do *not* maintain.  You should contact the Emacs
+;; maintainers for questions about coloring or highlighting in any
+;; language mode.
 
 ;; To submit bug reports, type "C-c C-b".  These will be sent to
 ;; bug-gnu-emacs@prep.ai.mit.edu as well as cc-mode-help@python.org,
 ;; and I'll read about them there (the former is mirrored as the
 ;; Usenet newsgroup gnu.emacs.bug).  Questions can sent to
-;; help-gnu-emacs@prep.ai.mit.edu (mirrored as gnu.emacs.help) or
+;; help-gnu-emacs@prep.ai.mit.edu (mirrored as gnu.emacs.help) and/or
 ;; cc-mode-help@python.org.  Please do not send bugs or questions to
 ;; my personal account.
 
 ;; YOU CAN IGNORE ALL BYTE-COMPILER WARNINGS. They are the result of
-;; the multi-Emacsen support.  Emacs 19 (from the FSF), XEmacs 19
-;; (formerly Lucid Emacs), and GNU Emacs 18 all do things differently
-;; and there's no way to shut the byte-compiler up at the necessary
-;; granularity.  Let me say this again: YOU CAN IGNORE ALL
+;; the cross-Emacsen support.  GNU Emacs 19 (from the FSF), GNU XEmacs
+;; 19 (formerly Lucid Emacs), and GNU Emacs 18 all do things
+;; differently and there's no way to shut the byte-compiler up at the
+;; necessary granularity.  Let me say this again: YOU CAN IGNORE ALL
 ;; BYTE-COMPILER WARNINGS (you'd be surprised at how many people don't
 ;; follow this advice :-).
 
-;; If your Emacs is dumped with c-mode.el and/or c++-mode.el, you will
-;; need to add the following to your .emacs file before any other
-;; reference to c-mode or c++-mode:
-;;
-;; (fmakunbound 'c-mode)
-;; (makunbound 'c-mode-map)
-;; (fmakunbound 'c++-mode)
-;; (makunbound 'c++-mode-map)
-;; (makunbound 'c-style-alist)
-
-;; If your Emacs comes with cc-mode already (and as of 5-Jul-1996
-;; XEmacs 19.14 and Emacs 19.31 both do), you only need to add the
-;; following to use the latest version of cc-mode:
-;;
-;; (load "cc-mode")
-;;
-;; Make sure the new version is earlier on your load-path.
+;; As of this writing (24-Feb-1997), CC Mode comes with the latest
+;; Emacs and XEmacs distributions (19.34 and 19.14 respectively), but
+;; is no longer pre-loaded by default.  To use the latest version of
+;; CC Mode, you need only make sure that this copy of cc-mode.el is
+;; found first on your load-path.
+
+;; If your Emacs is pre-loaded with any version of cc-mode.el,
+;; c-mode.el, or c++-mode.el, you will need to consult the
+;; cc-mode.texinfo manual for details on upgrading your Emacs.
 
 ;; There are four major mode entry points provided by this package,
 ;; one for editing C++ code, one for editing C code (both K&R and
@@ -91,30 +84,11 @@
 ;; code.  The commands are M-x c-mode, M-x c++-mode, M-x objc-mode,
 ;; and M-x java-mode.
 
-;; If you are using an old version of Emacs which does not come
-;; with cc-mode.el, you will need to do these things
-;; to use it:
-;;
-;; (autoload 'c++-mode  "cc-mode" "C++ Editing Mode" t)
-;; (autoload 'c-mode    "cc-mode" "C Editing Mode" t)
-;; (autoload 'objc-mode "cc-mode" "Objective-C Editing Mode" t)
-;; (autoload 'java-mode "cc-mode" "Java Editing Mode" t)
-;; (setq auto-mode-alist
-;;   (append '(("\\.C$"    . c++-mode)
-;;             ("\\.cc$"   . c++-mode)
-;;             ("\\.c$"    . c-mode)
-;;             ("\\.h$"    . c-mode)
-;;             ("\\.m$"    . objc-mode)
-;;             ("\\.java$" . java-mode)
-;;            ) auto-mode-alist))
-;;
-;; You do not need these changes in Emacs versions that come with cc-mode.
-
 ;; Many, many thanks go out to all the folks on the beta test list.
 ;; Without their patience, testing, insight, code contributions, and
-;; encouragement cc-mode.el would be a far inferior package.
-
-;; You can get the latest version of cc-mode, including PostScript
+;; encouragement CC Mode would be a far inferior package.
+
+;; You can get the latest version of CC Mode, including PostScript
 ;; documentation and separate individual files from:
 ;;
 ;;     http://www.python.org/ftp/emacs/
@@ -142,7 +116,7 @@
 (defvar c-basic-offset 4
   "*Amount of basic offset used by + and - symbols in `c-offsets-alist'.")
 
-(defvar c-offsets-alist
+(defconst c-offsets-alist
   '((string                . -1000)
     (c                     . c-lineup-C-comments)
     (defun-open            . 0)
@@ -152,7 +126,7 @@
     (class-close           . 0)
     (inline-open           . +)
     (inline-close          . 0)
-    (ansi-funcdecl-cont    . +)
+    (func-decl-cont        . +)
     (knr-argdecl-intro     . +)
     (knr-argdecl           . 0)
     (topmost-intro         . 0)
@@ -204,7 +178,7 @@
 
     (SYNTACTIC-SYMBOL . OFFSET)
 
-When a line is indented, cc-mode first determines the syntactic
+When a line is indented, CC Mode first determines the syntactic
 context of the line by generating a list of symbols called syntactic
 elements.  This list can contain more than one syntactic element and
 the global variable `c-syntactic-context' contains the context list
@@ -214,7 +188,7 @@
 syntactic symbols may not have a relative indent point associated with
 them.
 
-After the syntactic context list for a line is generated, cc-mode
+After the syntactic context list for a line is generated, CC Mode
 calculates the absolute indentation for the line by looking at each
 syntactic element in the list.  First, it compares the syntactic
 element against the SYNTACTIC-SYMBOL's in `c-offsets-alist'.  When it
@@ -223,8 +197,8 @@
 list is the absolute offset for line being indented.
 
 If the syntactic element does not match any in the `c-offsets-alist',
-an error is generated if `c-strict-syntax-p' is non-nil, otherwise
-the element is ignored.
+an error is generated if `c-strict-syntax-p' is non-nil, otherwise the
+element is ignored.
 
 Actually, OFFSET can be an integer, a function, a variable, or one of
 the following symbols: `+', `-', `++', `--', `*', or `/'.  These
@@ -245,8 +219,10 @@
  class-close            -- brace that closes a class definition
  inline-open            -- brace that opens an in-class inline method
  inline-close           -- brace that closes an in-class inline method
- ansi-funcdecl-cont     -- the nether region between an ANSI function
-                           declaration and the defun opening brace
+ func-decl-cont         -- the nether region between a function
+                           declaration and the defun opening brace.
+                           In C++ and Java, this can include `throws'
+                           declarations
  knr-argdecl-intro      -- first line of a K&R C argument declaration
  knr-argdecl            -- subsequent lines in a K&R C argument declaration
  topmost-intro          -- the first line in a topmost construct definition
@@ -299,9 +275,9 @@
 If t, hitting TAB always just indents the current line.  If nil,
 hitting TAB indents the current line if point is at the left margin or
 in the line's indentation, otherwise it insert a `real' tab character
-\(see note\).  If other than nil or t, then tab is inserted only within
-literals -- defined as comments and strings -- and inside preprocessor
-directives, but line is always reindented.
+\(see note\).  If other than nil or t, then tab is inserted only
+within literals -- defined as comments and strings -- and inside
+preprocessor directives, but line is always reindented.
 
 Note: The value of `indent-tabs-mode' will determine whether a real
 tab character will be inserted, or the equivalent number of space.
@@ -333,37 +309,20 @@
 according to syntactic analysis via `c-offsets-alist', even when
 \\[indent-for-comment] is used.")
 
-(defvar c-block-comments-indent-p nil
-  "*Specifies how to re-indent C style block comments.
-
-Examples of the supported styles of C block comment indentation are
-shown below.  When this variable is nil, block comments are indented
-as shown in styles 1 through 4.  If this variable is non-nil, block
-comments are indented as shown in style 5.
-
-Note that cc-mode does not automatically insert any stars or block
-comment delimiters.  You must type these in manually.  This variable
-only controls how the lines within the block comment are indented when
-you hit ``\\[c-indent-command]''.
-
- style 1:    style 2 (GNU):    style 3:     style 4:     style 5:
- /*          /* Blah           /*           /*           /*
-    blah        blah.  */       * blah      ** blah      blah
-    blah                        * blah      ** blah      blah
-    */                          */          */           */")
-
 (defvar c-cleanup-list '(scope-operator)
   "*List of various C/C++/ObjC constructs to \"clean up\".
-These clean ups only take place when the auto-newline feature is turned
-on, as evidenced by the `/a' or `/ah' appearing next to the mode name.
-Valid symbols are:
+These clean ups only take place when the auto-newline feature is
+turned on, as evidenced by the `/a' or `/ah' appearing next to the
+mode name.  Valid symbols are:
 
  brace-else-brace    -- cleans up `} else {' constructs by placing entire
-                        construct on a single line.  This clean up only
-                        takes place when there is nothing but white
-                        space between the braces and the `else'.  Clean
-			up occurs when the open-brace after the `else'
-			is typed.
+                        construct on a single line.  This clean up
+                        only takes place when there is nothing but
+                        white space between the braces and the `else'.
+                        Clean up occurs when the open-brace after the
+                        `else' is typed.
+ brace-elseif-brace  -- similar to brace-else-brace, but cleans up
+                        `} else if {' constructs.
  empty-defun-braces  -- cleans up empty defun braces by placing the
                         braces on the same line.  Clean up occurs when
 			the defun closing brace is typed.
@@ -440,9 +399,17 @@
 then no newline is inserted.")
 
 (defvar c-hanging-comment-ender-p t
-  "*If nil, `c-fill-paragraph' leaves C block comment enders on their own line.
-Default value is t, which inhibits leaving block comment ending string
-`*/' on a line by itself.  This is BOCM's sole behavior.")
+  "*Controls what \\[fill-paragraph] does to C block comment enders.
+When set to nil, C block comment enders are left on their own line.
+When set to t, block comment enders will be placed at the end of the
+previous line (i.e. they `hang' on that line).")
+
+(defvar c-hanging-comment-starter-p t
+  "*Controls what \\[fill-paragraph] does to C block comment starters.
+When set to nil, C block comment starters are left on their own line.
+When set to t, text that follows a block comment starter will be
+placed on the same line as the block comment starter (i.e. the text
+`hangs' on that line).")
 
 (defvar c-backslash-column 48
   "*Column to insert backslashes when macroizing a region.")
@@ -460,7 +427,7 @@
 (defvar c-progress-interval 5
   "*Interval used to update progress status during long re-indentation.
 If a number, percentage complete gets updated after each interval of
-that many seconds.   Set to nil to inhibit updating.  This is only
+that many seconds.  Set to nil to inhibit updating.  This is only
 useful for Emacs 19.")
 
 (defconst c-style-alist
@@ -524,12 +491,11 @@
      (c-hanging-braces-alist     . ((substatement-open before after)))
      (c-offsets-alist . ((topmost-intro        . 0)
                          (topmost-intro-cont   . 0)
-                         (substatement         . 3)
+                         (substatement         . +)
 			 (substatement-open    . 0)
-			 (statement-case-intro . 0)
                          (case-label           . +)
-                         (access-label         . -3)
-                         (inclass              . 6)
+                         (access-label         . -)
+                         (inclass              . ++)
                          (inline-open          . 0)
                          ))
      )
@@ -547,6 +513,18 @@
 			 (statement-cont        . +)
 			 ))
      )
+    ("python"
+     (indent-tabs-mode . t)
+     (c-basic-offset   . 8)
+     (c-offsets-alist  . ((substatement-open . 0)
+			  ))
+     (c-hanging-braces-alist . ((brace-list-open)
+				(brace-list-intro)
+				(brace-list-close)
+				(substatement-open after)
+				(block-close . c-snug-do-while)
+				))
+     )
     ("java"
      (c-basic-offset . 2)
      (c-comment-only-line-offset . (0 . 0))
@@ -559,6 +537,7 @@
  			 (arglist-intro . c-lineup-arglist-intro-after-paren)
  			 (arglist-close . c-lineup-arglist)
  			 (access-label  . 0)
+			 (inher-cont    . c-lineup-java-inher)
 			 ))
 
      )
@@ -569,7 +548,7 @@
   (STYLE-STRING (VARIABLE . VALUE) [(VARIABLE . VALUE) ...])
 
 where STYLE-STRING is a short descriptive string used to select a
-style, VARIABLE is any cc-mode variable, and VALUE is the intended
+style, VARIABLE is any CC Mode variable, and VALUE is the intended
 value for that variable when using the selected style.
 
 There is one special case when VARIABLE is `c-offsets-alist'.  In this
@@ -587,7 +566,7 @@
 (defvar c-file-style nil
   "*Variable interface for setting style via File Local Variables.
 In a file's Local Variable section, you can set this variable to a
-string suitable for `c-set-style'.  When the file is visited, cc-mode
+string suitable for `c-set-style'.  When the file is visited, CC Mode
 will set the style of the file to this value automatically.
 
 Note that file style settings are applied before file offset settings
@@ -597,7 +576,7 @@
   "*Variable interface for setting offsets via File Local Variables.
 In a file's Local Variable section, you can set this variable to an
 association list similar to the values allowed in `c-offsets-alist'.
-When the file is visited, cc-mode will institute these offset settings
+When the file is visited, CC Mode will institute these offset settings
 automatically.
 
 Note that file offset settings are applied after file style settings
@@ -606,11 +585,35 @@
 (defvar c-site-default-style "gnu"
   "Default style for your site.
 To change the default style at your site, you can set this variable to
-any style defined in `c-style-alist'.  However, if cc-mode is usually
+any style defined in `c-style-alist'.  However, if CC Mode is usually
 loaded into your Emacs at compile time, you will need to set this
-variable in the `site-init.el' file before cc-mode is loaded, then
+variable in the `site-init.el' file before CC Mode is loaded, then
 re-dump Emacs.")
 
+(defvar c-style-variables-are-local-p t
+  "*Whether style variables should be buffer local by default.
+If non-nil, then all indentation style related variables will be made
+buffer local by default.  If nil, they will remain global.  Variables
+are made buffer local when this file is loaded, and once buffer
+localized, they cannot be made global again.
+
+The list of variables to buffer localize are:
+    c-offsets-alist
+    c-basic-offset
+    c-file-style
+    c-file-offsets
+    c-comment-only-line-offset
+    c-cleanup-list
+    c-hanging-braces-alist
+    c-hanging-colons-alist
+    c-hanging-comment-starter-p
+    c-hanging-comment-ender-p
+    c-backslash-column
+    c-label-minimum-indentation
+    c-special-indent-hook
+    c-indentation-style")
+
+
 (defvar c-mode-hook nil
   "*Hook called by `c-mode'.")
 (defvar c++-mode-hook nil
@@ -621,7 +624,7 @@
   "*Hook called by `java-mode'.")
 
 (defvar c-mode-common-hook nil
-  "*Hook called by all cc-mode modes for common initializations.")
+  "*Hook called by all CC Mode modes for common initializations.")
 
 (defvar c-mode-menu
   '(["Comment Out Region"     comment-region (mark)]
@@ -637,50 +640,51 @@
     ["Backward Statement"     c-beginning-of-statement t]
     ["Forward Statement"      c-end-of-statement t]
     )
-  "XEmacs 19 menu for C/C++/ObjC/Java modes.")
-
-;; Sadly we need this for a macro in Emacs 19.
-(eval-when-compile
-  ;; Imenu isn't used in XEmacs, so just ignore load errors.
-  (condition-case ()
-      (require 'imenu)
-    (error nil)))
-
+  "Basic XEmacs 19 menu for C/C++/ObjC/Java modes.")
+
+
+;; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+;; NO USER DEFINABLE VARIABLES BEYOND THIS POINT
+
+;; imenu integration
 (defvar cc-imenu-c++-generic-expression
   (` 
    ((nil
      (, 
       (concat
-       "^"				; beginning of line is required
-       "\\(template[ \t]*<[^>]+>[ \t]*\\)?" ; there may be a "template <...>"
-       "\\([a-zA-Z0-9_:]+[ \t]+\\)?"	; type specs; there can be no
-       "\\([a-zA-Z0-9_:]+[ \t]+\\)?"	; more than 3 tokens, right?
+       "^"				      ; beginning of line is required
+       "\\(template[ \t]*<[^>]+>[ \t]*\\)?"   ; there may be a "template <...>"
+       "\\([a-zA-Z0-9_:]+[ \t]+\\)?"	      ; type specs; there can be no
+       "\\([a-zA-Z0-9_:]+[ \t]+\\)?"	      ; more than 3 tokens, right?
         
-       "\\("				; last type spec including */&
+       "\\("				      ; last type spec including */&
        "[a-zA-Z0-9_:]+"
-       "\\([ \t]*[*&]+[ \t]*\\|[ \t]+\\)" ; either pointer/ref sign or whitespace
-       "\\)?"				; if there is a last type spec
-       "\\("				; name; take that into the imenu entry
-       "[a-zA-Z0-9_:~]+"		; member function, ctor or dtor...
- 					; (may not contain * because then 
- 					; "a::operator char*" would become "char*"!)
+       "\\([ \t]*[*&]+[ \t]*\\|[ \t]+\\)"     ; either ptr/ref sign or ws
+       "\\)?"				      ; if there is a last type spec
+       "\\("				      ; name, take into the imenu entry
+       "[a-zA-Z0-9_:~]+"		      ; member func, ctor or dtor...
+ 					      ; (may not contain * because then
+ 					      ; "a::operator char*" would
+					      ; become "char*"!)
        "\\|"
        "\\([a-zA-Z0-9_:~]*::\\)?operator"
-       "[^a-zA-Z1-9_][^(]*"		; ...or operator
+       "[^a-zA-Z1-9_][^(]*"		      ; ...or operator
        " \\)"
-       "[ \t]*([^)]*)[ \t\n]*[^		;]" ; require something other than a ; after
- 					; the (...) to avoid prototypes.  Can't
- 					; catch cases with () inside the parentheses
- 					; surrounding the parameters
- 					; (like "int foo(int a=bar()) {...}"
+       "[ \t]*([^)]*)[ \t\n]*[^		;]"   ; require something other than
+					      ; a `;' after the (...) to
+					      ; avoid prototypes.  Can't
+					      ; catch cases with () inside
+					      ; the parentheses surrounding
+					      ; the parameters.  e.g.:
+					      ; "int foo(int a=bar()) {...}"
         
        )) 6)    
     ("Class" 
      (, (concat 
- 	 "^"				; beginning of line is required
+ 	 "^"				      ; beginning of line is required
  	 "\\(template[ \t]*<[^>]+>[ \t]*\\)?" ; there may be a "template <...>"
  	 "class[ \t]+"
- 	 "\\([a-zA-Z0-9_]+\\)"		; this is the string we want to get
+ 	 "\\([a-zA-Z0-9_]+\\)"		      ; the string we want to get
  	 "[ \t]*[:{]"
  	 )) 2)))
   "Imenu generic expression for C++ mode.  See `imenu-generic-expression'.")
@@ -689,10 +693,31 @@
   cc-imenu-c++-generic-expression
   "Imenu generic expression for C mode.  See `imenu-generic-expression'.")
 
+;(defvar cc-imenu-objc-generic-expression
+;  ())
+; Please contribute one!
+
+(defvar cc-imenu-java-generic-expression
+  (`
+   ((nil
+     (,
+      (concat
+       "^\\([ \t]\\)*"
+       "\\([A-Za-z0-9_-]+[ \t]+\\)?"	      ; type specs; there can be
+        "\\([A-Za-z0-9_-]+[ \t]+\\)?"	      ; more than 3 tokens, right?
+       "\\([A-Za-z0-9_-]+[ \t]*[[]?[]]?\\)"
+       "\\([ \t]\\)"
+       "\\([A-Za-z0-9_-]+\\)"		      ; the string we want to get
+       "\\([ \t]*\\)+("
+       "\\([a-zA-Z,_1-9\n \t]*[[]?[]]?\\)*"   ; arguments
+       ")[ \t]*"
+       "[^;(]"
+       "[,a-zA-Z_1-9\n \t]*{"               
+       )) 6)))
+  "Imenu generic expression for Java mode.  See `imenu-generic-expression'.")
+
+
 
-;; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-;; NO USER DEFINABLE VARIABLES BEYOND THIS POINT
-
 ;; Shut the byte-compiler up. Requires Emacs 19 or JWZ's improved
 ;; byte-compiler. Otherwise, comment this line out and ignore
 ;; any warnings.
@@ -705,7 +730,7 @@
 	(minor (and (boundp 'emacs-minor-version)
 		    emacs-minor-version))
 	(re-suite 'old-re)
-	flavor comments)
+	flavor comments infodock-p)
     ;; figure out version numbers if not already discovered
     (and (or (not major) (not minor))
 	 (string-match "\\([0-9]+\\).\\([0-9]+\\)" emacs-version)
@@ -724,7 +749,8 @@
      ((= major 19) (setq major 'v19	;Emacs 19
 			 flavor (if (or (string-match "Lucid" emacs-version)
 					(string-match "XEmacs" emacs-version))
-				    'XEmacs 'FSF)))
+				    'XEmacs 'FSF)
+			 infodock-p (boundp 'infodock-version)))
      ((= major 20) (setq major 'v20	;XEmacs 20
 			 flavor 'XEmacs))
      ;; I don't know
@@ -768,8 +794,8 @@
 	  (print (format
 "The version of Emacs that you are running, %s,
 has known bugs in its syntax.c parsing routines which will affect the
-performance of cc-mode. You should strongly consider upgrading to the
-latest available version.  cc-mode may continue to work, after a
+performance of CC Mode. You should strongly consider upgrading to the
+latest available version.  CC Mode may continue to work, after a
 fashion, but strange indentation errors could be encountered."
 		     emacs-version))))
     ;; Emacs 18, with no patch is not too good
@@ -786,9 +812,9 @@
 experience performance degradations. Emacs 19 has some new built-in
 routines which will speed things up for you.
 
-Because of these inherent problems, cc-mode is no longer being
+Because of these inherent problems, CC Mode is no longer being
 actively maintained for Emacs 18, however, until you can upgrade to
-Emacs 19, you may want to look at cc-mode-18.el in the cc-mode
+Emacs 19, you may want to look at cc-mode-18.el in the CC Mode
 distribution.  THIS FILE IS COMPLETELY UNSUPPORTED!  If you use it,
 you are on your own, although patch contributions will be folded into
 the main release."
@@ -801,11 +827,13 @@
 "You are running a syntax patched Emacs 18 variant.  While this should
 work for you, you may want to consider upgrading to Emacs 19.  The
 syntax patches are no longer supported either for syntax.c or
-cc-mode."))))
-    (list major comments re-suite))
+CC Mode."))))
+    (if infodock-p
+	(list major comments re-suite 'infodock)
+      (list major comments re-suite)))
   "A list of features extant in the Emacs you are using.
 There are many flavors of Emacs out there, each with different
-features supporting those needed by cc-mode.  Here's the current
+features supporting those needed by CC Mode.  Here's the current
 supported list, along with the values for this variable:
 
  Emacs 18/Epoch 4:           (v18 no-dual-comments RS)
@@ -816,7 +844,10 @@
 
 RS is the regular expression suite to use.  XEmacs versions after
 19.13, and Emacs versions after 19.29 use the `new-re' regex suite.
-All other Emacsen use the `old-re' suite.")
+All other Emacsen use the `old-re' suite.
+
+Infodock (based on XEmacs) has an additional symbol on this list:
+'infodock")
 
 (defvar c++-mode-abbrev-table nil
   "Abbrev table in use in c++-mode buffers.")
@@ -835,8 +866,8 @@
 (define-abbrev-table 'java-mode-abbrev-table ())
 
 (defun c-mode-fsf-menu (name map)
-  ;; Add menu to a keymap.  FSF menus suck.  Don't add them for
-  ;; XEmacs. This feature test will fail on other than Emacs 19.
+  ;; Add menu to a keymap, but don't add them for XEmacs.  This
+  ;; feature test will fail on other than Emacs 19.
   (condition-case nil
       (progn
 	(define-key map [menu-bar] (make-sparse-keymap))
@@ -854,6 +885,8 @@
 	  '("Indent Line" . c-indent-command))
 	(define-key map [menu-bar c fill]
 	  '("Fill Comment Paragraph" . c-fill-paragraph))
+	(define-key map [menu-bar c separator2]
+	  '("----")) 
 	(define-key map [menu-bar c up]
 	  '("Up Conditional" . c-up-conditional))
 	(define-key map [menu-bar c backward]
@@ -897,7 +930,7 @@
   (define-key c-mode-map "\ea"       'c-beginning-of-statement)
   (define-key c-mode-map "\ee"       'c-end-of-statement)
   ;; Emacs 19.30 introduces fill-paragraph-function, but it's not in
-  ;; every version of Emacs cc-mode supports.
+  ;; every version of Emacs CC Mode supports.
   (if (not (boundp 'fill-paragraph-function))
       ;; I'd rather use an adaptive fill program instead of this.
       (define-key c-mode-map "\eq"   'c-fill-paragraph))
@@ -920,19 +953,23 @@
   (define-key c-mode-map "\C-c\C-o"  'c-set-offset)
   (define-key c-mode-map "\C-c\C-s"  'c-show-syntactic-information)
   (define-key c-mode-map "\C-c\C-t"  'c-toggle-auto-hungry-state)
+  (define-key c-mode-map "\C-c."     'c-set-style)
   ;; conflicts with OOBR
   ;;(define-key c-mode-map "\C-c\C-v"  'c-version)
   ;;
-  ;; Emacs 19 defines menus in the mode map. This call will return
-  ;; t on Emacs 19, otherwise no-op and return nil.
-  (if (and (not (c-mode-fsf-menu "CC-Mode" c-mode-map))
-	   ;; in XEmacs 19, we want the menu to popup when the 3rd
-	   ;; button is hit.  In Lucid Emacs 19.10 and beyond this is
-	   ;; done automatically if we put the menu on mode-popup-menu
-	   ;; variable, see c-common-init. Emacs 19 uses C-Mouse-3 for
-	   ;; this, and it works with no special effort.
-	   (boundp 'current-menubar)
-	   (not (boundp 'mode-popup-menu)))
+  (if (and
+       ;; Infodock has it's own menu
+       (not (memq 'infodock c-emacs-features))
+       ;; Emacs 19 defines menus in the mode map. This call will
+       ;; return t on Emacs 19, otherwise no-op and return nil.
+       (not (c-mode-fsf-menu "CC Mode" c-mode-map))
+       ;; In XEmacs 19, we want the menu to popup when the 3rd button
+       ;; is hit.  In Lucid Emacs 19.10 and beyond this is done
+       ;; automatically if we put the menu on mode-popup-menu
+       ;; variable, see c-common-init. Emacs 19 uses C-Mouse-3 for
+       ;; this, and it works with no special effort.
+       (boundp 'current-menubar)
+       (not (boundp 'mode-popup-menu)))
       (define-key c-mode-map 'button3 'c-popup-menu)))
 
 (defvar c++-mode-map ()
@@ -1138,7 +1175,12 @@
 ;; defconst'd instead of defvar'd to override any old pre-loaded versions
 (defconst c-recognize-knr-p t
   "Non-nil means K&R style argument declarations are valid.")
-
+(defvar c-indentation-style c-site-default-style
+  "Name of style installed in the current buffer.")
+
+;; these variables should always be buffer local.  they do not affect
+;; indentation styles.
+;;
 ;; minor mode variables
 (make-variable-buffer-local 'c-auto-newline)
 (make-variable-buffer-local 'c-hungry-delete-key)
@@ -1230,17 +1272,19 @@
    ;; since it is considered the end of //-comments.
    "[ \t\n]*" c-symbol-key)
   "Regexp describing a Java method intro.")
-(defconst c-Java-access-key
-  (concat c-protection-key)
-  "Regexp describing access specification keywords for Java.")
+(defconst c-Java-access-key nil
+  "Regexp describing access labels for Java.")
 (defconst c-Java-class-key
   (concat
+   "\\(" c-protection-key "\\s +\\)?"
    "\\(interface\\|class\\)\\s +"
    c-symbol-key				;name of the class
    "\\(\\s *extends\\s *" c-symbol-key "\\)?" ;maybe followed by superclass 
    ;;"\\(\\s *implements *[^{]+{\\)?"	;and maybe the adopted protocols list
    )
   "Regexp describing a class or protocol declaration for Java.")
+(defconst c-Java-special-key "\\(implements\\|extends\\|throws\\)[^_]"
+  "Regexp describing Java inheritance and throws clauses.")
 (defconst c-Java-conditional-key
   (concat "\\b\\("
 	  (mapconcat 'identity
@@ -1248,6 +1292,9 @@
 			     c-C-conditionals) "\\|")
 	  "\\)\\b[^_]")
   "Regexp describing a conditional control for Java.")
+(defconst c-Java-defun-prompt-regexp
+  "^[ \t]*\\(\\(\\(public\\|protected\\|private\\|const\\|abstract\\|synchronized\\|final\\|static\\|threadsafe\\|transient\\|native\\|volatile\\)\\s-+\\)*\\(\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*[][_$.a-zA-Z0-9]+\\|[[a-zA-Z]\\)\\s-*\\)\\s-+\\)\\)?\\(\\([[a-zA-Z][][_$.a-zA-Z0-9]*\\s-+\\)\\s-*\\)?\\([_a-zA-Z][^][ \t:;.,{}()=]*\\|\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)\\)\\s-*\\(([^);{}]*)\\)?\\([] \t]*\\)\\(\\s-*\\<throws\\>\\s-*\\(\\([_$a-zA-Z][_$.a-zA-Z0-9]*\\)[, \t\n\r\f]*\\)+\\)?\\s-*"
+  "Regexp describing the beginning of a Java top-level definition.")
 
 ;; KLUDGE ALERT.  We default these variables to their `C' values so
 ;; that non-cc-mode-ized modes that depend on c-mode will still work
@@ -1269,7 +1316,7 @@
 information already added.  You just need to add a description of the
 problem, including a reproducible test case and send the message.
 
-To see what version of cc-mode you are running, enter `\\[c-version]'.
+To see what version of CC Mode you are running, enter `\\[c-version]'.
 
 The hook variable `c-mode-hook' is run with no args, if that value is
 bound and has a non-nil value.  Also the hook `c-mode-common-hook' is
@@ -1306,7 +1353,7 @@
 of the problem, including a reproducible test case, and send the
 message.
 
-To see what version of cc-mode you are running, enter `\\[c-version]'.
+To see what version of CC Mode you are running, enter `\\[c-version]'.
 
 The hook variable `c++-mode-hook' is run with no args, if that
 variable is bound and has a non-nil value.  Also the hook
@@ -1345,7 +1392,7 @@
 of the problem, including a reproducible test case, and send the
 message.
 
-To see what version of cc-mode you are running, enter `\\[c-version]'.
+To see what version of CC Mode you are running, enter `\\[c-version]'.
 
 The hook variable `objc-mode-hook' is run with no args, if that value
 is bound and has a non-nil value.  Also the hook `c-mode-common-hook'
@@ -1384,7 +1431,7 @@
 of the problem, including a reproducible test case and send the
 message.
 
-To see what version of cc-mode you are running, enter `\\[c-version]'.
+To see what version of CC Mode you are running, enter `\\[c-version]'.
 
 The hook variable `java-mode-hook' is run with no args, if that value
 is bound and has a non-nil value.  Also the common hook
@@ -1412,7 +1459,10 @@
 	c-double-slash-is-comments-p t
  	c-baseclass-key nil
 	c-recognize-knr-p nil
- 	c-access-key c-Java-access-key)
+ 	c-access-key c-Java-access-key
+	;defun-prompt-regexp c-Java-defun-prompt-regexp
+	imenu-generic-expression cc-imenu-java-generic-expression
+	)
   (c-set-style "java")
   (run-hooks 'c-mode-common-hook)
   (run-hooks 'java-mode-hook))
@@ -1425,7 +1475,9 @@
 
 (defun c-common-init ()
   ;; Common initializations for c++-mode and c-mode.
-  ;; make local variables
+  ;;
+  ;; these variables should always be buffer local; they do not affect
+  ;; indentation style.
   (make-local-variable 'paragraph-start)
   (make-local-variable 'paragraph-separate)
   (make-local-variable 'paragraph-ignore-fill-prefix)
@@ -1461,7 +1513,11 @@
 	outline-level 'c-outline-level
 	comment-column 32
 	comment-start-skip "/\\*+ *\\|// *"
-	adaptive-fill-regexp nil)
+	;; For all but XEmacs 19.13, the default should be nil
+	adaptive-fill-regexp (and (memq 'v19 c-emacs-features)
+				  (= emacs-minor-version 13)
+				  "[ \t]*\\([#;>*]+ +\\)?")
+	)
   ;; we have to do something special for c-offsets-alist so that the
   ;; buffer local value has its own alist structure.
   (setq c-offsets-alist (copy-alist c-offsets-alist))
@@ -1474,12 +1530,13 @@
     (make-local-variable 'comment-indent-hook)
     (setq comment-indent-hook 'c-comment-indent))
   ;; Put C menu into menubar and on popup menu for XEmacs 19. I think
-  ;; this happens automatically for Emacs 19.
-  (if (and (boundp 'current-menubar)
+  ;; this happens automatically for Emacs 19.  Skip it for Infodock.
+  (if (and (not (memq 'infodock c-emacs-features))
+	   (boundp 'current-menubar)
 	   current-menubar
 	   (not (assoc mode-name current-menubar)))
       ;; its possible that this buffer has changed modes from one of
-      ;; the other cc-mode modes.  In that case, only the menubar
+      ;; the other CC Mode modes.  In that case, only the menubar
       ;; title of the menu changes.
       (let ((modes (copy-sequence c-list-of-mode-names))
 	    changed-p)
@@ -1493,10 +1550,12 @@
 	(if (not changed-p)
 	    (progn
 	      (set-buffer-menubar (copy-sequence current-menubar))
-	      (add-menu nil mode-name c-mode-menu)))))
+	      (if (fboundp 'add-submenu)
+		  (add-submenu nil (c-mode-menu))
+		(add-menu nil mode-name c-mode-menu)
+		)))))
   (if (boundp 'mode-popup-menu)
-      (setq mode-popup-menu
-	    (cons (concat mode-name " Mode Commands") c-mode-menu)))
+      (setq mode-popup-menu (c-mode-menu)))
   ;; put auto-hungry designators onto minor-mode-alist, but only once
   (or (assq 'c-auto-hungry-string minor-mode-alist)
       (setq minor-mode-alist
@@ -1716,7 +1775,9 @@
 	  (if c-hungry-delete-key "/h" nil)))
   ;; updates the modeline for all Emacsen
   (if (or (memq 'v19 c-emacs-features) (memq 'v20 c-emacs-features))
-      (force-mode-line-update)
+      (if (boundp 'redraw-modeline)
+	  (redraw-modeline)
+	(force-mode-line-update))
     (set-buffer-modified-p (buffer-modified-p))))
 
 (defun c-calculate-state (arg prevstate)
@@ -1966,6 +2027,22 @@
 	      (progn
 		(delete-region mbeg mend)
 		(insert "} else {")))
+	  ;; clean up brace-elseif-brace
+	  (if (and c-auto-newline
+		   (memq 'brace-elseif-brace c-cleanup-list)
+		   (= last-command-char ?\{)
+		   (re-search-backward "}[ \t\n]*else[ \t\n]+if[ \t\n]*" nil t)
+		   (save-excursion
+		     (goto-char (match-end 0))
+		     (c-safe (forward-sexp 1))
+		     (skip-chars-forward " \t\n")
+		     (setq mbeg (match-beginning 0)
+			   mend (match-end 0))
+		     (= here (1+ (point))))
+		   (not (c-in-literal)))
+	      (progn
+		(delete-region mbeg mend)
+		(insert "} else if ")))
 	  (goto-char (- (point-max) pos))
 	  )
 	;; does a newline go after the brace?
@@ -2221,6 +2298,8 @@
 
 
 
+(defvar c-read-offset-history nil)
+
 (defun c-read-offset (langelem)
   ;; read new offset value for LANGELEM from minibuffer. return a
   ;; legal value only
@@ -2232,7 +2311,8 @@
 	 (prompt (concat "Offset " defstr))
 	 offset input interned raw)
     (while (not offset)
-      (setq input (read-string prompt)
+      (setq input (completing-read prompt obarray 'fboundp nil nil
+				   'c-read-offset-history)
 	    offset (cond ((string-equal "" input) oldoff)  ; default
 			 ((string-equal "+" input) '+)
 			 ((string-equal "-" input) '-)
@@ -2336,16 +2416,23 @@
 	)))
    stylevars))
 
+(defvar c-set-style-history nil)
+
 ;;;###autoload
 (defun c-set-style (stylename)
-  "Set cc-mode variables to use one of several different indentation styles.
+  "Set CC Mode variables to use one of several different indentation styles.
 STYLENAME is a string representing the desired style from the list of
 styles described in the variable `c-style-alist'.  See that variable
-for details of setting up styles."
+for details of setting up styles.
+
+The variable `c-indentation-style' always contains the buffer's current
+style name."
   (interactive (list (let ((completion-ignore-case t)
 			   (prompt (format "Which %s indentation style? "
 					   mode-name)))
-		       (completing-read prompt c-style-alist nil t))))
+		       (completing-read prompt c-style-alist nil t
+					(cons c-indentation-style 0)
+					'c-set-style-history))))
   (let ((vars (cdr (or (assoc (downcase stylename) c-style-alist)
 		       (assoc (upcase stylename) c-style-alist)
 		       (assoc stylename c-style-alist)
@@ -2356,6 +2443,7 @@
     ;; first reset the style to `cc-mode' to give every style a common
     ;; base. Then institute the new style.
     (c-set-style-1 default)
+    (setq c-indentation-style stylename)
     (if (not (string= stylename "cc-mode"))
 	(c-set-style-1 vars)))
   (c-keep-region-active))
@@ -2503,7 +2591,8 @@
 		;; to.
 		(paragraph-start (concat paragraph-start re1))
 		(paragraph-separate (concat paragraph-separate re1))
-		(chars-to-delete 0))
+		(chars-to-delete 0)
+		)
 	    (save-restriction
 	      ;; Don't fill the comment together with the code
 	      ;; following it.  So temporarily exclude everything
@@ -2515,6 +2604,9 @@
 				  (if comment-start-place
 				      (goto-char comment-start-place)
 				    (search-backward "/*"))
+				  (if (and (not c-hanging-comment-starter-p)
+					   (looking-at "/\\*[ \t]*$"))
+				      (forward-line 1))
 				  ;; Protect text before the comment
 				  ;; start by excluding it.  Add
 				  ;; spaces to bring back proper
@@ -2607,7 +2699,7 @@
     (if (and sentence-flag
 	     (or (nth 3 state)
 		 (nth 4 state)
-		 (looking-at (concat "[ \t]*" comment-start-skip))
+;		 (looking-at (concat "[ \t]*" comment-start-skip))
 		 (save-excursion
 		   (skip-chars-backward " \t")
 		   (goto-char (- (point) 2))
@@ -2641,7 +2733,7 @@
   (c-keep-region-active))
 
 ;; WARNING: Be *exceptionally* careful about modifications to this
-;; function!  Much of cc-mode depends on this Doing The Right Thing.
+;; function!  Much of CC Mode depends on this Doing The Right Thing.
 ;; If you break it you will be sorry.
 (defun c-beginning-of-statement-1 (&optional lim)
   ;; move to the start of the current statement, or the previous
@@ -2653,112 +2745,123 @@
 	;; between c-crosses-statement-barrier-p and
 	;; c-beginning-of-statement-1.  A better way should be
 	;; implemented.
-	maybe-labelp
+	maybe-labelp saved
 	(last-begin (point)))
-    (while (not donep)
-      ;; stop at beginning of buffer
-      (if (bobp) (setq donep t)
-	;; go backwards one balanced expression, but be careful of
-	;; unbalanced paren being reached
-	(if (not (c-safe (progn (backward-sexp 1) t)))
-	    (progn
-	      (if firstp
-		  (backward-up-list 1)
-		(goto-char last-begin))
-	      ;; skip over any unary operators, or other special
-	      ;; characters appearing at front of identifier
-	      (save-excursion
-		(c-backward-syntactic-ws lim)
-		(skip-chars-backward "-+!*&:.~ \t\n")
-		(if (= (preceding-char) ?\()
-		    (setq last-begin (point))))
-	      (goto-char last-begin)
-	      (setq last-begin (point)
-		    donep t)))
-
-	(setq maybe-labelp nil)
-	;; see if we're in a literal. if not, then this bufpos may be
-	;; a candidate for stopping
-	(cond
-	 ;; CASE 0: did we hit the error condition above?
-	 (donep)
-	 ;; CASE 1: are we in a literal?
-	 ((eq (c-in-literal lim) 'pound)
-	  (beginning-of-line))
-	 ;; CASE 2: some other kind of literal?
-	 ((c-in-literal lim))
-	 ;; CASE 3: are we looking at a conditional keyword?
-	 ((or (looking-at c-conditional-key)
-	      (and (= (following-char) ?\()
-		   (save-excursion
-		     (forward-sexp 1)
-		     (c-forward-syntactic-ws)
-		     (/= (following-char) ?\;))
-		   (let ((here (point))
-			 (foundp (progn
-				   (c-backward-syntactic-ws lim)
-				   (forward-word -1)
-				   (and lim
-					(<= lim (point))
-					(not (c-in-literal lim))
-					(looking-at c-conditional-key)
-					))))
-		     ;; did we find a conditional?
-		     (if (not foundp)
-			 (goto-char here))
-		     foundp)))
-	  ;; are we in the middle of an else-if clause?
-	  (if (save-excursion
-		(and (not substmt-p)
-		     (c-safe (progn (forward-sexp -1) t))
-		     (looking-at "\\<else\\>[ \t\n]+\\<if\\>")
-		     (not (c-in-literal lim))))
+    ;; first check for bare semicolon
+    (if (and (progn (c-backward-syntactic-ws lim)
+		    (= (preceding-char) ?\;))
+	     (c-safe (progn (forward-char -1)
+			    (setq saved (point))
+			    t))
+	     (progn (c-backward-syntactic-ws lim)
+		    (memq (preceding-char) '(?\; ?{ ?} ?:)))
+	     )
+	(setq last-begin saved)
+      (goto-char last-begin)
+      (while (not donep)
+	;; stop at beginning of buffer
+	(if (bobp) (setq donep t)
+	  ;; go backwards one balanced expression, but be careful of
+	  ;; unbalanced paren being reached
+	  (if (not (c-safe (progn (backward-sexp 1) t)))
 	      (progn
-		(forward-sexp -1)
-		(c-backward-to-start-of-if lim)))
-	  ;; are we sitting at an else clause, that we are not a
-	  ;; substatement of?
-	  (if (and (not substmt-p)
-		   (looking-at "\\<else\\>[^_]"))
-	      (c-backward-to-start-of-if lim))
-	  ;; are we sitting at the while of a do-while?
-	  (if (and (looking-at "\\<while\\>[^_]")
-		   (c-backward-to-start-of-do lim))
-	      (setq substmt-p nil))
-	  (setq last-begin (point)
-		donep substmt-p))
-	 ;; CASE 4: are we looking at a label?
-	 ((looking-at c-label-key))
-	 ;; CASE 5: is this the first time we're checking?
-	 (firstp (setq firstp nil
-		       substmt-p (not (c-crosses-statement-barrier-p
-				       (point) last-begin))
-		       last-begin (point)))
-	 ;; CASE 6: have we crossed a statement barrier?
-	 ((c-crosses-statement-barrier-p (point) last-begin)
-	  (setq donep t))
-	 ;; CASE 7: ignore labels
-	 ((and maybe-labelp
-	       (or (and c-access-key (looking-at c-access-key))
-		   ;; with switch labels, we have to go back further
-		   ;; to try to pick up the case or default
-		   ;; keyword. Potential bogosity alert: we assume
-		   ;; `case' or `default' is first thing on line
-		   (let ((here (point)))
-		     (beginning-of-line)
-		     (c-forward-syntactic-ws)
-		     (if (looking-at c-switch-label-key)
-			 t
-		       (goto-char here)
-		       nil))
-		   (looking-at c-label-key))))
-	 ;; CASE 8: ObjC or Java method def
-	 ((and c-method-key
-	       (setq last-begin (c-in-method-def-p)))
-	  (setq donep t))
-	 ;; CASE 9: nothing special
-	 (t (setq last-begin (point)))
-	 )))
+		(if firstp
+		    (backward-up-list 1)
+		  (goto-char last-begin))
+		;; skip over any unary operators, or other special
+		;; characters appearing at front of identifier
+		(save-excursion
+		  (c-backward-syntactic-ws lim)
+		  (skip-chars-backward "-+!*&:.~ \t\n")
+		  (if (= (preceding-char) ?\()
+		      (setq last-begin (point))))
+		(goto-char last-begin)
+		(setq last-begin (point)
+		      donep t)))
+
+	  (setq maybe-labelp nil)
+	  ;; see if we're in a literal. if not, then this bufpos may be
+	  ;; a candidate for stopping
+	  (cond
+	   ;; CASE 0: did we hit the error condition above?
+	   (donep)
+	   ;; CASE 1: are we in a literal?
+	   ((eq (c-in-literal lim) 'pound)
+	    (beginning-of-line))
+	   ;; CASE 2: some other kind of literal?
+	   ((c-in-literal lim))
+	   ;; CASE 3: are we looking at a conditional keyword?
+	   ((or (looking-at c-conditional-key)
+		(and (= (following-char) ?\()
+		     (save-excursion
+		       (forward-sexp 1)
+		       (c-forward-syntactic-ws)
+		       (/= (following-char) ?\;))
+		     (let ((here (point))
+			   (foundp (progn
+				     (c-backward-syntactic-ws lim)
+				     (forward-word -1)
+				     (and lim
+					  (<= lim (point))
+					  (not (c-in-literal lim))
+					  (looking-at c-conditional-key)
+					  ))))
+		       ;; did we find a conditional?
+		       (if (not foundp)
+			   (goto-char here))
+		       foundp)))
+	    ;; are we in the middle of an else-if clause?
+	    (if (save-excursion
+		  (and (not substmt-p)
+		       (c-safe (progn (forward-sexp -1) t))
+		       (looking-at "\\<else\\>[ \t\n]+\\<if\\>")
+		       (not (c-in-literal lim))))
+		(progn
+		  (forward-sexp -1)
+		  (c-backward-to-start-of-if lim)))
+	    ;; are we sitting at an else clause, that we are not a
+	    ;; substatement of?
+	    (if (and (not substmt-p)
+		     (looking-at "\\<else\\>[^_]"))
+		(c-backward-to-start-of-if lim))
+	    ;; are we sitting at the while of a do-while?
+	    (if (and (looking-at "\\<while\\>[^_]")
+		     (c-backward-to-start-of-do lim))
+		(setq substmt-p nil))
+	    (setq last-begin (point)
+		  donep substmt-p))
+	   ;; CASE 4: are we looking at a label?
+	   ((looking-at c-label-key))
+	   ;; CASE 5: is this the first time we're checking?
+	   (firstp (setq firstp nil
+			 substmt-p (not (c-crosses-statement-barrier-p
+					 (point) last-begin))
+			 last-begin (point)))
+	   ;; CASE 6: have we crossed a statement barrier?
+	   ((c-crosses-statement-barrier-p (point) last-begin)
+	    (setq donep t))
+	   ;; CASE 7: ignore labels
+	   ((and maybe-labelp
+		 (or (and c-access-key (looking-at c-access-key))
+		     ;; with switch labels, we have to go back further
+		     ;; to try to pick up the case or default
+		     ;; keyword. Potential bogosity alert: we assume
+		     ;; `case' or `default' is first thing on line
+		     (let ((here (point)))
+		       (beginning-of-line)
+		       (c-forward-syntactic-ws)
+		       (if (looking-at c-switch-label-key)
+			   t
+			 (goto-char here)
+			 nil))
+		     (looking-at c-label-key))))
+	   ;; CASE 8: ObjC or Java method def
+	   ((and c-method-key
+		 (setq last-begin (c-in-method-def-p)))
+	    (setq donep t))
+	   ;; CASE 9: nothing special
+	   (t (setq last-begin (point)))
+	   ))))
     (goto-char last-begin)
     ;; we always do want to skip over non-whitespace modifier
     ;; characters that didn't get skipped above
@@ -3035,7 +3138,8 @@
       (unwind-protect
 	  (let ((c-tab-always-indent t)
 		;; shut up any echo msgs on indiv lines
-		(c-echo-syntactic-information-p nil))
+		(c-echo-syntactic-information-p nil)
+		fence)
 	    (c-progress-init start end 'c-indent-region)
 	    (setq endmark (copy-marker end))
 	    (while (and (bolp)
@@ -3050,6 +3154,7 @@
 		(beginning-of-line)
 		;; indent the current line
 		(c-indent-line)
+		(setq fence (point))
 		(if (save-excursion
 		      (beginning-of-line)
 		      (looking-at "[ \t]*#"))
@@ -3075,7 +3180,9 @@
 			  (goto-char sexpend)
 			  (setq sexpend (point-marker))
 			  (c-safe (backward-sexp 1))
-			  (setq sexpbeg (point)))))
+			  (setq sexpbeg (point))))
+		    (if (and sexpbeg (< sexpbeg fence))
+			(setq sexpbeg fence)))
 		  ;; check to see if the next line starts a
 		  ;; comment-only line
 		  (save-excursion
@@ -3101,7 +3208,8 @@
 		  (and sexpend
 		       (markerp sexpend)
 		       (set-marker sexpend nil))
-		  (forward-line 1)))))
+		  (forward-line 1)
+		  (setq fence (point))))))
 	(set-marker endmark nil)
 	(c-progress-fini 'c-indent-region)
 	))))
@@ -3817,6 +3925,7 @@
 				     (looking-at c-method-key)))
 	     literal containing-sexp char-before-ip char-after-ip lim
 	     syntax placeholder c-in-literal-cache inswitch-p
+	     injava-inher
 	     ;; narrow out any enclosing class or extern "C" block
 	     (inclass-p (c-narrow-out-enclosing-class state indent-point))
 	     (inextern-p (and inclass-p
@@ -3880,7 +3989,7 @@
 	  ;; we need to catch multi-paragraph C comments
 	  (while (and (zerop (forward-line -1))
 		      (looking-at "^[ \t]*$")))
-	  (c-add-syntax literal (c-point 'bol)))
+	  (c-add-syntax literal (c-point 'boi)))
 	 ;; CASE 3: in a cpp preprocessor
 	 ((eq literal 'pound)
 	  (c-beginning-of-macro lim)
@@ -3935,7 +4044,10 @@
 		;; c-b-o-s could have left us at point-min
 		(and (bobp)
 		     (c-forward-syntactic-ws indent-point))
-		(setq placeholder (point))
+		(if (looking-at "typedef[^_]")
+		    (progn (forward-sexp 1)
+			   (c-forward-syntactic-ws indent-point)))
+		(setq placeholder (c-point 'bol))
 		(and (or (looking-at "enum[ \t\n]+")
 			 (= char-before-ip ?=))
 		     (save-excursion
@@ -3971,6 +4083,13 @@
 			 (c-backward-syntactic-ws lim)))
 	      (if (= (preceding-char) ?\))
 		  (backward-sexp 1))
+	      (setq placeholder (point))
+	      (save-excursion
+		(and (c-safe (backward-sexp 1) t)
+		     (looking-at "throw[^_]")
+		     (c-safe (backward-sexp 1) t)
+		     (setq placeholder (point))))
+	      (goto-char placeholder)
 	      (c-add-syntax 'member-init-intro (c-point 'boi))
 	      ;; we don't need to add any class offset since this
 	      ;; should be relative to the ctor's indentation
@@ -3979,17 +4098,22 @@
 	     (c-recognize-knr-p
 	      (c-add-syntax 'knr-argdecl-intro (c-point 'boi))
 	      (and inclass-p (c-add-syntax 'inclass (aref inclass-p 0))))
-	     ;; CASE 5B.3: Nether region after a C++ func decl, which
-	     ;; could include a `throw' declaration.
+	     ;; CASE 5B.3: Nether region after a C++ or Java func
+	     ;; decl, which could include a `throws' declaration.
 	     (t
 	      (c-beginning-of-statement-1 lim)
-	      (c-add-syntax 'ansi-funcdecl-cont (c-point 'boi))
+	      (c-add-syntax 'func-decl-cont (c-point 'boi))
 	      )))
 	   ;; CASE 5C: inheritance line. could be first inheritance
 	   ;; line, or continuation of a multiple inheritance
 	   ((or (and c-baseclass-key (looking-at c-baseclass-key))
 		(and (or (= char-before-ip ?:)
-			 (= char-after-ip ?:))
+			 ;; watch out for scope operator
+			 (save-excursion
+			   (and (= char-after-ip ?:)
+				(c-safe (progn (forward-char 1) t))
+				(/= (following-char) ?:)
+				)))
 		     (save-excursion
 		       (c-backward-syntactic-ws lim)
 		       (if (= char-before-ip ?:)
@@ -3997,7 +4121,25 @@
 			     (forward-char -1)
 			     (c-backward-syntactic-ws lim)))
 		       (back-to-indentation)
-		       (looking-at c-class-key))))
+		       (looking-at c-class-key)))
+		;; for Java
+		(and (eq major-mode 'java-mode)
+		     (let ((fence (save-excursion
+				    (c-beginning-of-statement-1 lim)
+				    (point)))
+			   cont done)
+		       (save-excursion
+			 (while (not done)
+			   (cond ((looking-at c-Java-special-key)
+				  (setq injava-inher (cons cont (point))
+					done t))
+				 ((or (not (c-safe (forward-sexp -1) t))
+				      (<= (point) fence))
+				  (setq done t))
+				 )
+			   (setq cont t)))
+		       injava-inher))
+		)
 	    (cond
 	     ;; CASE 5C.1: non-hanging colon on an inher intro
 	     ((= char-after-ip ?:)
@@ -4010,7 +4152,23 @@
 	     ((= char-before-ip ?:)
 	      (c-add-syntax 'inher-intro (c-point 'boi))
 	      (and inclass-p (c-add-syntax 'inclass (aref inclass-p 0))))
-	     ;; CASE 5C.3: a continued inheritance line
+	     ;; CASE 5C.3: in a Java implements/extends
+	     (injava-inher
+	      (let ((where (cdr injava-inher))
+		    (cont (car injava-inher))
+		    (here (point)))
+		(goto-char where)
+		(cond ((looking-at "throws[^_]")
+		       (c-add-syntax 'func-decl-cont
+				     (progn (c-beginning-of-statement-1 lim)
+					    (c-point 'boi))))
+		      (cont (c-add-syntax 'inher-cont where))
+		      (t (c-add-syntax 'inher-intro
+				       (progn (goto-char (cdr injava-inher))
+					      (c-beginning-of-statement-1 lim)
+					      (point))))
+		      )))
+	     ;; CASE 5C.4: a continued inheritance line
 	     (t
 	      (c-beginning-of-inheritance-list lim)
 	      (c-add-syntax 'inher-cont (point))
@@ -4116,6 +4274,7 @@
 				(point))))
 		   (save-excursion
 		     (c-backward-syntactic-ws limit)
+		     (setq placeholder (point))
 		     (while (and (memq (preceding-char) '(?\; ?,))
 				 (> (point) limit))
 		       (beginning-of-line)
@@ -4502,7 +4661,8 @@
 	    (c-add-syntax 'statement-cont (c-point 'boi)))
 	   ;; CASE 15D: any old statement
 	   ((< (point) indent-point)
-	    (let ((safepos (c-most-enclosing-brace fullstate)))
+	    (let ((safepos (c-most-enclosing-brace fullstate))
+		  relpos done)
 	      (goto-char indent-point)
 	      (c-beginning-of-statement-1 safepos)
 	      ;; It is possible we're on the brace that opens a nested
@@ -4512,7 +4672,21 @@
 			 (c-backward-syntactic-ws safepos)
 			 (/= (preceding-char) ?\;)))
 		  (c-beginning-of-statement-1 safepos))
-	      (c-add-syntax 'statement (c-point 'boi))
+	      (if (and inswitch-p
+		       (looking-at c-switch-label-key))
+		  (progn
+		    (goto-char placeholder)
+		    (end-of-line)
+		    (forward-sexp -1)))
+	      (setq relpos (c-point 'boi))
+	      (while (and (not done)
+			  (<= safepos (point))
+			  (/= relpos (point)))
+		(c-beginning-of-statement-1 safepos)
+		(if (= relpos (c-point 'boi))
+		    (setq done t))
+		(setq relpos (c-point 'boi)))
+	      (c-add-syntax 'statement relpos)
 	      (if (= char-after-ip ?{)
 		  (c-add-syntax 'block-open))))
 	   ;; CASE 15E: first statement in an inline, or first
@@ -4730,26 +4904,42 @@
       (- (current-column) cs-curcol)
       )))
 
+(defun c-lineup-java-inher (langelem)
+  ;; line up Java implements and extends continuations
+  (save-excursion
+    (let ((cs-curcol (progn (goto-char (cdr langelem))
+			    (current-column))))
+      (forward-word 1)
+      (if (looking-at "[ \t]*$")
+	  cs-curcol
+	(c-forward-syntactic-ws)
+	(- (current-column) cs-curcol)))))
+
 (defun c-lineup-C-comments (langelem)
   ;; line up C block comment continuation lines
   (save-excursion
-    (let ((stars (progn
-		   (beginning-of-line)
-		   (skip-chars-forward " \t")
-		   (if (looking-at "\\*\\*?")
-		       (- (match-end 0) (match-beginning 0))
-		     0)))
+    (let ((here (point))
+	  (stars (progn (back-to-indentation)
+			(skip-chars-forward "*")))
 	  (cs-curcol (progn (goto-char (cdr langelem))
 			    (current-column))))
       (back-to-indentation)
-      (if (re-search-forward "/\\*[ \t]*" (c-point 'eol) t)
-	  (goto-char (+ (match-beginning 0)
-			(cond
-			 (c-block-comments-indent-p 0)
-			 ((= stars 1) 1)
-			 ((= stars 2) 0)
-			 (t (- (match-end 0) (match-beginning 0)))))))
-      (- (current-column) cs-curcol))))
+      (if (not (re-search-forward "/[*]+" (c-point 'eol) t))
+	  (progn
+	    (if (not (looking-at "[*]+"))
+		(progn
+		  ;; we now have to figure out where this comment begins.
+		  (goto-char here)
+		  (back-to-indentation)
+		  (if (re-search-forward "[*]+/" (c-point 'eol) t)
+		      (forward-comment -1)
+		    (goto-char (cdr langelem))
+		    (back-to-indentation))))
+	    (- (current-column) cs-curcol))
+	(if (zerop stars)
+	    (skip-chars-forward " \t"))
+	(- (current-column) stars cs-curcol))
+      )))
 
 (defun c-lineup-comment (langelem)
   ;; support old behavior for comment indentation. we look at
@@ -4910,7 +5100,7 @@
 	'(before after)))))
 
 (defun c-gnu-impose-minimum ()
-  "Imposes a minimum indentation for labels and case tags.
+  "Imposes a minimum indentation for lines inside a top-level construct.
 The variable `c-label-minimum-indentation' specifies the minimum
 indentation amount."
   (let ((non-top-levels '(defun-block-intro statement statement-cont
@@ -5009,16 +5199,16 @@
 
 ;; defuns for submitting bug reports
 
-(defconst c-version "4.322"
-  "cc-mode version number.")
+(defconst c-version "4.379"
+  "CC Mode version number.")
 (defconst c-mode-help-address
   "bug-gnu-emacs@prep.ai.mit.edu, cc-mode-help@python.org"
-  "Address for cc-mode bug reports.")
+  "Address for CC Mode bug reports.")
 
 (defun c-version ()
-  "Echo the current version of cc-mode in the minibuffer."
+  "Echo the current version of CC Mode in the minibuffer."
   (interactive)
-  (message "Using cc-mode version %s" c-version)
+  (message "Using CC Mode version %s" c-version)
   (c-keep-region-active))
 
 ;; get reporter-submit-bug-report when byte-compiling
@@ -5026,18 +5216,18 @@
   (require 'reporter))
 
 (defun c-submit-bug-report ()
-  "Submit via mail a bug report on cc-mode."
+  "Submit via mail a bug report on CC Mode."
   (interactive)
   ;; load in reporter
   (let ((reporter-prompt-for-summary-p t)
 	(reporter-dont-compact-list '(c-offsets-alist)))
     (and
-     (if (y-or-n-p "Do you want to submit a report on cc-mode? ")
+     (if (y-or-n-p "Do you want to submit a report on CC Mode? ")
 	 t (message "") nil)
      (require 'reporter)
      (reporter-submit-bug-report
       c-mode-help-address
-      (concat "cc-mode " c-version " ("
+      (concat "CC Mode " c-version " ("
 	      (cond ((eq major-mode 'c++-mode)  "C++")
 		    ((eq major-mode 'c-mode)    "C")
 		    ((eq major-mode 'objc-mode) "ObjC")
@@ -5048,7 +5238,6 @@
 		   ;; report only the vars that affect indentation
 		   'c-basic-offset
 		   'c-offsets-alist
-		   'c-block-comments-indent-p
 		   'c-cleanup-list
 		   'c-comment-only-line-offset
 		   'c-backslash-column
@@ -5056,6 +5245,7 @@
 		   'c-electric-pound-behavior
 		   'c-hanging-braces-alist
 		   'c-hanging-colons-alist
+		   'c-hanging-comment-starter-p
 		   'c-hanging-comment-ender-p
 		   'c-tab-always-indent
 		   'c-recognize-knr-p
@@ -5069,6 +5259,7 @@
       (function
        (lambda ()
 	 (insert
+	  "Buffer Style: " c-indentation-style "\n\n"
 	  (if c-special-indent-hook
 	      (concat "\n@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n"
 		      "c-special-indent-hook is set to '"
@@ -5084,52 +5275,47 @@
 
 
 ;; menus for XEmacs 19
+(defun c-mode-menu ()
+  (cons (concat mode-name " Mode Commands") c-mode-menu))
+
 (defun c-popup-menu (e)
   "Pops up the C/C++/ObjC menu."
   (interactive "@e")
-  (popup-menu (cons (concat mode-name " Mode Commands") c-mode-menu))
+  (popup-menu (c-mode-menu))
   (c-keep-region-active))
     
 
 ;; Emacs/XEmacs Compatibility
-;; XEmacs has these, Emacs (even 19.31) does not
-
-;; Lift XEmacs 19.13's functionp from subr.el
-(defun c-functionp (obj)
-  "Returns t if OBJ is a function, nil otherwise."
-  (cond
-   ((symbolp obj) (fboundp obj))
-   ((subrp obj))
-   ((compiled-function-p obj))
-   ((consp obj)
-    (if (eq (car obj) 'lambda) (listp (car (cdr obj)))))
-   (t nil)))
-
-(defun c-copy-tree (tree)
+;; XEmacs has these, Emacs does not
+
+(if (fboundp 'functionp)
+    (defalias 'c-functionp 'functionp)
+  ;; Lift XEmacs 19.13's functionp from subr.el
+  (defun c-functionp (obj)
+    "Returns t if OBJ is a function, nil otherwise."
+    (cond
+     ((symbolp obj) (fboundp obj))
+     ((subrp obj))
+     ((compiled-function-p obj))
+     ((consp obj)
+      (if (eq (car obj) 'lambda) (listp (car (cdr obj)))))
+     (t nil))))
+
+(if (fboundp 'copy-tree)
+    (defalias 'c-copy-tree 'copy-tree)
   ;; Lift XEmacs 19.12's copy-tree
-  (if (consp tree)
-      (cons (c-copy-tree (car tree))
-	    (c-copy-tree (cdr tree)))
-    (if (vectorp tree)
-	(let* ((new (copy-sequence tree))
-	       (i (1- (length new))))
-	  (while (>= i 0)
-	    (aset new i (c-copy-tree (aref new i)))
-	    (setq i (1- i)))
-	  new)
-      tree)))
-
-(defun c-mapcar-defun (var)
-  (let ((val (symbol-value var)))
-    (cons var (if (atom val) val
-		;; XEmacs 19.12 and Emacs 19 + lucid.el have this
-		(if (fboundp 'copy-tree)
-		    (copy-tree val)
-		  ;; Emacs 19 and Emacs 18
-		  (c-copy-tree val)
-		  )))
-    ))
-
+  (defun c-copy-tree (tree)
+    (if (consp tree)
+	(cons (c-copy-tree (car tree))
+	      (c-copy-tree (cdr tree)))
+      (if (vectorp tree)
+	  (let* ((new (copy-sequence tree))
+		 (i (1- (length new))))
+	    (while (>= i 0)
+	      (aset new i (c-copy-tree (aref new i)))
+	      (setq i (1- i)))
+	    new)
+	tree))))
 
 
 ;; Dynamically append the default value of most variables. This is
@@ -5139,47 +5325,57 @@
 (or (assoc "cc-mode" c-style-alist)
     (progn
       (c-add-style "cc-mode"
-		   (mapcar 'c-mapcar-defun
-			   '(c-backslash-column
-			     c-basic-offset
-			     c-block-comments-indent-p
-			     c-cleanup-list
-			     c-comment-only-line-offset
-			     c-electric-pound-behavior
-			     c-hanging-braces-alist
-			     c-hanging-colons-alist
-			     c-hanging-comment-ender-p
-			     c-offsets-alist
-			     )))
+		   (mapcar
+		    (function
+		     (lambda (var)
+		       (let ((val (symbol-value var)))
+			 (cons var (if (atom val) val
+				     (c-copy-tree val)
+				     ))
+			 )))
+		    '(c-backslash-column
+		      c-basic-offset
+		      c-cleanup-list
+		      c-comment-only-line-offset
+		      c-electric-pound-behavior
+		      c-hanging-braces-alist
+		      c-hanging-colons-alist
+		      c-hanging-comment-starter-p
+		      c-hanging-comment-ender-p
+		      c-offsets-alist
+		      )))
       ;; the default style is now GNU.  This can be overridden in
       ;; c-mode-common-hook or {c,c++,objc,java}-mode-hook.
       (c-set-style c-site-default-style)))
 
-;; style variables
-(make-variable-buffer-local 'c-offsets-alist)
-(make-variable-buffer-local 'c-basic-offset)
-(make-variable-buffer-local 'c-file-style)
-(make-variable-buffer-local 'c-file-offsets)
-(make-variable-buffer-local 'c-comment-only-line-offset)
-(make-variable-buffer-local 'c-block-comments-indent-p)
-(make-variable-buffer-local 'c-cleanup-list)
-(make-variable-buffer-local 'c-hanging-braces-alist)
-(make-variable-buffer-local 'c-hanging-colons-alist)
-(make-variable-buffer-local 'c-hanging-comment-ender-p)
-(make-variable-buffer-local 'c-backslash-column)
-(make-variable-buffer-local 'c-label-minimum-indentation)
-(make-variable-buffer-local 'c-special-indent-hook)
+(if c-style-variables-are-local-p
+    (progn
+      ;; style variables
+      (make-variable-buffer-local 'c-offsets-alist)
+      (make-variable-buffer-local 'c-basic-offset)
+      (make-variable-buffer-local 'c-file-style)
+      (make-variable-buffer-local 'c-file-offsets)
+      (make-variable-buffer-local 'c-comment-only-line-offset)
+      (make-variable-buffer-local 'c-cleanup-list)
+      (make-variable-buffer-local 'c-hanging-braces-alist)
+      (make-variable-buffer-local 'c-hanging-colons-alist)
+      (make-variable-buffer-local 'c-hanging-comment-starter-p)
+      (make-variable-buffer-local 'c-hanging-comment-ender-p)
+      (make-variable-buffer-local 'c-backslash-column)
+      (make-variable-buffer-local 'c-label-minimum-indentation)
+      (make-variable-buffer-local 'c-special-indent-hook)
+      (make-variable-buffer-local 'c-indentation-style)))
 
 
 ;; fsets for compatibility with BOCM
 (fset 'electric-c-brace      'c-electric-brace)
 (fset 'electric-c-semi       'c-electric-semi&comma)
 (fset 'electric-c-sharp-sign 'c-electric-pound)
-;; there is no cc-mode equivalent for electric-c-terminator
+;; there is no CC Mode equivalent for electric-c-terminator
 (fset 'mark-c-function       'c-mark-function)
 (fset 'indent-c-exp          'c-indent-exp)
 ;;;###autoload (fset 'set-c-style           'c-set-style)
-;; Lucid Emacs 19.9 + font-lock + cc-mode - c++-mode lossage
+;; Lucid Emacs 19.9 + font-lock + CC Mode - c++-mode lossage
 (fset 'c++-beginning-of-defun 'beginning-of-defun)
 (fset 'c++-end-of-defun 'end-of-defun)
 
@@ -5201,7 +5397,7 @@
 	      (cons 'c++-access-specifier-offset 'c-offsets-alist)
 	      (cons 'c++-empty-arglist-indent 'c-offsets-alist)
 	      (cons 'c++-comment-only-line-offset 'c-comment-only-line-offset)
-	      (cons 'c++-C-block-comments-indent-p 'c-block-comments-indent-p)
+	      (cons 'c++-C-block-comments-indent-p na)
 	      (cons 'c++-cleanup-list 'c-cleanup-list)
 	      (cons 'c++-hanging-braces 'c-hanging-braces-alist)
 	      (cons 'c++-hanging-member-init-colon 'c-hanging-colons-alist)
@@ -5227,6 +5423,7 @@
 	      (cons 'c-continued-brace-offset 'c-offsets-alist)
 	      (cons 'c-default-macroize-column 'c-backslash-column)
 	      (cons 'c++-default-macroize-column 'c-backslash-column)
+	      (cons 'c-block-comments-indent-p na)
 	      )))
        (mapcar
 	(function
--- a/lisp/modes/cperl-mode.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/modes/cperl-mode.el	Mon Aug 13 08:52:56 2007 +0200
@@ -32,7 +32,7 @@
 ;;; Corrections made by Ilya Zakharevich ilya@math.mps.ohio-state.edu
 ;;; XEmacs changes by Peter Arius arius@informatik.uni-erlangen.de
 
-;; $Id: cperl-mode.el,v 1.3 1997/03/09 02:37:19 steve Exp $
+;; $Id: cperl-mode.el,v 1.4 1997/03/16 05:55:19 steve Exp $
 
 ;;; To use this mode put the following into your .emacs file:
 
@@ -46,6 +46,10 @@
 ;;; in your .emacs file. (Emacs rulers do not consider it politically
 ;;; correct to make whistles enabled by default.)
 
+;;; DO NOT FORGET to read micro-docs. (available from `Perl' menu). <<<<<<
+;;; or as help on variables `cperl-tips', `cperl-problems',         <<<<<<
+;;; `cperl-non-problems'.                                           <<<<<<
+
 ;;; Additional useful commands to put into your .emacs file:
 
 ;; (setq auto-mode-alist
@@ -328,6 +332,28 @@
 ;;;  Minor updates to `cperl-short-docs'.
 ;;;  Will not consider <<= as start of here-doc.
 
+;;;; After 1.29
+;;;  Added an extra advice to look into Micro-docs. ;-).
+;;;  Enclosing of region when you press a closing parenth is regulated by
+;;;  `cperl-electric-parens-string'.
+;;;  Minor updates to `cperl-short-docs'.
+;;;  `initialize-new-tags-table' called only if present (Does this help
+;;;     with generation of tags under XEmacs?).
+;;;  When creating/updating tag files, new info is written at the old place,
+;;;     or at the end (is this a wanted behaviour? I need this in perl build directory).
+
+;;;; After 1.30
+;;;  All the keywords from keywords.pl included (maybe with dummy explanation).
+;;;  No auto-help inside strings, comment, here-docs, formats, and pods.
+;;;  Shrinkwrapping of info, regulated by `cperl-max-help-size'.
+;;;  Info on variables as well.
+;;;  Recognision of HERE-DOCS improved yet more.
+;;;  Autonewline works on `}' without warnings.
+;;;  Autohelp works again on $_[0].
+
+;;;; After 1.31
+;;;  perl-descr.el found its author - hi, Johan!
+
 (defvar cperl-extra-newline-before-brace nil
   "*Non-nil means that if, elsif, while, until, else, for, foreach
 and do constructs look like:
@@ -385,10 +411,10 @@
 Can be overwritten by `cperl-hairy' if nil.")
 
 (defvar cperl-electric-lbrace-space nil
-  "*Non-nil (and non-null) means { after $ in CPerl buffers should be preceded by ` '.
+  "*Non-nil (and non-null) means { after $ in CPerl buffers should be preceeded by ` '.
 Can be overwritten by `cperl-hairy' if nil.")
 
-(defvar cperl-electric-parens-string "({[<"
+(defvar cperl-electric-parens-string "({[]})<"
   "*String of parentheses that should be electric in CPerl.")
 
 (defvar cperl-electric-parens nil
@@ -455,6 +481,12 @@
   "*Not-nil means add backreferences to generated `imenu's.
 May require patched `imenu' and `imenu-go'.")
 
+(defvar cperl-max-help-size 66
+  "*Non-nil means shrink-wrapping of info-buffer allowed up to these percents.")
+
+(defvar cperl-shrink-wrap-info-frame t
+  "*Non-nil means shrink-wrapping of info-buffer-frame allowed.")
+
 (defvar cperl-info-page "perl"
   "Name of the info page containing perl docs.
 Older version of this page was called `perl5', newer `perl'.")
@@ -548,6 +580,10 @@
 	1 if ( s#//#/# );
 will.
 
+By similar reasons
+	s\"abc\"def\";
+will confuse CPerl a lot.
+
 If you still get wrong indentation in situation that you think the
 code should be able to parse, try:
 
@@ -1194,10 +1230,10 @@
 		   (if cperl-auto-newline 
 		       (progn (cperl-indent-line) (newline) t) nil)))
 	  (progn
-	    (if cperl-auto-newline
-		(setq insertpos (point)))
 	    (insert last-command-char)
 	    (cperl-indent-line)
+	    (if cperl-auto-newline
+		(setq insertpos (1- (point))))
 	    (if (and cperl-auto-newline (null only-before))
 		(progn
 		  (newline)
@@ -1282,6 +1318,9 @@
   (interactive "P")
   (let ((beg (save-excursion (beginning-of-line) (point)))
 	(other-end (if (and cperl-electric-parens-mark
+			    (cperl-val 'cperl-electric-parens)
+			    (memq last-command-char
+				  (append cperl-electric-parens-string nil))
 			    (cperl-mark-active) 
 			    (< (mark) (point)))
 		       (mark) 
@@ -2137,9 +2176,20 @@
 	       "\\(\\`\n?\\|\n\n\\)=" 
 	       "\\|"
 	       ;; One extra () before this:
-	       "<<\\(\\([\"'`]\\)\\([^\"'`\n]*\\)\\3\\|\\(\\([a-zA-Z_][a-zA-Z_0-9]*\\)?\\)[^=]\\)" ; [^=] to avoid <<=.
+	       "<<" 
+	         "\\(" 
+		 ;; First variant "BLAH" or just ``.
+	            "\\([\"'`]\\)"
+		    "\\([^\"'`\n]*\\)"
+		    "\\3"
+		 "\\|"
+		 ;; Second variant: Identifier or empty
+		   "\\(\\([a-zA-Z_][a-zA-Z_0-9]*\\)?\\)"
+		   ;; Check that we do not have <<= or << 30 or << $blah.
+		   "\\([^= \t$@%&]\\|[ \t]+[^ \t\n0-9$@%&]\\)"
+		 "\\)"
 	       "\\|"
-	       ;; 1+5 extra () before this:
+	       ;; 1+6 extra () before this:
 	       "^[ \t]*format[ \t]*\\([a-zA-Z0-9_]+\\)?[ \t]*=[ \t]*$")))
     (unwind-protect
 	(progn
@@ -2159,7 +2209,7 @@
 		;;  "\\(\\`\n?\\|\n\n\\)=" 
 		(if (looking-at "\n*cut\\>")
 		    (progn
-		      (message "=cut is not preceded by a pod section")
+		      (message "=cut is not preceeded by a pod section")
 		      (setq err (point)))
 		  (beginning-of-line)
 		
@@ -2240,12 +2290,12 @@
 			(t (message "End of here-document `%s' not found." tag)))))
 	       ;; format
 	       (t
-		;; 1+5=6 extra () before this:
+		;; 1+6=7 extra () before this:
 		;; "^[ \t]*format[ \t]*\\([a-zA-Z0-9_]+\\)?[ \t]*=[ \t]*$")))
 		(setq b (point)
-		      name (if (match-beginning 7) ; 6 + 1
-			       (buffer-substring (match-beginning 7) ; 6 + 1
-						 (match-end 7)) ; 6 + 1
+		      name (if (match-beginning 8) ; 7 + 1
+			       (buffer-substring (match-beginning 8) ; 7 + 1
+						 (match-end 8)) ; 7 + 1
 			     ""))
 		(setq argument nil)
 		(if cperl-pod-here-fontify 
@@ -2290,7 +2340,7 @@
 ;;;	    (while (re-search-forward "\\(\\`\n?\\|\n\n\\)=" max t)
 ;;;	      (if (looking-at "\n*cut\\>")
 ;;;		  (progn
-;;;		    (message "=cut is not preceded by a pod section")
+;;;		    (message "=cut is not preceeded by a pod section")
 ;;;		    (setq err (point)))
 ;;;		(beginning-of-line)
 		
@@ -3295,34 +3345,52 @@
   (let ((perl-dbg-flags "-wc"))
     (mode-compile)))
 
-(defun cperl-info-buffer ()
-  ;; Returns buffer with documentation. Creates if missing
-  (let ((info (get-buffer "*info-perl*")))
+(defun cperl-info-buffer (type)
+  ;; Returns buffer with documentation. Creates if missing.
+  ;; If TYPE, this vars buffer.
+  ;; Special care is taken to not stomp over an existing info buffer
+  (let* ((bname (if type "*info-perl-var*" "*info-perl*"))
+	 (info (get-buffer bname))
+	 (oldbuf (get-buffer "*info*")))
     (if info info
       (save-window-excursion
 	;; Get Info running
 	(require 'info)
+	(cond (oldbuf
+	       (set-buffer oldbuf)
+	       (rename-buffer "*info-perl-tmp*")))
 	(save-window-excursion
 	  (info))
-	(Info-find-node cperl-info-page "perlfunc")
+	(Info-find-node cperl-info-page (if type "perlvar" "perlfunc"))
 	(set-buffer "*info*")
-	(rename-buffer "*info-perl*")
+	(rename-buffer bname)
+	(cond (oldbuf
+	       (set-buffer "*info-perl-tmp*")
+	       (rename-buffer "*info*")
+	       (set-buffer bname)))
+	(make-variable-buffer-local 'window-min-height)
+	(setq window-min-height 2)
 	(current-buffer)))))
 
 (defun cperl-word-at-point (&optional p)
   ;; Returns the word at point or at P.
   (save-excursion
     (if p (goto-char p))
-    (require 'etags)
-    (funcall (or (and (boundp 'find-tag-default-function)
-		      find-tag-default-function)
-		 (get major-mode 'find-tag-default-function)
-		 ;; XEmacs 19.12 has `find-tag-default-hook'; it is
-		 ;; automatically used within `find-tag-default':
-		 'find-tag-default))))
+    (or (cperl-word-at-point-hard)
+	(progn
+	  (require 'etags)
+	  (funcall (or (and (boundp 'find-tag-default-function)
+			    find-tag-default-function)
+		       (get major-mode 'find-tag-default-function)
+		       ;; XEmacs 19.12 has `find-tag-default-hook'; it is
+		       ;; automatically used within `find-tag-default':
+		       'find-tag-default))))))
 
 (defun cperl-info-on-command (command)
-  "Shows documentation for Perl command in other window."
+  "Shows documentation for Perl command in other window.
+If perl-info buffer is shown in some frame, uses this frame.
+Customized by setting variables `cperl-shrink-wrap-info-frame',
+`cperl-max-help-size'."
   (interactive 
    (let* ((default (cperl-word-at-point))
 	  (read (read-string 
@@ -3334,21 +3402,72 @@
 
   (let ((buffer (current-buffer))
 	(cmd-desc (concat "^" (regexp-quote command) "[^a-zA-Z_0-9]")) ; "tr///"
-	pos)
+	pos isvar height iniheight frheight buf win fr1 fr2 iniwin not-loner
+	max-height char-height buf-list)
     (if (string-match "^-[a-zA-Z]$" command)
 	(setq cmd-desc "^-X[ \t\n]"))
-    (set-buffer (cperl-info-buffer))
+    (setq isvar (string-match "^[$@%]" command)
+	  buf (cperl-info-buffer isvar)
+	  iniwin (selected-window)
+	  fr1 (window-frame iniwin))
+    (set-buffer buf)
     (beginning-of-buffer)
-    (re-search-forward "^-X[ \t\n]")
-    (forward-line -1)
+    (or isvar 
+	(progn (re-search-forward "^-X[ \t\n]")
+	       (forward-line -1)))
     (if (re-search-forward cmd-desc nil t)
 	(progn
-	  (setq pos (progn (beginning-of-line)
-			   (point)))
-	  (pop-to-buffer (cperl-info-buffer))
+	  ;; Go back to beginning of the group (ex, for qq)
+	  (if (re-search-backward "^[ \t\n\f]")
+	      (forward-line 1))
+	  (beginning-of-line)
+	  ;; Get some of 
+	  (setq pos (point)
+		buf-list (list buf "*info-perl-var*" "*info-perl*"))
+	  (while (and (not win) buf-list)
+	    (setq win (get-buffer-window (car buf-list) t))
+	    (setq buf-list (cdr buf-list)))
+	  (or (not win)
+	      (eq (window-buffer win) buf)
+	      (set-window-buffer win buf))
+	  (and win (setq fr2 (window-frame win)))
+	  (if (or (not fr2) (eq fr1 fr2))
+	      (pop-to-buffer buf)
+	    (special-display-popup-frame buf) ; Make it visible
+	    (select-window win))
+	  (goto-char pos)		; Needed (?!).
+	  ;; Resize
+	  (setq iniheight (window-height)
+		frheight (frame-height)
+		not-loner (< iniheight (1- frheight))) ; Are not alone
+	  (cond ((if not-loner cperl-max-help-size 
+		   cperl-shrink-wrap-info-frame)
+		 (setq height 
+		       (+ 2 
+			  (count-lines 
+			   pos 
+			   (save-excursion
+			     (if (re-search-forward
+				  "^[ \t][^\n]*\n+\\([^ \t\n\f]\\|\\'\\)" nil t)
+				 (match-beginning 0) (point-max)))))
+		       max-height 
+		       (if not-loner
+			   (/ (* (- frheight 3) cperl-max-help-size) 100)
+			 (setq char-height (frame-char-height))
+			 ;; Non-functioning under OS/2:
+			 (if (eq char-height 1) (setq char-height 18))
+			 ;; Title, menubar, + 2 for slack
+			 (- (/ (x-display-pixel-height) char-height) 4)
+			 ))
+		 (if (> height max-height) (setq height max-height))
+		 ;;(message "was %s doing %s" iniheight height)
+		 (if not-loner
+		     (enlarge-window (- height iniheight))
+		   (set-frame-height (window-frame win) (1+ height)))))
 	  (set-window-start (selected-window) pos))
       (message "No entry for %s found." command))
-    (pop-to-buffer buffer)))
+    ;;(pop-to-buffer buffer)
+    (select-window iniwin)))
 
 (defun cperl-info-on-current-command ()
   "Shows documentation for Perl command at point in other window."
@@ -3373,7 +3492,7 @@
 	 imenu-extract-index-name-function 
 	 (index-item (save-restriction
 		       (save-window-excursion
-			 (set-buffer (cperl-info-buffer))
+			 (set-buffer (cperl-info-buffer nil))
 			 (setq imenu-create-index-function 
 			       'imenu-default-create-index-function
 			       imenu-prev-index-position-function
@@ -3660,7 +3779,7 @@
 	)
        (t
 	(setq xs (string-match "\\.xs$" file))
-	(cond ((eq erase 'ignore) nil)
+	(cond ((eq erase 'ignore) (goto-char (point-max)))
 	      (erase (erase-buffer))
 	      (t
 	       (goto-char 1)
@@ -3671,12 +3790,13 @@
 				    (progn 
 				      (forward-char 1)
 				      (search-forward "\f\n" nil 'toend)
-				      (point)))
-		     (goto-char 1)))))
+				      (point))))
+		 (goto-char (point-max)))))
 	(insert (cperl-find-tags file xs))))
       (if inbuffer nil		; Delegate to the caller
 	(save-buffer 0)		; No backup
-	(initialize-new-tags-table)))))
+	(if (fboundp 'initialize-new-tags-table) ; Do we need something special in XEmacs?
+	    (initialize-new-tags-table))))))
 
 (defvar cperl-tags-hier-regexp-list
   "^\\(\\(package\\)\\>\\|sub\\>[^\n]+::\\|[a-zA-Z_][a-zA-Z_0-9:]*(\C-?[^\n]+::\\|[ \t]*BOOT:\C-?[^\n]+::\\)")
@@ -3971,11 +4091,12 @@
   ;;(concat "\\("
   (mapconcat
    'identity
-   '("[$@%*&][0-9a-zA-Z_:]+"		; Usual variable
+   '("[$@%*&][0-9a-zA-Z_:]+\\([ \t]*[[{]\\)?"		; Usual variable
      "[$@]\\^[a-zA-Z]"			; Special variable
      "[$@][^ \n\t]"			; Special variable
      "-[a-zA-Z]"			; File test
      "\\\\[a-zA-Z0]"			; Special chars
+     "^=[a-z][a-zA-Z0-9_]*"		; Pod sections
      "[-!&*+,-./<=>?\\\\^|~]+"		; Operator
      "[a-zA-Z_0-9:]+"			; symbol or number
      "x="
@@ -3989,6 +4110,58 @@
   "Matches places in the buffer we can find help for.")
 
 (defvar cperl-message-on-help-error t)
+(defvar cperl-help-from-timer nil)
+
+(defun cperl-word-at-point-hard ()
+  ;; Does not save-excursion
+  ;; Get to the something meaningful
+  (or (eobp) (eolp) (forward-char 1))
+  (re-search-backward "[-a-zA-Z0-9_:!&*+,-./<=>?\\\\^|~$%@]" 
+		      (save-excursion (beginning-of-line) (point))
+		      'to-beg)
+  ;;  (cond
+  ;;   ((or (eobp) (looking-at "[][ \t\n{}();,]")) ; Not at a symbol
+  ;;    (skip-chars-backward " \n\t\r({[]});,")
+  ;;    (or (bobp) (backward-char 1))))
+  ;; Try to backtrace
+  (cond
+   ((looking-at "[a-zA-Z0-9_:]")	; symbol
+    (skip-chars-backward "[a-zA-Z0-9_:]")
+    (cond 
+     ((and (eq (preceding-char) ?^)	; $^I
+	   (eq (char-after (- (point) 2)) ?\$))
+      (forward-char -2))
+     ((memq (preceding-char) (append "*$@%&\\" nil)) ; *glob
+      (forward-char -1))
+     ((and (eq (preceding-char) ?\=)
+	   (eq (current-column) 1))
+      (forward-char -1)))		; =head1
+    (if (and (eq (preceding-char) ?\<)
+	     (looking-at "\\$?[a-zA-Z0-9_:]+>")) ; <FH>
+	(forward-char -1)))
+   ((and (looking-at "=") (eq (preceding-char) ?x)) ; x=
+    (forward-char -1))
+   ((and (looking-at "\\^") (eq (preceding-char) ?\$)) ; $^I
+    (forward-char -1))
+   ((looking-at "[-!&*+,-./<=>?\\\\^|~]")
+    (skip-chars-backward "[-!&*+,-./<=>?\\\\^|~]")
+    (cond
+     ((and (eq (preceding-char) ?\$)
+	   (not (eq (char-after (- (point) 2)) ?\$))) ; $-
+      (forward-char -1))
+     ((and (eq (following-char) ?\>)
+	   (string-match "[a-zA-Z0-9_]" (char-to-string (preceding-char)))
+	   (save-excursion
+	     (forward-sexp -1)
+	     (and (eq (preceding-char) ?\<)
+		  (looking-at "\\$?[a-zA-Z0-9_:]+>")))) ; <FH>
+      (search-backward "<"))))
+   ((and (eq (following-char) ?\$)
+	 (eq (preceding-char) ?\<)
+	 (looking-at "\\$?[a-zA-Z0-9_:]+>")) ; <$fh>
+    (forward-char -1)))
+  (if (looking-at cperl-have-help-regexp)
+      (buffer-substring (match-beginning 0) (match-end 0))))
 
 (defun cperl-get-help ()
   "Get one-line docs on the symbol at the point.
@@ -3996,56 +4169,19 @@
 than a line. Your contribution to update/shorten it is appreciated."
   (interactive)
   (save-excursion
-    ;; Get to the something meaningful
-    (or (eobp) (eolp) (forward-char 1))
-    (re-search-backward "[-a-zA-Z0-9_:!&*+,-./<=>?\\\\^|~$%@]" 
-			(save-excursion (beginning-of-line) (point))
-			'to-beg)
-    ;;  (cond
-    ;;   ((or (eobp) (looking-at "[][ \t\n{}();,]")) ; Not at a symbol
-    ;;    (skip-chars-backward " \n\t\r({[]});,")
-    ;;    (or (bobp) (backward-char 1))))
-    ;; Try to backtrace
-    (cond
-     ((looking-at "[a-zA-Z0-9_:]")	; symbol
-      (skip-chars-backward "[a-zA-Z0-9_:]")
-      (cond 
-       ((and (eq (preceding-char) ?^)	; $^I
-	     (eq (char-after (- (point) 2)) ?\$))
-	(forward-char -2))
-       ((memq (preceding-char) (append "*$@%&\\" nil)) ; *glob
-	(forward-char -1)))
-      (if (and (eq (preceding-char) ?\<)
-	       (looking-at "\\$?[a-zA-Z0-9_:]+>")) ; <FH>
-	  (forward-char -1)))
-     ((and (looking-at "=") (eq (preceding-char) ?x)) ; x=
-      (forward-char -1))
-     ((and (looking-at "\\^") (eq (preceding-char) ?\$)) ; $^I
-      (forward-char -1))
-     ((looking-at "[-!&*+,-./<=>?\\\\^|~]")
-      (skip-chars-backward "[-!&*+,-./<=>?\\\\^|~]")
-      (cond
-       ((and (eq (preceding-char) ?\$)
-	       (not (eq (char-after (- (point) 2)) ?\$))) ; $-
-	  (forward-char -1))
-       ((and (eq (following-char) ?\>)
-	     (string-match "[a-zA-Z0-9_]" (char-to-string (preceding-char)))
-	     (save-excursion
-	       (forward-sexp -1)
-	       (and (eq (preceding-char) ?\<)
-		    (looking-at "\\$?[a-zA-Z0-9_:]+>")))) ; <FH>
-	(search-backward "<"))))
-     ((and (eq (following-char) ?\$)
-	   (eq (preceding-char) ?\<)
-	   (looking-at "\\$?[a-zA-Z0-9_:]+>")) ; <$fh>
-      (forward-char -1)))
-    ;;(or (eobp) (forward-char 1))
-    (if (looking-at cperl-have-help-regexp)
-	(cperl-describe-perl-symbol 
-	 (buffer-substring (match-beginning 0) (match-end 0)))
-      (if cperl-message-on-help-error
-	  (message "Nothing found for %s..." 
-		   (buffer-substring (point) (+ 5 (point))))))))
+    (let ((word (cperl-word-at-point-hard)))
+      (if word
+	  (if (and cperl-help-from-timer ; Bail out if not in mainland
+		   (not (string-match "^#!\\|\\\\\\|^=" word)) ; Show help even in comments/strings.
+		   (or (memq (get-text-property (point) 'face)
+			     '(font-lock-comment-face font-lock-string-face))
+		       (memq (get-text-property (point) 'syntax-type)
+			     '(pod here-doc format))))
+	      nil
+	    (cperl-describe-perl-symbol word))
+	(if cperl-message-on-help-error
+	    (message "Nothing found for %s..." 
+		     (buffer-substring (point) (+ 5 (point)))))))))
 
 ;;; Stolen from perl-descr.el by Johan Vromans:
 
@@ -4054,46 +4190,27 @@
 
 (defun cperl-describe-perl-symbol (val)
   "Display the documentation of symbol at point, a Perl operator."
-  ;; We suppose that the current position is at the start of the symbol
-  ;; when we convert $_[5] to @_
-  (let (;;(fn (perl-symbol-at-point))
-	(enable-recursive-minibuffers t)
-	;;val 
+  (let ((enable-recursive-minibuffers t)
 	args-file regexp)
-    ;;  (interactive
-    ;;    (let ((fn (perl-symbol-at-point))
-    ;;	  (enable-recursive-minibuffers t)
-    ;;	  val args-file regexp)
-    ;;      (setq val (read-from-minibuffer
-    ;;		  (if fn
-    ;;		      (format "Symbol (default %s): " fn)
-    ;;		    "Symbol: ")))
-    ;;      (if (string= val "")
-    ;;	  (setq val fn))
     (cond
 	((string-match "^[&*][a-zA-Z_]" val)
 	 (setq val (concat (substring val 0 1) "NAME")))
-	((looking-at "[$@][a-zA-Z_:0-9]+\\([[{]\\)")
-	 (if (= ?\[ (char-after (match-beginning 1)))
-	      (setq val (concat "@" (substring val 1)))
-	    (setq val (concat "%" (substring val 1)))))
-	((and (string= val "x") (looking-at "x="))
+	((string-match "^[$@]\\([a-zA-Z_:0-9]+\\)[ \t]*\\[" val)
+	 (setq val (concat "@" (substring val 1 (match-end 1)))))
+	((string-match "^[$@]\\([a-zA-Z_:0-9]+\\)[ \t]*{" val)
+	 (setq val (concat "%" (substring val 1 (match-end 1)))))
+	((and (string= val "x") (string-match "^x=" val))
 	 (setq val "x="))
 	((string-match "^\\$[\C-a-\C-z]" val)
 	 (setq val (concat "$^" (char-to-string (+ ?A -1 (aref val 1))))))
-	((and (string= "<" val) (looking-at "<\\$?[a-zA-Z0-9_:]+>"))
+        ((string-match "^CORE::" val)
+	 (setq val "CORE::"))
+        ((string-match "^SUPER::" val)
+	 (setq val "SUPER::"))
+	((and (string= "<" val) (string-match "^<\\$?[a-zA-Z0-9_:]+>" val))
 	 (setq val "<NAME>")))
-;;;    (if (string-match "^[&*][a-zA-Z_]" val)
-;;;	(setq val (concat (substring val 0 1) "NAME"))
-;;;      (if (looking-at "[$@][a-zA-Z_:0-9]+\\([[{]\\)")
-;;;	  (if (= ?\[ (char-after (match-beginning 1)))
-;;;	      (setq val (concat "@" (substring val 1)))
-;;;	    (setq val (concat "%" (substring val 1))))
-;;;	(if (and (string= val "x") (looking-at "x="))
-;;;	    (setq val "x=")
-;;;	  (if (looking-at "[$@][a-zA-Z_:0-9]")
-;;;	      ))))
-    (setq regexp (concat "^" "\\([^a-zA-Z0-9_:]+[ \t]\\)?"
+    (setq regexp (concat "^" 
+			 "\\([^a-zA-Z0-9_:]+[ \t]+\\)?"
 			 (regexp-quote val) 
 			 "\\([ \t([/]\\|$\\)"))
 
@@ -4114,14 +4231,15 @@
 	     (message "No definition for %s" val)))))))
 
 (defvar cperl-short-docs "Ignore my value"
+  ;; Perl4 version was written by Johan Vromans (jvromans@squirrel.nl)
   "# based on '@(#)@ perl-descr.el 1.9 - describe-perl-symbol' [Perl 5]
-!	Logical negation.	
-!=	Numeric inequality.
-!~	Search pattern, substitution, or translation (negated).
+! ...	Logical negation.	
+... != ...	Numeric inequality.
+... !~ ...	Search pattern, substitution, or translation (negated).
 $!	In numeric context: errno. In a string context: error string.
 $\"	The separator which joins elements of arrays interpolated in strings.
 $#	The output format for printed numbers. Initial value is %.20g.
-$$	The process number of the perl running this script. Altered (in the child process) by fork().
+$$	Process number of this script. Changes in the fork()ed child process.
 $%	The current page number of the currently selected output channel.
 
 	The following variables are always local to the current block:
@@ -4147,9 +4265,9 @@
 $-	The number of lines left on the page.
 $.	The current input line number of the last filehandle that was read.
 $/	The input record separator, newline by default.
-$0	The name of the file containing the perl script being executed. May be set
-$:	The set of characters after which a string may be broken to fill continuation fields (starting with ^) in a format.
-$;	The subscript separator for multi-dimensional array emulation. Default is \"\\034\".
+$0	Name of the file containing the perl script being executed. May be set.
+$:     String may be broken after these characters to fill ^-lines in a format.
+$;	Subscript separator for multi-dim array emulation. Default \"\\034\".
 $<	The real uid of this process.
 $=	The page length of the current output channel. Default is 60 lines.
 $>	The effective uid of this process.
@@ -4173,28 +4291,28 @@
 $^W	True if warnings are requested (perl -w flag).
 $^X	The name under which perl was invoked (argv[0] in C-speech).
 $_	The default input and pattern-searching space.
-$|	Flag for auto-flush after write/print on the currently selected output channel. Default is 0. 
+$|	Auto-flush after write/print on the current output channel? Default 0. 
 $~	The name of the current report format.
-%	Modulo division.
-%=	Modulo division assignment.
+... % ...	Modulo division.
+... %= ...	Modulo division assignment.
 %ENV	Contains the current environment.
 %INC	List of files that have been require-d or do-ne.
 %SIG	Used to set signal handlers for various signals.
-&	Bitwise and.
-&&	Logical and.
-&&=	Logical and assignment.
-&=	Bitwise and assignment.
-*	Multiplication.
-**	Exponentiation.
-*NAME	Refers to all objects represented by NAME. *NAM1 = *NAM2 makes NAM1 a reference to NAM2.
+... & ...	Bitwise and.
+... && ...	Logical and.
+... &&= ...	Logical and assignment.
+... &= ...	Bitwise and assignment.
+... * ...	Multiplication.
+... ** ...	Exponentiation.
+*NAME	Glob: all objects refered by NAME. *NAM1 = *NAM2 aliases NAM1 to NAM2.
 &NAME(arg0, ...)	Subroutine call. Arguments go to @_.
-+	Addition.
-++	Auto-increment (magical on strings).
-+=	Addition assignment.
+... + ...	Addition.		+EXPR	Makes EXPR into scalar context.
+++	Auto-increment (magical on strings).	++EXPR	EXPR++
+... += ...	Addition assignment.
 ,	Comma operator.
--	Subtraction.
---	Auto-decrement.
--=	Subtraction assignment.
+... - ...	Subtraction.
+--	Auto-decrement (NOT magical on strings).	--EXPR	EXPR--
+... -= ...	Subtraction assignment.
 -A	Access time in days since script started.
 -B	File is a non-text (binary) file.
 -C	Inode change time in days since script started.
@@ -4225,54 +4343,54 @@
 .	Concatenate strings.
 ..	Alternation, also range operator.
 .=	Concatenate assignment strings
-/	Division.	/PATTERN/ioxsmg	Pattern match
-/=	Division assignment.
+... / ...	Division.	/PATTERN/ioxsmg	Pattern match
+... /= ...	Division assignment.
 /PATTERN/ioxsmg	Pattern match.
-<	Numeric less than.	<pattern>	Glob.	See <NAME>, <> as well.
+... < ...	Numeric less than.	<pattern>	Glob.	See <NAME>, <> as well.
 <NAME>	Reads line from filehandle NAME. NAME must be bareword/dollar-bareword.
 <pattern>	Glob. (Unless pattern is bareword/dollar-bareword - see <NAME>)
 <>	Reads line from union of files in @ARGV (= command line) and STDIN.
-<<	Bitwise shift left.	<<	start of HERE-DOCUMENT.
-<=	Numeric less than or equal to.
-<=>	Numeric compare.
-=	Assignment.
-==	Numeric equality.
-=~	Search pattern, substitution, or translation
->	Numeric greater than.
->=	Numeric greater than or equal to.
->>	Bitwise shift right.
->>=	Bitwise shift right assignment.
-? :	Alternation (if-then-else) operator.	?PAT? Backwards pattern match.
-?PATTERN?	Backwards pattern match.
+... << ...	Bitwise shift left.	<<	start of HERE-DOCUMENT.
+... <= ...	Numeric less than or equal to.
+... <=> ...	Numeric compare.
+... = ...	Assignment.
+... == ...	Numeric equality.
+... =~ ...	Search pattern, substitution, or translation
+... > ...	Numeric greater than.
+... >= ...	Numeric greater than or equal to.
+... >> ...	Bitwise shift right.
+... >>= ...	Bitwise shift right assignment.
+... ? ... : ...	Condition=if-then-else operator.   ?PAT? One-time pattern match.
+?PATTERN?	One-time pattern match.
 @ARGV	Command line arguments (not including the command name - see $0).
 @INC	List of places to look for perl scripts during do/include/use.
 @_	Parameter array for subroutines. Also used by split unless in array context.
 \\	Creates a reference to whatever follows, like \$var.
 \\0	Octal char, e.g. \\033.
 \\E	Case modification terminator. See \\Q, \\L, and \\U.
-\\L	Lowercase until \\E .
-\\U	Upcase until \\E .
-\\Q	Quote metacharacters until \\E .
+\\L	Lowercase until \\E . See also \l, lc.
+\\U	Upcase until \\E . See also \u, uc.
+\\Q	Quote metacharacters until \\E . See also quotemeta.
 \\a	Alarm character (octal 007).
 \\b	Backspace character (octal 010).
 \\c	Control character, e.g. \\c[ .
 \\e	Escape character (octal 033).
 \\f	Formfeed character (octal 014).
-\\l	Lowercase of next character. See also \\L and \\u,
+\\l	Lowercase the next character. See also \\L and \\u, lcfirst,
 \\n	Newline character (octal 012).
 \\r	Return character (octal 015).
 \\t	Tab character (octal 011).
-\\u	Upcase  of next character. See also \\U and \\l,
+\\u	Upcase the next character. See also \\U and \\l, ucfirst,
 \\x	Hex character, e.g. \\x1b.
-^	Bitwise exclusive or.
-__END__	End of program source.
-__DATA__	End of program source.
+^ ...	Bitwise exclusive or.
+__END__	Ends program source.
+__DATA__	Ends program source.
 __FILE__	Current (source) filename.
 __LINE__	Current line in current source.
 ARGV	Default multi-file input filehandle. <ARGV> is a synonym for <>.
 ARGVOUT	Output filehandle with -i flag.
-BEGIN { block }	Immediately executed (during compilation) piece of code.
-END { block }	Pseudo-subroutine executed after the script finishes.
+BEGIN { ... }	Immediately executed (during compilation) piece of code.
+END { ... }	Pseudo-subroutine executed after the script finishes.
 DATA	Input filehandle for what follows after __END__	or __DATA__.
 accept(NEWSOCKET,GENERICSOCKET)
 alarm(SECONDS)
@@ -4287,20 +4405,20 @@
 chroot(FILENAME)
 close(FILEHANDLE)
 closedir(DIRHANDLE)
-cmp	String compare.
+... cmp ...	String compare.
 connect(SOCKET,NAME)
 continue of { block } continue { block }. Is executed after `next' or at end.
 cos(EXPR)
 crypt(PLAINTEXT,SALT)
-dbmclose(ASSOC_ARRAY)
-dbmopen(ASSOC,DBNAME,MODE)
+dbmclose(%HASH)
+dbmopen(%HASH,DBNAME,MODE)
 defined(EXPR)
-delete($ASSOC{KEY})
+delete($HASH{KEY})
 die(LIST)
 do { ... }|SUBR while|until EXPR	executes at least once
 do(EXPR|SUBR([LIST]))
 dump LABEL
-each(ASSOC_ARRAY)
+each(%HASH)
 endgrent
 endhostent
 endnetent
@@ -4308,7 +4426,7 @@
 endpwent
 endservent
 eof[([FILEHANDLE])]
-eq	String equality.
+... eq ...	String equality.
 eval(EXPR) or eval { BLOCK }
 exec(LIST)
 exit(EXPR)
@@ -4319,7 +4437,7 @@
 for (EXPR;EXPR;EXPR) { ... }
 foreach [VAR] (@ARRAY) { ... }
 fork
-ge	String greater than or equal.
+... ge ...	String greater than or equal.
 getc[(FILEHANDLE)]
 getgrent
 getgrgid(GID)
@@ -4349,17 +4467,17 @@
 gmtime(EXPR)
 goto LABEL
 grep(EXPR,LIST)
-gt	String greater than.
+... gt ...	String greater than.
 hex(EXPR)
 if (EXPR) { ... } [ elsif (EXPR) { ... } ... ] [ else { ... } ] or EXPR if EXPR
 index(STR,SUBSTR[,OFFSET])
 int(EXPR)
 ioctl(FILEHANDLE,FUNCTION,SCALAR)
 join(EXPR,LIST)
-keys(ASSOC_ARRAY)
+keys(%HASH)
 kill(LIST)
 last [LABEL]
-le	String less than or equal.
+... le ...	String less than or equal.
 length(EXPR)
 link(OLDFILE,NEWFILE)
 listen(SOCKET,QUEUESIZE)
@@ -4367,7 +4485,7 @@
 localtime(EXPR)
 log(EXPR)
 lstat(EXPR|FILEHANDLE|VAR)
-lt	String less than.
+... lt ...	String less than.
 m/PATTERN/iogsmx
 mkdir(FILENAME,MODE)
 msgctl(ID,CMD,ARG)
@@ -4375,14 +4493,14 @@
 msgrcv(ID,VAR,SIZE,TYPE.FLAGS)
 msgsnd(ID,MSG,FLAGS)
 my VAR or my (VAR1,...)	Introduces a lexical variable ($VAR, @ARR, or %HASH).
-ne	String inequality.
+... ne ...	String inequality.
 next [LABEL]
 oct(EXPR)
 open(FILEHANDLE[,EXPR])
 opendir(DIRHANDLE,EXPR)
 ord(EXPR)
 pack(TEMPLATE,LIST)
-package	Introduces package context.
+package NAME	Introduces package context.
 pipe(READHANDLE,WRITEHANDLE)
 pop(ARRAY)
 print [FILEHANDLE] [(LIST)]
@@ -4441,7 +4559,7 @@
 srand(EXPR)
 stat(EXPR|FILEHANDLE|VAR)
 study[(SCALAR)]
-sub [NAME [(format)]] { BODY }	or	sub [NAME [(format)]];
+sub [NAME [(format)]] { BODY }	sub NAME [(format)];	sub [(format)] {...}
 substr(EXPR,OFFSET[,LEN])
 symlink(OLDFILE,NEWFILE)
 syscall(LIST)
@@ -4460,23 +4578,73 @@
 unlink(LIST)
 unpack(TEMPLATE,EXPR)
 unshift(ARRAY,LIST)
-until (EXPR) { ... } or EXPR until EXPR
+until (EXPR) { ... }					EXPR until EXPR
 utime(LIST)
-values(ASSOC_ARRAY)
+values(%HASH)
 vec(EXPR,OFFSET,BITS)
 wait
 waitpid(PID,FLAGS)
 wantarray
 warn(LIST)
-while  (EXPR) { ... } or EXPR while EXPR
+while  (EXPR) { ... }					EXPR while EXPR
 write[(EXPR|FILEHANDLE)]
-x	Repeat string or array.
-x=	Repetition assignment.
+... x ...	Repeat string or array.
+x= ...	Repetition assignment.
 y/SEARCHLIST/REPLACEMENTLIST/
-|	Bitwise or.
-||	Logical or.
-~	Unary bitwise complement.
+... | ...	Bitwise or.
+... || ...	Logical or.
+~ ...		Unary bitwise complement.
 #!	OS interpreter indicator. If contains `perl', used for options, and -x.
+AUTOLOAD {...}	Shorthand for `sub AUTOLOAD {...}'.
+CORE::		Prefix to access builtin function if imported sub obscures it.
+SUPER::		Prefix to lookup for a method in @ISA classes.
+DESTROY		Shorthand for `sub DESTROY {...}'.
+... EQ ...	Obsolete synonym of `eq'.
+... GE ...	Obsolete synonym of `ge'.
+... GT ...	Obsolete synonym of `gt'.
+... LE ...	Obsolete synonym of `le'.
+... LT ...	Obsolete synonym of `lt'.
+... NE ...	Obsolete synonym of `ne'.
+abs [ EXPR ]	absolute value
+... and ...		Low-precedence synonym for &&.
+bless REFERENCE [, PACKAGE]	Makes reference into an object of a package.
+chomp		Docs missing
+chr		Docs missing
+else		Part of if/unless {BLOCK} elsif {BLOCK} else {BLOCK}.
+elsif		Part of if/unless {BLOCK} elsif {BLOCK} else {BLOCK}.
+exists	$HASH{KEY}	True if the key exists.
+format		Docs missing
+formline	Docs missing
+glob EXPR	Synonym of <EXPR>.
+lc [ EXPR ]	Returns lowercased EXPR.
+lcfirst [ EXPR ]	Returns EXPR with lower-cased first letter.
+map		Docs missing
+no PACKAGE [SYMBOL1, ...]  Partial reverse for `use'. Runs `unimport' method.
+... not ...		Low-precedence synonym for ! - negation.
+... or ...		Low-precedence synonym for ||.
+pos STRING    Set/Get end-position of the last match over this string, see \\G.
+quotemeta [ EXPR ]	Quote metacharacters.
+qw		Docs missing
+readline FH	Synonym of <FH>.
+readpipe CMD	Synonym of `CMD`.
+ref [ EXPR ]	Type of EXPR when dereferenced.
+sysopen		Docs missing
+tie		Docs missing
+tied		Docs missing
+uc [ EXPR ]	Returns upcased EXPR.
+ucfirst [ EXPR ]	Returns EXPR with upcased first letter.
+untie		Docs missing
+use PACKAGE [SYMBOL1, ...]  Compile-time `require' with consequent `import'.
+... xor ...		Low-precedence synonym for exclusive or.
+prototype \&SUB	Returns prototype of the function given a reference.
+=head1		Top-level heading.
+=head2		Second-level heading.
+=head3		Third-level heading (is there such?).
+=over [ NUMBER ]	Start list.
+=item [ TITLE ]		Start new item in the list.
+=back		End list.
+=cut		Switch from POD to Perl.
+=pod		Switch from Perl to POD.
 ")
 
 (defun cperl-switch-to-doc-buffer ()
@@ -4522,11 +4690,7 @@
 
       (defun cperl-get-help-defer ()
 	(if (not (eq major-mode 'perl-mode)) nil
-	  (let ((cperl-message-on-help-error nil))
+	  (let ((cperl-message-on-help-error nil) (cperl-help-from-timer t))
 	    (cperl-get-help)
 	    (setq cperl-help-shown t))))
       (cperl-lazy-install)))
-
-(provide 'cperl-mode)
-
-;;; cperl-mode.el ends here
--- a/lisp/modes/pascal.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/modes/pascal.el	Mon Aug 13 08:52:56 2007 +0200
@@ -187,7 +187,7 @@
   "*Indentation for case statements.")
 
 (defvar pascal-auto-newline nil
-  "*Non-nil means automatically newline after semicolons and the punctation mark
+  "*Non-nil means automatically newline after semicolons and the punctuation mark
 after an end.")
 
 (defvar pascal-tab-always-indent t
@@ -302,7 +302,7 @@
  pascal-case-indent       (default 2)
     Indentation for case statements.
  pascal-auto-newline      (default nil)
-    Non-nil means automatically newline after semicolons and the punctation mark
+    Non-nil means automatically newline after semicolons and the punctuation mark
     after an end.
  pascal-tab-always-indent (default t)
     Non-nil means TAB in Pascal mode should always reindent the current line,
--- a/lisp/modes/sendmail.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/modes/sendmail.el	Mon Aug 13 08:52:56 2007 +0200
@@ -286,6 +286,30 @@
 ;	(setq mail-alias-modtime modtime
 ;	      mail-aliases t))))
 
+;; Courtesy of Per Abrahamsen <abraham@dina.kvl.dk> in an attempt to make
+;; Emacs and XEmacs less stupid about default mail addresses.
+
+;; We trust the administrator if he has set `mail-host-address'.
+(defcustom query-user-mail-address (not mail-host-address)
+  "If non-nil, prompt the user for his mail address."
+  :group 'message
+  :type 'boolean)
+
+(defun user-mail-address ()
+  "Query the user for his mail address, unless it is already known."
+  (interactive)
+  (when query-user-mail-address
+    (setq user-mail-address
+	  (read-string "Your mail address? " (cons user-mail-address 0)))
+    (setq query-user-mail-address nil)
+    ;; TODO: Run sanity check from Gnus here.
+    (when (y-or-n-p "Save address for future sessions? ")
+      (put 'user-mail-address 'saved-value
+	   (list user-mail-address))
+      (put 'query-user-mail-address 'saved-value '(nil))
+      (custom-save-all)))
+  user-mail-address)
+
 (defun mail-setup (to subject in-reply-to cc replybuffer actions)
   (or mail-default-reply-to
       (setq mail-default-reply-to (getenv "REPLYTO")))
@@ -842,13 +866,8 @@
       (narrow-to-region b e)
       (rmail-maybe-set-message-counters))))
 
-;;; Load VM into the compilation environment but not the load environment.
 (eval-when-compile
- (or (and (boundp 'loading-vm-kludge) loading-vm-kludge)
-     ;; nastiness to avoid circular provide/require dependency nonsense
-     (fboundp 'vm-spool-files)
-     (let ((loading-vm-kludge t))
-       (require 'vm))))
+  (require 'vm-misc))
 
 (defun mail-do-fcc-vm-internal (buffer)
   (or (eq major-mode 'vm-mode) (error "this only works in vm-mode"))
--- a/lisp/mu/mu-cite.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/mu/mu-cite.el	Mon Aug 13 08:52:56 2007 +0200
@@ -6,7 +6,7 @@
 ;;         MINOURA Makoto <minoura@netlaputa.or.jp>
 ;;         Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
 ;; Maintainer: Shuhei KOBAYASHI <shuhei-k@jaist.ac.jp>
-;; Version: $Revision: 1.5 $
+;; Version: $Revision: 1.6 $
 ;; Keywords: mail, news, citation
 
 ;; This file is part of MU (Message Utilities).
@@ -54,7 +54,7 @@
 ;;;
 
 (defconst mu-cite/RCS-ID
-  "$Id: mu-cite.el,v 1.5 1997/02/04 02:36:02 steve Exp $")
+  "$Id: mu-cite.el,v 1.6 1997/03/16 05:55:24 steve Exp $")
 (defconst mu-cite/version (get-version-string mu-cite/RCS-ID))
 
 
@@ -122,8 +122,7 @@
 ;;; @ prefix registration
 ;;;
 
-(defvar mu-cite/registration-file
-  (expand-file-name "~/.mu-cite.el")
+(defvar mu-cite/registration-file (expand-file-name "~/.mu-cite.el")
   "*The name of the user environment file for mu-cite.")
 
 (defvar mu-cite/allow-null-string-registration nil
@@ -132,7 +131,6 @@
 (defvar mu-cite/registration-symbol 'mu-cite/citation-name-alist)
 
 (defvar mu-cite/citation-name-alist nil)
-(load mu-cite/registration-file t t t)
 (or (eq 'mu-cite/citation-name-alist mu-cite/registration-symbol)
     (setq mu-cite/citation-name-alist
 	  (symbol-value mu-cite/registration-symbol))
@@ -148,31 +146,48 @@
 (defun mu-cite/add-citation-name (name from)
   (setq mu-cite/citation-name-alist
         (put-alist from name mu-cite/citation-name-alist))
-  (mu-cite/save-to-file)
+  (mu-cite/save-registration-file)
   )
 
-;; save to file
-(defun mu-cite/save-to-file ()
-  (let* ((filename mu-cite/registration-file)
+;; load/save registration file
+(defun mu-cite/load-registration-file ()
+  (let* ((file mu-cite/registration-file)
+	 (buffer (get-buffer-create " *mu-register*")))
+    (if (file-readable-p file)
+        (unwind-protect
+            (save-excursion
+              (set-buffer buffer)
+              (erase-buffer)
+              (insert-file-contents file)
+              ;; (eval-buffer)
+              (eval-current-buffer))
+          (kill-buffer buffer))
+      )))
+(add-hook 'mu-cite-load-hook (function mu-cite/load-registration-file))
+
+(defun mu-cite/save-registration-file ()
+  (let* ((file mu-cite/registration-file)
 	 (buffer (get-buffer-create " *mu-register*")))
-    (save-excursion
-      (set-buffer buffer)
-      (setq buffer-file-name filename)
-      (erase-buffer)
-      (insert
-       (format ";;; %s\n" (file-name-nondirectory filename)))
-      (insert
-       (format ";;; This file is generated automatically by mu-cite %s.\n\n"
-               mu-cite/version))
-      (insert (format "(setq %s\n      '(" mu-cite/registration-symbol))
-      (insert (mapconcat
-	       (function prin1-to-string)
-	       mu-cite/citation-name-alist "\n        "))
-      (insert "\n        ))\n\n")
-      (insert
-       (format ";;; %s ends here.\n" (file-name-nondirectory filename)))
-      (save-buffer))
-    (kill-buffer buffer)))
+    (unwind-protect
+        (save-excursion
+          (set-buffer buffer)
+          (setq buffer-file-name file)
+          (erase-buffer)
+          (insert ";;; " (file-name-nondirectory file) "\n")
+          (insert ";;; This file is generated automatically by mu-cite "
+                  mu-cite/version "\n\n")
+          (insert "(setq "
+                  (symbol-name mu-cite/registration-symbol)
+                  "\n      '(")
+          (insert (mapconcat
+                   (function prin1-to-string)
+                   mu-cite/citation-name-alist "\n        "))
+          (insert "\n        ))\n\n")
+          (insert ";;; "
+                  (file-name-nondirectory file)
+                  " ends here.\n")
+          (save-buffer))
+      (kill-buffer buffer))))
 
 
 ;;; @ item methods
--- a/lisp/packages/crypt.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/packages/crypt.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1916,7 +1916,7 @@
               (if crypt-dos-has-ctrl-z (replace-match ""))))))))
 
 (defun crypt-unix-to-dos-region (start end)
-  "Converts region from START to END, from dos to unix format.
+  "Converts region from START to END, from unix to dos format.
 Replaces \"\\n\" with \"\\r\\n\" and adds a ^Z at end of file if
 `crypt-dos-has-ctrl-z' is non-nil."
   (save-excursion
--- a/lisp/packages/diff.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/packages/diff.el	Mon Aug 13 08:52:56 2007 +0200
@@ -2,7 +2,7 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;
 ;; File:         diff.el
-;; Version:      $Revision: 1.3 $
+;; Version:      $Revision: 1.4 $
 ;; Author:       This file is based on diff.el by
 ;;               sunpitt!wpmstr!fbresz@Sun.COM 1/27/89.
 ;;               It has been completely rewritten in July 1994 by
@@ -41,7 +41,7 @@
 
 ;; should be in to loaddefs.el now.
 ;;;###autoload
-(defvar diff-switches nil
+(defvar diff-switches "-c"
   "*A list of switches (strings) to pass to the diff program.")
 
 (defvar diff-do-narrow nil
--- a/lisp/packages/func-menu.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/packages/func-menu.el	Mon Aug 13 08:52:56 2007 +0200
@@ -385,9 +385,10 @@
 (defun fume-add-submenu (menu-name submenu before)
   (apply fume-add-submenu (fume-munge-menu-args menu-name submenu before)))
 
+;; this seems to really be `should I try to change the menubar'
 (defconst fume-not-tty
-  (or (and (fboundp 'device-type) (not (eq 'tty (device-type))))
-      (and (symbol-value 'window-system) t))) ; obsolete test
+  (or (featurep 'menubar)     ;; XEmacs
+      (featurep 'menu-bar)))  ;; GNU Emacs  
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;  Customizable Variables  ;;;;;;;;;;;;;;;;;;;;;;;;
--- a/lisp/packages/icomplete.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/packages/icomplete.el	Mon Aug 13 08:52:56 2007 +0200
@@ -4,7 +4,7 @@
 
 ;;; Author: Ken Manheimer <klm@nist.gov>
 ;;; Maintainer: Ken Manheimer <klm@nist.gov>
-;;; Version: $Id: icomplete.el,v 1.1.1.3 1996/12/18 03:53:27 steve Exp $
+;;; Version: $Id: icomplete.el,v 1.2 1997/03/16 05:55:27 steve Exp $
 ;;; Created: Mar 1993 klm@nist.gov - first release to usenet
 ;;; Keywords: help, abbrev
 
@@ -129,17 +129,19 @@
 (defun icomplete-get-keys (func-name)
   "Return the keys `func-name' is bound to as a string."
   (when (commandp func-name)
-    (let* ((sym (intern func-name))
-	   (keys (where-is-internal sym)))
-      (concat "<"
-	      (if keys
-		  (mapconcat 'key-description
-			     (sort '([next] [kp_next] [(control v)])
-				   #'(lambda (x y)
-				       (< (length x) (length y))))
-			     ", ")
-		"Unbound")
-	      ">"))))
+    (save-excursion
+      (let* ((sym (intern func-name))
+	     (buf (set-buffer (window-buffer owindow)))
+	     (keys (where-is-internal sym (current-local-map buf))))
+	(concat "<"
+		(if keys
+		    (mapconcat 'key-description
+			       (sort '([next] [kp_next] [(control v)])
+				     #'(lambda (x y)
+					 (< (length x) (length y))))
+			       ", ")
+		  "Unbound")
+		">")))))
 
 ;;;_ > icomplete-mode (&optional prefix)
 ;;;###autoload
--- a/lisp/packages/jka-compr.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/packages/jka-compr.el	Mon Aug 13 08:52:56 2007 +0200
@@ -828,16 +828,7 @@
 (defun jka-compr-installed-p ()
   "Return non-nil if jka-compr is installed.
 The return value is the entry in `file-name-handler-alist' for jka-compr."
-
-  (let ((fnha file-name-handler-alist)
-	(installed nil))
-
-    (while (and fnha (not installed))
-     (and (eq (cdr (car fnha)) 'jka-compr-handler)
-	   (setq installed (car fnha)))
-      (setq fnha (cdr fnha)))
-
-    installed))
+  (rassq 'jka-compr-handler file-name-handler-alist))
 
 
 ;;; Add the file I/O hook if it does not already exist.
--- a/lisp/packages/time.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/packages/time.el	Mon Aug 13 08:52:56 2007 +0200
@@ -42,39 +42,64 @@
 
 (require 'itimer)
 
-(defvar display-time-compatible nil
-  "*This variable may be set to nil to get the old behaviour of display-time.
-This means no display of a spiffy mail icon or use of the display-time-form-list
-instead of the old display-time-string-form.")
+(defgroup display-time nil
+  "Facilities to display the current time/date/load and a new-mail indicator
+in the XEmacs mode line or echo area."
+  :group 'applications)
 
-(defvar display-time-mail-file nil
+(defcustom display-time-compatible nil 
+  "*This variable may be set to t to get the old behaviour of display-time.
+This means no display of a spiffy mail icon or use of the
+display-time-form-list instead of the old display-time-string-form."
+  :group 'display-time
+  :type 'boolean)
+
+(defcustom display-time-mail-file nil
   "*File name of mail inbox file, for indicating existence of new mail.
 Non-nil and not a string means don't check for mail.  nil means use
-default, which is system-dependent, and is the same as used by Rmail.")
+default, which is system-dependent, and is the same as used by Rmail."
+  :group 'display-time)
 
 ;;;###autoload
-(defvar display-time-day-and-date nil "\
-*Non-nil means \\[display-time] should display day and date as well as time.")
+(defcustom display-time-day-and-date nil
+  "*Non-nil means \\[display-time] should display day,date and time.
+This affects the spec 'date in the variable display-time-form-list."
+  :group 'display-time
+  :type 'boolean)
 
-(defvar display-time-interval 20
-  "*Seconds between updates of time in the mode line.")
+(defcustom display-time-interval 20
+  "*Seconds between updates of time in the mode line."
+  :group 'display-time
+  :type 'integer)
 
-(defvar display-time-24hr-format nil
+(defcustom display-time-24hr-format nil
   "*Non-nil indicates time should be displayed as hh:mm, 0 <= hh <= 23.
-Nil means 1 <= hh <= 12, and an AM/PM suffix is used.")
+Nil means 1 <= hh <= 12, and an AM/PM suffix is used.
+This affects the spec 'time in the variable display-time-form-list."
+  :group 'display-time
+  :type 'boolean)
 
-(defvar display-time-echo-area nil
-  "*If non-nil, display-time will use the echo area instead of the mode line.")
+(defcustom display-time-echo-area nil
+  "*If non-nil, display-time will use the echo area instead of the mode line."
+  :group 'display-time
+  :type 'boolean)
 
 (defvar display-time-string nil)
 
-(defvar display-time-hook nil
-  "*List of functions to be called when the time is updated on the mode line.")
+(defcustom display-time-hook nil
+  "*List of functions to be called when the time is updated on the mode line."
+  :group 'display-time
+  :type 'hook)
 
 (defvar display-time-server-down-time nil
    "Time when mail file's file system was recorded to be down.
 If that file system seems to be up, the value is nil.")
 
+(defcustom display-time-ignore-read-mail nil
+  "*Non-nil means displays the mail icon on any non-empty mailbox."
+  :group 'display-time
+  :type 'boolean)
+
 ;;;###autoload
 (defun display-time ()
   "Display current time, load level, and mail flag in mode line of each buffer.
@@ -116,129 +141,162 @@
   (start-itimer "display-time" 'display-time-function
 		display-time-interval display-time-interval))
 
-(defvar display-time-show-icons-maybe t
-  "Use icons to indicate the mail status if possible")
+(defcustom display-time-show-icons-maybe t
+  "Use icons for time, load and mail status if possible
+and not specified different explicitely"
+  :group 'display-time
+  :type 'boolean)  
 
-(defvar display-time-icons-dir (concat data-directory "time/"))
+(defvar display-time-icons-dir (concat data-directory "time/"))  
 
-(defvar display-time-mail-sign-string " Mail"
-  "The string used as mail indicator in the echo area
+(defcustom display-time-mail-sign-string " Mail" 
+  "The string used as mail indicator in the echo area 
 (and in the modeline if display-time-show-icons-maybe is nil)
-if display-time-echo-area is t")
+if display-time-echo-area is t"
+:group 'display-time
+:type 'string)
 
-(defvar display-time-no-mail-sign-string ""
+(defcustom display-time-no-mail-sign-string ""    
   "The string used as no-mail indicator in the echo area
 (and in the modeline if display-time-show-icons-maybe is nil)
-if display-time-echo-area is t")
- 
-(defvar display-time-mail-sign
-  (progn
-    (let* ((file (concat display-time-icons-dir "letter.xpm"))
-	   (glyph (if (featurep 'xpm) (make-glyph file)
-		    display-time-mail-sign-string))
-	   (ext (make-extent nil nil)))
-      (cons ext glyph)))
-  "A variable holding a cons cell (ext . glyph)
-which gives an indicator for new mail in the modeline") 
+if display-time-echo-area is t"
+:group 'display-time
+:type 'string)
+
+(defcustom display-time-display-pad t
+  "Wether the load indicator is displayed with a trapezoidal \"pad\"
+in the background"
+  :group 'display-time
+  :type 'boolean)
 
-(defvar display-time-no-mail-sign
-    (progn
-    (let* ((file (concat display-time-icons-dir "no-letter.xpm"))
-	   (glyph (if (featurep 'xpm) (make-glyph file)
-		   display-time-no-mail-sign-string))
-	   (ext (make-extent nil nil)))
-      (cons ext glyph)))
-    "A variable holding a cons cell (ext . glyph) which gives
-an indicator for `no mail' in the modeline") 
+(defcustom display-time-load-list
+  (list 0.2 0.5 0.8 1.1 1.8 2.6)
+  "*A list giving six thresholds for the load
+which correspond to the six different icons to be displayed
+as a load indicator"
+  :group 'display-time
+  :type '(list (number :tag "Threshold 1 load")
+	       (number :tag "Threshold 2 load")
+	       (number :tag "Threshold 3 load")
+	       (number :tag "Threshold 4 load")
+	       (number :tag "Threshold 5 load")
+	       (number :tag "Threshold 6 load")))
 
 (defun display-time-string-to-char-list (str)
   (mapcar (function identity) str))
 
-
 (if (featurep 'xpm)
     (progn
-      (setq display-time-1-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "1.xpm"))))
-      (setq display-time-2-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "2.xpm"))))
-      (setq display-time-3-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "3.xpm"))))
-      (setq display-time-4-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "4.xpm"))))
-      (setq display-time-5-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "5.xpm"))))
-      (setq display-time-6-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "6.xpm"))))
-      (setq display-time-7-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "7.xpm"))))
-      (setq display-time-8-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "8.xpm"))))
-      (setq display-time-9-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "9.xpm"))))
-      (setq display-time-0-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "0.xpm"))))
-      (setq display-time-:-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "dp.xpm"))))
-      (setq display-time-load-0.0-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "l-0.0.xpm"))))
-      (setq display-time-load-0.5-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "l-0.5.xpm"))))
-      (setq display-time-load-1.0-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "l-1.0.xpm"))))
-      (setq display-time-load-1.5-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "l-1.5.xpm"))))
-      (setq display-time-load-2.0-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "l-2.0.xpm"))))
-      (setq display-time-load-2.5-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "l-2.5.xpm"))))
-      (setq display-time-load-3.0-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "l-3.0.xpm"))))
-      (setq display-time-am-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "am.xpm"))))
-      (setq display-time-pm-glyph
-	    (cons (make-extent nil nil)
-		  (make-glyph	(concat display-time-icons-dir "pm.xpm"))))
-      )) 
+      (defvar display-time-mail-sign
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "letter.xpm"))))
+      (defvar display-time-no-mail-sign
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "no-letter.xpm"))))
+      (defvar  display-time-1-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "1.xpm"))))
+      (defvar display-time-2-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "2.xpm"))))
+      (defvar display-time-3-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "3.xpm"))))
+      (defvar display-time-4-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "4.xpm"))))
+      (defvar display-time-5-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "5.xpm"))))
+      (defvar display-time-6-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "6.xpm"))))
+      (defvar display-time-7-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "7.xpm"))))
+      (defvar display-time-8-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "8.xpm"))))
+      (defvar display-time-9-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "9.xpm"))))
+      (defvar display-time-0-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "0.xpm"))))
+      (defvar display-time-:-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "dp.xpm"))))
+      (defvar display-time-load-0.0-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-0.0.xpm"))))
+      (defvar display-time-load-0.5-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-0.5.xpm"))))
+      (defvar display-time-load-1.0-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-1.0.xpm"))))
+      (defvar display-time-load-1.5-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-1.5.xpm"))))
+      (defvar display-time-load-2.0-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-2.0.xpm"))))
+      (defvar display-time-load-2.5-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-2.5.xpm"))))
+      (defvar display-time-load-3.0-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-3.0.xpm"))))
+      (defvar display-time-load-0.0-jtl-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-jtl-0.0.xpm"))))
+      (defvar display-time-load-0.5-jtl-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-jtl-0.5.xpm"))))
+      (defvar display-time-load-1.0-jtl-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-jtl-1.0.xpm"))))
+      (defvar display-time-load-1.5-jtl-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-jtl-1.5.xpm"))))
+      (defvar display-time-load-2.0-jtl-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-jtl-2.0.xpm"))))
+      (defvar display-time-load-2.5-jtl-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-jtl-2.5.xpm"))))
+      (defvar display-time-load-3.0-jtl-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "l-jtl-3.0.xpm"))))
+      (defvar display-time-am-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "am.xpm"))))
+      (defvar display-time-pm-glyph
+	(cons (make-extent nil nil)
+	      (make-glyph	(concat display-time-icons-dir "pm.xpm"))))
+      ))
 
 
-(defun display-time-convert-num-to-pics (string)
-  (let ((list (display-time-string-to-char-list string))
-	elem result tmp)
-    (if (not (and display-time-show-icons-maybe
-		  (eq (console-type) 'x)
-		  (not display-time-echo-area))) string
+(defun display-time-can-do-graphical-display (&optional textual)
+  (and display-time-show-icons-maybe
+       (not textual)
+       (eq (console-type) 'x)
+       (featurep 'xpm)
+       (not display-time-echo-area)))
+       
+       
+(defun display-time-convert-num (time-string &optional textual)
+  (let ((list (display-time-string-to-char-list time-string))
+	elem tmp)
+    (if (not (display-time-can-do-graphical-display textual)) time-string 
       (while (setq elem (pop list))
 	(push (eval (intern-soft (concat "display-time-"
 					 (char-to-string elem)
 					 "-glyph"))) tmp))
-      (setq result (reverse tmp))))) 
+      (reverse tmp)))) 
 
-(defvar display-time-load-list
-  (list 0.2 0.5 0.8 1.1 1.8 2.6)
-  "*A list giving six thresholds for the load which correspond
-to the six different icons to be displayed as a load indicator")
-
-(defun display-time-convert-load-to-glyph (n)
-  (let ((load-number (string-to-number n))
+(defun display-time-convert-load (load-string &optional textual)
+  (let ((load-number (string-to-number load-string))
 	(alist (list (cons 0.0 0.0)
 		    (cons 0.5 (car display-time-load-list))
 		    (cons 1.0 (cadr display-time-load-list))
@@ -248,125 +306,192 @@
 		    (cons 3.0 (caddr (cdddr display-time-load-list)))
 		    (cons 100000 100000)))
 	result elem)
-    (if (not (and display-time-show-icons-maybe
-		  (eq (console-type) 'x)
-		  (not display-time-echo-area))) n
+    (if (not (display-time-can-do-graphical-display textual))
+	load-string
       (while (>= load-number (cdr (setq elem (pop alist))))
 	(setq result (eval (intern-soft (concat
 					 "display-time-load-"
 					 (number-to-string (car elem))
+					 (if display-time-display-pad "-jtl")
 					 "-glyph")))))
       result)))
 
-(defun display-time-convert-am-pm (n)
-  (if (not (and display-time-show-icons-maybe
-		(eq (console-type) 'x)
-		(not display-time-echo-area))) n
-    (cond ((equal n "am") display-time-am-glyph)
-	  ((equal n "pm") display-time-pm-glyph))))
+(defun display-time-convert-am-pm (ampm-string &optional textual)
+  (if (not (display-time-can-do-graphical-display textual))
+      ampm-string
+    (cond ((equal ampm-string "am") display-time-am-glyph)
+	  ((equal ampm-string "pm") display-time-pm-glyph))))
 
 
-(defun display-time-mail-sign ()
+(defun display-time-mail-sign (&optional textual)
   "*A function giving back the object indicating 'mail' which
 is the value of display-time-mail-sign when running under X,
 display-time-echo-area is nil and display-time-show-icons-maybe is t.
 It is the value of display-time-mail-sign-string otherwise." 
-  (if (or (not (eq (console-type) 'x))
-	  display-time-echo-area
-	  (not display-time-show-icons-maybe))
+  (if (not (display-time-can-do-graphical-display textual))
       display-time-mail-sign-string
     display-time-mail-sign))
 
-(defun display-time-no-mail-sign ()
+(defun display-time-no-mail-sign (&optional textual)
   "*A function giving back the object indicating 'no mail' which
 is the value of display-time-no-mail-sign when running under X,
 display-time-echo-area is nil and display-time-show-icons-maybe is t.
 It is the value of display-time-no-mail-sign-string otherwise." 
-  (if (or (not (eq (console-type) 'x))
-	  display-time-echo-area
-	  (not display-time-show-icons-maybe))
+  (if (not (display-time-can-do-graphical-display textual))
       display-time-no-mail-sign-string
     display-time-no-mail-sign))
 
-(defvar display-time-form-list
-  (list 'date-compatible 'time-compatible 'load 'mail)
-  "*This list describes the format of the strings/glyphs which are to be
-displayed by display-time. The old variable display-time-string-forms is
-only used if display-time-compatible is non-nil. It is a list consisting of
+(defcustom display-time-form-list
+  (list 'date 'time 'load 'mail)
+  "*This list describes the format of the strings/glyphs
+which are to be displayed by display-time.
+The old variable display-time-string-forms is only used if
+display-time-compatible is non-nil. It is a list consisting of
 strings or any of the following symbols:
 
-date-compatible:    This prints out the date in a manner compatible to
-                    the default value of the obsolete variable 
-                    display-time-string-forms. It respects the variable
-                    display-time-day-and-date. If this is t it will print
-                    out the current date in the form DAYNAME MONTH DAY
-                    otherwise it will print nothing.
+There are three complex specs whose behaviour is changed via
+the setting of various variables 
 
-time-compatible:    This prints out the time in a manner compatible to 
-                    the default value of the obsolete variable
-                    display-time-string-forms. It respects the variable
-                    display-time-24hr-format. If this is t it will print
-                    out the current hours in 24-hour format, if nil the
-                    hours will be printed in 12-hour format and the
-                    minutes will be followed by 'AM' or 'PM'.
+date:          This prints out the date in a manner compatible to
+               the default value of the obsolete variable
+               display-time-string-forms. It respects the variable
+               display-time-day-and-date. If this is t it will print
+               out the current date in the form DAYNAME MONTH DAY
+               otherwise it will print nothing.
+	      
+time:          This prints out the time in a manner compatible to 
+               the default value of the obsolete variable
+               display-time-string-forms. It respects the variable
+               display-time-24hr-format. If this is t it will print
+               out the current hours in 24-hour format, if nil the
+               hours will be printed in 12-hour format and the
+               minutes will be followed by 'AM' or 'PM'.
+	      
+time-text:     The same as above, but will not use a glyph
+	      
+The other specs are simpler, as their meaning is not changed via
+variables.
 
-24-hours:           This prints the hours in 24-hours format
-
-12-hours:           This prints the hours in 12-hours format
+24-hours:      This prints the hours in 24-hours format
+	      
+24-hours-text: The same as above, but will not use a glyph
+	      
+12-hours:      This prints the hours in 12-hours format
+	      
+12-hours-text: The same as above, but will not use a glyph
+	      
+am-pm:         This prints am or pm.
 
-am-pm:              This prints Am or Pm.
-
-dp:                 This prints a \":\", maybe as an icon
-
-minutes:            This prints the minutes.
-
-day:                This prints out the current day as a number. 
-
-dayname:            This prints out today's name.
+Timezone:      This prints out the local timezone
+	      
+am-pm-text:    The same as above, but will not use a glyph
+	      
+minutes:       This prints the minutes.
+	      
+minutes-text:  The same as above, but will not use a glyph
+	      
+day:           This prints out the current day as a number. 
+	      
+dayname:       This prints out today's name.
+	      
+month:         This prints out the current month as a number
+	      
+monthname:     This prints out the current month's name
 
-month:              This prints out the current month as a number
-
-monthname:          This prints out the current month's name
-
-load:               This prints out the system's load.
-
-mail:               This displays a mail indicator. Under X this will 
-                    normally be a small icon which changes depending if 
-                    there is new mail or not.")
+year:          This prints out the current year.
+	      
+load:          This prints out the system's load.
+	      
+load-text:     The same as above, but will not use a glyph
+	      
+mail:          This displays a mail indicator. Under X this will 
+               normally be a small icon which changes depending if 
+               there is new mail or not.
+	      
+mail-text:     The same as above, but will not use a glyph"
+  :group 'display-time
+  :type '(repeat (choice :tag "Toggle Symbol/String"
+			 (const :tag "Date" date)
+			 (const :tag "Time" time)
+			 (const :tag "Time (text)" time-text)
+			 (const :tag "24 hour format" 24-hours)
+			 (const :tag "24 hour format (text)" 24-hours-text)
+			 (const :tag "12 hour format" 12-hours)
+			 (const :tag "12 hour format (text)" 12-hours-text)
+			 (const :tag "AM/PM indicator" am-pm)
+			 (const :tag "AM/PM indicator (text)" am-pm-text)
+			 (const :tag "Timezone" timezone)
+			 (const :tag "Minutes" minutes)
+			 (const :tag "Minutes (text)" minutes-text)
+			 (const :tag "Day" day)
+			 (const :tag "Dayname" dayname)
+			 (const :tag "Month" month)
+			 (const :tag "Monthname" monthname)
+			 (const :tag "Year" year)
+			 (const :tag "Load" load)
+			 (const :tag "Load (text)" load-text)
+			 (const :tag "Mail sign" mail)
+			 (const :tag "Mail sign (text)" mail-text)
+			 (string :tag "String"))))
 
 (defun display-time-evaluate-list ()
   "Evalute the variable display-time-form-list"
   (let ((list display-time-form-list) elem tmp result)
     (while (setq elem (pop list))
       (cond ((stringp elem) (push elem tmp))
-	    ((eq elem 'date-compatible)
+	    ((eq elem 'date)
 	     (push (if display-time-day-and-date
 		       (format "%s %s %s " dayname monthname day) "") tmp))
-	    ((eq elem 'time-compatible)
+	    ((eq elem 'time)
 	     (progn
-	       (push (display-time-convert-num-to-pics
+	       (push (display-time-convert-num
 		      (format "%s:%s"
 			      (if display-time-24hr-format 24-hours 12-hours)
-			      minutes)) tmp)
+			      minutes)) tmp) 
 	       (if (not display-time-24hr-format)
 		   (push (display-time-convert-am-pm am-pm) tmp))))
+	    ((eq elem 'time-text)
+	     (push (display-time-convert-num
+		    (format "%s:%s"
+			   (if display-time-24hr-format 24-hours 12-hours)
+			   minutes) t) tmp)
+	     (if (not display-time-24hr-format)
+		 (push (display-time-convert-am-pm am-pm t) tmp)))
 	    ((eq elem 'day) (push day tmp))
 	    ((eq elem 'dayname) (push dayname tmp))
 	    ((eq elem 'month) (push month tmp))
 	    ((eq elem 'monthname) (push monthname tmp))
-	    ((eq elem '24-hours) (push (display-time-convert-num-to-pics 24-hours)
-				       tmp))
-	    ((eq elem '12-hours) (push (display-time-convert-num-to-pics 12-hours)
-				       tmp))
-	    ((eq elem 'minutes)  (push (display-time-convert-num-to-pics minutes)
-				       tmp))
-	    ((eq elem 'am-pm) (push am-pm tmp))
-	    ((eq elem 'dp) (push (display-time-convert-num-to-pics ":") tmp))
+	    ((eq elem '24-hours)
+	     (push (display-time-convert-num 24-hours) tmp))
+	    ((eq elem 'year)
+	     (push year tmp))
+	    ((eq elem '24-hours-text)
+	     (push (display-time-convert-num 24-hours t) tmp))
+	    ((eq elem '12-hours)
+	     (push (display-time-convert-num 12-hours) tmp))
+	    ((eq elem '12-hours-text)
+	     (push (display-time-convert-num 12-hours t) tmp))
+	    ((eq elem 'minutes)
+	     (push (display-time-convert-num minutes) tmp))
+	    ((eq elem 'minutes-text)
+	     (push (display-time-convert-num minutes t) tmp))
+	    ((eq elem 'am-pm)
+	     (push (display-time-convert-am-pm am-pm) tmp))
+	    ((eq elem 'am-pm-text)
+	     (push (display-time-convert-am-pm am-pm t) tmp))
+	    ((eq elem 'timezone)
+	     (push time-zone tmp))
 	    ((eq elem 'load)
-	     (push (display-time-convert-load-to-glyph load) tmp))
-	    ((eq elem 'mail) (push (if mail (display-time-mail-sign)
-				     (display-time-no-mail-sign))
-				   tmp))))
+	     (push (display-time-convert-load load) tmp))
+	    ((eq elem 'load-text)
+	     (push (display-time-convert-load load t) tmp))
+	    ((eq elem 'mail)
+	     (push (if mail (display-time-mail-sign)
+		     (display-time-no-mail-sign)) tmp))
+	    ((eq elem 'mail-text)
+	     (push (if mail (display-time-mail-sign t)
+		     (display-time-no-mail-sign t)) tmp))
+	    ))
     ;; We know that we have a list containing only of strings if
     ;; display-time-echo-area is t. So we construct this string from
     ;; the list. Else we just reverse the list and give it as result.
@@ -461,7 +586,7 @@
 	    (save-window-excursion
 	      (select-window (minibuffer-window))
 	      (erase-buffer)
-	      (indent-to (- (screen-width) (length display-time-string) 1))
+	      (indent-to (- (frame-width) (length display-time-string) 1))
 	      (insert display-time-string)
 	      (message (buffer-string)))))
     (force-mode-line-update)
@@ -469,8 +594,13 @@
     (sit-for 0)))
 
 (defun display-time-file-nonempty-p (file)
-  (and (file-exists-p file)
-       (< 0 (nth 7 (file-attributes (file-chase-links file))))))
+  (let ((attributes (file-attributes (file-chase-links file))))
+    (and attributes
+	 (< 0 (nth 7 attributes))
+	 (or display-time-ignore-read-mail
+	     (> (car (nth 5 attributes)) (car (nth 4 attributes)))
+	     (and (= (car (nth 5 attributes)) (car (nth 4 attributes)))
+		  (> (cadr (nth 5 attributes)) (cadr (nth 4 attributes))))))))
 
 (provide 'time)
 
--- a/lisp/packages/vc.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/packages/vc.el	Mon Aug 13 08:52:56 2007 +0200
@@ -114,9 +114,8 @@
   "Maximum number of saved comments in the comment ring.")
 
 ;;; XEmacs - This is dumped into loaddefs.el already.
-;; Not any more! -sb
-(defvar diff-switches "-c"
-  "*A string or list of strings specifying switches to be passed to diff.")
+;(defvar diff-switches "-c"
+;  "*A string or list of strings specifying switches to be passed to diff.")
 
 ;;;###autoload
 (defvar vc-checkin-hook nil
--- a/lisp/prim/about.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/prim/about.el	Mon Aug 13 08:52:56 2007 +0200
@@ -158,7 +158,7 @@
     (toggle-read-only 0)
 
     (let ((rest (if who-to-load (list who-to-load)
-		  '(steve mrb cthomp wing stig jwz mly vladimir baw piper bw wmperry kyle larsi)))
+		  '(steve mrb cthomp wing stig jwz mly vladimir baw piper bw wmperry kyle larsi jens)))
 	  (got-error nil))
       (while rest
 	(let* ((who (car rest))
@@ -202,33 +202,35 @@
 (defun about-add-mosaic ()
   (goto-char (point-min))
   (about-load-mosaic)
-
+)
   ;; HERE TO PLACE ADDITIONAL MUGSHOTS
 
-  (goto-char (point-max))
-  (insert "\n   ")
+;; This is losing badly to a redisplay glitch, and it doesn't scale up.
+
+;  (goto-char (point-max))
+;  (insert "\n   ")
 
-  (let ((rest '(steve mrb cthomp wing stig linebreak jwz mly vladimir linebreak baw piper bw linebreak wmperry kyle larsi))
-	(got-error nil))
-    (while rest
-      (if (eq (car rest) 'linebreak)
-	  (insert "\n\n  ")
-	(let* ((who (car rest))
-	       (b (get-buffer "About XEmacs"))
-	       (p (symbol-value-in-buffer who b nil)))
-	  (or (glyphp p) (setq p nil))
-	  (and p
-	       (let ((e (make-extent (point) (point))))
-		 (set-extent-begin-glyph e p)
-		 (set-extent-property e 'keymap about-xref-map)
-		 (set-extent-property e 'xref who)))
-	  (insert " ")
-	  (sit-for 0)))
-      (setq rest (cdr rest)))
-    (insert "\n")
-    (goto-char (point-min))
-    (or got-error (message nil)))
-  )
+;  (let ((rest '(steve mrb cthomp wing stig linebreak jwz mly vladimir linebreak baw piper bw linebreak wmperry kyle larsi jens))
+;	(got-error nil))
+;    (while rest
+;      (if (eq (car rest) 'linebreak)
+;	  (insert "\n\n  ")
+;	(let* ((who (car rest))
+;	       (b (get-buffer "About XEmacs"))
+;	       (p (symbol-value-in-buffer who b nil)))
+;	  (or (glyphp p) (setq p nil))
+;	  (and p
+;	       (let ((e (make-extent (point) (point))))
+;		 (set-extent-begin-glyph e p)
+;		 (set-extent-property e 'keymap about-xref-map)
+;		 (set-extent-property e 'xref who)))
+;	  (insert " ")
+;	  (sit-for 0)))
+;      (setq rest (cdr rest)))
+;    (insert "\n")
+;    (goto-char (point-min))
+;    (or got-error (message nil)))
+;  )
 
 (defun about-xemacs-xref ()
   (interactive "@")
@@ -293,6 +295,7 @@
 			       ((eq xref 'mrb) "About Martin Buchholz")
 			       ((eq xref 'kyle) "About Kyle Jones")
 			       ((eq xref 'larsi) "About Lars Magne Ingebrigtsen")
+			       ((eq xref 'jens) "About Jens Lautenbacher")
 			       ((eq xref 'others) "About Everyone")
 			       ((eq xref 'features) "New XEmacs Features")
 			       ((eq xref 'history) "XEmacs History")
@@ -770,6 +773,25 @@
 	  (insert " to go back to the previous page.\n")
 	  )
 
+	 ((eq xref 'jens)
+	  (about-face "Jens Lautenbacher" 'bold)
+	  (insert " <jens@lemcbed.lem.uni-karlsruhe.de>
+
+	Jens did the artwork for graphics added to XEmacs 20.1 and 19.15.
+
+	I'm currently working at the University of Karlsruhe, Germany
+	on getting my diploma thesis on Supersymmetry (uuh, that's
+	physics) done.  After that (and all the remaining exams) I'm
+	looking forward to make a living out of my hobbies --
+	computers (and graphics). But because I have no deadline for
+	the exams and XEmacs betas are released at a high rate this
+	may take some time...")
+
+	  (insert "\n\n\tClick ")
+	  (about-xref "here" prev-page "Return to previous page")
+	  (insert " to go back to the previous page.\n")
+	  )
+
 	 ((eq xref 'others)
 	  (insert "Click ")
 	  (about-xref "here" 'about "Return to previous page")
@@ -841,6 +863,15 @@
 	  CERN and stuff.
 	  See \"http://www.ifi.uio.no/~larsi/\"
 
+	") (about-xref "Jens Lautenbacher" 'jens "Find out more about Jens Lautenbacher") (insert " <jens@lemcbed.lem.uni-karlsruhe.de>
+	I'm currently working at the University of Karlsruhe, Germany
+	on getting my diploma thesis on Supersymmetry (uuh, that's
+	physics) done.  After that (and all the remaining exams) I'm
+	looking forward to make a living out of my hobbies --
+	computers (and graphics). But because I have no deadline for
+	the exams and XEmacs betas are released at a high rate this
+	may take some time...
+
 	Darrell Kindred <Darrell.Kindred@cmu.edu>
 	  Unofficial maintainer of the xemacs-beta list of extant
 	  bugs and contributor of an extraordinary number of
--- a/lisp/prim/auto-autoloads.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/prim/auto-autoloads.el	Mon Aug 13 08:52:56 2007 +0200
@@ -959,6 +959,17 @@
 
 ;;;***
 
+;;;### (autoloads (widget-delete widget-create) "wid-edit" "custom/wid-edit.el")
+
+(autoload 'widget-create "wid-edit" "\
+Create widget of TYPE.  
+The optional ARGS are additional keyword arguments." nil nil)
+
+(autoload 'widget-delete "wid-edit" "\
+Delete WIDGET." nil nil)
+
+;;;***
+
 ;;;### (autoloads (edebug-eval-top-level-form def-edebug-spec) "edebug" "edebug/edebug.el")
 
 (autoload 'def-edebug-spec "edebug" "\
@@ -3150,7 +3161,7 @@
 information already added.  You just need to add a description of the
 problem, including a reproducible test case and send the message.
 
-To see what version of cc-mode you are running, enter `\\[c-version]'.
+To see what version of CC Mode you are running, enter `\\[c-version]'.
 
 The hook variable `c-mode-hook' is run with no args, if that value is
 bound and has a non-nil value.  Also the hook `c-mode-common-hook' is
@@ -3167,7 +3178,7 @@
 of the problem, including a reproducible test case, and send the
 message.
 
-To see what version of cc-mode you are running, enter `\\[c-version]'.
+To see what version of CC Mode you are running, enter `\\[c-version]'.
 
 The hook variable `c++-mode-hook' is run with no args, if that
 variable is bound and has a non-nil value.  Also the hook
@@ -3184,7 +3195,7 @@
 of the problem, including a reproducible test case, and send the
 message.
 
-To see what version of cc-mode you are running, enter `\\[c-version]'.
+To see what version of CC Mode you are running, enter `\\[c-version]'.
 
 The hook variable `objc-mode-hook' is run with no args, if that value
 is bound and has a non-nil value.  Also the hook `c-mode-common-hook'
@@ -3201,7 +3212,7 @@
 of the problem, including a reproducible test case and send the
 message.
 
-To see what version of cc-mode you are running, enter `\\[c-version]'.
+To see what version of CC Mode you are running, enter `\\[c-version]'.
 
 The hook variable `java-mode-hook' is run with no args, if that value
 is bound and has a non-nil value.  Also the common hook
@@ -3213,10 +3224,13 @@
 \\{java-mode-map}" t nil)
 
 (autoload 'c-set-style "cc-mode" "\
-Set cc-mode variables to use one of several different indentation styles.
+Set CC Mode variables to use one of several different indentation styles.
 STYLENAME is a string representing the desired style from the list of
 styles described in the variable `c-style-alist'.  See that variable
-for details of setting up styles." t nil)
+for details of setting up styles.
+
+The variable `c-indentation-style' always contains the buffer's current
+style name." t nil)
 
 (fset 'set-c-style           'c-set-style)
 
@@ -3660,7 +3674,7 @@
 ;;;### (autoloads (ksh-mode) "ksh-mode" "modes/ksh-mode.el")
 
 (autoload 'ksh-mode "ksh-mode" "\
-ksh-mode $Revision: 1.11 $ - Major mode for editing (Bourne, Korn or Bourne again)
+ksh-mode $Revision: 1.13 $ - Major mode for editing (Bourne, Korn or Bourne again)
 shell scripts.
 Special key bindings and commands:
 \\{ksh-mode-map}
@@ -4027,7 +4041,7 @@
  pascal-case-indent       (default 2)
     Indentation for case statements.
  pascal-auto-newline      (default nil)
-    Non-nil means automatically newline after semicolons and the punctation mark
+    Non-nil means automatically newline after semicolons and the punctuation mark
     after an end.
  pascal-tab-always-indent (default t)
     Non-nil means TAB in Pascal mode should always reindent the current line,
@@ -4932,7 +4946,7 @@
 
 (autoload 'vhdl-mode "vhdl-mode" "\
 Major mode for editing VHDL code.
-vhdl-mode $Revision: 1.11 $
+vhdl-mode $Revision: 1.13 $
 To submit a problem report, enter `\\[vhdl-submit-bug-report]' from a
 vhdl-mode buffer.  This automatically sets up a mail buffer with version
 information already added.  You just need to add a description of the
@@ -5784,7 +5798,7 @@
 
 ;;;### (autoloads (diff-backup diff) "diff" "packages/diff.el")
 
-(defvar diff-switches nil "\
+(defvar diff-switches "-c" "\
 *A list of switches (strings) to pass to the diff program.")
 
 (autoload 'diff "diff" "\
@@ -7359,8 +7373,7 @@
 
 ;;;### (autoloads (display-time) "time" "packages/time.el")
 
-(defvar display-time-day-and-date nil "\
-*Non-nil means \\[display-time] should display day and date as well as time.")
+(defcustom display-time-day-and-date nil "*Non-nil means \\[display-time] should display day,date and time.\nThis affects the spec 'date in the variable display-time-form-list." :group 'display-time :type 'boolean)
 
 (autoload 'display-time "time" "\
 Display current time, load level, and mail flag in mode line of each buffer.
@@ -9479,28 +9492,6 @@
 
 ;;;***
 
-;;;### (autoloads (y-or-n-p-with-timeout yes-or-no-p-with-timeout with-timeout with-timeout-internal) "with-timeout" "utils/with-timeout.el")
-
-(autoload 'with-timeout-internal "with-timeout" nil nil nil)
-
-(autoload 'with-timeout "with-timeout" "\
-Usage: (with-timeout (seconds &rest timeout-forms) &rest body)
-This is just like progn, but if the given number of seconds expires before
-the body returns, then timeout-forms are evaluated and returned instead.
-The body won't be interrupted in the middle of a computation: the check for 
-the timer expiration only occurs when body does a redisplay, or prompts the
-user for input, or calls accept-process-output." nil 'macro)
-
-(autoload 'yes-or-no-p-with-timeout "with-timeout" "\
-Just like yes-or-no-p, but will time out after TIMEOUT seconds
-if the user has not yes answered, returning DEFAULT-VALUE." nil nil)
-
-(autoload 'y-or-n-p-with-timeout "with-timeout" "\
-Just like y-or-n-p, but will time out after TIMEOUT seconds
-if the user has not yes answered, returning DEFAULT-VALUE." nil nil)
-
-;;;***
-
 ;;;### (autoloads (xbm-button-create) "xbm-button" "utils/xbm-button.el")
 
 (autoload 'xbm-button-create "xbm-button" "\
@@ -9775,17 +9766,6 @@
 
 ;;;***
 
-;;;### (autoloads (widget-delete widget-create) "wid-edit" "w3/wid-edit.el")
-
-(autoload 'widget-create "wid-edit" "\
-Create widget of TYPE.  
-The optional ARGS are additional keyword arguments." nil nil)
-
-(autoload 'widget-delete "wid-edit" "\
-Delete WIDGET." nil nil)
-
-;;;***
-
 ;;;### (autoloads (font-menu-weight-constructor font-menu-size-constructor font-menu-family-constructor reset-device-font-menus) "x-font-menu" "x11/x-font-menu.el")
 
 (defvar font-menu-ignore-scaled-fonts t "\
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/prim/custom-load.el	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,106 @@
+(put 'gnus-start 'custom-loads '("gnus-group" "gnus-int" "gnus-start" "gnus-util" "gnus"))
+(put 'extensions 'custom-loads '("wid-edit"))
+(put 'message 'custom-loads '("message" "sendmail"))
+(put 'gnus-score-expire 'custom-loads '("gnus-kill" "gnus-score"))
+(put 'gnus-score-kill 'custom-loads '("gnus-kill"))
+(put 'gnus-message 'custom-loads '("message"))
+(put 'gnus-summary-sort 'custom-loads '("gnus-sum"))
+(put 'nnmail-procmail 'custom-loads '("nnmail"))
+(put 'widgets 'custom-loads '("wid-browse" "wid-edit"))
+(put 'environment 'custom-loads '("cus-edit"))
+(put 'gnus-article-buttons 'custom-loads '("gnus-art"))
+(put 'gnus-extract-archive 'custom-loads '("gnus-uu"))
+(put 'gnus-article-headers 'custom-loads '("gnus-art" "gnus-sum"))
+(put 'gnus-score 'custom-loads '("gnus-nocem" "gnus"))
+(put 'gnus-summary-various 'custom-loads '("gnus-sum"))
+(put 'gnus-topic 'custom-loads '("gnus-topic"))
+(put 'gnus-article-emphasis 'custom-loads '("gnus-art"))
+(put 'earcon 'custom-loads '("earcon"))
+(put 'gnus-group-foreign 'custom-loads '("gnus-group"))
+(put 'gnus-article-washing 'custom-loads '("gnus-art"))
+(put 'mail 'custom-loads '("gnus" "message"))
+(put 'gnus-summary-exit 'custom-loads '("gnus-sum"))
+(put 'comint-input-face 'custom-loads '("comint"))
+(put 'gnus-article-saving 'custom-loads '("gnus-art"))
+(put 'gnus-extract-view 'custom-loads '("gnus-sum" "gnus-uu"))
+(put 'gnus-group-listing 'custom-loads '("gnus-group"))
+(put 'gnus-summary 'custom-loads '("gnus-sum" "gnus"))
+(put 'message-headers 'custom-loads '("auto-autoloads" "message"))
+(put 'gnus-group-select 'custom-loads '("gnus-sum"))
+(put 'display-time 'custom-loads '("time" "auto-autoloads"))
+(put 'hypermedia 'custom-loads '("wid-edit"))
+(put 'w3-advanced 'custom-loads '("w3-cus"))
+(put 'w3-menus 'custom-loads '("w3-cus"))
+(put 'gnus-summary-mail 'custom-loads '("gnus-sum"))
+(put 'gnus-score-default 'custom-loads '("gnus-score" "gnus-sum"))
+(put 'nnmail-expire 'custom-loads '("nnmail"))
+(put 'gnus-thread 'custom-loads '("gnus-sum"))
+(put 'gnus-nocem 'custom-loads '("gnus-nocem"))
+(put 'gnus-threading 'custom-loads '("gnus-sum"))
+(put 'applications 'custom-loads '("cus-edit" "time"))
+(put 'gnus-summary-maneuvering 'custom-loads '("gnus-sum"))
+(put 'gnus-extract 'custom-loads '("gnus" "gnus-uu"))
+(put 'help 'custom-loads '("cus-edit"))
+(put 'nnmail-split 'custom-loads '("nnmail"))
+(put 'gnus-article-various 'custom-loads '("gnus-art" "gnus-sum"))
+(put 'message-sending 'custom-loads '("auto-autoloads" "message"))
+(put 'w3-files 'custom-loads '("w3-cus"))
+(put 'widget-browse 'custom-loads '("wid-browse"))
+(put 'gnus-article 'custom-loads '("gnus-art" "gnus-cite"))
+(put 'gnus 'custom-loads '("gnus-art" "gnus-async" "gnus-cache" "gnus-demon" "gnus-dup" "gnus-eform" "gnus-uu" "gnus-win" "gnus" "nnmail"))
+(put 'gnus-treading 'custom-loads '("gnus-sum"))
+(put 'nnmail 'custom-loads '("nnmail"))
+(put 'gnus-article-hiding 'custom-loads '("gnus-art" "gnus-sum"))
+(put 'customize 'custom-loads '("wid-edit" "custom" "cus-face" "cus-edit"))
+(put 'w3-printing 'custom-loads '("w3-cus"))
+(put 'nnmail-duplicate 'custom-loads '("nnmail"))
+(put 'gnus-summary-visual 'custom-loads '("gnus-sum" "gnus"))
+(put 'w3-images 'custom-loads '("w3-cus"))
+(put 'gnus-group-various 'custom-loads '("gnus-group"))
+(put 'nnmail-retrieve 'custom-loads '("nnmail"))
+(put 'message-interface 'custom-loads '("message"))
+(put 'gnus-group 'custom-loads '("gnus-topic" "gnus"))
+(put 'programming 'custom-loads '("cus-edit"))
+(put 'gnus-article-signature 'custom-loads '("gnus-art"))
+(put 'dired 'custom-loads '("dired-faces"))
+(put 'gnus-duplicate 'custom-loads '("gnus-dup"))
+(put 'gnus-score-adapt 'custom-loads '("gnus-score"))
+(put 'nnmail-various 'custom-loads '("nnmail"))
+(put 'nnmail-files 'custom-loads '("nnmail"))
+(put 'gnus-asynchronous 'custom-loads '("gnus-async"))
+(put 'gnus-visual 'custom-loads '("earcon" "gnus-art" "gnus-picon" "gnus" "smiley"))
+(put 'message-forwarding 'custom-loads '("message"))
+(put 'message-news 'custom-loads '("message"))
+(put 'gnus-edit-form 'custom-loads '("gnus-eform"))
+(put 'external 'custom-loads '("cus-edit"))
+(put 'gnus-files 'custom-loads '("gnus" "nnmail"))
+(put 'gnus-cite 'custom-loads '("gnus-cite"))
+(put 'gnus-demon 'custom-loads '("gnus-demon"))
+(put 'gnus-summary-choose 'custom-loads '("gnus-sum"))
+(put 'development 'custom-loads '("cus-edit"))
+(put 'gnus-windows 'custom-loads '("gnus-win"))
+(put 'message-mail 'custom-loads '("auto-autoloads" "message"))
+(put 'message-various 'custom-loads '("auto-autoloads" "message"))
+(put 'gnus-group-levels 'custom-loads '("gnus-group"))
+(put 'languages 'custom-loads '("cus-edit"))
+(put 'gnus-summary-format 'custom-loads '("gnus-sum"))
+(put 'gnus-score-decay 'custom-loads '("gnus-score"))
+(put 'gnus-extract-post 'custom-loads '("gnus-uu"))
+(put 'faces 'custom-loads '("cus-edit" "wid-edit" "gnus" "message"))
+(put 'gnus-various 'custom-loads '("gnus-sum"))
+(put 'gnus-article-highlight 'custom-loads '("gnus-art"))
+(put 'emacs 'custom-loads '("cus-edit" "dired-faces"))
+(put 'news 'custom-loads '("gnus" "message"))
+(put 'w3-hooks 'custom-loads '("w3-cus"))
+(put 'message-insertion 'custom-loads '("auto-autoloads" "message"))
+(put 'wp 'custom-loads '("cus-edit"))
+(put 'message-faces 'custom-loads '("message"))
+(put 'gnus-score-files 'custom-loads '("gnus-score"))
+(put 'gnus-summary-marks 'custom-loads '("gnus-sum"))
+(put 'picons 'custom-loads '("gnus-picon"))
+(put 'nnmail-prepare 'custom-loads '("nnmail"))
+(put 'w3-display 'custom-loads '("w3-cus"))
+(put 'w3-parsing 'custom-loads '("w3-cus"))
+(put 'message-buffers 'custom-loads '("message"))
+(put 'editing 'custom-loads '("cus-edit"))
+(put 'gnus-article-mime 'custom-loads '("gnus-art" "gnus-sum"))
--- a/lisp/prim/help.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/prim/help.el	Mon Aug 13 08:52:56 2007 +0200
@@ -908,8 +908,8 @@
 	(princ (format ".\n  -- loads from \"%s\"" file-name) stream))
     (if home
 	(princ (format ".\n  -- loaded from %s" home)))
-    (princ ".")
-    (terpri)
+    (princ "." stream)
+    (terpri stream)
     (cond (kbd-macro-p
 	   (princ "These characters are executed:\n\n\t" stream)
 	   (princ (key-description def) stream)
@@ -938,7 +938,7 @@
 		 (progn
 		   (princ doc stream)
 		   (or (eq ?\n (aref doc (1- (length doc))))
-		       (terpri)))))))))
+		       (terpri stream)))))))))
 
 
 (defun describe-function-arglist (function)
@@ -1140,20 +1140,52 @@
         (message "%s is not on any keys" definition)))
   nil)
 
-(defun locate-library (library &optional nosuffix)
-  "Show the full path name of XEmacs library LIBRARY.
+;; Synched with Emacs 19.35
+(defun locate-library (library &optional nosuffix path interactive-call)
+  "Show the precise file name of Emacs library LIBRARY.
 This command searches the directories in `load-path' like `M-x load-library'
 to find the file that `M-x load-library RET LIBRARY RET' would load.
 Optional second arg NOSUFFIX non-nil means don't add suffixes `.elc' or `.el'
-to the specified name LIBRARY (a la calling `load' instead of `load-library')."
-  (interactive "sLocate library: \nP")
-  ;; XEmacs: We have the nifty `locate-file' so we use it.
-  (let ((file (locate-file library load-path (if nosuffix nil ".elc:.el:"))))
-    (when (interactive-p)
-      (if file
-	  (message "Library is file %s" file)
-	(message "No library %s in search path" library)))
-    file))
+to the specified name LIBRARY.
+
+If the optional third arg PATH is specified, that list of directories
+is used instead of `load-path'."
+  (interactive (list (read-string "Locate library: ")
+                     nil nil
+                     t))
+  (let (result)
+    (catch 'answer
+      (mapcar
+       (lambda (dir)
+         (mapcar
+          (lambda (suf)
+            (let ((try (expand-file-name (concat library suf) dir)))
+              (and (file-readable-p try)
+                   (null (file-directory-p try))
+                   (progn
+                     (setq result try)
+                     (throw 'answer try)))))
+          (if nosuffix
+              '("")
+            (let ((basic '(".elc" ".el" ""))
+                  (compressed '(".Z" ".gz" "")))
+              ;; If autocompression mode is on,
+              ;; consider all combinations of library suffixes
+              ;; and compression suffixes.
+              (if (rassq 'jka-compr-handler file-name-handler-alist)
+                  (apply 'nconc
+                         (mapcar (lambda (compelt)
+                                   (mapcar (lambda (baselt)
+                                             (concat baselt compelt))
+                                           basic))
+                                 compressed))
+                basic)))))
+       (or path load-path)))
+    (and interactive-call
+         (if result
+             (message "Library is file %s" result)
+           (message "No library %s in search path" library)))
+    result))
 
 ;; Functions ported from C into Lisp in XEmacs
 
--- a/lisp/prim/itimer.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/prim/itimer.el	Mon Aug 13 08:52:56 2007 +0200
@@ -45,7 +45,7 @@
 ;;
 ;; See the doc strings of these functions for more information.
 
-(defvar itimer-version "1.03"
+(defvar itimer-version "1.04"
   "Version number of the itimer package.")
 
 (defvar itimer-list nil
@@ -183,7 +183,7 @@
 
 (defun itimer-is-idle (itimer)
   "Returns non-nil if ITIMER is an idle timer.
-Normal timers eexpire after a set interval.  Idle timers expire
+Normal timers expire after a set interval.  Idle timers expire
 only after Emacs has been idle for a specific interval.  ``Idle''
 means no command events within the interval."
   (check-itimer itimer)
@@ -220,7 +220,7 @@
     ;; timeout value would expire before we would normally
     ;; wakeup, wakeup now and recompute a new wakeup time.
     (or (and (< value itimer-next-wakeup)
-	     (get-itimer (itimer-name itimer))
+	     (and (itimer-name itimer) (get-itimer (itimer-name itimer)))
 	     (progn (itimer-driver-wakeup)
 		    (setcar (cdr itimer) value)
 		    (itimer-driver-wakeup)
@@ -694,24 +694,25 @@
 	;; allow keyboard quit to occur, but catch and report it.
 	;; provide the variable `current-itimer' in case the function
 	;; is interested.
-	(condition-case condition-data
-	    (save-match-data
-	      (let* ((current-itimer itimer)
-		     (quit-flag nil)
-		     (inhibit-quit nil)
-		     itimer itimers time-elapsed)
-		(if (itimer-uses-arguments current-itimer)
-		    (apply (itimer-function current-itimer)
-			   (itimer-function-arguments current-itimer))
-		  (funcall (itimer-function current-itimer)))))
-	  (error (message "itimer \"%s\" signaled: %s" (itimer-name itimer)
-			  (prin1-to-string condition-data)))
-	  (quit (message "itimer \"%s\" quit" (itimer-name itimer))))
-	;; restart the itimer if we should, otherwise delete it.
-	(if (null (itimer-restart itimer))
-	    (delete-itimer itimer)
-	  (set-itimer-value-internal itimer (itimer-restart itimer))
-	  (setq next-wakeup (min next-wakeup (itimer-value itimer)))))
+	(unwind-protect
+	    (condition-case condition-data
+		(save-match-data
+		  (let* ((current-itimer itimer)
+			 (quit-flag nil)
+			 (inhibit-quit nil)
+			 itimer itimers time-elapsed)
+		    (if (itimer-uses-arguments current-itimer)
+			(apply (itimer-function current-itimer)
+			       (itimer-function-arguments current-itimer))
+		      (funcall (itimer-function current-itimer)))))
+	      (error (message "itimer \"%s\" signaled: %s" (itimer-name itimer)
+			      (prin1-to-string condition-data)))
+	      (quit (message "itimer \"%s\" quit" (itimer-name itimer))))
+	  ;; restart the itimer if we should, otherwise delete it.
+	  (if (null (itimer-restart itimer))
+	      (delete-itimer itimer)
+	    (set-itimer-value-internal itimer (itimer-restart itimer))
+	    (setq next-wakeup (min next-wakeup (itimer-value itimer))))))
       (setq itimers (cdr itimers)))
     ;; if user is editing itimers, update displayed info
     (if (eq major-mode 'itimer-edit-mode)
@@ -728,8 +729,11 @@
 	     (process-send-string itimer-process "3\n"))
     ;; if there are no active itimers, return quickly.
     (if itimer-list
-	(setq itimer-next-wakeup
-	      (itimer-run-expired-timers (string-to-int string)))
+	(let ((wakeup nil))
+	  (unwind-protect
+	      (setq wakeup (itimer-run-expired-timers (string-to-int string)))
+	    (and (null wakeup) (process-send-string process "1\n")))
+	  (setq itimer-next-wakeup wakeup))
       (setq itimer-next-wakeup 600))
     ;; tell itimer-process when to wakeup again
     (process-send-string itimer-process
@@ -818,10 +822,12 @@
   (let* ((inhibit-quit t)
 	 (now (current-time))
 	 (elapsed (itimer-time-difference now itimer-timer-last-wakeup))
-	 sleep)
-    (setq itimer-timer-last-wakeup now
-	  sleep (itimer-run-expired-timers elapsed)
-	  itimer-next-wakeup sleep
+	 (sleep nil))
+    (setq itimer-timer-last-wakeup now)
+    (unwind-protect
+	(setq sleep (itimer-run-expired-timers elapsed))
+      (and (null sleep) (add-timeout 1 'itimer-timer-driver nil nil)))
+    (setq itimer-next-wakeup sleep
 	  itimer-timer (add-timeout sleep 'itimer-timer-driver nil nil))))
 
 (defun itimer-driver-start ()
--- a/lisp/prim/loadup.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/prim/loadup.el	Mon Aug 13 08:52:56 2007 +0200
@@ -205,6 +205,7 @@
        (load-gc "energize/energize-load.el"))
      (when (featurep 'sparcworks)
        (load-gc "sunpro/sunpro-load.el"))
+     (load-gc "custom-load")
      (fmakunbound 'load-gc)
      )) ;; end of call-with-condition-handler
 
--- a/lisp/prim/modeline.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/prim/modeline.el	Mon Aug 13 08:52:56 2007 +0200
@@ -293,32 +293,34 @@
 
 (defun modeline-minor-mode-menu (event)
   (interactive "e")
-  (popup-menu-and-execute-in-window
-   (cons (format "Minor Mode Commands for %S:"
-		 (buffer-name (event-buffer event)))
-	 (apply 'nconc
-		(mapcar
-		 #'(lambda (x)
-		     (let* ((toggle-sym (car x))
-			    (toggle-fun
-			     (or (get toggle-sym
-				      'modeline-toggle-function)
-				 (and (fboundp toggle-sym)
-				      (commandp toggle-sym)
-				      toggle-sym))))
-		       (if (not toggle-fun) nil
-			 (list (vector
-				(concat (if (and (boundp toggle-sym)
-						 (symbol-value toggle-sym))
-					    "turn off " "turn on ")
-					(if (symbolp toggle-fun)
-					    (symbol-name toggle-fun)
-					  (symbol-name toggle-sym)))
-				
-				toggle-fun
-				t)))))
-		 minor-mode-alist)))
-   event))
+  (save-excursion
+    (set-buffer (event-buffer event))
+    (popup-menu-and-execute-in-window
+     (cons (format "Minor Mode Commands for %S:"
+		   (buffer-name (event-buffer event)))
+	   (apply 'nconc
+		  (mapcar
+		   #'(lambda (x)
+		       (let* ((toggle-sym (car x))
+			      (toggle-fun
+			       (or (get toggle-sym
+					'modeline-toggle-function)
+				   (and (fboundp toggle-sym)
+					(commandp toggle-sym)
+					toggle-sym))))
+			 (if (not toggle-fun) nil
+			   (list (vector
+				  (concat (if (and (boundp toggle-sym)
+						   (symbol-value toggle-sym))
+					      "turn off " "turn on ")
+					  (if (symbolp toggle-fun)
+					      (symbol-name toggle-fun)
+					    (symbol-name toggle-sym)))
+
+				  toggle-fun
+				  t)))))
+		   minor-mode-alist)))
+     event)))
 
 (defvar modeline-minor-mode-map (make-sparse-keymap 'modeline-minor-mode-map)
   "Keymap consulted for mouse-clicks on the minor-mode modeline list.")
--- a/lisp/prim/mouse.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/prim/mouse.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1048,7 +1048,9 @@
   (if zmacs-regions
       (funcall 'default-mouse-track-cleanup-extents-hook)
     (let ((extent default-mouse-track-extent)
-	  (func #'(lambda (e) (set-extent-face e 'primary-selection))))
+	  (func #'(lambda (e)
+		    (and (extent-live-p e)
+			 (set-extent-face e 'primary-selection)))))
       (add-hook 'pre-command-hook 'default-mouse-track-cleanup-extents-hook)
       (if (consp extent)		; rectangle-p
 	  (mapcar func extent)
--- a/lisp/prim/simple.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/prim/simple.el	Mon Aug 13 08:52:56 2007 +0200
@@ -2400,7 +2400,8 @@
   (auto-fill-mode 1))
 
 (defun set-fill-column (arg)
-  "Set `fill-column' to current column, or to argument if given.
+  "Set `fill-column' to specified argument.
+Just \\[universal-argument] as argument means to use the current column
 The variable `fill-column' has a separate value for each buffer."
   (interactive "_P") ; XEmacs
   (cond ((integerp arg)
--- a/lisp/prim/startup.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/prim/startup.el	Mon Aug 13 08:52:56 2007 +0200
@@ -849,8 +849,8 @@
 (defun startup-splash-frame-body ()
   `("\n" ,(emacs-version) "\n"
     ,@(if (string-match "beta" emacs-version)
-	  `( (face (bold blue) ( "This is an Experimental version of XEmacs."
-				 "Type " (key describe-beta)
+	  `( (face (bold blue) ( "This is an Experimental version of XEmacs. "
+				 " Type " (key describe-beta)
 				 " to see what this means.\n")))
 	`( "\n"))
     (face bold-italic "\
@@ -893,7 +893,7 @@
     "To get out of XEmacs, type " (key save-buffers-kill-emacs) ".\n"
     "Type " (key help-with-tutorial) " for a tutorial on using XEmacs.\n"
     "Type " (key info) " to enter Info, "
-    "which you can use to read online documentation.\n\n"
+    "which you can use to read online documentation.\n"
     (face (bold red) ( "\
 For tips and answers to frequently asked questions, see the XEmacs FAQ.
 \(It's on the Help menu, or type " (key xemacs-local-faq) " [a capital F!].\)"))))
@@ -1216,6 +1216,13 @@
 		    )
 		  ))
 
+    ;; 1997/03/06 by Jeff Miller <jmiller@bayserve.net>
+    ;; initialize 'site-directory'.  This is the site-lisp dir used by 
+    ;; XEmacs
+     (if site-lisp
+        (setq site-directory (file-name-as-directory site-lisp))
+         )
+
     ;; If running from the build directory, always prefer the exec-directory
     ;; that is here over the one that came from paths.h.
     (if (or (and (null exec-directory) lib-src)
--- a/lisp/psgml/psgml-html.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/psgml/psgml-html.el	Mon Aug 13 08:52:56 2007 +0200
@@ -77,10 +77,10 @@
     "  </head>\n"
     "\n"
     "  <body>\n"
-    "      <h1>" (s title) "</h1>\n\n"
+    "    <h1>" (s title) "</h1>\n\n"
     p
-    "\n\n      <hr>\n"
-    "      <address>" html-helper-address-string "</address>\n"
+    "\n\n    <hr>\n"
+    "    <address>" html-helper-address-string "</address>\n"
     (html-helper-return-created-string)
     html-helper-timestamp-start
     html-helper-timestamp-end
--- a/lisp/tl/emu-xemacs.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/tl/emu-xemacs.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,14 +1,14 @@
 ;;; emu-xemacs.el --- emu API implementation for XEmacs
 
 ;; Copyright (C) 1995 Free Software Foundation, Inc.
-;; Copyright (C) 1995,1996 MORIOKA Tomohiko
+;; Copyright (C) 1995,1996,1997 MORIOKA Tomohiko
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Version:
-;;	$Id: emu-xemacs.el,v 1.3 1997/03/09 02:37:47 steve Exp $
+;;	$Id: emu-xemacs.el,v 1.4 1997/03/16 05:55:39 steve Exp $
 ;; Keywords: emulation, compatibility, XEmacs
 
-;; This file is part of emu.
+;; This file is part of XEmacs.
 
 ;; This program is free software; you can redistribute it and/or
 ;; modify it under the terms of the GNU General Public License as
@@ -27,7 +27,7 @@
 
 ;;; Code:
 
-;;; @ text property
+;;; @ face
 ;;;
 
 (or (fboundp 'face-list)
@@ -42,23 +42,9 @@
 (or (face-differs-from-default-p 'underline)
     (set-face-underline-p 'underline t))
 
-(or (fboundp 'tl:set-text-properties)
-    (defun tl:set-text-properties (start end props &optional buffer)
-      (if (or (null buffer) (bufferp buffer))
-	  (if props
-	      (while props
-		(put-text-property 
-		 start end (car props) (nth 1 props) buffer)
-		(setq props (nthcdr 2 props)))
-	    (remove-text-properties start end ())
-	    )))
-    )
 
-(defun tl:add-text-properties (start end properties &optional object)
-  (add-text-properties start end
-		       (append properties (list 'highlight t))
-		       object)
-  )
+;;; @ overlay
+;;;
 
 (defalias 'tl:make-overlay 'make-extent)
 (defalias 'tl:overlay-put 'set-extent-property)
--- a/lisp/tl/emu.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/tl/emu.el	Mon Aug 13 08:52:56 2007 +0200
@@ -3,7 +3,7 @@
 ;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version: $Id: emu.el,v 1.3 1997/02/16 01:29:29 steve Exp $
+;; Version: $Id: emu.el,v 1.4 1997/03/16 05:55:39 steve Exp $
 ;; Keywords: emulation, compatibility, NEmacs, MULE, Emacs/mule, XEmacs
 
 ;; This file is part of emu.
@@ -36,7 +36,19 @@
 	       ))
 	 )))
 
+(defmacro defmacro-maybe (name &rest everything-else)
+  (or (and (fboundp name)
+	   (not (get name 'defmacro-maybe))
+	   )
+      (` (or (fboundp (quote (, name)))
+	     (progn
+	       (defmacro (, name) (,@ everything-else))
+	       (put (quote (, name)) 'defmacro-maybe t)
+	       ))
+	 )))
+
 (put 'defun-maybe 'lisp-indent-function 'defun)
+(put 'defmacro-maybe 'lisp-indent-function 'defun)
 
 
 (or (boundp 'emacs-major-version)
@@ -122,17 +134,18 @@
 	  default-mime-charset)))
 
 
-;;; @ EMACS 19.29 emulation
+;;; @ Emacs 19.29 emulation
 ;;;
 
 (defvar path-separator ":"
   "Character used to separate concatenated paths.")
 
-(defun-maybe buffer-substring-no-properties (beg end)
-  "Return the text from BEG to END, without text properties, as a string.
-\[emu.el; EMACS 19.29 emulating function]"
-  (let ((string (buffer-substring beg end)))
-    (tl:set-text-properties 0 (length string) nil string)
+(defun-maybe buffer-substring-no-properties (start end)
+  "Return the characters of part of the buffer, without the text properties.
+The two arguments START and END are character positions;
+they can be in either order. [Emacs 19.29 emulating function]"
+  (let ((string (buffer-substring start end)))
+    (set-text-properties 0 (length string) nil string)
     string))
 
 (defun-maybe match-string (num &optional string)
@@ -141,7 +154,7 @@
  Value is nil if NUMth pair didn't match, or there were less than NUM pairs.
 Zero means the entire text matched by the whole regexp or whole string.
 STRING should be given if the last search was by `string-match' on STRING.
-\[emu.el; EMACS 19.29 emulating function]"
+\[Emacs 19.29 emulating function]"
   (if (match-beginning num)
       (if string
 	  (substring string (match-beginning num) (match-end num))
@@ -163,21 +176,21 @@
 	)
       ))
 
+
+;;; @ Emacs 19.30 emulation
+;;;
+
 ;; This function was imported Emacs 19.30.
 (defun-maybe add-to-list (list-var element)
   "Add to the value of LIST-VAR the element ELEMENT if it isn't there yet.
 If you want to use `add-to-list' on a variable that is not defined
 until a certain package is loaded, you should put the call to `add-to-list'
 into a hook function that will be run only after loading the package.
-\[emu.el; EMACS 19.30 emulating function]"
+\[Emacs 19.30 emulating function]"
   (or (member element (symbol-value list-var))
       (set list-var (cons element (symbol-value list-var)))
       ))
 
-
-;;; @ EMACS 19.30 emulation
-;;;
-
 (cond ((fboundp 'insert-file-contents-literally)
        )
       ((boundp 'file-name-handler-alist)
@@ -188,7 +201,7 @@
 to advanced Emacs features, such as file-name-handlers, format decoding,
 find-file-hooks, etc.
   This function ensures that none of these modifications will take place.
-\[emu.el; Emacs 19.30 emulating function]"
+\[Emacs 19.30 emulating function]"
 	 (let (file-name-handler-alist)
 	   (insert-file-contents filename visit beg end replace)
 	   ))
@@ -198,29 +211,27 @@
        ))
 
 
-;;; @ EMACS 19.31 emulation
+;;; @ Emacs 19.31 emulation
 ;;;
 
 (defun-maybe buffer-live-p (object)
   "Return non-nil if OBJECT is a buffer which has not been killed.
 Value is nil if OBJECT is not a buffer or if it has been killed.
-\[emu.el; EMACS 19.31 emulating function]"
+\[Emacs 19.31 emulating function]"
   (and object
        (get-buffer object)
        (buffer-name (get-buffer object))
        ))
 
-(or (fboundp 'save-selected-window)
-    ;; This function was imported Emacs 19.33.
-    (defmacro save-selected-window (&rest body)
-      "Execute BODY, then select the window that was selected before BODY.
-\[emu.el; EMACS 19.31 emulating function]"
-      (list 'let
-	    '((save-selected-window-window (selected-window)))
-	    (list 'unwind-protect
-		  (cons 'progn body)
-		  (list 'select-window 'save-selected-window-window)))) 
-    )
+;; This macro was imported Emacs 19.33.
+(defmacro-maybe save-selected-window (&rest body)
+  "Execute BODY, then select the window that was selected before BODY.
+\[Emacs 19.31 emulating function]"
+  (list 'let
+	'((save-selected-window-window (selected-window)))
+	(list 'unwind-protect
+	      (cons 'progn body)
+	      (list 'select-window 'save-selected-window-window))))
 
 
 ;;; @ XEmacs emulation
@@ -228,7 +239,7 @@
 
 (defun-maybe functionp (obj)
   "Returns t if OBJ is a function, nil otherwise.
-\[emu.el; XEmacs emulating function]"
+\[XEmacs emulating function]"
   (or (subrp obj)
       (byte-code-function-p obj)
       (and (symbolp obj)(fboundp obj))
--- a/lisp/tl/file-detect.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/tl/file-detect.el	Mon Aug 13 08:52:56 2007 +0200
@@ -4,7 +4,7 @@
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Version:
-;;	$Id: file-detect.el,v 1.5 1997/03/09 02:37:47 steve Exp $
+;;	$Id: file-detect.el,v 1.6 1997/03/16 05:55:39 steve Exp $
 ;; Keywords: install, module
 
 ;; This file is part of tl (Tiny Library).
@@ -117,31 +117,40 @@
 	(setq paths (cdr paths))
 	))))
 
+(defvar exec-suffix-list '("")
+  "*List of suffixes for executable.")
+
+(defun exec-installed-p (file &optional paths suffixes)
+  "Return absolute-path of FILE if FILE exists in PATHS.
+If PATHS is omitted, `exec-path' is used.
+If suffixes is omitted, `exec-suffix-list' is used. [file-detect.el]"
+  (or paths
+      (setq paths exec-path)
+      )
+  (or suffixes
+      (setq suffixes exec-suffix-list)
+      )
+  (catch 'tag
+    (while paths
+      (let ((stem (expand-file-name file (car paths)))
+	    (sufs suffixes)
+	    )
+	(while sufs
+	  (let ((file (concat stem (car sufs))))
+	    (if (file-exists-p file)
+		(throw 'tag file)
+	      ))
+	  (setq sufs (cdr sufs))
+	  ))
+      (setq paths (cdr paths))
+      )))
+
 (defun module-installed-p (module &optional paths)
   "Return t if module is provided or exists in PATHS.
 If PATHS is omitted, `load-path' is used. [file-detect.el]"
   (or (featurep module)
-      (let ((name (symbol-name module)))
-	(if (null paths)
-	    (setq paths load-path)
-	  )
-	(catch 'tag
-	  (while paths
-	    (let ((file (expand-file-name name (car paths))))
-	      (let ((elc-file (concat file ".elc")))
-		(if (file-exists-p elc-file)
-		    (throw 'tag elc-file)
-		  ))
-	      (let ((el-file (concat file ".el")))
-		(if (file-exists-p el-file)
-		    (throw 'tag el-file)
-		  ))
-	      (if (file-exists-p file)
-		  (throw 'tag file)
-		)
-	      )
-	    (setq paths (cdr paths))
-	    )))))
+      (exec-installed-p (symbol-name module) load-path '(".elc" ".el"))
+      ))
 
 
 ;;; @ end
--- a/lisp/tl/filename.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/tl/filename.el	Mon Aug 13 08:52:56 2007 +0200
@@ -3,7 +3,7 @@
 ;; Copyright (C) 1996 MORIOKA Tomohiko
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version: $Id: filename.el,v 1.2 1996/12/29 00:15:09 steve Exp $
+;; Version: $Id: filename.el,v 1.3 1997/03/16 05:55:39 steve Exp $
 ;; Keywords: string, file name
 
 ;; This file is part of tl (Tiny Library).
@@ -43,7 +43,7 @@
 
 (defvar filename-filters
   (nconc
-   (and (file-installed-p "kakasi" exec-path)
+   (and (exec-installed-p "kakasi")
 	'(filename-japanese-to-roman-string)
 	)
    '(filename-special-filter
--- a/lisp/tm/gnus-charset.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/tm/gnus-charset.el	Mon Aug 13 08:52:56 2007 +0200
@@ -5,7 +5,7 @@
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1996/8/6
 ;; Version:
-;;	$Id: gnus-charset.el,v 1.3 1997/01/04 21:20:10 steve Exp $
+;;	$Id: gnus-charset.el,v 1.4 1997/03/16 05:55:40 steve Exp $
 ;; Keywords: news, MIME, multimedia, multilingual, encoded-word
 
 ;; This file is not part of GNU Emacs yet.
@@ -149,7 +149,7 @@
      ))
   (defun gnus-prepare-save-mail-function ()
     (setq file-coding-system *noconv*
-	  coding-system-for-write 'no-conversion)
+	  buffer-file-coding-system 'no-conversion)
     )
   (add-hook 'nnmail-prepare-save-mail-hook
 	    'gnus-prepare-save-mail-function)
--- a/lisp/tm/gnus-mime.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/tm/gnus-mime.el	Mon Aug 13 08:52:56 2007 +0200
@@ -4,7 +4,7 @@
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1996/8/6
-;; Version: $Revision: 1.6 $
+;; Version: $Revision: 1.7 $
 ;; Keywords: news, MIME, multimedia, multilingual, encoded-word
 
 ;; This file is not part of GNU Emacs yet.
@@ -33,7 +33,7 @@
 ;;;
 
 (defconst gnus-mime-RCS-ID
-  "$Id: gnus-mime.el,v 1.6 1997/03/09 02:37:48 steve Exp $")
+  "$Id: gnus-mime.el,v 1.7 1997/03/16 05:55:40 steve Exp $")
 
 (defconst gnus-mime-version
   (get-version-string gnus-mime-RCS-ID))
@@ -65,30 +65,6 @@
 
 (require 'gnus)
 (require 'gnus-charset)
-(eval-when-compile
- (require 'gnus-sum))
-
-;;; @ for tm-partial
-;;;
-
-(defun gnus-mime-partial-preview-function ()
-  (gnus-summary-preview-mime-message (gnus-summary-article-number))
-  )
-
-(call-after-loaded
- 'tm-partial
- (function
-  (lambda ()
-    (set-atype 'mime/content-decoding-condition
-	       '((type . "message/partial")
-		 (method . mime-article/grab-message/partials)
-		 (major-mode . gnus-original-article-mode)
-		 (summary-buffer-exp . gnus-summary-buffer)
-		 ))
-    (set-alist 'tm-partial/preview-article-method-alist
-	       'gnus-original-article-mode
-	       'gnus-mime-partial-preview-function)
-    )))
 
 
 ;;; @ end
--- a/lisp/tm/gnus-sum-mime.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/tm/gnus-sum-mime.el	Mon Aug 13 08:52:56 2007 +0200
@@ -5,7 +5,7 @@
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1996/8/6
 ;; Version:
-;;	$Id: gnus-sum-mime.el,v 1.4 1997/02/02 05:06:18 steve Exp $
+;;	$Id: gnus-sum-mime.el,v 1.5 1997/03/16 05:55:40 steve Exp $
 ;; Keywords: news, MIME, multimedia, multilingual, encoded-word
 
 ;; This file is not part of GNU Emacs yet.
@@ -96,6 +96,29 @@
   (function gnus-summary-scroll-down))
 
 
+;;; @ for tm-partial
+;;;
+
+(defun gnus-mime-partial-preview-function ()
+  (gnus-summary-preview-mime-message (gnus-summary-article-number))
+  )
+
+(call-after-loaded
+ 'tm-partial
+ (function
+  (lambda ()
+    (set-atype 'mime/content-decoding-condition
+	       '((type . "message/partial")
+		 (method . mime-article/grab-message/partials)
+		 (major-mode . gnus-original-article-mode)
+		 (summary-buffer-exp . gnus-summary-buffer)
+		 ))
+    (set-alist 'tm-partial/preview-article-method-alist
+	       'gnus-original-article-mode
+	       'gnus-mime-partial-preview-function)
+    )))
+
+
 ;;; @ end
 ;;;
 
--- a/lisp/tm/tm-def.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/tm/tm-def.el	Mon Aug 13 08:52:56 2007 +0200
@@ -3,7 +3,7 @@
 ;; Copyright (C) 1995,1996,1997 Free Software Foundation, Inc.
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
-;; Version: $Id: tm-def.el,v 1.5 1997/02/16 01:29:30 steve Exp $
+;; Version: $Id: tm-def.el,v 1.6 1997/03/16 05:55:41 steve Exp $
 ;; Keywords: mail, news, MIME, multimedia, definition
 
 ;; This file is part of tm (Tools for MIME).
@@ -118,12 +118,12 @@
   "Create a button between FROM and TO with callback FUNC and data DATA."
   (and tm:button-face
        (tl:overlay-put (tl:make-overlay from to) 'face tm:button-face))
-  (tl:add-text-properties from to
-			  (append (and tm:mouse-face
-				       (list 'mouse-face tm:mouse-face))
-				  (list 'tm-callback func)
-				  (and data (list 'tm-data data))
-				  ))
+  (add-text-properties from to
+		       (append (and tm:mouse-face
+				    (list 'mouse-face tm:mouse-face))
+			       (list 'tm-callback func)
+			       (and data (list 'tm-data data))
+			       ))
   )
 
 (defvar tm:mother-button-dispatcher nil)
--- a/lisp/tm/tm-ew-d.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/tm/tm-ew-d.el	Mon Aug 13 08:52:56 2007 +0200
@@ -9,7 +9,7 @@
 ;; Original: 1992/07/20 ENAMI Tsugutomo's `mime.el'.
 ;;	Renamed: 1993/06/03 to tiny-mime.el.
 ;;	Renamed: 1995/10/03 from tiny-mime.el. (split off encoder)
-;; Version: $Revision: 1.4 $
+;; Version: $Revision: 1.5 $
 ;; Keywords: encoded-word, MIME, multilingual, header, mail, news
 
 ;; This file is part of tm (Tools for MIME).
@@ -42,7 +42,7 @@
 ;;;
 
 (defconst tm-ew-d/RCS-ID
-  "$Id: tm-ew-d.el,v 1.4 1997/02/02 05:06:19 steve Exp $")
+  "$Id: tm-ew-d.el,v 1.5 1997/03/16 05:55:41 steve Exp $")
 (defconst mime/eword-decoder-version (get-version-string tm-ew-d/RCS-ID))
 
 
@@ -199,10 +199,10 @@
             (condition-case err
                 (mime/decode-encoded-text charset encoding text must-unfold)
               (error
-               (and (tl:add-text-properties 0 (length word)
-                                            (and tm:warning-face
-                                                 (list 'face tm:warning-face))
-                                            word)
+               (and (add-text-properties 0 (length word)
+					 (and tm:warning-face
+					      (list 'face tm:warning-face))
+					 word)
                     word)))
             ))
       word))
--- a/lisp/tm/tm-image.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/tm/tm-image.el	Mon Aug 13 08:52:56 2007 +0200
@@ -7,7 +7,7 @@
 ;;         Dan Rich <drich@morpheus.corp.sgi.com>
 ;; Maintainer: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1995/12/15
-;; Version: $Id: tm-image.el,v 1.5 1997/02/16 01:29:33 steve Exp $
+;; Version: $Id: tm-image.el,v 1.6 1997/03/16 05:55:42 steve Exp $
 
 ;; Keywords: image, picture, X-Face, MIME, multimedia, mail, news
 
@@ -90,7 +90,7 @@
        ;;
        ;; X-Face
        ;;
-       (if (file-installed-p uncompface-program exec-path)
+       (if (exec-installed-p uncompface-program)
 	   (add-hook 'mime-viewer/content-header-filter-hook
 		     'x-face-decode-message-header)
 	 )
--- a/lisp/tm/tm-play.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/tm/tm-play.el	Mon Aug 13 08:52:56 2007 +0200
@@ -4,7 +4,7 @@
 
 ;; Author: MORIOKA Tomohiko <morioka@jaist.ac.jp>
 ;; Created: 1995/9/26 (separated from tm-view.el)
-;; Version: $Id: tm-play.el,v 1.5 1997/03/09 02:37:51 steve Exp $
+;; Version: $Id: tm-play.el,v 1.6 1997/03/16 05:55:43 steve Exp $
 ;; Keywords: mail, news, MIME, multimedia
 
 ;; This file is part of tm (Tools for MIME).
@@ -424,9 +424,7 @@
 ;;; @ rot13-47
 ;;;
 
-(condition-case nil
-    (require 'view-less)
-  (error (require 'view)))
+(require 'view)
 
 (defconst mime-view-text/plain-mode-map (copy-keymap view-mode-map))
 (define-key mime-view-text/plain-mode-map
--- a/lisp/utils/autoload.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/utils/autoload.el	Mon Aug 13 08:52:56 2007 +0200
@@ -292,9 +292,11 @@
 		    (forward-line 1)))
 		  (if dofiles
 		      (setq funlist (cdr funlist)))))))
-	(unless visited
+	;;(unless visited
 	    ;; We created this buffer, so we should kill it.
-	    (kill-buffer (current-buffer)))
+	    ;; Customize needs it later, we don't want to read the file
+	    ;; in twice.
+	    ;;(kill-buffer (current-buffer)))
 	(set-buffer outbuf)
 	(setq output-end (point-marker))))
     (if t ;; done-any
@@ -332,6 +334,30 @@
 A .el file can set this in its local variables section to make its
 autoloads go somewhere else.")
 
+(defvar generated-custom-file
+  (expand-file-name "../lisp/prim/custom-load.el" data-directory)
+  "*File `update-file-autoloads' puts customization into.")
+
+;; Written by Per Abrahamsen
+(defun autoload-snarf-defcustom (file)
+  "Snarf all customizations in the current buffer."
+  (let ((visited (get-file-buffer file)))
+    (save-excursion
+      (set-buffer (or visited (find-file-noselect file)))
+      (when (and file (string-match "\\`\\(.*\\)\\.el\\'" file))
+	(goto-char (point-min))
+	(condition-case nil
+	    (let ((name (file-name-nondirectory (match-string 1 file))))
+	      (while t
+		(let ((expr (read (current-buffer))))
+		  (when (and (listp expr)
+			     (memq (car expr) '(defcustom defface defgroup)))
+		    (eval expr)
+		    (put (nth 1 expr) 'custom-where name)))))
+	  (error nil)))
+      (unless (buffer-modified-p)
+	(kill-buffer (current-buffer))))))
+
 ;;;###autoload
 (defun update-file-autoloads (file)
   "Update the autoloads for FILE in `generated-autoload-file'
@@ -370,9 +396,10 @@
 	  (goto-char (point-max))))	; Append.
 
       ;; Add in new sections for file
-      (generate-file-autoloads file))
+      (generate-file-autoloads file)
+      (autoload-snarf-defcustom file))
 
-      (when (interactive-p) (save-buffer))))
+    (when (interactive-p) (save-buffer))))
 
 ;;;###autoload
 (defun update-autoloads-here ()
@@ -458,6 +485,32 @@
       (unless noninteractive
 	(save-buffer)))))
 
+;; Based on code from Per Abrahamsen
+(defun autoload-save-customization ()
+  (save-excursion
+    (set-buffer (find-file-noselect generated-custom-file))
+    (erase-buffer)
+    (insert
+     (with-output-to-string
+      (mapatoms (lambda (symbol)
+		  (let ((members (get symbol 'custom-group))
+			item where found)
+		    (when members
+		      (princ "(put '")
+		      (princ symbol)
+		      (princ " 'custom-loads '(")
+		      (while members
+			(setq item (car (car members))
+			      members (cdr members)
+			      where (get item 'custom-where))
+			(unless (or (null where)
+				    (member where found))
+			  (when found
+			    (princ " "))
+			  (prin1 where)
+			  (push where found)))
+		      (princ "))\n")))))))))
+
 ;;;###autoload
 (defun batch-update-autoloads ()
   "Update the autoloads for the files or directories on the command line.
@@ -479,6 +532,7 @@
        ((file-exists-p arg)
 	(update-file-autoloads arg))
        (t (error "No such file or directory: %s" arg))))
+    (autoload-save-customization)
     (save-some-buffers t)
     (message "Done")
     (kill-emacs 0)))
--- a/lisp/utils/with-timeout.el	Mon Aug 13 08:52:30 2007 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-;;; with-timeout.el --- timeout hackery
-
-;; Copyright (C) 1992 Free Software Foundation, Inc.
-;; Keywords: extensions
-
-;; This file is part of XEmacs.
-
-;; XEmacs is free software; you can redistribute it and/or modify it
-;; under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
-;; any later version.
-
-;; XEmacs is distributed in the hope that it will be useful, but
-;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-;; General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with XEmacs; see the file COPYING.  If not, write to the 
-;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-;; Boston, MA 02111-1307, USA.
-
-;;; Synched up with: Not in FSF.
-
-(defun with-timeout-timer (tag)
-  ;; I'm pretty sure the condition-case isn't really necessary here,
-  ;; but it doesn't hurt.
-  (condition-case () (throw tag nil) (no-catch nil)))
-
-;;;###autoload
-(defun with-timeout-internal (with-timeout-seconds with-timeout-tag
-                               with-timeout-body with-timeout-forms)
-  (let ((with-timeout-timeout nil))
-    (unwind-protect
-         (progn
-           (setq with-timeout-timeout (add-timeout with-timeout-seconds
-                                                   'with-timeout-timer
-                                                   with-timeout-tag))
-           (let ((value (catch with-timeout-tag
-                          (prog1 (funcall with-timeout-body)
-                            (setq with-timeout-tag nil)))))
-             (if with-timeout-tag
-                 (funcall with-timeout-forms)
-		 value)))
-      (if with-timeout-timeout
-          (disable-timeout with-timeout-timeout)))))
-
-;;;###autoload
-(defmacro with-timeout (seconds-and-timeout-forms &rest body)
-  "Usage: (with-timeout (seconds &rest timeout-forms) &rest body)
-This is just like progn, but if the given number of seconds expires before
-the body returns, then timeout-forms are evaluated and returned instead.
-The body won't be interrupted in the middle of a computation: the check for 
-the timer expiration only occurs when body does a redisplay, or prompts the
-user for input, or calls accept-process-output."
-  (let ((seconds (car seconds-and-timeout-forms))
-	(timeout-forms (cdr seconds-and-timeout-forms)))
-    (` (with-timeout-internal (, seconds) '(, (make-symbol "_with_timeout_"))
-                              #'(lambda () (progn (,@ body)))
-                              #'(lambda () (progn (,@ timeout-forms)))))))
-
-(put 'with-timeout 'lisp-indent-function 1)
-
-;;;###autoload
-(defun yes-or-no-p-with-timeout (timeout prompt &optional default-value)
-  "Just like yes-or-no-p, but will time out after TIMEOUT seconds
-if the user has not yes answered, returning DEFAULT-VALUE."
-  (with-timeout (timeout
-		 (message (concat prompt "(yes or no) Timeout to "
-				  (if default-value "Yes" "No")))
-		 default-value)
-    (yes-or-no-p prompt)))
-
-;;;###autoload
-(defun y-or-n-p-with-timeout (timeout prompt &optional default-value)
-  "Just like y-or-n-p, but will time out after TIMEOUT seconds
-if the user has not yes answered, returning DEFAULT-VALUE."
-  (with-timeout (timeout
-		 (message (concat prompt "(yes or no) Timeout to "
-				  (if default-value "Yes" "No")))
-		 default-value)
-    (y-or-n-p prompt)))
--- a/lisp/version.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/version.el	Mon Aug 13 08:52:56 2007 +0200
@@ -26,7 +26,7 @@
 (defconst emacs-version "19.15" "\
 Version numbers of this version of Emacs.")
 
-(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta98)")))
+(setq emacs-version (purecopy (concat emacs-version " XEmacs Lucid (beta99)")))
 
 (defconst emacs-major-version
   (progn (or (string-match "^[0-9]+" emacs-version)
--- a/lisp/viper/viper.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/viper/viper.el	Mon Aug 13 08:52:56 2007 +0200
@@ -8,7 +8,7 @@
 
 ;; Copyright (C) 1994, 1995, 1996, 1997 Free Software Foundation, Inc.
 
-(defconst viper-version "2.93 of February 25, 1997"
+(defconst viper-version "2.93 of March 9, 1997"
   "The current version of Viper")
 
 ;; This file is part of GNU Emacs.
@@ -607,7 +607,9 @@
 		   ;; expert
 		   (define-key vip-insert-basic-map "\C-j" nil)
 		 ;; novice
-		 (define-key vip-insert-basic-map "\C-j" 'vip-autoindent))))
+		 (define-key vip-insert-basic-map "\C-j" 'vip-autoindent)))
+	   (define-key vip-insert-basic-map "\C-m" nil)
+	   (define-key vip-insert-basic-map "\C-j" nil))
 		    
 	 (setq vip-insert-diehard-minor-mode
 	       (not vip-want-emacs-keys-in-insert))
@@ -3837,7 +3839,7 @@
 
 
 (defvar vip-smart-suffix-list
-  '("" "tex" "c" "cc" "el" "java" "html" "pl" "P" "p")
+  '("" "tex" "c" "cc" "C" "el" "java" "html" "htm" "pl" "P" "p")
   "*List of suffixes that Viper automatically tries to append to filenames ending with a `.'.
 This is useful when you the current directory contains files with the same
 prefix and many different suffixes. Usually, only one of the suffixes
@@ -4446,6 +4448,7 @@
   "Auto Indentation, Vi-style."
   (interactive)
   (let ((col (current-indentation)))
+    (if abbrev-mode (expand-abbrev))
     (if vip-preserve-indent
 	(setq vip-preserve-indent nil)
       (setq vip-current-indent col))
--- a/lisp/vm/vm-autoload.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/vm/vm-autoload.el	Mon Aug 13 08:52:56 2007 +0200
@@ -160,6 +160,8 @@
 M should be the message struct of a real message.
 Returns either \"rfc934\", \"rfc1153\" or \"mime\"." nil nil)
 
+(autoload (quote vm-digest-get-header-contents) "vm-digest" nil nil nil)
+
 (autoload (quote vm-easy-menu-define) "vm-easymenu" "Define a menu bar submenu in maps MAPS, according to MENU.
 The menu keymap is stored in symbol SYMBOL, both as its value
 and as its function definition.   DOC is used as the doc string for SYMBOL.
@@ -595,6 +597,8 @@
 
 (autoload (quote vm-start-itimers-if-needed) "vm-folder" nil nil nil)
 
+(autoload (quote vm-check-mail-itimer-function) "vm-folder" nil nil nil)
+
 (autoload (quote vm-get-mail-itimer-function) "vm-folder" nil nil nil)
 
 (autoload (quote vm-flush-itimer-function) "vm-folder" nil nil nil)
@@ -636,6 +640,12 @@
 
 (autoload (quote vm-gobble-crash-box) "vm-folder" nil nil nil)
 
+(autoload (quote vm-compute-spool-files) "vm-folder" nil nil nil)
+
+(autoload (quote vm-spool-check-mail) "vm-folder" nil nil nil)
+
+(autoload (quote vm-check-for-spooled-mail) "vm-folder" nil nil nil)
+
 (autoload (quote vm-get-spooled-mail) "vm-folder" nil nil nil)
 
 (autoload (quote vm-safe-popdrop-string) "vm-folder" nil nil nil)
@@ -739,7 +749,9 @@
 (autoload (quote vm-mark-or-unmark-messages-same-author) "vm-mark" nil nil nil)
 
 (autoload (quote vm-next-command-uses-marks) "vm-mark" "Does nothing except insure that the next VM command will operate only
-on the marked messages in the current folder." t nil)
+on the marked messages in the current folder.  This only works for
+commands bound to key, menu or button press events.  M-x vm-command will
+not work." t nil)
 
 (autoload (quote vm-marked-messages) "vm-mark" nil nil nil)
 
@@ -787,10 +799,14 @@
 
 (autoload (quote vm-menu-popup-context-menu) "vm-menu" nil t nil)
 
+(autoload (quote vm-menu-goto-event) "vm-menu" nil nil nil)
+
 (autoload (quote vm-menu-popup-url-browser-menu) "vm-menu" nil t nil)
 
 (autoload (quote vm-menu-popup-mime-dispose-menu) "vm-menu" nil t nil)
 
+(autoload (quote vm-menu-popup-content-disposition-menu) "vm-menu" nil t nil)
+
 (autoload (quote vm-menu-popup-fsfemacs-menu) "vm-menu" nil t nil)
 
 (autoload (quote vm-menu-mode-menu) "vm-menu" nil nil nil)
@@ -1097,6 +1113,8 @@
 
 (autoload (quote vm-mm-layout-type) "vm-mime" nil nil nil)
 
+(autoload (quote vm-mm-layout-qtype) "vm-mime" nil nil nil)
+
 (autoload (quote vm-mm-layout-encoding) "vm-mime" nil nil nil)
 
 (autoload (quote vm-mm-layout-id) "vm-mime" nil nil nil)
@@ -1105,6 +1123,8 @@
 
 (autoload (quote vm-mm-layout-disposition) "vm-mime" nil nil nil)
 
+(autoload (quote vm-mm-layout-qdisposition) "vm-mime" nil nil nil)
+
 (autoload (quote vm-mm-layout-header-start) "vm-mime" nil nil nil)
 
 (autoload (quote vm-mm-layout-body-start) "vm-mime" nil nil nil)
@@ -1115,6 +1135,8 @@
 
 (autoload (quote vm-mm-layout-cache) "vm-mime" nil nil nil)
 
+(autoload (quote vm-set-mm-layout-type) "vm-mime" nil nil nil)
+
 (autoload (quote vm-set-mm-layout-cache) "vm-mime" nil nil nil)
 
 (autoload (quote vm-mm-layout) "vm-mime" nil nil nil)
@@ -1125,13 +1147,7 @@
 
 (autoload (quote vm-mime-Q-encode-region) "vm-mime" nil nil nil)
 
-(autoload (quote vm-mime-Q-decode-string) "vm-mime" nil nil nil)
-
-(autoload (quote vm-mime-B-decode-string) "vm-mime" nil nil nil)
-
-(autoload (quote vm-mime-Q-encode-string) "vm-mime" nil nil nil)
-
-(autoload (quote vm-mime-B-encode-string) "vm-mime" nil nil nil)
+(autoload (quote vm-mime-B-encode-region) "vm-mime" nil nil nil)
 
 (autoload (quote vm-mime-crlf-to-lf-region) "vm-mime" nil nil nil)
 
@@ -1153,7 +1169,11 @@
 
 (autoload (quote vm-decode-mime-encoded-words) "vm-mime" nil nil nil)
 
-(autoload (quote vm-decode-mime-encoded-words-maybe) "vm-mime" nil nil nil)
+(autoload (quote vm-decode-mime-encoded-words-in-string) "vm-mime" nil nil nil)
+
+(autoload (quote vm-reencode-mime-encoded-words) "vm-mime" nil nil nil)
+
+(autoload (quote vm-reencode-mime-encoded-words-in-string) "vm-mime" nil nil nil)
 
 (autoload (quote vm-mime-parse-content-header) "vm-mime" nil nil nil)
 
@@ -1223,8 +1243,6 @@
 
 (autoload (quote vm-mime-display-button-text) "vm-mime" nil nil nil)
 
-(autoload (quote vm-mime-display-internal-text/html) "vm-mime" nil nil nil)
-
 (autoload (quote vm-mime-display-internal-text/plain) "vm-mime" nil nil nil)
 
 (autoload (quote vm-mime-display-internal-text/enriched) "vm-mime" nil nil nil)
@@ -1271,13 +1289,25 @@
 
 (autoload (quote vm-mime-run-display-function-at-point) "vm-mime" nil t nil)
 
+(autoload (quote vm-mime-set-extent-glyph-for-layout) "vm-mime" nil nil nil)
+
 (autoload (quote vm-mime-insert-button) "vm-mime" nil nil nil)
 
+(autoload (quote vm-mime-rewrite-failed-button) "vm-mime" nil nil nil)
+
 (autoload (quote vm-mime-send-body-to-file) "vm-mime" nil nil nil)
 
 (autoload (quote vm-mime-pipe-body-to-command) "vm-mime" nil nil nil)
 
-(autoload (quote vm-mime-pipe-body-to-command-discard-output) "vm-mime" nil nil nil)
+(autoload (quote vm-mime-pipe-body-to-queried-command) "vm-mime" nil nil nil)
+
+(autoload (quote vm-mime-pipe-body-to-queried-command-discard-output) "vm-mime" nil nil nil)
+
+(autoload (quote vm-mime-send-body-to-printer) "vm-mime" nil nil nil)
+
+(autoload (quote vm-mime-display-body-as-text) "vm-mime" nil nil nil)
+
+(autoload (quote vm-mime-display-body-using-external-viewer) "vm-mime" nil nil nil)
 
 (autoload (quote vm-mime-scrub-description) "vm-mime" nil nil nil)
 
@@ -1308,8 +1338,9 @@
 First argument, FILE, is the name of the file to attach.  Second
 argument, TYPE, is the MIME Content-Type of the file.  Optional
 third argument CHARSET is the character set of the attached
-document.  This argument is only used for text types, and it
-is ignored for other types.
+document.  This argument is only used for text types, and it is
+ignored for other types.  Optional fourth argument DESCRIPTION
+should be a one line description of the file.
 
 When called interactively all arguments are read from the
 minibuffer.
@@ -1341,6 +1372,14 @@
 
 (autoload (quote vm-mime-attach-object) "vm-mime" nil nil nil)
 
+(autoload (quote vm-mime-attachment-disposition-at-point) "vm-mime" nil nil nil)
+
+(autoload (quote vm-mime-set-attachment-disposition-at-point) "vm-mime" nil nil nil)
+
+(autoload (quote vm-disallow-overlay-endpoint-insertion) "vm-mime" nil nil nil)
+
+(autoload (quote vm-mime-fake-attachment-overlays) "vm-mime" nil nil nil)
+
 (autoload (quote vm-mime-default-type-from-filename) "vm-mime" nil nil nil)
 
 (autoload (quote vm-remove-mail-mode-header-separator) "vm-mime" nil nil nil)
@@ -1509,6 +1548,8 @@
 
 (autoload (quote vm-toolbar-support-possible-p) "vm-misc" nil nil nil)
 
+(autoload (quote vm-multiple-fonts-possible-p) "vm-misc" nil nil nil)
+
 (autoload (quote vm-run-message-hook) "vm-misc" nil nil nil)
 
 (autoload (quote vm-error-free-call) "vm-misc" nil nil nil)
@@ -1527,8 +1568,6 @@
 
 (autoload (quote vm-set-region-face) "vm-misc" nil nil nil)
 
-(autoload (quote vm-unsaved-message) "vm-misc" nil nil nil)
-
 (autoload (quote vm-default-buffer-substring-no-properties) "vm-misc" nil nil nil)
 
 (autoload (quote vm-buffer-string-no-properties) "vm-misc" nil nil nil)
@@ -1547,6 +1586,16 @@
 
 (autoload (quote vm-set-buffer-variable) "vm-misc" nil nil nil)
 
+(autoload (quote vm-buffer-variable-value) "vm-misc" nil nil nil)
+
+(autoload (quote vm-with-virtual-selector-variables) "vm-misc" nil nil (quote macro))
+
+(autoload (quote vm-string-assoc) "vm-misc" nil nil nil)
+
+(autoload (quote vm-string-member) "vm-misc" nil nil nil)
+
+(autoload (quote vm-assert) "vm-misc" nil nil (quote macro))
+
 (autoload (quote vm-mouse-fsfemacs-mouse-p) "vm-mouse" nil nil nil)
 
 (autoload (quote vm-mouse-xemacs-mouse-p) "vm-mouse" nil nil nil)
@@ -1702,14 +1751,74 @@
 
 (autoload (quote vm-pop-move-mail) "vm-pop" nil nil nil)
 
-(autoload (quote vm-pop-process-filter) "vm-pop" nil nil nil)
+(autoload (quote vm-pop-check-mail) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-make-session) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-end-session) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-stat-timer) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-stat-x-box) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-stat-x-currmsg) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-stat-x-maxmsg) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-stat-x-got) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-stat-x-need) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-stat-y-box) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-stat-y-currmsg) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-stat-y-maxmsg) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-stat-y-got) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-stat-y-need) "vm-pop" nil nil nil)
+
+(autoload (quote vm-set-pop-stat-timer) "vm-pop" nil nil nil)
+
+(autoload (quote vm-set-pop-stat-x-box) "vm-pop" nil nil nil)
+
+(autoload (quote vm-set-pop-stat-x-currmsg) "vm-pop" nil nil nil)
+
+(autoload (quote vm-set-pop-stat-x-maxmsg) "vm-pop" nil nil nil)
+
+(autoload (quote vm-set-pop-stat-x-got) "vm-pop" nil nil nil)
+
+(autoload (quote vm-set-pop-stat-x-need) "vm-pop" nil nil nil)
+
+(autoload (quote vm-set-pop-stat-y-box) "vm-pop" nil nil nil)
+
+(autoload (quote vm-set-pop-stat-y-currmsg) "vm-pop" nil nil nil)
+
+(autoload (quote vm-set-pop-stat-y-maxmsg) "vm-pop" nil nil nil)
+
+(autoload (quote vm-set-pop-stat-y-got) "vm-pop" nil nil nil)
+
+(autoload (quote vm-set-pop-stat-y-need) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-start-status-timer) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-stop-status-timer) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-report-retrieval-status) "vm-pop" nil nil nil)
 
 (autoload (quote vm-pop-send-command) "vm-pop" nil nil nil)
 
 (autoload (quote vm-pop-read-response) "vm-pop" nil nil nil)
 
+(autoload (quote vm-pop-read-past-dot-sentinel-line) "vm-pop" nil nil nil)
+
 (autoload (quote vm-pop-read-stat-response) "vm-pop" nil nil nil)
 
+(autoload (quote vm-pop-read-list-response) "vm-pop" nil nil nil)
+
+(autoload (quote vm-pop-ask-about-large-message) "vm-pop" nil nil nil)
+
 (autoload (quote vm-pop-retrieve-to-crashbox) "vm-pop" nil nil nil)
 
 (autoload (quote vm-pop-cleanup-region) "vm-pop" nil nil nil)
@@ -1930,7 +2039,18 @@
 
 Output, if any, is displayed.  The message is not altered." t nil)
 
-(autoload (quote vm-print-message) "vm-save" "Print the current message." t nil)
+(autoload (quote vm-print-message) "vm-save" "Print the current message
+Prefix arg N means print the current message and the next N - 1 messages.
+Prefix arg -N means print the current message and the previous N - 1 messages.
+
+The variables `vm-print-command' controls what command is run to
+print the message, and `vm-print-command-switches' is a list of switches
+to pass to the command.
+
+When invoked on marked messages (via vm-next-command-uses-marks),
+each marked message is printed, one message per vm-print-command invocation.
+
+Output, if any, is displayed.  The message is not altered." t nil)
 
 (autoload (quote vm-isearch-forward) "vm-search" "Incrementally search forward through the current folder's messages.
 Usage is identical to the standard Emacs incremental search.
@@ -2068,7 +2188,7 @@
 
 (autoload (quote vm-mode) "vm-startup" "Major mode for reading mail.
 
-This is VM 6.13.
+This is VM 6.19.
 
 Commands:
    h - summarize folder contents
@@ -2131,7 +2251,8 @@
    x - exit VM with no change to the folder
 
  M N - use marks; the next vm command will affect only marked messages
-       if it makes sense for the command to do so
+       if it makes sense for the command to do so.  These commands
+       apply and remove marks to messages.
 
        M M - mark the current message
        M U - unmark the current message
@@ -2166,7 +2287,7 @@
  V ? - help for virtual folder commands
 
  C-_ - undo, special undo that retracts the most recent
-             changes in message attributes and labels.  Expunges
+             changes in message attributes and labels.  Expunges,
              message edits, and saves cannot be undone.  C-x u is
              also bound to this command.
 
@@ -2236,6 +2357,7 @@
    vm-highlighted-header-face
    vm-highlighted-header-regexp
    vm-honor-page-delimiters
+   vm-image-directory
    vm-in-reply-to-format
    vm-included-text-attribution-format
    vm-included-text-discard-header-regexp
@@ -2246,6 +2368,7 @@
    vm-jump-to-unread-messages
    vm-keep-crash-boxes
    vm-keep-sent-messages
+   vm-mail-check-interval
    vm-mail-header-from
    vm-mail-mode-hook
    vm-make-crash-box-name
@@ -2261,6 +2384,8 @@
    vm-mime-base64-encoder-program
    vm-mime-base64-encoder-switches
    vm-mime-button-face
+   vm-mime-charset-font-alist
+   vm-mime-default-face-charsets
    vm-mime-digest-discard-header-regexp
    vm-mime-digest-headers
    vm-mime-display-function
@@ -2276,7 +2401,10 @@
    vm-mutable-frames
    vm-mutable-windows
    vm-netscape-program
+   vm-pop-bytes-per-session
+   vm-pop-max-message-size
    vm-pop-md5-program
+   vm-pop-messages-per-session
    vm-popup-menu-on-mouse-3
    vm-preferences-file
    vm-preview-lines
@@ -2307,8 +2435,8 @@
    vm-send-using-mime
    vm-skip-deleted-messages
    vm-skip-read-messages
+   vm-spool-file-suffixes
    vm-spool-files
-   vm-spool-file-suffixes
    vm-startup-with-summary
    vm-strip-reply-headers
    vm-summary-arrow
@@ -2318,8 +2446,8 @@
    vm-summary-redo-hook
    vm-summary-show-threads
    vm-summary-thread-indent-level
+   vm-tale-is-an-idiot
    vm-temp-file-directory
-   vm-tale-is-an-idiot
    vm-trust-From_-with-Content-Length
    vm-undisplay-buffer-hook
    vm-unforwarded-header-regexp
@@ -2380,6 +2508,8 @@
 
 (autoload (quote vm-check-emacs-version) "vm-startup" nil nil nil)
 
+(autoload (quote vm-set-debug-flags) "vm-startup" nil nil nil)
+
 (autoload (quote vm-session-initialization) "vm-startup" nil nil nil)
 
 (autoload (quote vm-summary-mode-internal) "vm-summary" nil nil nil)
@@ -2522,6 +2652,8 @@
 
 (autoload (quote vm-toolbar-can-quit-p) "vm-toolbar" nil nil nil)
 
+(autoload (quote vm-toolbar-mail-waiting-p) "vm-toolbar" nil nil nil)
+
 (autoload (quote vm-toolbar-update-toolbar) "vm-toolbar" nil nil nil)
 
 (autoload (quote vm-toolbar-install-toolbar) "vm-toolbar" nil nil nil)
@@ -2635,6 +2767,23 @@
 
 (autoload (quote vm-set-new-flag-in-vector) "vm-undo" nil nil nil)
 
+(autoload (quote vm-user-composition-folder-buffer) "vm-user" "Returns the folder buffer associated with the current buffer.
+The current buffer must be a composition buffer created by VM for
+a reply, resend or forward.
+
+Nil is returned if the current buffer is not assocaited with any
+VM folder.
+
+Note that the buffer returned might be a virtual folder buffer,
+which might have several underlying real folders associated with
+it.  To get the list of real folder buffers associated with a
+composition buffer, use vm-user-composition-real-folder-buffers
+instead." nil nil)
+
+(autoload (quote vm-user-composition-real-folder-buffers) "vm-user" "Returns a list of the real folder buffers associated with the current
+buffer.  The current buffer must be a composition buffer created
+by VM for a reply, resend or forward." nil nil)
+
 (autoload (quote vm-spool-files) "vm-vars" nil nil nil)
 
 (autoload (quote vm-version) "vm-version" "Returns the value of the variable vm-version." nil nil)
--- a/lisp/w3/ChangeLog	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/ChangeLog	Mon Aug 13 08:52:56 2007 +0200
@@ -1,5 +1,124 @@
+Thu Mar 13 19:54:50 1997  William M. Perry  <wmperry@aventail.com>
+
+* w3-cus.el: Added customization support for Emacs-W3
+
+* w3.el (w3-mail-current-document): Use url-mail-command instead of
+  w3-mail-command
+
+Thu Mar 13 11:41:42 1997  Greg Stark  <gsstark@mit.edu>
+
+* w3-prefs.el: Implemented privacy panel
+
+Wed Mar 12 10:25:38 1997  William M. Perry  <wmperry@aventail.com>
+
+* w3-e19.el (w3-mode-version-specifics): Use the nasty crufty
+  buffer-access-fontify-functions to make sure that we never yank
+  read-only text out of the Emacs-W3 buffer.
+
+* Synch'd up to Widget 1.62
+
+Wed Mar 12 06:36:41 1997  Paul Stodghill <stodghil@CS.Cornell.EDU>
+
+* base64.el (base64-decode-region): Fixed typo in calling
+  command-on-region.
+
+Tue Mar 11 07:03:48 1997  William M. Perry  <wmperry@aventail.com>
+
+* w3-auto.el (w3-use-hotlist): Made autoload interactive
+
+* w3-widget.el (widget-image-value-create): Was a little too aggressive
+  about when to apply the -1 :tab-order property.  Now only images that
+  are not hyperlinks or imagemaps will not be tabbed to.
+
+* w3-prefs.el (w3-preferences-init-proxy-panel): Updated preferences panel
+  for new format of url-proxy-services
+
+* w3-vars.el (w3-hyperlink-menu): Fixed problem with calling wrong
+  bookmark function - would create a bookmark to the current document, not
+  the document under the mouse.
+  (w3-popup-menu): Added a few menu itmes (reload, show images, add bookmark)
+
+* w3-hot.el (w3-hotlist-add-document-at-point): Extract the title
+  correctly for the new widget implementation of hyperlinks.
+
+Mon Mar 10 06:31:48 1997  William M. Perry  <wmperry@aventail.com>
+
+* w3-menu.el (w3-menu-options-menu): Fixed problem with XEmacs when
+  building without toolbars - would insert nil in the menu in a very wrong
+  place.
+
+* font.el (font-normalize-color): Under win32, make sure we define the
+  color before we try to use it, since Emacs doesn't support raw #RRGGBB
+  color specifications yet.
+  (font-rgb-color-p): make all #RRGGBB color specs go through
+  font-normalize-color
+
+* Emacs-W3 3.0.67 released
+
+Mon Mar 10 1997  Dave Love  <d.love@dl.ac.uk>
+
+* w3.el (w3-do-setup): Make configuration file loading contingent
+  on init-file-user (i.e. suppressed with -q).
+
+Sun Mar  9 13:09:38 1997  William M. Perry  <wmperry@aventail.com>
+
+* w3-widget.el (widget-image-value-create): Set :tab-order to -1 so the
+  latest widget library won't tab to image widgets.
+
+* w3.el (w3-mode): Make sure w3-mode-hook is run last, so that people can
+  turn off truncate-lines if they want.
+
+* ssl.el (open-ssl-stream): ssl-program-arguments is now dynamically
+  evaluated, similar to ps-lpr-switches.  The special symbols 'host' and
+  'port' are available, and bound to the hostname and port#/service we are
+  about to connect to.
+
+* w3-display.el (w3-finish-drawing): Remove all read-only properties on
+  text.
+
+* url-cache.el (url-cache-expired): fixed standalone mode
+
+Sat Mar  8 09:13:59 1997  William M. Perry  <wmperry@aventail.com>
+
+* Emacs-W3 3.0.66 released.
+
+* url-cache.el (url-cache-prepare): Threw a condition-case around the
+  make-directory call, just in case we can't create the file for some
+  reason.  Also fixed bug where the file wouldn't be cached until the
+  second time you visited it.
+
+* url.el (url-retrieve-internally): Deal with https asynch
+
+* w3-xemac.el (w3-mode-version-specifics): Don't try to add the toolbar if
+  device-type == 'stream.
+
+* w3-vars.el (w3-temporary-directory): Ditto.
+
+* url-vars.el (url-temporary-directory): Initialize from TMPDIR
+  environment variable.
+
+* w3.el (w3-start-viewer): Ditto.
+
+* md5.el (md5): Ditto.
+
+* mm.el (mm-compose-type): Don't use hardcoded /bin/sh and -c - use
+  shell-file-name and shell-command-switch
+  (mm-viewer-passes-test): ditto.
+
+* w3-sysdp.el: Better device-* functions for Emacs-19 under win32 and OS/2
+
+* w3-display.el (w3-display-node): Better handling for <noframes> support.
+
 Fri Mar  7 06:13:20 1997  William M. Perry  <wmperry@aventail.com>
 
+* w3-script.el (w3-script-evaluate-form): protect against bad input during
+  the read-from-string when parsing emacs-lisp scripts.
+
+* w3-auto.el (w3-preferences-edit): Make the autoload for this be
+  interactive so that the user can actually find it!
+
+* Emacs-W3 3.0.65 released.
+
 * w3.el (w3-document-information): Better handling of last-modified
   findings.
 
--- a/lisp/w3/Makefile	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/Makefile	Mon Aug 13 08:52:56 2007 +0200
@@ -45,7 +45,7 @@
 SOURCES = \
 	$(CUSTOMSOURCES) $(URLSOURCES) mule-sysdp.el w3-widget.el	\
 	w3-imap.el css.el dsssl.el font.el images.el w3-vars.el		\
-	w3-style.el w3-keyword.el w3-forms.el w3-emulate.el		\
+	w3-cus.el w3-style.el w3-keyword.el w3-forms.el w3-emulate.el	\
 	w3-auto.el w3-menu.el w3-mouse.el w3-toolbar.el	w3-prefs.el	\
 	w3-speak.el w3-latex.el w3-parse.el w3-display.el w3-print.el	\
 	w3-about.el w3-hot.el w3-e19.el w3-xemac.el w3.el w3-script.el	\
@@ -91,6 +91,7 @@
 		w3.cps w3.fns w3.kys w3.pgs w3.tps w3.vrs	\
 		w3.log w3.toc w3.aux
 
+w3-vars.elc: w3-cus.el w3-vars.el
 w3-display.elc: w3-display.el css.el font.el w3-imap.el
 css.elc: css.el font.el
-w3.elc: css.el w3-vars.el
+w3.elc: css.el w3-vars.el w3.el
--- a/lisp/w3/base64.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/base64.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; base64.el,v --- Base64 encoding functions
 ;; Author: Kyle E. Jones
-;; Created: 1997/01/23 00:13:17
-;; Version: 1.4
+;; Created: 1997/03/12 14:37:09
+;; Version: 1.6
 ;; Keywords: extensions
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -102,7 +102,7 @@
   (condition-case nil
       (progn
 	(insert-char char count ignored buffer)
-	(fset 'vm-insert-char 'insert-char))
+	(fset 'base64-insert-char 'insert-char))
     (wrong-number-of-arguments
      (fset 'base64-insert-char 'base64-xemacs-insert-char)
      (base64-insert-char char count ignored buffer))))
@@ -129,7 +129,7 @@
 	  (buffer-disable-undo work-buffer)
 	  (if base64-decoder-program
 	      (let* ((binary-process-output t) ; any text already has CRLFs
-		     (status (apply 'command-on-region
+		     (status (apply 'base64-run-command-on-region
 				   start end work-buffer
 				   base64-decoder-program
 				   base64-decoder-switches)))
--- a/lisp/w3/font.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/font.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; font.el --- New font model
 ;; Author: wmperry
-;; Created: 1997/03/03 15:15:42
-;; Version: 1.34
+;; Created: 1997/03/10 15:18:19
+;; Version: 1.36
 ;; Keywords: faces
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -974,9 +974,10 @@
   (list r g b) ))
 
 (defsubst font-rgb-color-p (obj)
-  (and (vectorp obj)
-       (= (length obj) 4)
-       (eq (aref obj 0) 'rgb)))
+  (or (and (vectorp obj)
+	   (= (length obj) 4)
+	   (eq (aref obj 0) 'rgb))
+      (string-match "^#[0-9a-fA-F]+$" obj)))
 
 (defsubst font-rgb-color-red (obj) (aref obj 1))
 (defsubst font-rgb-color-green (obj) (aref obj 2))
@@ -1069,15 +1070,21 @@
   "Return an RGB tuple, given any form of input.  If an error occurs, black
 is returned."
   (case (device-type device)
-   ((x pm win32)
+   ((x pm)
     (apply 'format "#%02x%02x%02x" (font-color-rgb-components color)))
+   (win32
+    (let* ((rgb (font-color-rgb-components color))
+	   (color (apply 'format "#%02x%02x%02x" rgb)))
+      (win32-define-rgb-color (nth 0 rgb) (nth 1 rgb) (nth 2 rgb) color)
+      color))
    (tty
     (apply 'font-tty-find-closest-color (font-color-rgb-components color)))
    (ns
     (let ((vals (mapcar (function (lambda (x) (>> x 8)))
 			(font-color-rgb-components color))))
       (apply 'format "RGB%02x%02x%02xff" vals)))
-   (otherwise "black")))
+   (otherwise
+    color)))
 
 (defun font-set-face-background (&optional face color &rest args)
   (interactive)
--- a/lisp/w3/images.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/images.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; images.el --- Automatic image converters
 ;; Author: wmperry
-;; Created: 1997/02/26 16:21:01
-;; Version: 1.9
+;; Created: 1997/03/11 19:28:30
+;; Version: 1.10
 ;; Keywords: images
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -29,6 +29,8 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; The emacsen compatibility package - load it up before anything else
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(require 'mule-sysdp)
+
 (eval-and-compile
   (if (not (and (string-match "XEmacs" emacs-version)
 		(or (> emacs-major-version 19)
--- a/lisp/w3/md5.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/md5.el	Mon Aug 13 08:52:56 2007 +0200
@@ -393,9 +393,9 @@
 		   (md5-encode (buffer-string))
 		   "")
 		(call-process-region (point-min) (point-max)
-				     (or shell-file-name "/bin/sh")
+				     shell-file-name
 				     t buffer nil
-				     "-c" md5-program)
+				     shell-command-switch md5-program)
 		;; MD5 digest is 32 chars long
 		;; mddriver adds a newline to make neaten output for tty
 		;; viewing, make sure we leave it behind.
@@ -404,5 +404,3 @@
       (and buffer (kill-buffer buffer) nil))))
 
 (provide 'md5)
-
-;;; md5.el ends here ----------------------------------------------------------
--- a/lisp/w3/mm.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/mm.el	Mon Aug 13 08:52:56 2007 +0200
@@ -728,7 +728,7 @@
       (eval test))
      (t
       (setq test (mm-unescape-mime-test test type-info)
-	    test (list "/bin/sh" nil nil nil "-c" test)
+	    test (list shell-file-name nil nil nil shell-command-switch test)
 	    status (apply 'call-process test))
       (= 0 status)))))
 
@@ -1042,9 +1042,9 @@
       (setq comp (concat (substring comp 0 (match-end 1)) fnam
 			 (substring comp (match-end 0) nil))
 	    usef t))
-    (call-process (or shell-file-name
-		      (getenv "ESHELL") (getenv "SHELL") "/bin/sh")
-		  nil (if usef nil buff) nil "-c" comp)
+    (call-process shell-file-name nil
+		  (if usef nil buff)
+		  nil shell-command-switch comp)
     (setq retval
 	  (concat
 	   (if typeit (concat "Content-type: " type "\r\n\r\n") "")
--- a/lisp/w3/ssl.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/ssl.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; ssl.el,v --- ssl functions for emacsen without them builtin
 ;; Author: wmperry
-;; Created: 1996/05/28 01:20:06
-;; Version: 1.2
+;; Created: 1997/03/09 23:02:56
+;; Version: 1.8
 ;; Keywords: comm
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -29,10 +29,13 @@
 (defvar ssl-program-name "ssl"
   "*The program to run in a subprocess to open an SSL connection.")
 
-(defvar ssl-program-arguments nil
+(defvar ssl-program-arguments '(host port)
   "*Arguments that should be passed to the program `ssl-program-name'.
 This should be used if your SSL program needs command line switches to
-specify any behaviour (certificate file locations, etc).")
+specify any behaviour (certificate file locations, etc).
+The special symbols 'host and 'port may be used in the list of arguments
+and will be replaced with the hostname and service/port that will be connected
+to.")
 
 (defun open-ssl-stream (name buffer host service)
   "Open a SSL connection for a service to a host.
@@ -47,16 +50,14 @@
  with any buffer
 Third arg is name of the host to connect to, or its IP address.
 Fourth arg SERVICE is name of the service desired, or an integer
- specifying a port number to connect to."
-  (let ((proc (apply 'start-process
-		     name
-		     buffer
-		     ssl-program-name
-		     (append ssl-program-arguments
-			     (list host 
-				   (if (stringp service)
-				       service
-				     (int-to-string service)))))))
+specifying a port number to connect to."
+  (if (integerp service) (setq service (int-to-string service)))
+  (let* ((process-connection-type t)
+	 (port service)
+	 (proc (eval
+		(`
+		 (start-process name buffer ssl-program-name
+				(,@ ssl-program-arguments))))))
     (process-kill-without-query proc)
     proc))
 
--- a/lisp/w3/url-cache.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/url-cache.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; url-cache.el --- Uniform Resource Locator retrieval tool
 ;; Author: wmperry
-;; Created: 1997/03/06 16:25:51
-;; Version: 1.7
+;; Created: 1997/03/09 21:09:36
+;; Version: 1.10
 ;; Keywords: comm, data, processes, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -53,7 +53,9 @@
    ((file-directory-p file)
     nil)
    (t
-    (make-directory (file-name-directory file) t))))
+    (condition-case ()
+	(or (make-directory (file-name-directory file) t) t)
+      (error nil)))))
 
 (defvar url-cache-ignored-protocols
   '("www" "about" "https" "mailto")
@@ -62,6 +64,8 @@
 (defun url-cache-cachable-p (obj)
   ;; return t iff the current buffer is cachable
   (cond
+   ((not url-automatic-caching)		; User doesn't want to cache
+    nil)
    ((null obj)				; Something horribly confused
     nil)
    ((member (url-type obj) url-cache-ignored-protocols)
@@ -138,7 +142,7 @@
 (defun url-cache-create-filename-human-readable (url)
   "Return a filename in the local cache for URL"
   (if url
-      (let* ((url url)
+      (let* ((url (if (vectorp url) (url-recreate-url url) url))
 	     (urlobj (url-generic-parse-url url))
 	     (protocol (url-type urlobj))
 	     (hostname (url-host urlobj))
@@ -197,6 +201,7 @@
  Very fast if you are in XEmacs, suitably fast otherwise."
   (if url
       (let* ((checksum (md5 url))
+	     (url (if (vectorp url) (url-recreate-url url) url))
 	     (urlobj (url-generic-parse-url url))
 	     (protocol (url-type urlobj))
 	     (hostname (url-host urlobj))
@@ -236,23 +241,18 @@
 ;;;###autoload
 (defun url-cache-expired (url mod)
   "Return t iff a cached file has expired."
-  (if (not (string-match url-nonrelative-link url))
-      t
-    (let* ((urlobj (url-generic-parse-url url))
-	   (type (url-type urlobj)))
-      (cond
-       (url-standalone-mode
-	(not (file-exists-p (url-cache-create-filename urlobj))))
-       ((string= type "http")
-	(if (not url-standalone-mode) t
-	  (not (file-exists-p (url-cache-create-filename urlobj)))))
-       ((not (fboundp 'current-time))
-	t)
-       ((member type '("file" "ftp"))
-	(if (or (equal mod '(0 0)) (not mod))
-	      (return t)
-	    (or (> (nth 0 mod) (nth 0 (current-time)))
-		(> (nth 1 mod) (nth 1 (current-time))))))
-       (t nil)))))
+  (let* ((urlobj (if (vectorp url) url (url-generic-parse-url url)))
+	 (type (url-type urlobj)))
+    (cond
+     (url-standalone-mode
+      (not (file-exists-p (url-cache-create-filename url))))
+     ((string= type "http")
+      t)
+     ((member type '("file" "ftp"))
+      (if (or (equal mod '(0 0)) (not mod))
+	  (return t)
+	(or (> (nth 0 mod) (nth 0 (current-time)))
+	    (> (nth 1 mod) (nth 1 (current-time))))))
+     (t nil))))
 
 (provide 'url-cache)
--- a/lisp/w3/url-vars.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/url-vars.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; url-vars.el --- Variables for Uniform Resource Locator tool
 ;; Author: wmperry
-;; Created: 1997/03/07 16:46:48
-;; Version: 1.31
+;; Created: 1997/03/14 06:51:57
+;; Version: 1.35
 ;; Keywords: comm, data, processes, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -26,7 +26,7 @@
 ;;; Boston, MA 02111-1307, USA.
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 
-(defconst url-version (let ((x "p3.0.65"))
+(defconst url-version (let ((x "p3.0.68"))
 			(if (string-match "State: \\([^ \t\n]+\\)" x)
 			    (substring x (match-beginning 1) (match-end 1))
 			  x))
@@ -313,7 +313,8 @@
   "*Maximum number of times a password will be prompted for when a
 protected document is denied by the server.")
 
-(defvar url-temporary-directory "/tmp" "*Where temporary files go.")
+(defvar url-temporary-directory (or (getenv "TMPDIR") "/tmp")
+  "*Where temporary files go.")
 
 (defvar url-show-status t
   "*Whether to show a running total of bytes transferred.  Can cause a
--- a/lisp/w3/url.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/url.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,13 +1,13 @@
 ;;; url.el --- Uniform Resource Locator retrieval tool
 ;; Author: wmperry
-;; Created: 1997/03/05 23:37:22
-;; Version: 1.61
+;; Created: 1997/03/09 06:19:51
+;; Version: 1.62
 ;; Keywords: comm, data, processes, hypermedia
 
 ;;; LCD Archive Entry:
 ;;; url|William M. Perry|wmperry@cs.indiana.edu|
 ;;; Functions for retrieving/manipulating URLs|
-;;; 1997/03/05 23:37:22|1.61|Location Undetermined
+;;; 1997/03/09 06:19:51|1.62|Location Undetermined
 ;;;
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -1598,6 +1598,9 @@
   (let ((count 0))
     (cl-maphash (function
 		 (lambda (key value)
+		   (while (string-match "[\r\n]+" key)
+		     (setq key (concat (substring key 0 (match-beginning 0))
+				       (substring key (match-end 0) nil))))
 		   (setq count (1+ count))
 		   (insert "(cl-puthash \"" key "\""
 			   (if (not (stringp value)) " '" "")
@@ -1949,7 +1952,8 @@
 	      "<p><address>William Perry</address><br>"
 	      "<address>" url-bug-address "</address>"))
     (cond
-     ((and url-be-asynchronous (not cached) (member type '("http" "proxy")))
+     ((and url-be-asynchronous (not cached)
+	   (member type '("http" "https" "proxy")))
       nil)
      ((and url-be-asynchronous (get-buffer url-working-buffer))
       (funcall url-default-retrieval-proc (buffer-name)))
--- a/lisp/w3/w3-auto.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-auto.el	Mon Aug 13 08:52:56 2007 +0200
@@ -11,7 +11,7 @@
 (autoload 'w3-hotlist-rename-entry "w3-hot")
 (autoload 'w3-hotlist-append "w3-hot")
 (autoload 'w3-parse-hotlist "w3-hot")
-(autoload 'w3-use-hotlist "w3-hot")
+(autoload 'w3-use-hotlist "w3-hot" nil t)
 (autoload 'w3-hotlist-add-document-at-point "w3-hot")
 (autoload 'w3-hotlist-add-document "w3-hot")
 
@@ -46,7 +46,7 @@
 (autoload 'widget-at "wid-edit")
 
 ;; Preferences
-(autoload 'w3-preferences-edit "w3-prefs")
+(autoload 'w3-preferences-edit "w3-prefs" "" t)
 
 (defvar widget-field-new nil)
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lisp/w3/w3-cus.el	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,378 @@
+;;; w3-cus.el --- Customization support for Emacs-W3
+;; Author: wmperry
+;; Created: 1997/03/14 06:51:36
+;; Version: 1.3
+;; Keywords: comm, help, hypermedia
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Copyright (c) 1993 - 1996 by William M. Perry (wmperry@cs.indiana.edu)
+;;; Copyright (c) 1996, 1997 Free Software Foundation, Inc.
+;;;
+;;; This file is part of GNU Emacs.
+;;;
+;;; GNU Emacs is free software; you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 2, or (at your option)
+;;; any later version.
+;;;
+;;; GNU Emacs is distributed in the hope that it will be useful,
+;;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;;; Boston, MA 02111-1307, USA.
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(eval-and-compile
+  (condition-case ()
+      (require 'custom)
+    (error nil))
+  (if (and (featurep 'custom) (fboundp 'custom-declare-variable))
+      nil ;; We've got what we needed
+    ;; We have the old custom-library, hack around it!
+    (defmacro defcustom (var value doc &rest args) 
+      (` (defvar (, var) (, value) (, doc))))))
+
+;;; File related variables
+(defcustom w3-configuration-directory "~/.w3/"
+  "*Directory where Emacs-w3 can find its configuration files"
+  :group 'w3-files
+  :type 'directory)  
+
+(defcustom w3-default-configuration-file nil
+  "*Where per-user customizations of w3 are kept."
+  :group 'w3-files
+  :type 'file)
+
+(defcustom w3-default-homepage nil
+  "*The url to open at startup.  It can be any valid URL.
+This will default to the environment variable WWW_HOME if you do not
+set it in your .emacs file. If WWW_HOME is undefined, then it will
+default to  the hypertext documentation for W3 at Indiana University."
+  :group 'w3-files
+  :type 'string)
+
+(defcustom w3-default-stylesheet nil
+  "*The filename of the users default stylesheet."
+  :group 'w3-files
+  :type 'file)
+
+(defcustom w3-hotlist-file nil
+  "*Hotlist filename.
+This should be the name of a file that is stored in either
+NCSA's Mosaic/X or Netscape/X format.  It is used to keep a listing
+of commonly accessed URL's without having to go through 20 levels of
+menus to get to them."
+  :group 'w3-files
+  :type 'file)
+
+(defcustom w3-documentation-root "http://www.cs.indiana.edu/elisp/w3/docs/"
+  "*Where the w3 documentation lives.  This MUST end in a slash."
+  :group 'w3-files
+  :type 'string)
+
+(defcustom w3-temporary-directory (or (getenv "TMPDIR") "/tmp")
+  "*Where temporary files go."
+  :group 'w3-files
+  :type 'directory)
+
+;;; Display related variables
+(defcustom w3-display-frames nil
+  "*Fetch frames - not optimal."
+  :group 'w3-display
+  :type 'boolean)
+
+(defcustom w3-do-incremental-display nil
+  "*Whether to do incremental display of pages or not."
+  :group 'w3-display
+  :type 'boolean)
+
+(defcustom w3-echo-link '(title url text name)
+  "*Whether to display the URL of a link when tabbing through links.
+Value is a list of one or more of the following symbols:
+
+  url    == url of the target
+  text   == text of the link
+  title  == title attribute of the link
+  name   == name or id attribute of the link
+
+If none of the information is available, nothing will be shown for the link
+in menus, etc."
+  :group 'w3-display
+  :type '(set (const :tag "URL" :value url)
+	      (const :tag "Link Text" :value text)
+	      (const :tag "Title of the link as defined in the HTML tag"
+		     :value title)
+	      (const :tag "Name of the link as defined in the HTML tag"
+		     :value name)))
+
+(defcustom w3-horizontal-rule-char ?-
+  "*The character to use to create a horizontal rule.
+Must be the character's code, not a string.  This character is
+replicated across the screen to create a division."
+  :group 'w3-display
+  :type 'character)
+
+(defcustom w3-defined-link-types
+  ;; This is the HTML3.0 list (downcased) plus "made".
+  '("previous" "next" "up" "down" "home" "toc" "index" "glossary"
+    "copyright" "bookmark" "help" "made")
+  "A list of the (lower-case) names which have special significance
+as the values of REL or REV attributes of <link> elements.  They will
+be presented on the toolbar or the links menu, for instance."
+  :group 'w3-display
+  :type '(repeat string))
+
+;;; Parsing related variables
+(defcustom w3-debug-html nil
+  "*Whether to gripe about bad HTML or not."
+  :group 'w3-parsing
+  :type '(choice (const :tag "HTML Errors" :value t)
+		 (const :tag "Errors and stylistic issues" :value style)
+		 (const :tag "None" :value nil)))
+
+(defcustom w3-debug-buffer "*HTML Debug*"
+  "*Name of buffer to store debugging information in."
+  :group 'w3-parsing
+  :type 'string)
+
+;;; Image related variables
+(defcustom w3-auto-image-alt t
+  "*Whether emacs-w3 should create an alt attribute for an image that
+is missing it.
+If nil, emacs-w3 will not automatically create an ALT attribute.
+If t, the alt attribute will be [IMAGE(nameofimage)]
+If a string, it should be a string suitable for running through format,
+   with only one %s, which will be replaced with just the filename of the
+   graphic that is not loaded."
+  :group 'w3-images
+  :type '(choice (const :tag "None" :value nil)
+		 (const :tag "Default" :value t)
+		 string))
+
+(defcustom w3-icon-directory "http://cs.indiana.edu/elisp/w3/icons/"
+  "*Where to find standard icons.  Must end in a /!"
+  :group 'w3-images
+  :type 'string)
+
+(defcustom w3-icon-format 'gif
+  "*Image format the default icons are expected to be in.
+This is a symbol, string or nil, specifing what file extension to use.
+If nil, then no file extension is used."
+  :group 'w3-images
+  :type '(choice (const :tag "GIF Image" :value gif)
+		 (const :tag "XPM Image" :value xpm)
+		 (const :tag "XBM Image" :value xbm)
+		 (const :tag "Let the server decide" :value nil)
+		 (string :tag "Other")))
+
+(defcustom w3-delay-image-loads nil
+  "*Whether to delay image loading, or automatically retrieve them."
+  :group 'w3-images
+  :type 'boolean)
+
+(defcustom w3-image-mappings
+  '(
+    ("image/x-xbitmap"        . xbm)
+    ("image/xbitmap"          . xbm)
+    ("image/xbm"              . xbm)
+    ("image/jpeg"             . jpeg)
+    ("image/gif"              . gif)
+    ("image/png"              . png)
+    ("image/x-fax"            . g3fax)
+    ("image/x-raster"         . rast)
+    ("image/windowdump"       . xwd)
+    ("image/x-icon"           . icon)
+    ("image/portable-graymap" . pgm)
+    ("image/portable-pixmap"  . ppm)
+    ("image/x-pixmap"         . xpm)
+    ("image/x-xpixmap"        . xpm)
+    ("image/pict"             . pict)
+    ("image/x-rgb"            . sgi)
+    ("image/x-sgi"            . sgi)
+    ("image/x-macpaint"       . macpt)
+    ("image/x-targa"          . tga)
+    ("image/tiff"             . tiff)
+    )
+  "*How to map MIME types to image types for the `image' package.
+Each entry is a cons cell of MIME types and image-type symbols."
+  :group 'w3-images
+  :type '(repeat cons))
+
+;;; Printing variables
+(defcustom w3-latex-docstyle "{article}"
+  "*The documentstyle to use when printing or mailing files as LaTeX.
+Good defaults are: {article}, [psfig,twocolumn]{article}, etc."
+  :group 'w3-printing
+  :type 'string)
+
+(defcustom w3-latex-print-links nil
+  "*If non-nil, prints the URLs of hypertext links as endnotes at the end of
+the document.  If `footnote', prints the URL's as footnotes on a page."
+  :group 'w3-printing
+  :type '(choice (const :tag "As endnotes" :value t)
+		 (const :tag "As footnotes" :value footnote)
+		 (const :tag "Do not print" :value nil)))
+
+(defcustom w3-latex-use-latex2e nil
+  "*If non-nil, configures LaTeX parser to use LaTeX2e syntax.  A `nil' 
+value indicates that LaTeX 2.0.9 compatibility will be used instead."
+  :group 'w3-printing
+  :type 'boolean)
+
+(defcustom w3-latex-packages nil
+  "*List of LaTeX packages to include when converting HTML to LaTeX.
+Currently this is only used if `w3-latex-use-latex2e' is non-nil."
+  :group 'w3-printing
+  :type '(repeat string))
+
+(defcustom w3-latex-use-maketitle nil
+  "*Non-nil makes the LaTeX parser use real LaTeX title pages."
+  :group 'w3-printing
+  :type 'boolean)
+
+;;; Menus
+(defcustom w3-max-menu-length 35
+  "*The maximum length of a pulldown menu before it will be split into
+smaller chunks, with the first part as a submenu, followed by the rest
+of the menu."
+  :group 'w3-menus
+  :type 'integer)
+
+(defcustom w3-max-menu-width 40
+  "*The maximum width of a pulldown menu choice."
+  :group 'w3-menus
+  :type 'integer)
+
+;;; Advanced stuff
+(defcustom w3-modeline-format
+  '("  " ("W3"
+	(w3-netscape-emulation-minor-mode
+	 " (NS)")
+	(w3-lynx-emulation-minor-mode
+	 " (Lynx)")
+	": "
+	(40 (-40 "%b"))
+	" "
+	(w3-current-isindex "[Searchable]  ")
+	"%p" "  " global-mode-string))
+  "*The modeline format string when in w3 mode"
+  :group 'w3-advanced
+  :type 'list)
+
+(defcustom w3-netscape-compatible-comments t
+  "*Whether to honor netscape-style <! > comments.
+Ye gods I wish I could turn this off by default."
+  :group 'w3-parsing
+  :type 'boolean)
+
+(defcustom w3-notify 'semibully
+  "*Selects the behavior when w3 page is ready.
+This variable may have one of the following values:
+
+newframe   -- put the w3 page in its own frame
+bully      -- make the w3 page the current buffer and only window
+semibully  -- make the w3 page the current buffer in the same window
+aggressive -- make the w3 page the current buffer in the other window
+friendly   -- display  w3page in other window but don't make current
+polite     -- don't display w3 page, but prints message when ready (beeps)
+quiet      -- like `polite', but don't beep
+meek       -- make no indication that page is ready
+
+Any other value of `w3-notify' is equivalent to `meek'."
+  :group 'w3-display
+  :type '(choice (const :tag "Display in a new frame"
+			:value newframe)
+		 (const :tag "Display in the current window, select buffer, and kill other windows"
+			:value bully)
+		 (const :tag "Display in the current window, select buffer"
+			:value semibully)
+		 (const :tag "Display in another window, select buffer"
+			:value aggressive)
+		 (const :tag "Display in another window, but do not select it"
+			:value friendly)
+		 (const :tag "Do not display page, but show a message and beep"
+			:value polite)
+		 (const :tag "Do not display page, but show a message (no beep)"
+			:value quiet)
+		 (const :tag "Do not indicate that the page has been retrieved"
+			:value meek)))
+
+(defcustom w3-popup-menu-on-mouse-3 t
+  "*Non-nil value means W3 should provide context-sensitive menus on mouse-3.
+A nil value means W3 should not change the binding of mouse-3."
+  :group 'w3-display
+  :type 'boolean)
+
+(defcustom w3-print-command "lpr -h -d"
+  "*Print command for dvi files.
+This is usually 'lpr -h -d' to send it to a postscript printer, but you can set
+it up so that it is any command that takes a dvi file as its last argument."
+  :group 'w3-printing
+  :type 'string)
+
+(defcustom w3-reuse-buffers 'yes
+  "What to do when following a link will re-fetch a document that has
+already been fetched into a W3 buffer.  Possible values are: nil,
+'yes, and 'no.  Nil means ask the user if we should reuse the buffer.
+ A value of 'yes means assume the user wants us to reuse the buffer.
+A value of 'no means assume the user wants us to re-fetch the document.
+
+This will also accept:
+'no	==> always reload
+'yes	==> always reuse
+'ask	==> always ask"
+  :group 'w3-display
+  :type '(choice (const :tag "Always reload" :value no)
+		 (const :tag "Always reuse" :value yes)
+		 (const :tag "Always ask" :value ask)))
+
+(defcustom w3-right-margin 2
+  "*Default right margin for Emacs-W3 buffers.
+This amount is subtracted from (window-width) for each new WWW buffer
+and used as the new fill-column."
+  :group 'w3-display
+  :type 'integer)
+
+(defcustom w3-maximum-line-length nil
+  "*Maximum length of a line.
+If nil, then lines can extend all the way to the window margin."
+  :group 'w3-display
+  :type 'integer)
+
+(defcustom w3-track-mouse t
+  "*Whether to track the mouse and message the url under the mouse."
+  :group 'w3-display
+  :type 'boolean)
+
+(defcustom w3-honor-stylesheets t
+  "*Whether to let a document specify a CSS stylesheet."
+  :group 'w3-display
+  :type 'boolean)
+
+(defcustom w3-user-colors-take-precedence nil
+  "*Whether to let a document define certain colors about itself.
+Like foreground and background colors and pixmaps, color of links and
+visited links, etc."
+  :group 'w3-display
+  :type 'boolean)
+
+;;; Hook Variables
+(defcustom w3-load-hook nil
+  "*Hooks to be run after loading w3."
+  :group 'w3-hooks
+  :type 'hook)
+
+(defcustom w3-mode-hook nil
+  "*Hooks to be run after entering w3-mode."
+  :group 'w3-hooks
+  :type 'hook)
+
+(defcustom w3-source-file-hook nil
+  "*Hooks to be run after getting document source."
+  :group 'w3-hooks
+  :type 'hook)
+
+(provide 'w3-cus)
--- a/lisp/w3/w3-display.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-display.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; w3-display.el --- display engine v99999
 ;; Author: wmperry
-;; Created: 1997/03/06 04:12:42
-;; Version: 1.144
+;; Created: 1997/03/14 06:33:15
+;; Version: 1.147
 ;; Keywords: faces, help, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -440,14 +440,6 @@
 
 ;; Various macros
 (eval-when-compile
-  (defmacro w3-expand-url (url)
-    (`
-     (url-expand-file-name (, url)
-			   (cdr-safe
-			    (assoc
-			     (cdr-safe
-			      (assq 'base args)) w3-base-alist)))))
-
   (defmacro w3-handle-empty-tag ()
     (`
      (progn
@@ -1684,7 +1676,7 @@
 		     (if cols
 			 (setq w3-frameset-dimensions (push cols w3-frameset-dimensions))))
 		   (w3-handle-content node))
-	       (w3-handle-empty-tag)))
+	       (w3-handle-content node)))
 	    (frame
 	     (if w3-display-frames
 		 (let* ((href (or (w3-get-attribute 'src)
@@ -1705,7 +1697,8 @@
 					(list
 					 (car w3-frame-labels)
 					 name
-					 (cdr w3-frame-labels)))))))))))
+					 (cdr w3-frame-labels)))))))))
+	       (w3-handle-empty-tag)))
 	    (noframes
 	     (if w3-display-frames
 		 (w3-handle-empty-tag)
@@ -2070,9 +2063,9 @@
   (and (not w3-running-xemacs)
        (not (eq (device-type) 'tty))
        (w3-fixup-eol-faces))
-  (message "Drawing... done")
-  ;;(w3-handle-headers)
-  )
+  (let ((inhibit-read-only t))
+    (put-text-property (point-min) (point-max) 'read-only nil))
+  (message "Drawing... done"))
 
 (defun w3-region (st nd)
   (if (not w3-setup-done) (w3-do-setup))
--- a/lisp/w3/w3-e19.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-e19.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; w3-e19.el --- Emacs 19.xx specific functions for emacs-w3
 ;; Author: wmperry
-;; Created: 1997/02/18 23:32:51
-;; Version: 1.18
+;; Created: 1997/03/12 20:07:18
+;; Version: 1.19
 ;; Keywords: faces, help, mouse, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -97,9 +97,15 @@
     (ns-store-pasteboard-internal str))
    (t nil)))
 
+(defun w3-e19-no-read-only (st nd)
+  ;; Make sure we don't yank any read-only data out of this buffer
+  (let ((inhibit-read-only t))
+    (put-text-property st nd 'read-only nil)))
+
 (defun w3-mode-version-specifics ()
   ;; Emacs 19 specific stuff for w3-mode
   (make-local-variable 'track-mouse)
+  (set (make-local-variable 'buffer-access-fontify-functions) 'w3-e19-no-read-only)
   (if w3-track-mouse (setq track-mouse t)))
 
 (defun w3-mouse-handler (e)
--- a/lisp/w3/w3-emulate.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-emulate.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; w3-emulate.el --- All variable definitions for emacs-w3
 ;; Author: wmperry
-;; Created: 1997/02/04 19:21:18
-;; Version: 1.11
+;; Created: 1997/03/14 06:12:02
+;; Version: 1.12
 ;; Keywords: comm, help, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -109,56 +109,6 @@
   (skip-chars-forward "^ \t\n\r")
   (skip-chars-forward " \t"))
 
-(defun w3-read-netscape-config (&optional fname)
-  "Read in a netscape-style configuration file."
-  (interactive "fNetscape configuration file: ")
-  (if (not (and (file-exists-p fname)
-		(file-readable-p fname)))
-      (error "Could not read %s" fname))
-  (let ((results nil)
-	(tag nil)
-	(val nil)
-	(var nil)
-	(save-pos nil))
-    (save-excursion
-      (set-buffer (get-buffer-create " *w3-tmp*"))
-      (erase-buffer)
-      (insert-file-contents-literally fname)
-      (goto-char (point-min))
-      (skip-chars-forward "^ \t\r\n")	; Skip tag line
-      (skip-chars-forward " \t\r\n")	; Skip blank line(s)
-      (while (not (eobp))
-	(setq save-pos (point))
-	(skip-chars-forward "^:")
-	(upcase-region save-pos (point))
-	(setq tag (buffer-substring save-pos (point)))
-	(skip-chars-forward ":\t ")
-	(setq save-pos (point))
-	(skip-chars-forward "^\r\n")
-	(setq val (if (= save-pos (point))
-		      nil
-		    (buffer-substring save-pos (point))))
-	(cond
-	 ((null val) nil)
-	 ((string-match "^[0-9]+$" val)
-	  (setq val (string-to-int val)))
-	 ((string= "false" (downcase val))
-	  (setq val nil))
-	 ((string= "true" (downcase val))
-	  (setq val t))
-	 (t nil))
-	(skip-chars-forward " \t\n\r")
-	(setq results (cons (cons tag val) results))))
-    (while results
-      (setq tag (car (car results))
-	    val (cdr (car results))
-	    var (cdr-safe (assoc tag w3-netscape-variable-mappings))
-	    results (cdr results))
-      (cond
-       ((eq var 'w3-delay-image-loads) (set var (not val)))
-       (var (set var val))
-       (t nil)))))
-
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Now, lets try Lynx
--- a/lisp/w3/w3-hot.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-hot.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; w3-hot.el --- Main functions for emacs-w3 on all platforms/versions
 ;; Author: wmperry
-;; Created: 1997/02/18 23:36:48
-;; Version: 1.12
+;; Created: 1997/03/11 15:04:05
+;; Version: 1.13
 ;; Keywords: faces, help, comm, news, mail, processes, mouse, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -316,15 +316,15 @@
 (defun w3-hotlist-add-document-at-point (pref-arg)
   "Add the document pointed to by the hyperlink under point to the hotlist."
   (interactive "P")
-  (let ((url (w3-view-this-url t)) title)
+  (let ((url (w3-view-this-url t))
+	(widget (widget-at (point)))
+	(title nil))
     (or url (error "No link under point."))
-    (setq title (get-text-property (point) 'title))
-    (if (and title
-	     (marker-buffer (car title))
-	     (marker-buffer (cdr title)))
-	(setq title (buffer-substring-no-properties (car title) (cdr title)))
-      (setq title "None"))
-    (w3-hotlist-add-document pref-arg title url)))
+    (if (and (widget-get widget :from)
+	     (widget-get widget :to))
+	(setq title (buffer-substring (widget-get widget :from)
+				      (widget-get widget :to))))
+    (w3-hotlist-add-document pref-arg (or title url) url)))
 
 (defun w3-hotlist-add-document (pref-arg &optional the-title the-url)
   "Add this documents url to the hotlist"
--- a/lisp/w3/w3-latex.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-latex.el	Mon Aug 13 08:52:56 2007 +0200
@@ -38,24 +38,9 @@
 ;;; 3) This still doesn't handle tables.
 ;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(require 'w3-cus)
 (require 'w3-print)
 
-(defvar w3-latex-print-links nil
-  "*If non-nil, prints the URLs of hypertext links as endnotes at the end of
-the document.  If `footnote', prints the URL's as footnotes on a page.")
-
-(defvar w3-latex-use-latex2e nil
-  "*If non-nil, configures LaTeX parser to use LaTeX2e syntax.  A `nil' 
-value indicates that LaTeX 2.0.9 compatibility will be used instead.")
-
-(defvar w3-latex-packages nil
-  "*List of LaTeX packages to include.  Currently this is only used if 
-`w3-latex-use-latex2e' is non-nil.")
-
-(defvar w3-latex-use-maketitle nil
-  "*Non-nil makes the LaTeX parser use real LaTeX title pages for
-document titles.")
-
 ;; Internal variables - do not touch!
 (defvar w3-latex-current-url nil "What URL we are formatting")
 (defvar w3-latex-verbatim nil "Whether we are in a {verbatim} block or not")
--- a/lisp/w3/w3-menu.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-menu.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; w3-menu.el --- Menu functions for emacs-w3
 ;; Author: wmperry
-;; Created: 1997/03/04 14:32:11
-;; Version: 1.30
+;; Created: 1997/03/13 19:25:10
+;; Version: 1.32
 ;; Keywords: menu, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -318,11 +318,11 @@
 	(if (and w3-running-xemacs (featurep 'toolbar))
 	    ["Show Toolbar" w3-toggle-toolbar
 	     :style toggle :selected (w3-toolbar-active)]
-	  nil)
+	  ["Show Toolbar" w3-toggle-toolbar nil])
 	(if w3-running-xemacs
 	    ["Show Location" w3-toggle-location
 	     :style toggle :selected (w3-location-active)]
-	  nil)
+	  ["Show Location" w3-toggle-location nil])
 	(if w3-running-xemacs
 	    ["Show Status Bar" w3-toggle-minibuffer
 	     :style toggle
@@ -634,6 +634,7 @@
 		  url-be-asynchronous
 		  url-honor-refresh-requests
 		  url-privacy-level
+		  url-cookie-confirmation
 		  url-proxy-services
 		  url-standalone-mode
 		  url-use-hypertext-gopher
--- a/lisp/w3/w3-prefs.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-prefs.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; w3-prefs.el --- Preferences panels for Emacs-W3
 ;; Author: wmperry
-;; Created: 1997/03/04 14:33:41
-;; Version: 1.16
+;; Created: 1997/03/14 06:31:17
+;; Version: 1.19
 ;; Keywords: hypermedia, preferences
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -43,7 +43,8 @@
 				(cookies       . "HTTP Cookies")
 				(hooks         . "Various Hooks")
 				(compatibility . "Compatibility")
-				(proxy         . "Proxy")))
+				(proxy         . "Proxy")
+				(privacy       . "Privacy")))
 
 (defun w3-preferences-generic-variable-callback (widget &rest ignore)
   (condition-case ()
@@ -218,7 +219,7 @@
     (while todo
       (setq cur (car todo)
 	    todo (cdr todo)
-	    doc (get cur 'variable-documentation))
+	    doc (documentation-property cur 'variable-documentation)) ;; (get cur 'variable-documentation))
       (if (string-match "^\\*" doc)
 	  (setq doc (substring doc 1 nil)))
       (setq pt (point))
@@ -287,18 +288,23 @@
 	(proxy nil)
 	(host-var nil)
 	(port-var nil)
-	(urlobj nil))
+	(host nil)
+	(port nil)
+	(proxy-entry nil))
     (widget-insert "\n")
     (while proxies
       (setq proxy (car proxies)
 	    proxies (cdr proxies)
 	    host-var (intern (format "w3-%s-proxy-host" (downcase proxy)))
 	    port-var (intern (format "w3-%s-proxy-port" (downcase proxy)))
-	    urlobj (url-generic-parse-url
-		    (cdr-safe
-		     (assoc (downcase proxy) url-proxy-services))))
-      (set (make-local-variable host-var) (or (url-host urlobj) ""))
-      (set (make-local-variable port-var) (or (url-port urlobj) "")))))
+	    proxy-entry (cdr-safe (assoc (downcase proxy) url-proxy-services)))
+      (if (and proxy-entry (string-match "\\(.*\\):\\([0-9]+\\)" proxy-entry))
+	  (setq host (match-string 1 proxy-entry)
+		port (match-string 2 proxy-entry))
+	(setq host proxy-entry
+	      port nil))
+      (set (make-local-variable host-var) (or host ""))
+      (set (make-local-variable port-var) (or port "")))))
 
 (defun w3-preferences-create-proxy-panel ()
   (let ((proxies '("FTP" "Gopher" "HTTP" "Security" "WAIS" "SHTTP" "News"))
@@ -352,12 +358,126 @@
 	    port (symbol-value port-var))
       (if (and host (/= 0 (length host)))
 	  (setq new-proxy-services (cons (cons (downcase proxy)
-					       (format "http://%s:%s/" host
+					       (format "%s:%s" host
 						       (or port "80")))
 					 new-proxy-services))))
     (setq url-proxy-services new-proxy-services)))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;; Privacy panel
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(defsubst w3-preferences-privacy-bits-sort (bits) 
+  (sort bits (function (lambda (a b)
+			 (memq b (memq a '(email os lastloc agent cookie)))))))
+
+(defvar url-valid-privacy-levels
+  '((paranoid . (email os lastloc agent cookie))
+    (high     . (email lastloc))
+    (low      . (lastloc))
+    (none     . nil)))
+
+(defvar w3-preferences-privacy-bit-widgets nil)
+(defvar w3-preferences-privacy-level-widget nil)
+(defvar w3-preferences-temp-url-privacy-level nil)
+;; darnit i just noticed the checklist widget, this should probably be
+;; reimplemented with that instead of checkboxes, but i've almost finished.
+(defun w3-preferences-privacy-bit-callback (widget &rest ignore)
+  (let ((privacy-bits (if (listp w3-preferences-temp-url-privacy-level)
+  			  w3-preferences-temp-url-privacy-level
+  			(copy-list (cdr-safe (assq w3-preferences-temp-url-privacy-level url-valid-privacy-levels)))))
+  	(bit (widget-get widget 'bit))
+  	(val (widget-value widget)))
+    (if val
+  	(setq privacy-bits (delq bit privacy-bits))
+      (setq privacy-bits (w3-preferences-privacy-bits-sort (cons bit (delq bit privacy-bits)))))
+    (setq w3-preferences-temp-url-privacy-level
+  	  (or (car (rassoc privacy-bits url-valid-privacy-levels))
+  	      privacy-bits))
+    (widget-value-set w3-preferences-privacy-level-widget 
+  		      (if (listp w3-preferences-temp-url-privacy-level)
+  			  'custom
+  			w3-preferences-temp-url-privacy-level))
+    ))
+
+
+(defun w3-preferences-privacy-level-callback (widget &rest ignore)
+  (let* ((val (widget-value widget))
+  	 (privacy-bits (cdr-safe (assq val url-valid-privacy-levels))))
+    (if (eq val 'custom) nil
+      (setq w3-preferences-temp-url-privacy-level val)
+      (mapcar (function (lambda (bit)
+  			  (widget-value-set (cdr bit)
+  					    (not (memq (car bit)
+  						       privacy-bits)))))
+  	      w3-preferences-privacy-bit-widgets))
+    ))
+
+(defun w3-preferences-init-privacy-panel ()
+  (w3-preferences-create-temp-variables '(url-privacy-level
+					  url-cookie-confirmation))
+  (setq w3-preferences-privacy-bit-widgets nil)
+  (setq w3-preferences-privacy-level-widget nil))
+
+(defsubst w3-preferences-create-privacy-bit-widget (bit bit-text current-bits)
+  (let ((bit-widget (widget-create 
+		     'checkbox
+		     :value (not (memq bit current-bits))
+		     :notify 'w3-preferences-privacy-bit-callback
+		     )))
+    (widget-put bit-widget 'bit bit)
+    (setq w3-preferences-privacy-bit-widgets (cons (cons bit bit-widget)
+						   w3-preferences-privacy-bit-widgets))
+    (widget-insert " " bit-text "\n")))
+
+
+(defun w3-preferences-create-privacy-panel ()
+  (let ((privacy-bits (if (listp url-privacy-level)
+			  url-privacy-level
+			(cdr-safe (assq url-privacy-level url-valid-privacy-levels)))))
+    (widget-insert "\n")
+    (widget-insert "General Privacy Level: ")
+    ;;; XXX something is weird with case folding in the following widget if you
+    ;;; type an option in lower case it accepts it but doesn't do anything
+    (setq w3-preferences-privacy-level-widget
+	  (widget-create 
+	   'choice
+	   :value (if (listp w3-preferences-temp-url-privacy-level)
+		      'custom
+		    w3-preferences-temp-url-privacy-level)
+	    :notify 'w3-preferences-privacy-level-callback
+	   :format "%v"
+	   :tag "Privacy Level"
+	   (list 'choice-item :format "%[%t%]" :tag "Paranoid" :value 'paranoid)
+	   (list 'choice-item :format "%[%t%]" :tag "High"     :value 'high)
+	   (list 'choice-item :format "%[%t%]" :tag "Low"      :value 'low)
+	   (list 'choice-item :format "%[%t%]" :tag "None"     :value 'none)
+	   (list 'choice-item :format "%[%t%]" :tag "Custom"   :value 'custom)))
+    (widget-put w3-preferences-privacy-level-widget 'variable 'w3-preferences-temp-url-privacy-level)
+    
+    (widget-insert "\n(controls the options below)\n\nSend the following information with each request:\n")
+    (setq w3-preferences-privacy-bit-widgets nil)
+    (w3-preferences-create-privacy-bit-widget 'email   "E-mail address" privacy-bits)
+    (w3-preferences-create-privacy-bit-widget 'lastloc "Last location visited" privacy-bits)
+    (w3-preferences-create-privacy-bit-widget 'os      "Operating system information" privacy-bits)
+    (w3-preferences-create-privacy-bit-widget 'agent   "User agent information" privacy-bits)
+    (w3-preferences-create-privacy-bit-widget 'cookie  "Accept cookies" privacy-bits)
+    (widget-insert "    ")
+    (widget-put
+     (widget-create 
+      'checkbox
+      :value (symbol-value 'w3-preferences-temp-url-cookie-confirmation)
+      :notify 'w3-preferences-generic-variable-callback)
+     'variable 'w3-preferences-temp-url-cookie-confirmation)
+    (widget-insert " Ask before accepting cookies\n"))
+  (widget-setup))
+  
+(defun w3-preferences-save-privacy-panel ()
+  (w3-preferences-restore-variables '(url-privacy-level
+				      url-cookie-confirmation))
+  (url-setup-privacy-info))
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 (defun w3-preferences-create-panel (panel)
@@ -458,6 +578,7 @@
 	 (window-conf (current-window-configuration)))
     (delete-other-windows)
     (set-buffer prefs-buffer)
+    (set (make-local-variable 'widget-push-button-gui) nil)
     (w3-preferences-init-all-panels)
     (set-window-buffer (selected-window) prefs-buffer)
     (make-local-variable 'widget-field-face)
--- a/lisp/w3/w3-script.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-script.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; w3-script.el --- Scripting support
 ;; Author: wmperry
-;; Created: 1997/03/07 14:13:39
-;; Version: 1.5
+;; Created: 1997/03/08 01:28:33
+;; Version: 1.6
 ;; Keywords: hypermedia, scripting
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -81,10 +81,12 @@
 	 (let ((st 0)
 	       (form nil)
 	       (max (length f)))
-	   (while (and (< st max) (setq form (read-from-string f st)))
-	     (setq st (cdr form)
-		   form (car form))
-	     (w3-elisp-safe-eval form))))
+	   (condition-case ()
+	       (while (and (< st max) (setq form (read-from-string f st)))
+		 (setq st (cdr form)
+		       form (car form))
+		 (w3-elisp-safe-eval form))
+	     (error nil))))
 	(otherwise
 	 (message "Unimplemented scripting language: %S"
 		  w3-current-scripting-language)))))
--- a/lisp/w3/w3-sysdp.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-sysdp.el	Mon Aug 13 08:52:56 2007 +0200
@@ -658,11 +658,13 @@
   (cond
    ((eq window-system 'x) (car-safe (x-list-fonts fontname)))
    ((eq window-system 'ns) (car-safe (ns-list-fonts fontname)))
+   ((eq window-system 'win32) (car-safe (x-list-fonts fontname)))
+   ((eq window-system 'pm) (car-safe (x-list-fonts fontname)))
    (t nil)))
 
 (sysdep-defalias 'device-pixel-width
   (cond
-   ((and (eq window-system 'x) (fboundp 'x-display-pixel-width))
+   ((and (memq window-system '(x win32 pm)) (fboundp 'x-display-pixel-width))
     'x-display-pixel-width)
    ((and (eq window-system 'ns) (fboundp 'ns-display-pixel-width))
     'ns-display-pixel-width)
@@ -670,7 +672,7 @@
 
 (sysdep-defalias 'device-pixel-height
   (cond
-   ((and (eq window-system 'x) (fboundp 'x-display-pixel-height))
+   ((and (memq window-system '(x win32 pm)) (fboundp 'x-display-pixel-height))
     'x-display-pixel-height)
    ((and (eq window-system 'ns) (fboundp 'ns-display-pixel-height))
     'ns-display-pixel-height)
@@ -678,7 +680,7 @@
 
 (sysdep-defalias 'device-mm-width
   (cond
-   ((and (eq window-system 'x) (fboundp 'x-display-mm-width))
+   ((and (memq window-system '(x win32 pm)) (fboundp 'x-display-mm-width))
     'x-display-mm-width)
    ((and (eq window-system 'ns) (fboundp 'ns-display-mm-width))
     'ns-display-mm-width)
@@ -686,7 +688,7 @@
 
 (sysdep-defalias 'device-mm-height
   (cond
-   ((and (eq window-system 'x) (fboundp 'x-display-mm-height))
+   ((and (memq window-system '(x win32 pm)) (fboundp 'x-display-mm-height))
     'x-display-mm-height)
    ((and (eq window-system 'ns) (fboundp 'ns-display-mm-height))
     'ns-display-mm-height)
@@ -694,7 +696,7 @@
 
 (sysdep-defalias 'device-bitplanes
   (cond
-   ((and (eq window-system 'x) (fboundp 'x-display-planes))
+   ((and (memq window-system '(x win32 pm)) (fboundp 'x-display-planes))
     'x-display-planes)
    ((and (eq window-system 'ns) (fboundp 'ns-display-planes))
     'ns-display-planes)
@@ -747,7 +749,7 @@
 	  ((string-match "color" val) 'color)
 	  ((string-match "gray-scale" val) 'grayscale)
 	  (t 'mono))))))
-   (t (function (lambda (&optional device) 'mono)))))
+   (t (function (lambda (&optional device) 'color)))))
 
 (sysdep-defun device-class-list ()
   "Returns a list of valid device classes."
@@ -787,7 +789,6 @@
   "Given a TYPE, return t if it is valid."
   (memq type (device-type-list)))
 
-
 ;; Extent stuff
 (sysdep-fset 'delete-extent 'delete-overlay)
 (sysdep-fset 'extent-end-position 'overlay-end)
--- a/lisp/w3/w3-vars.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-vars.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; w3-vars.el,v --- All variable definitions for emacs-w3
 ;; Author: wmperry
-;; Created: 1997/03/07 16:46:48
-;; Version: 1.102
+;; Created: 1997/03/14 06:51:56
+;; Version: 1.108
 ;; Keywords: comm, help, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -29,8 +29,11 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Variable definitions for w3
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+
+(require 'w3-cus)			; Grab everything that is customized
+
 (defconst w3-version-number
-  (let ((x "p3.0.65"))
+  (let ((x "p3.0.68"))
     (if (string-match "State:[ \t\n]+.\\([^ \t\n]+\\)" x)
 	(setq x (substring x (match-beginning 1) (match-end 1)))
       (setq x (substring x 1)))
@@ -38,7 +41,7 @@
      (function (lambda (x) (if (= x ?-) "." (char-to-string x)))) x ""))
   "Version # of w3-mode.")
 
-(defconst w3-version-date (let ((x "1997/03/07 16:46:48"))
+(defconst w3-version-date (let ((x "1997/03/14 06:51:56"))
 			    (if (string-match "Date: \\([^ \t\n]+\\)" x)
 				(substring x (match-beginning 1) (match-end 1))
 			      x))
@@ -51,216 +54,16 @@
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; General configuration variables
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(defvar w3-auto-image-alt t
-  "*Whether emacs-w3 should create an alt attribute for an image that
-is missing it.
-If nil, emacs-w3 will not automatically create an ALT attribute.
-If t, the alt attribute will be [IMAGE(nameofimage)]
-If a string, it should be a string suitable for running through format,
-   with only one %s, which will be replaced with just the filename of the
-   graphic that is not loaded.")
-
-(defvar w3-configuration-directory "~/.w3/"
-  "*Where emacs-w3 can find its configuration files")
-
-(defvar w3-debug-html nil "*Whether to gripe about bad HTML or not.")
-
-(defvar w3-debug-buffer "*HTML Debug*"
-  "*Name of buffer to store debugging information in.")
-
-(defvar w3-default-configuration-file nil
-  "*Where per-user customizations of w3 are kept.")
-
-(defvar w3-default-homepage nil
-  "*The url to open at startup.  It can be any valid URL.
-This will default to the environment variable WWW_HOME if you do not
-set it in your .emacs file. If WWW_HOME is undefined, then it will
-default to  the hypertext documentation for W3 at Indiana University.")
-
-(defvar w3-default-stylesheet nil
-  "*The filename of the users default stylesheet.")
-
-(defvar w3-display-frames nil
-  "*Fetch frames - not optimal.")
-
-(defvar w3-frame-labels '("FRAME(" . ")")
-  "Strings surrounding a frame name")
-
-(defvar w3-frame-regexp "FRAME(\\([^)]+\\))"
-  "Regexp for finding a frame hyperlink")
-
-(defvar w3-frameset-structure nil
-  "Frameset structure")
-
-(defvar w3-frameset-dimensions nil
-  "Frameset dimensions")
-
-(defvar w3-frame-name nil
-  "Frame name")
-
-(defvar w3-base-target nil
-  "Base target name")
-
-(defvar w3-target-window-distances nil
-  "Target window distances")
-
-(defvar w3-do-incremental-display nil
-  "*Whether to do incremental display of pages or not.")
-
 (defvar w3-dump-to-disk nil
   "*If non-nil, all W3 pages loaded will be dumped to disk.")
 
-(defvar w3-echo-link '(title url text name)
-  "*Whether to display the URL of a link when tabbing through links.
-Value is a list of one or more of the following symbols:
-
-  url    == url of the target
-  text   == text of the link
-  title  == title attribute of the link
-  name   == name or id attribute of the link
-
-If none of the information is available, nothing will be shown for the link
-in menus, etc.")
-  
-(defvar w3-horizontal-rule-char ?-
-  "*The character to use to create a horizontal rule.
-Must be the character's code, not a string.  This character is
-replicated across the screen to create a division.")
-
 (defvar w3-fetch-with-default t
   "*Whether `w3-fetch' should determine a good starting URL as a default.")
 
-(defvar w3-hotlist-file nil
-  "*Hotlist filename.
-This should be the name of a file that is stored in either
-NCSA's Mosaic/X or Netscape/X format.  It is used to keep a listing
-of commonly accessed URL's without having to go through 20 levels of
-menus to get to them.")
-
-(defvar w3-icon-directory "http://cs.indiana.edu/elisp/w3/icons/"
-  "*Where to find standard icons.  Must end in a /!")
-
-(defvar w3-icon-format 'xbm
-  "*What file extension icons end in.  This is a symbol, string, or nil.
-If nil, then no file extension is used.")
-
-(defvar w3-indent-level 4
-  "*Default # of spaces to indent instead of using TABs.  This is
-necessary to preserve tabs in PRE segments yet still get smaller
-indentation for lists, etc.")
-
-(defvar w3-keep-old-buffers t
-  "*Whether to keep old buffers around when following links.")
-
-(defvar w3-latex-docstyle "{article}"
-  "*The documentstyle to use when printing/mailing converted HTML
-files in LaTeX.  Good defaults are:
-{article}, [psfig,twocolumn]{article}, etc.")
-
-(defvar w3-mail-command 'mail
-  "*This function will be called whenever w3 needs to send mail.  It should
-enter a mail-mode-like buffer in the current window.
-The commands `mail-to' and `mail-subject' should still work in this
-buffer, and it should use mail-header-separator if possible.")
-
-(defvar w3-max-menu-length 35
-  "*The maximum length of a pulldown menu before it will be split into
-smaller chunks, with the first part as a submenu, followed by the rest
-of the menu.")
-
-(defvar w3-max-menu-width 40 "*The maximum width of a pulldown menu choice.")
-
-(defvar w3-modeline-format
-  '("  " ("W3"
-	(w3-netscape-emulation-minor-mode
-	 " (NS)")
-	(w3-lynx-emulation-minor-mode
-	 " (Lynx)")
-	": "
-	(40 (-40 "%b"))
-	" "
-	(w3-current-isindex "[Searchable]  ")
-	"%p" "  " global-mode-string))
-  "*The modeline format string when in w3 mode")
-
-(defvar w3-mule-attribute 'underline
-  "*How to highlight items in Mule (Multi-Linugual Emacs).")
-
-(defvar w3-netscape-configuration-file nil
-  "*A Netscape-for-X style configuration file.  This file will only be read if
-and only if `w3-use-netscape-configuration-file' is non-nil.")
-
-(defvar w3-netscape-compatible-comments t
-  "*Whether to honor netscape-style <! > comments.
-Ye gods I wish I could turn this off by default.")
-
-(defvar w3-notify 'semibully
-  "*Selects the behavior when w3 page is ready.
-This variable may have one of the following values:
-
-newframe   -- put the w3 page in its own frame
-bully      -- make the w3 page the current buffer and only window
-semibully  -- make the w3 page the current buffer in the same window
-aggressive -- make the w3 page the current buffer in the other window
-friendly   -- display  w3page in other window but don't make current
-polite     -- don't display w3 page, but prints message when ready (beeps)
-quiet      -- like `polite', but don't beep
-meek       -- make no indication that page is ready
-
-Any other value of `w3-notify' is equivalent to `meek'.")
-
-(defvar w3-popup-menu-on-mouse-3 t
-  "*Non-nil value means W3 should provide context-sensitive menus on mouse-3.
-A nil value means W3 should not change the binding of mouse-3.")
-
-(defvar w3-print-command "lpr -h -d"
-  "*Print command for dvi files.
-This is usually lpr -h -d to send it to a postscript printer, but you can set
-it up so that it is any command that takes a dvi file as its last argument.")
-
-(defvar w3-reuse-buffers 'reuse
-  "What to do when following a link will re-fetch a document that has
-already been fetched into a W3 buffer.  Possible values are: nil,
-'yes, and 'no.  Nil means ask the user if we should reuse the buffer.
- A value of 'yes means assume the user wants us to reuse the buffer.
-A value of 'no means assume the user wants us to re-fetch the document.
-
-This will also accept:
-'no 'never 'reload	==> always reload
-'yes 'reuse 'always	==> always reuse
-'ask nil		==> always ask")
-
-(defvar w3-right-margin 2
-  "*Amount of space to leave on right margin of WWW buffers.
-This amount is subtracted from (window-width) for each new WWW buffer
-and used as the new fill-column.")
-
-(defvar w3-maximum-line-length nil
-  "*Maximum length of a line.  If nil, then lines can extend all the way to
-the window margin.")
-
-(defvar w3-temporary-directory "/tmp" "*Where temporary files go.")
-
 (defvar w3-track-last-buffer nil
   "*Whether to track the last w3 buffer to automatically switch to with
  M-x w3.")
 
-(defvar w3-track-mouse t
-  "*Whether to track the mouse and message the url under the mouse.")
-
-(defvar w3-use-netscape-configuration-file nil
-  "*Whether to use a netscape configuration file to determine things like
-home pages, link colors, etc.  If non-nil, then `w3-netscape-configuration-file'
-is read in at startup.")
-
-(defvar w3-honor-stylesheets t
-  "*Whether to let a document specify a CSS stylesheet.")
-
-(defvar w3-user-colors-take-precedence nil
-  "*Whether to let a document define certain colors about itself.
-Like foreground and background colors and pixmaps, color of links and
-visited links, etc.")
-
 (defvar w3-gc-cons-threshold-multiplier 1
   "Amount to temporarily multiply gc-cons-threshold by when parsing HTML.
 Setting this to a number greater than 1 will result in less frequent
@@ -270,14 +73,6 @@
 in later garbage collections taking more time.")
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Hook Variables
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(defvar w3-load-hook nil "*Hooks to be run after loading w3.")
-(defvar w3-mode-hook nil "*Hooks to be run after entering w3-mode.")
-(defvar w3-source-file-hook nil
-  "*Hooks to be run after getting document source.")
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Figure out what flavor of emacs we are running
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 (defvar w3-running-xemacs (string-match "XEmacs\\|Lucid" emacs-version)
@@ -288,43 +83,8 @@
   "*In FSF v19 emacs?")
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;; Graphics parsing stuff
+;; Store the database of HTML general entities.
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-(defvar w3-graphics-list nil
-  "*List of graphics already read in.")
-
-(defvar w3-delay-image-loads nil
-  "*Delay loading images for w3 or not?")
-
-(defvar w3-delayed-images nil
-  "*A buffer-local variable holding positions and urls of images within
-the buffer.")
-
-(defvar w3-image-mappings
-  '(
-    ("image/x-xbitmap"        . xbm)
-    ("image/xbitmap"          . xbm)
-    ("image/xbm"              . xbm)
-    ("image/jpeg"             . jpeg)
-    ("image/gif"              . gif)
-    ("image/png"              . png)
-    ("image/x-fax"            . g3fax)
-    ("image/x-raster"         . rast)
-    ("image/windowdump"       . xwd)
-    ("image/x-icon"           . icon)
-    ("image/portable-graymap" . pgm)
-    ("image/portable-pixmap"  . ppm)
-    ("image/x-pixmap"         . xpm)
-    ("image/x-xpixmap"        . xpm)
-    ("image/pict"             . pict)
-    ("image/x-rgb"            . sgi)
-    ("image/x-sgi"            . sgi)
-    ("image/x-macpaint"       . macpt)
-    ("image/x-targa"          . tga)
-    ("image/tiff"             . tiff)
-    ) "*How to map MIME types to image types for the `image' package.")
-
-;; Store the database of HTML general entities.
 (defvar w3-html-entities 
   '(
     (excl        .  33)
@@ -562,6 +322,11 @@
   '("Emacs-W3 Commands"
     ["Back" w3-history-backward (car (w3-history-find-url-internal (url-view-url t)))]
     ["Forward" w3-history-forward (cdr (w3-history-find-url-internal (url-view-url t)))]
+    "---"
+    ["Reload"       (w3-reload-document) t]
+    ["Show Images"  (w3-load-delayed-images) w3-delayed-images]
+    "---"
+    ["Add bookmark" (w3-hotlist-add-document nil) t]
     )
   "The shorter popup menu.")
 
@@ -578,7 +343,7 @@
 
 (defvar w3-hyperlink-menu
   '(("Open this Link (%s)"        . w3-fetch)
-    ("Add Bookmark for this Link" . w3-hotlist-add-document)
+    ("Add Bookmark for this Link" . w3-hotlist-add-document-at-point)
     ("New Window with this Link"  . w3-fetch-other-frame)
     ("Save Link As..."            . w3-download-url)
     ("Copy this Link Location to Clipboard" . w3-save-url)
@@ -589,20 +354,37 @@
 the link.  Each label can have exactly one `%s' that will be replaced by
 the URL of the link.")
 
-(defvar w3-documentation-root "http://www.cs.indiana.edu/elisp/w3/docs/"
-  "*Where the w3 documentation lives.  This MUST end in a slash.")
-
-(defvar w3-defined-link-types
-  ;; This is the HTML3.0 list (downcased) plus "made".
-  '("previous" "next" "up" "down" "home" "toc" "index" "glossary"
-    "copyright" "bookmark" "help" "made")
-  "A list of the (lower-case) names which have special significance
-as the values of REL or REV attributes of <link> elements.  They will
-be presented on the toolbar or the links menu, for instance.")
-
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;; Variables internal to W3, you should not change any of these
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+(defvar w3-graphics-list nil
+  "*List of graphics already read in.")
+
+(defvar w3-delayed-images nil
+  "*A buffer-local variable holding positions and urls of images within
+the buffer.")
+
+(defvar w3-frame-labels '("FRAME(" . ")")
+  "Strings surrounding a frame name")
+
+(defvar w3-frame-regexp "FRAME(\\([^)]+\\))"
+  "Regexp for finding a frame hyperlink")
+
+(defvar w3-frameset-structure nil
+  "Frameset structure")
+
+(defvar w3-frameset-dimensions nil
+  "Frameset dimensions")
+
+(defvar w3-frame-name nil
+  "Frame name")
+
+(defvar w3-base-target nil
+  "Base target name")
+
+(defvar w3-target-window-distances nil
+  "Target window distances")
+
 (defvar w3-form-radio-elements nil "Internal variable - do not touch!")
 (defvar w3-form-elements nil "Internal variable - do not touch!")
 
@@ -612,9 +394,6 @@
 (defvar w3-current-stylesheet nil
   "The stylesheet for this document.")
 
-(defvar w3-base-alist nil
-  "An assoc list of named BASE tags in the current document.")
-
 (defvar w3-blinking-buffs nil
   "A list of buffers with blinking text in them.
 This is used to optimize when we change a face so the entire display
@@ -625,37 +404,9 @@
   "An internal variable for the new display engine that specifies the
 last character position that was correctly filled.")
 
-(defvar w3-last-tag nil
-  "An internal variable for the new display engine that specifies the
-last tag processed.")
-
 (defvar w3-active-faces nil "The list of active faces.")
 (defvar w3-active-voices nil "The list of active voices.")
 
-(defvar w3-netscape-variable-mappings
-  '(("PRINT_COLOR"	. ps-print-color-p)
-    ("SOCKS_HOST"	. url-socks-host)
-    ("ORGANIZATION"	. url-user-organization)
-    ("EMAIL_ADDRESS"	. url-personal-mail-address)
-    ("REAL_NAME"	. url-user-real-name)
-    ("NEWSGROUP_DESCRIPTIONS" . url-show-newsgroup-descriptions)
-    ("NNTPSERVER"	. url-news-server)
-    ("AUTOLOAD_IMAGES"	. w3-delay-image-loads)
-    ("HOME_DOCUMENT"	. w3-default-homepage)
-    ("UNDERLINE_LINKS"	. w3-underline-links)
-    ("TMPDIR"		. url-temporary-directory))
-  "A mapping from netscape configuration file options to w3 variables.")
-     
-(defvar w3-acceptable-protocols-alist
-  '(("Gopher"                           . "gopher")
-    ("TN3270 (IBM Mainframe emulation)" . "tn3270")
-    ("Interactive Telnet Session"       . "telnet")
-    ("Local file or file over ftp"      . "file")
-    ("File on an http server"           . "http")
-    ("Usenet newsgroup/article"         . "news")
-    ("Mail session"                     . "mailto"))
-  "An assoc list of descriptive labels and the corresponding URL stub.")
-
 (defconst w3-bug-address "wmperry@cs.indiana.edu"
   "Address of current maintainer, where to send bug reports.")
 (defvar w3-continuation '(url-uncompress url-clean-text)
@@ -750,8 +501,6 @@
 	   (if (boundp var)
 	       (make-variable-buffer-local var)))) w3-persistent-variables)
 
-(make-variable-buffer-local 'w3-base-alist)
-(make-variable-buffer-local 'w3-last-tag)
 (make-variable-buffer-local 'w3-last-fill-pos)
 (make-variable-buffer-local 'w3-frame-name)
 (make-variable-buffer-local 'w3-active-faces)
--- a/lisp/w3/w3-widget.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-widget.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; w3-widget.el --- An image widget
 ;; Author: wmperry
-;; Created: 1997/03/05 23:37:58
-;; Version: 1.20
+;; Created: 1997/03/11 15:40:22
+;; Version: 1.23
 ;; Keywords: faces, images
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -56,6 +56,8 @@
 (defvar widget-image-keymap (make-sparse-keymap)
   "Keymap used over glyphs in an image widget")
 
+(define-widget-keywords :tab-order)
+
 (defconst widget-mouse-button1 nil)
 (defconst widget-mouse-button2 nil)
 (defconst widget-mouse-button3 nil)
@@ -244,7 +246,8 @@
 	   ((and server-map (stringp href))
 	    (setq real-widget
 		  (widget-image-create-subwidget
-		   'push-button :tag alt
+		   'push-button
+		   :tag alt
 		   :delete 'widget-default-delete
 		   :value href
 		   :action (widget-get widget :action)
@@ -261,6 +264,7 @@
 	    (setq real-widget
 		  (widget-image-create-subwidget
 		   'push-button :tag alt :format "%[%t%]"
+		   :tab-order -1
 		   :delete 'widget-default-delete
 		   :action (widget-get widget :action)
 		   :notify 'widget-image-callback))))
--- a/lisp/w3/w3-xemac.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3-xemac.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; w3-xemac.el --- XEmacs specific functions for emacs-w3
 ;; Author: wmperry
-;; Created: 1997/02/17 23:09:24
-;; Version: 1.15
+;; Created: 1997/03/09 01:59:33
+;; Version: 1.16
 ;; Keywords: faces, help, mouse, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -144,9 +144,11 @@
 	(if (not w3-track-mouse)
 	    (setq inhibit-help-echo nil))
 	(setq mode-motion-hook 'w3-mouse-handler)))
-  (if (eq (device-type) 'tty)
-      nil
-    (w3-add-toolbar-to-buffer))
+  (case (device-type)
+    ((tty stream)			; TTY or batch
+     nil)
+    (otherwise
+     (w3-add-toolbar-to-buffer)))
   (setq mode-popup-menu w3-popup-menu))
 
 (require 'w3-toolbar)
--- a/lisp/w3/w3.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/w3/w3.el	Mon Aug 13 08:52:56 2007 +0200
@@ -1,7 +1,7 @@
 ;;; w3.el --- Main functions for emacs-w3 on all platforms/versions
 ;; Author: wmperry
-;; Created: 1997/03/07 16:44:12
-;; Version: 1.93
+;; Created: 1997/03/14 06:39:41
+;; Version: 1.98
 ;; Keywords: faces, help, comm, news, mail, processes, mouse, hypermedia
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -130,18 +130,13 @@
 ;;; Functions to pass files off to external viewers
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 (defun w3-start-viewer (fname cmd &optional view)
-  "Start a subprocess, named FNAME, executing CMD
+  "Start a subprocess, named FNAME, executing CMD.
 If third arg VIEW is non-nil, show the output in a buffer when
 the subprocess exits."
   (if view (save-excursion
 	     (set-buffer (get-buffer-create view))
 	     (erase-buffer)))
-  (let ((proc
-	 (start-process fname view (or shell-file-name
-				       (getenv "ESHELL")
-				       (getenv "SHELL")
-				       "/bin/sh") "-c" cmd)))
-    proc))
+  (start-process fname view shell-file-name shell-command-switch cmd))
 
 (defun w3-viewer-filter (proc string)
   ;; A process filter for asynchronous external viewers
@@ -279,56 +274,6 @@
     (mule-write-region-no-coding-system (point-min) (point-max) file)
     (kill-buffer (current-buffer))))
 
-(defun w3-build-url (protocol)
-  "Build a url for PROTOCOL, return it as a string"
-  (interactive (list (cdr (assoc (completing-read
-				  "Protocol: "
-				  w3-acceptable-protocols-alist nil t)
-				 w3-acceptable-protocols-alist))))
-  (let (user host port file)
-    (cond
-     ((null protocol) (error "Protocol is unknown to me!"))
-     ((string= protocol "news")
-      (setq host (read-string "Enter news server name, or blank for default: ")
-	    port (read-string "Enter port number, or blank for default: ")
-	    file (read-string "Newgroup name or Message-ID: ")))
-     ((string= protocol "mailto") (setq file (read-string "E-mail address: ")))
-     ((string= protocol "http")
-      (setq host (read-string "Enter server name: ")
-	    port (read-string "Enter port number, or blank for default: ")
-	    file (read-string "Remote file: "))
-      (and (string= "" port) (setq port nil))
-      (and (string= "" host) (error "Must specify a remote machine!")))
-     ((string= protocol "file")
-      (if (funcall url-confirmation-func "Local file?")
-	  (setq file (read-file-name "Local File: " nil nil t))
-	(setq user (read-string "Login as user (blank=anonymous): ")
-	      host (read-string "Remote machine name: "))
-	(and (string= user "") (setq user "anonymous"))
-	(and (string= host "") (error "Must specify a remote machine!"))
-	(setq file (read-file-name "File: " (format "/%s@%s:" user host)
-				   nil t)
-	      file (substring file (length (format "/%s@%s:" user host))))))
-     ((or (string= protocol "telnet")
-	  (string= protocol "tn3270"))
-      (setq user (read-string "Login as user (blank=none): ")
-	    host (read-string "Remote machine name: ")
-	    port (read-string "Port number (blank=23): "))
-      (and (string= "" port) (setq port nil))
-      (and (string= "" user) (setq user nil))
-      (and (string= "" host) (error "Must specify a host machine!")))
-     ((string= protocol "gopher")
-      (setq host (read-string "Enter server name: ")
-	    port (read-string "Enter port number, or blank for default: ")
-	    file (read-string "Remote file: "))
-      (and (string= "" port) (setq port nil))
-      (and (string= "" host) (error "Must specify a remote machine!"))))
-    (message "%s:%s%s"
-	     protocol
-	     (if (null host) "" (concat "//" host
-					(if (null port) "" (concat ":" port))))
-	     (if (= ?/ (string-to-char file)) file (concat "/" file)))))
-
 ;;;###autoload
 (defun w3-open-local (fname)
   "Find a local file, and interpret it as a hypertext document.
@@ -653,7 +598,7 @@
 			  (nth 5 attributes)))
 	     (hdrs url-current-mime-headers)
 	     (size (or (cdr (assoc "content-length" url-current-mime-headers))
-		       (point-max)))
+		       (buffer-size)))
 	     (info w3-current-metainfo))
 	(set-buffer (get-buffer-create url-working-buffer))
 	(setq url-current-can-be-cached nil)
@@ -967,7 +912,7 @@
 	      (setq content-type "application/x-latex; charset=iso-8859-1")
 	      (w3-parse-tree-to-latex w3-current-parse url)))
 	    (buffer-string))))
-    (funcall w3-mail-command)
+    (funcall url-mail-command)
     (mail-subject)
     (if (and (boundp 'mime/editor-mode-flag) mime/editor-mode-flag)
         (insert format " from <URL: " url ">")
@@ -2008,7 +1953,8 @@
 				       w3-configuration-directory))
 					   
 
-  (if (and w3-default-configuration-file
+  (if (and init-file-user
+	   w3-default-configuration-file
 	   (file-exists-p w3-default-configuration-file))
       (condition-case e
 	  (load w3-default-configuration-file nil t)
@@ -2027,14 +1973,6 @@
 			       "Please consult the `%s' buffer for details."))
 			    w3-default-configuration-file buf-name))))))
 	       
-  (setq w3-netscape-configuration-file
-	(cond
-	 (w3-netscape-configuration-file
-	  w3-netscape-configuration-file)
-	 ((memq system-type '(ms-dos ms-windows))
-	  (expand-file-name "~/NETSCAPE.CFG"))
-	 (t (expand-file-name "~/.netscape/preferences"))))
-
   (if (and (eq w3-user-colors-take-precedence 'guess)
 	   (not (eq (device-type) 'tty))
 	   (not (eq (device-class) 'mono)))
@@ -2050,11 +1988,6 @@
 	    (expand-file-name "history"
 			      w3-configuration-directory)))
 
-  (if (and w3-use-netscape-configuration-file
-	   w3-netscape-configuration-file
-	   (fboundp 'w3-read-netscape-config))
-      (w3-read-netscape-config w3-netscape-configuration-file))
-      
   (add-minor-mode 'w3-netscape-emulation-minor-mode " NS"
 		  w3-netscape-emulation-minor-mode-map)
   (add-minor-mode 'w3-lynx-emulation-minor-mode " Lynx"
@@ -2275,12 +2208,12 @@
       (mapcar (function (lambda (x) (set-variable (car x) (cdr x)))) tmp)
       (w3-mode-version-specifics)
       (w3-menu-install-menus)
-      (run-hooks 'w3-mode-hook)
-      (widget-setup)
       (setq url-current-passwd-count 0
 	    inhibit-read-only nil
 	    truncate-lines t
 	    mode-line-format w3-modeline-format)
+      (run-hooks 'w3-mode-hook)
+      (widget-setup)
       (if w3-current-isindex
 	  (setq mode-line-process "-Searchable")))))
 
--- a/lisp/x11/x-menubar.el	Mon Aug 13 08:52:30 2007 +0200
+++ b/lisp/x11/x-menubar.el	Mon Aug 13 08:52:56 2007 +0200
@@ -127,6 +127,7 @@
        ["Towers of Hanoi"	hanoi			t]
        ["Game of Life"		life			t]
        ["Multiplication Puzzle"	mpuz			t]
+       ["Mine Game"		mine			t]
        )
       )
 
@@ -1180,9 +1181,8 @@
   "This function will return a list of all faces that have not been
 'customized'."
   (delq nil (mapcar '(lambda (face)
-		      (if (not (or (get face 'saved-face)
-				   (get face 'factory-face)))
-			  face))
+		      (unless (get face 'saved-face)
+			face))
 		    (face-list))))
 
 (defun save-options-specifier-spec-list (face property)
@@ -1400,9 +1400,18 @@
   (popup-menu
    (cond ((and global-popup-menu mode-popup-menu)
 	  (check-menu-syntax mode-popup-menu)
-	  (let ((title (car mode-popup-menu))
-		(items (cdr mode-popup-menu)))
-	    (append global-popup-menu
+	  (let* ((title (car mode-popup-menu))
+		 (items (cdr mode-popup-menu))
+		 filters)
+	    ;; Strip keywords from local menu for attaching them at the top
+	    (while (not (vectorp (car items)))
+	      (setq items (append filters (list (car items))))
+	      (setq items (cdr items)))
+	    ;; If filters contains a keyword already present in
+	    ;; `global-popup-menu' you will probably lose.
+	    (append (list (car global-popup-menu))
+		    filters
+		    (cdr global-popup-menu)
 		    '("---" "---")
 		    (if popup-menu-titles (list title))
 		    (if popup-menu-titles '("---" "---"))
--- a/man/cc-mode.texi	Mon Aug 13 08:52:30 2007 +0200
+++ b/man/cc-mode.texi	Mon Aug 13 08:52:56 2007 +0200
@@ -1,11 +1,11 @@
-\input texinfo   @c -*- texinfo -*-
+\input texinfo
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 @comment %**start of header (This is for running Texinfo on a region)
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-@setfilename  ../info/cc-mode.info
-@settitle     CC-MODE Version 4 Documentation
+@setfilename  cc-mode.info
+@settitle     CC MODE Version 4 Documentation
 @footnotestyle end
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -17,12 +17,12 @@
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 @comment 
 @comment texinfo manual for @file{cc-mode.el} version 4
-@comment manual version: 2.55
+@comment manual version: 2.66
 @comment generated from the original README file by Krishna Padmasola
 @comment <krishna@earth-gw.njit.edu>
 @comment 
 @comment Barry A. Warsaw <bwarsaw@cnri.reston.va.us>
-@comment Last modification: 1996/08/21 19:29:16
+@comment Last modification: 1997/03/07 23:36:14
 @comment 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
@@ -48,10 +48,10 @@
 @comment The title is printed in a large font.
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-@center @titlefont{CC-MODE Version 4}
+@center @titlefont{CC Mode Version 4}
 @sp 2
 @center A GNU Emacs mode for editing C, C++, Objective-C, and Java code.
-@center (manual revision: 2.55)
+@center (manual revision: 2.66)
 @sp 2
 @center Barry A. Warsaw
 
@@ -89,7 +89,7 @@
 * Syntactic Symbols::
 * Performance Issues::
 * Frequently Asked Questions::
-* Getting the latest cc-mode release::
+* Getting the latest CC Mode release::
 * Sample .emacs File::
 * Limitations and Known Bugs::  
 * Mailing Lists and Submitting Bug Reports::  
@@ -107,31 +107,35 @@
 @chapter  Introduction
 @cindex   Introduction
 
+@macro ccmode
+CC Mode
+@end macro
+
 @cindex BOCM
-Welcome to @code{cc-mode}, version 4.  This is a GNU Emacs mode for
+Welcome to @ccmode{}, version 4.  This is a GNU Emacs mode for
 editing files containing C, C++, Objective-C, and Java code.
 This incarnation of the mode is descendant from @file{c-mode.el} (also
 called "Boring Old C Mode" or BOCM @code{:-)}, and @file{c++-mode.el}
-version 2, which I have been maintaining since 1992.  @code{cc-mode}
+version 2, which I have been maintaining since 1992.  @ccmode{}
 represents a significant milestone in the mode's life.  It has been
 fully merged back with Emacs 19's @file{c-mode.el}. Also a new, more
 intuitive and flexible mechanism for controlling indentation has been
 developed.
 
-@code{cc-mode} version 4 supports the editing of K&R and ANSI C,
-@dfn{ARM} @footnote{i.e. ``The Annotated C++ Reference Manual'', by
-Ellis and Stroustrup.} C++, Objective-C, and Java files.  In this way,
-you can easily set up consistent coding styles for use in editing all C,
-C++, Objective-C, and Java programs. @code{cc-mode} does @emph{not}
-handle font-locking (a.k.a. syntax coloring, keyword highlighting) or
-anything of that nature, for any of the 4 modes.  Those are handled by
-other Emacs packages.
+@ccmode{} version 4 supports the editing of K&R and ANSI C, @dfn{ARM}
+@footnote{``The Annotated C++ Reference Manual'', by Ellis and
+Stroustrup.} C++, Objective-C, and Java files.  In this way, you can
+easily set up consistent coding styles for use in editing all C, C++,
+Objective-C, and Java programs. @ccmode{} does @emph{not} handle
+font-locking (a.k.a. syntax coloring, keyword highlighting) or anything
+of that nature, for any of the 4 modes.  Those are handled by other
+Emacs packages.
 
 This manual will describe the following:
 
 @itemize @bullet
 @item
-How to get started using @code{cc-mode}.
+How to get started using @ccmode{}.
 
 @item
 How the new indentation engine works.
@@ -141,36 +145,33 @@
 
 @end itemize
 
-Note that the name of this file is @file{cc-mode.el}, and I'll often
-refer to the package as @code{cc-mode}, but there really is no top level
-@code{cc-mode} entry point.  I call it @code{cc-mode} simply to
-differentiate it from @file{c-mode.el}.  All of the variables, commands,
-and functions in @code{cc-mode} are prefixed with
-@code{c-@var{<thing>}}, and @code{c-mode}, @code{c++-mode},
-@code{objc-mode}, and @code{java-mode} entry points are provided.  This
-file is intended to be a replacement for @file{c-mode.el} and
-@file{c++-mode.el}.
+Note that the name of this package is ``@ccmode{}''.  The main file for
+@ccmode{} is @file{cc-mode.el}, but other files are included in the
+@ccmode{} distribution.  There is no top level @code{cc-mode} entry
+point.  All of the variables, commands, and functions in @ccmode{} are
+prefixed with @code{c-@var{<thing>}}, and @code{c-mode},
+@code{c++-mode}, @code{objc-mode}, and @code{java-mode} entry points are
+provided.  This file is intended to be a replacement for
+@file{c-mode.el} and @file{c++-mode.el}.
 
 @findex c-version
 The major version number was incremented to 4 with the addition of
 @code{objc-mode}. To find the minor revision number of this release, use
 @kbd{M-x c-version RET}.
 
-As of this writing (20-Aug-1996), both Emacs 19.33 and XEmacs 19.14 are
-distributed with @code{cc-mode}, however neither have the very latest
-version.  In all likelihood, Emacs 19.34 and XEmacs 19.15 will contain
-the latest version of @code{cc-mode}.  You may therefore, want to
-upgrade your copy of @code{cc-mode}.  See @ref{Getting the latest
-cc-mode release}.
+As of this writing (27-Feb-1997), Emacs 19.34, XEmacs 19.14, and XEmacs
+20.0 are all distributed with @ccmode{}, but they may not have the
+latest releases.  You may therefore, want to upgrade your copy of
+@ccmode{}.  See @ref{Getting the latest CC Mode release}.
 
 @cindex @file{cc-compat.el} file
 This distribution also contains a file called @file{cc-compat.el} which
-should ease your transition from BOCM to @code{cc-mode}.  It currently
+should ease your transition from BOCM to @ccmode{}.  It currently
 comes unguaranteed and unsupported, but this may change for future
 versions.  If you have a BOCM configuration you are really happy with,
-and want to postpone learning how to configure @code{cc-mode}, take a
+and want to postpone learning how to configure @ccmode{}, take a
 look at that file.  It maps BOCM configuration variables to
-@code{cc-mode}'s new indentation model.
+@ccmode{}'s new indentation model.
 
 A special word of thanks goes to Krishna Padmasola for his work in
 converting the original @file{README} file to texinfo format.
@@ -185,12 +186,12 @@
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-@file{cc-mode.el} works well with the 2 main branches of Emacs 19:
-XEmacs, maintained by @code{xemacs.org} and the Emacs 19 maintained by
-the Free Software Foundation.  Emacs 19 users will want to use Emacs
-version 19.21 or better, XEmacs users will want 19.6 or better.  Earlier
-versions of these Emacsen have deficiencies and/or bugs which will
-adversely affect the performance and usability of @code{cc-mode}.  You
+@file{cc-mode.el} works well with the three main branches of Emacs:
+XEmacs 19 and XEmacs 20, both maintained by @code{xemacs.org}, and Emacs
+19 maintained by the Free Software Foundation.  Emacs users will want to
+use version 19.21 or better, XEmacs users will want 19.6 or better.
+Earlier versions of these Emacsen have deficiencies and/or bugs which
+will adversely affect the performance and usability of @ccmode{}.  You
 are better off just getting the latest version of Emacs or XEmacs.
 
 @cindex @file{cc-mode-18.el} file
@@ -198,18 +199,18 @@
 @file{cc-mode-18.el} compatibility file, but only moderately well.  A
 word of warning though, @emph{Emacs 18 lacks some fundamental
 functionality and ultimately, using Emacs 18 is a losing
-battle}.  Hence @code{cc-mode} under Emacs 18 is no longer supported and
+battle}.  Hence @ccmode{} under Emacs 18 is no longer supported and
 it is highly recommended that you upgrade to Emacs 19.  If you use
-@code{cc-mode} under Emacs 18, you're on your own.  With @code{cc-mode}
+@ccmode{} under Emacs 18, you're on your own.  With @ccmode{}
 version 5, Emacs 18 support will be dropped altogether.
 
 Note that as of XEmacs 19.13 and Emacs 19.30, your Emacs already comes
-with @code{cc-mode} version 4 preconfigured for your use.  You should be
+with @ccmode{} version 4 preconfigured for your use.  You should be
 able to safely skip the rest of the setup information in this chapter,
-unless you want to install the latest version of @code{cc-mode} into one
+unless you want to install the latest version of @ccmode{} into one
 of these Emacsen.
 
-@cindex @file{.emacs} file
+@cindex .emacs file
 The first thing you will want to do is put @file{cc-mode.el} somewhere
 on your @code{load-path} so Emacs can find it.  Do a @kbd{C-h v
 load-path RET} to see all the directories Emacs looks at when loading a
@@ -253,9 +254,9 @@
 @end example
 
 If you are running a version of Emacs or XEmacs that comes with
-@code{cc-mode} by default, you can simply add the following to your
+@ccmode{} by default, you can simply add the following to your
 @file{.emacs} file in order to upgrade to the latest version of
-@code{cc-mode}:
+@ccmode{}:
 @example
 
 (load "cc-mode")
@@ -283,7 +284,7 @@
 @end example
 
 After those lines you will want to add the following autoloads to your
-@file{.emacs} file so that @code{cc-mode} gets loaded at the right time:
+@file{.emacs} file so that @ccmode{} gets loaded at the right time:
 @example
 @group
 
@@ -295,7 +296,7 @@
 @end group
 @end example
 
-Alternatively, if you want to make sure @code{cc-mode} is loaded when
+Alternatively, if you want to make sure @ccmode{} is loaded when
 Emacs starts up, you could use this line instead of the autoloads
 above:
 @example
@@ -335,35 +336,36 @@
 That's all you need --- I know, I know, it sounds like a lot @code{:-)},
 but after you've done all this, you should only need to quit and restart
 Emacs.  The next time you visit a C, C++, Objective-C, or Java file you
-should be using @code{cc-mode}.  You can check this easily by hitting
-@kbd{M-x c-version RET} in the @code{c-mode}, @code{c++-mode}, or
-@code{objc-mode} buffer.  You should see this message in the echo area:
+should be using @ccmode{}.  You can check this easily by hitting
+@kbd{M-x c-version RET}; you should see this message in the echo area:
 @example
 
-Using @code{cc-mode} version 4.@var{xxx}
-
-Where @var{xxx} is the latest release minor number.
+Using CC Mode version 4.@var{xxx}
 
 @end example
 
+@noindent
+where @var{xxx} is the latest minor release number.
+
+
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 @node     New Indentation Engine, Minor Modes, Getting Connected, Top
-@comment  node-name,              next,                    previous,up
+@comment  node-name,              next,        previous,          up
 
 @chapter  New Indentation Engine
 @cindex   New Indentation Engine
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-@code{cc-mode} has a new indentation engine, providing a simplified, yet
-flexible and general mechanism for customizing indentation. It breaks
-indentation calculation into two steps. First, for the line of code being
-indented, @code{cc-mode} analyzes what kind of language construct it's
-looking at, then it applies user defined offsets to the current line
-based on this analysis.
+@ccmode{} has a new indentation engine, providing a simplified, yet
+flexible and general mechanism for customizing indentation. It separates
+indentation calculation into two steps: first, @ccmode{} analyzes the
+line of code being indented to determine the kind of language construct
+it's looking at, then it applies user defined offsets to the current
+line based on this analysis.
 
 This section will briefly cover how indentation is calculated in
-@code{cc-mode}. It is important to understand the indentation model
-being used so that you will know how to customize @code{cc-mode} for
+@ccmode{}. It is important to understand the indentation model
+being used so that you will know how to customize @ccmode{} for
 your personal coding style.
 
 @menu
@@ -386,7 +388,7 @@
 @cindex syntactic component
 @cindex syntactic component list
 @cindex relative buffer position
-The first thing @code{cc-mode} does when indenting a line of code, is to
+The first thing @ccmode{} does when indenting a line of code, is to
 analyze the line, determining the @dfn{syntactic component list} of the
 construct on that line.  A @dfn{syntactic component} consists of a pair
 of information (in lisp parlance, a @emph{cons cell}), where the first
@@ -405,9 +407,9 @@
 indentation of some line higher up in the buffer.  This is represented
 by the relative buffer position in the syntactic component.
 
-It might help to see an example. Suppose we had the following code as
-the only thing in a @code{c++-mode} buffer @footnote{The line numbers in
-this and future examples don't actually appear in the buffer, of course!}:
+Here is an example.  Suppose we had the following code as the only thing
+in a @code{c++-mode} buffer @footnote{The line numbers in this and
+future examples don't actually appear in the buffer, of course!}:
 @example
 @group
 
@@ -439,7 +441,7 @@
 
 This tells us that the line is a statement and it is indented relative
 to buffer position 35, which happens to be the @samp{i} in @code{int} on
-line 3.  If you were to move Point to line 3 and hit @kbd{C-c C-s}, you
+line 3.  If you were to move point to line 3 and hit @kbd{C-c C-s}, you
 would see:
 @example
 
@@ -479,10 +481,10 @@
 @cindex substatment block
 @noindent
 which tells us that this is a brace that @emph{opens} a substatement
-block. @footnote{A @dfn{substatement} indicates the line after an
-@code{if}, @code{else}, @code{while}, @code{do}, @code{switch}, or
-@code{for} statement, and a @dfn{substatement block} is a brace block
-following one of those constructs.}
+block. @footnote{A @dfn{substatement} indicates the line after a
+conditional statement, such as @code{if}, @code{else}, @code{while},
+@code{do}, @code{switch}, or @code{for} in C.  A @dfn{substatement
+block} is a brace block following one of those conditionals.}
 
 @cindex comment only line
 Syntactic component lists can contain more than one component, and
@@ -537,7 +539,7 @@
 offsets to apply for those symbols.  These offsets are added to a
 running total.
 
-Second, if the component has a relative buffer position, @code{cc-mode}
+Second, if the component has a relative buffer position, @ccmode{}
 adds the column number of that position to the running total.  By adding
 up the offsets and columns for every syntactic component on the list,
 the final total indentation for the current line is computed.
@@ -558,7 +560,7 @@
 @end example
 
 @kindex TAB
-Let's say Point is on line 3 and we hit the @key{TAB} key to re-indent
+Let's say point is on line 3 and we hit the @key{TAB} key to re-indent
 the line.  Remember that the syntactic component list for that
 line is:
 @example
@@ -568,13 +570,13 @@
 @end example
 
 @noindent
-@code{cc-mode} looks up @code{defun-block-intro} in the
+@ccmode{} looks up @code{defun-block-intro} in the
 @code{c-offsets-alist} variable.  Let's say it finds the value @samp{4};
 it adds this to the running total (initialized to zero), yielding a
 running total indentation of 4 spaces.
 
-Next @code{cc-mode} goes to buffer position 29 and asks for the current
-column.  This brace is in column zero, so @code{cc-mode}
+Next @ccmode{} goes to buffer position 29 and asks for the current
+column.  This brace is in column zero, so @ccmode{}
 adds @samp{0} to the running total.  Since there is only one syntactic
 component on the list for this line, indentation calculation is
 complete, and the total indentation for the line
@@ -605,9 +607,9 @@
 
 @end example
 
-Here, @code{cc-mode} first looks up the @code{substatement-open} symbol
+Here, @ccmode{} first looks up the @code{substatement-open} symbol
 in @code{c-offsets-alist}. Let's say it finds the value @samp{4}.  This
-yields a running total of 4.  @code{cc-mode} then goes to
+yields a running total of 4.  @ccmode{} then goes to
 buffer position 46, which is the @samp{i} in @code{if} on line 3.  This
 character is in the fourth column on that line so adding this to the
 running total yields an indentation for the line of 8 spaces.
@@ -622,7 +624,7 @@
 @vindex c-echo-syntactic-information-p
 @vindex echo-syntactic-information-p (c-)
 @cindex TAB
-To help you configure @code{cc-mode}, you can set the variable
+As you configure @ccmode{}, you might want to set the variable
 @code{c-echo-syntactic-information-p} to non-@code{nil} so that the
 syntactic component list and calculated offset will always be echoed in
 the minibuffer when you hit @kbd{TAB}.
@@ -636,16 +638,16 @@
 @cindex   Minor Modes
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-@code{cc-mode} contains two minor-mode-like features that you should
+@ccmode{} contains two minor-mode-like features that you should
 find useful while you enter new C code.  The first is called
 @dfn{auto-newline} mode, and the second is called @dfn{hungry-delete}
 mode.  These minor modes can be toggled on and off independently, and
-@code{cc-mode} can be configured so that it starts up with any
+@ccmode{} can be configured so that it starts up with any
 combination of these minor modes.  By default, both of these minor modes
 are turned off.
 
 The state of the minor modes is always reflected in the minor mode list
-on the modeline of the @code{cc-mode} buffer.  When auto-newline mode is
+on the modeline of the @ccmode{} buffer.  When auto-newline mode is
 enabled, you will see @samp{C/a} on the mode line @footnote{Remember
 that the @samp{C} could be replaced with @samp{C++}, @samp{ObjC}, or
 @samp{Java}.}.  When hungry delete mode is enabled you would see
@@ -660,7 +662,7 @@
 @findex toggle-hungry-state (c-)
 @findex toggle-auto-state (c-)
 @findex toggle-auto-hungry-state (c-)
-@code{cc-mode} provides keybindings which allow you to toggle the minor
+@ccmode{} provides keybindings which allow you to toggle the minor
 modes on the fly while editing code.  To toggle just the auto-newline
 state, hit @kbd{C-c C-a} (@code{c-toggle-auto-state}).  When you do
 this, you should see the @samp{a} indicator either appear or disappear
@@ -680,7 +682,8 @@
 to your @file{.emacs} file:
 @example
 
-(add-hook 'c-mode-common-hook '(lambda () (c-toggle-auto-hungry-state 1)))
+(add-hook 'c-mode-common-hook
+	  '(lambda () (c-toggle-auto-hungry-state 1)))
 
 @end example
 
@@ -717,10 +720,9 @@
 @cindex syntactic whitespace
 @item
 The character was not typed inside of a literal @footnote{A
-@dfn{literal} is defined in @code{cc-mode} as any comment,
-string, or cpp macro definition.  These constructs are also known as
-@dfn{syntactic whitespace} since they are usually ignored when scanning
-C code.}.
+@dfn{literal} is defined as any comment, string, or cpp macro
+definition.  These constructs are also known as @dfn{syntactic
+whitespace} since they are usually ignored when scanning C code.}.
 
 @item
 @kindex C-u
@@ -729,10 +731,16 @@
 
 @end itemize
 
-Certain other conditions may apply on a language specific basis.  For
+@findex c-enable-//-in-c-mode
+@findex enable-//-in-c-mode (c-)
+Some characters are electric in some languages, and not in others.  For
 example, the second slash (@kbd{/}) of a C++ style line comment is
 electric in @code{c++-mode}, @code{objc-mode}, and @code{java-mode}, but
-not in @code{c-mode}.
+not in @code{c-mode}@footnote{Ordinarily, @samp{//} does not introduce a
+comment in @code{c-mode}.  However, if you call the function
+@code{c-enable-//-in-c-mode}, @code{c-mode} will recognize C++ style
+line comments.  Note however that this is a global change which will
+affect all your @code{c-mode} buffers.}.
 
 
 @menu
@@ -805,7 +813,7 @@
 using a function as a brace hanging @var{ACTION}.
 
 When the @var{ACTION} is a list, it can contain any combination of the
-symbols @code{before} and @code{after}, directing @code{cc-mode} where to
+symbols @code{before} and @code{after}, directing @ccmode{} where to
 put newlines in relationship to the brace being inserted.  Thus, if the
 list contains only the symbol @code{after}, then the brace is said to
 @dfn{hang} on the right side of the line, as in:
@@ -848,6 +856,12 @@
 on the next line.  Here, in the @code{block-close} entry, you also see
 an example of using a function as an @var{ACTION}.
 
+A word of caution: it is not a good idea to hang top-level construct
+introducing braces, such as @code{class-open} or @code{defun-open}.
+Emacs makes an assumption that such braces will always appear in column
+zero, hanging such braces can introduce performance problems.
+@xref{Performance Issues} for more information.
+
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 @node  Hanging Colons, Hanging Semi-colons and commas, Hanging Braces, Auto-newline insertion
@@ -872,7 +886,7 @@
 In C++, double-colons are used as a scope operator but because these
 colons always appear right next to each other, newlines before and after
 them are controlled by a different mechanism, called @dfn{clean-ups} in
-@code{cc-mode}.  @xref{Clean-ups} for details.
+@ccmode{}.  @xref{Clean-ups} for details.
 
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -883,7 +897,7 @@
 @cindex   Hanging Semi-colons and commas
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-Semicolons and commas are also electric in @code{cc-mode}, but since
+Semicolons and commas are also electric in @ccmode{}, but since
 these characters do not correspond directly to syntactic symbols, a
 different mechanism is used to determine whether newlines should be
 automatically inserted after these characters.  @xref{Customizing
@@ -971,9 +985,9 @@
 commands, or whitespace that contains intervening constructs.
 
 @cindex literal
-You can configure @code{cc-mode}'s clean-ups by setting the variable
+You can configure @ccmode{}'s clean-ups by setting the variable
 @code{c-cleanup-list}, which is a list of clean-up symbols.  By default,
-@code{cc-mode} cleans up only the @code{scope-operator} construct, which
+@ccmode{} cleans up only the @code{scope-operator} construct, which
 is necessary for proper C++ support.  Note that clean-ups are only
 performed when the construct does not occur within a literal (see
 @ref{Auto-newline insertion}), and when there is nothing but whitespace
@@ -981,7 +995,7 @@
 
 @vindex c-cleanup-list
 @vindex cleanup-list (c-)
-There are currently only five specific constructs that @code{cc-mode}
+There are currently only five specific constructs that @ccmode{}
 can clean up, as indicated by these symbols:
 
 @itemize @bullet
@@ -1018,6 +1032,37 @@
 @end example
 
 @item
+@code{brace-elseif-brace} --- similar to the @code{brace-else-brace}
+clean-up, but cleans up @samp{@} else if (...)@{} constructs.  For
+example:
+@example
+@group
+
+void spam(int i)
+@{
+    if( i==7 )
+    @{
+        dosomething();
+    @}
+    else if( i==3 ) @{
+
+@end group
+@end example
+@noindent
+appears like this after the open brace is typed:
+@example
+@group
+
+void spam(int i)
+@{
+    if( i==7 ) @{
+        dosomething();
+    @} else if( i==3 ) @{
+
+@end group
+@end example
+
+@item
 @code{empty-defun-braces} --- cleans up braces following a top-level
 function or class definition that contains no body.  Clean up occurs
 when the closing brace is typed.  Thus the following:
@@ -1109,7 +1154,7 @@
 @vindex c-delete-function
 @vindex delete-function (c-)
 @cindex literal
-By default, @code{cc-mode} actually runs the command
+By default, @ccmode{} actually runs the command
 @code{c-electric-delete} when you hit @kbd{DEL}.  When this command is
 used to delete a single character (i.e. when it is called interactively
 with no numeric argument), it really runs the function contained in the
@@ -1142,8 +1187,6 @@
 @cindex   Indentation Commands
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-@findex c-set-style
-@findex set-style (c-)
 Various commands are provided which allow you to conveniently re-indent
 C constructs.  There are several things to
 note about these indentation commands.  First, when you
@@ -1157,24 +1200,24 @@
 @findex hanging-braces-alist (c-)
 Second, changing some variables have no effect on existing code, even
 when you do re-indent.  For example, the @code{c-hanging-*} variables
-and @code{c-cleanup-list} only affect new code as it is typed in.  So
-for example, changing @code{c-hanging-braces-alist} and re-indenting the
-buffer will not adjust placement of braces already in the file.
+and @code{c-cleanup-list} only affect new code as it is typed in
+on-the-fly, so changing @code{c-hanging-braces-alist} and re-indenting
+the buffer will not adjust placement of braces already in the file.
 
 @vindex c-progress-interval
 @vindex progress-interval (c-)
 Third, re-indenting large portions of code is currently rather
 inefficient.  Improvements have been made since previous releases of
-@code{cc-mode}, and much more radical improvements are planned, but for
-now you need to be aware of this @footnote{In particular, I have had
-people complain about the speed that @code{cc-mode} re-indents
-@code{lex(1)} output.  Lex, yacc, and other code generators usually
-output some pretty perversely formatted code.  @emph{Don't} try to
-indent this stuff with @code{cc-mode}!}.  Some provision has been made
-to at least inform you as to the progress of the re-indentation.  The
-variable @code{c-progress-interval} controls how often a progress
-message is displayed.  Set this variable to @code{nil} to inhibit
-progress messages.  Note that this feature only works with Emacs 19.
+@ccmode{}, and much more radical improvements are planned, but for now
+you need to be aware of this @footnote{In particular, I have had people
+complain about the speed with which @code{lex(1)} output is re-indented.
+Lex, yacc, and other code generators usually output some pretty
+perversely formatted code.  @emph{Don't} try to indent this stuff!}.
+Some provision has been made to at least inform you as to the progress
+of the re-indentation.  The variable @code{c-progress-interval} controls
+how often a progress message is displayed.  Set this variable to
+@code{nil} to inhibit progress messages.  Note that this feature only
+works with Emacs 19 and beyond.
 
 Also, except as noted below, re-indentation is always driven by the
 same mechanisms that control on-the-fly indentation of code.  @xref{New
@@ -1194,10 +1237,10 @@
 (@code{c-indent-command}).  The behavior of this command is controlled
 by the variable @code{c-tab-always-indent}.  When this variable is
 @code{t}, @kbd{TAB} always just indents the current line.  When
-@code{nil}, the line is indented only if Point is at the left margin, or
+@code{nil}, the line is indented only if point is at the left margin, or
 on or before the first non-whitespace character on the line, otherwise
 @emph{something else happens}@footnote{Actually what happens is that the
-function stored in the variable @code{c-insert-tab-function} is called.
+function stored in @code{c-insert-tab-function} is called.
 Normally this just inserts a real tab character, or the equivalent
 number of spaces, depending on the setting of the variable
 @code{indent-tabs-mode}.  If you preferred, you could set
@@ -1205,7 +1248,7 @@
 If the value of @code{c-tab-always-indent} is something other than
 @code{t} or @code{nil} (e.g. @code{'other}), then a real tab
 character@footnote{The caveat about @code{indent-tabs-mode} in the
-previous footnote also applies here.}  is inserted only when Point is
+previous footnote also applies here.}  is inserted only when point is
 inside a literal (see @ref{Auto-newline insertion}), otherwise the line
 is indented.
 
@@ -1213,7 +1256,7 @@
 @findex c-indent-exp
 @findex indent-exp (c-)
 To indent an entire balanced brace or parenthesis expression, use
-@kbd{M-C-q} (@code{c-indent-exp}).  Note that Point should be on
+@kbd{M-C-q} (@code{c-indent-exp}).  Note that point should be on
 the opening brace or parenthesis of the expression you want to indent.
 
 @kindex C-c C-q
@@ -1221,15 +1264,15 @@
 @findex indent-defun (c-)
 Another very convenient keystroke is @kbd{C-c C-q}
 (@code{c-indent-defun}) when re-indents the entire top-level function or
-class definition that encompases Point.  It leaves Point at the
+class definition that encompases point.  It leaves point at the
 same position within the buffer.
 
 @kindex M-C-\
 @findex indent-region
 To indent any arbitrary region of code, use @kbd{M-C-\}
 (@code{indent-region}).   This is a standard Emacs command, specially
-tailored for C code in a @code{cc-mode} buffer.  Note that of course,
-Point and Mark must delineate the region you
+tailored for C code in a @ccmode{} buffer.  Note that of course,
+point and mark must delineate the region you
 want to indent.
 
 @kindex M-C-h
@@ -1247,7 +1290,7 @@
 @cindex   Other Commands
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-@code{cc-mode} contains other useful command for moving around in C
+@ccmode{} contains other useful command for moving around in C
 code.
 
 @table @code
@@ -1255,9 +1298,9 @@
 @kindex C-c C-u
 @findex c-up-conditional
 @findex up-conditional (c-)
-Move Point back to the containing preprocessor conditional, leaving the
-Mark behind.  A prefix argument acts as a repeat count.  With a negative
-argument, move Point forward to the end of the containing
+Move point back to the containing preprocessor conditional, leaving the
+mark behind.  A prefix argument acts as a repeat count.  With a negative
+argument, move point forward to the end of the containing
 preprocessor conditional.  When going backwards, @code{#elif} is treated
 like @code{#else} followed by @code{#if}.  When going forwards,
 @code{#elif} is ignored.@refill
@@ -1266,7 +1309,7 @@
 @kindex C-c C-p
 @findex c-backward-conditional
 @findex backward-conditional (c-)
-Move Point back over a preprocessor conditional, leaving Mark
+Move point back over a preprocessor conditional, leaving the mark
 behind.  A prefix argument acts as a repeat count.  With a negative
 argument, move forward.
 
@@ -1274,7 +1317,7 @@
 @kindex C-c C-n
 @findex c-forward-conditional
 @findex forward-conditional (c-)
-Move Point forward across a preprocessor conditional, leaving Mark
+Move point forward across a preprocessor conditional, leaving the mark
 behind.  A prefix argument acts as a repeat count.  With a negative
 argument, move backward.
 
@@ -1282,34 +1325,34 @@
 @kindex ESC a
 @findex c-beginning-of-statement
 @findex beginning-of-statement (c-)
-Move Point to the beginning of the innermost C statement.  If Point is
+Move point to the beginning of the innermost C statement.  If point is
 already at the beginning of a statement, it moves to the beginning of
 the preceding statement.  With prefix argument @var{n}, move back
 @var{n} @minus{} 1 statements.
 
-If Point is within a string or comment, or next to a comment (only
-whitespace between them), this command moves by sentences instead of
-statements.
-
-When called from a program, this function takes two optional arguments:
-the numeric prefix argument, and a buffer position limit (don't move
-back before that place).
+If point is within a string or comment, or at the end of a comment, this
+command moves by sentences instead of statements.
+
+When called from a program, this function takes three optional
+arguments: the numeric prefix argument, a buffer position limit (don't
+move back before that place), and a flag to indicate whether movement
+should be by statements (if @code{t}) or sentence (if non-@code{nil}).
 
 @item M-e (c-end-of-statement)
 @kindex ESC e
 @findex c-end-of-statement
 @findex end-of-statement (c-)
-Move Point to the end of the innermost C statement.  If Point is at the
+Move point to the end of the innermost C statement.  If point is at the
 end of a statement, move to the end of the next statement.  With prefix
 argument @var{n}, move forward @var{n} @minus{} 1 statements.
 
-If Point is within a string or comment, or next to a comment (only
-whitespace between them), this command moves by sentences instead of
-statements.
-
-When called from a program, this function takes two optional arguments:
-the numeric prefix argument, and a buffer position limit (don't move
-past that place).
+If point is within a string or comment, or at the end of a comment, this
+command moves by sentences instead of statements.
+
+When called from a program, this function takes three optional
+arguments: the numeric prefix argument, a buffer position limit (don't
+move back before that place), and a flag to indicate whether movement
+should be by statements (if @code{t}) or sentence (if non-@code{nil}).
 
 @item M-x c-forward-into-nomenclature
 @findex c-forward-into-nomenclature
@@ -1319,13 +1362,13 @@
 letter of each word is capitalized, and not separated by underscores.
 E.g. @samp{SymbolsWithMixedCaseAndNoUnderlines}.
 
-This command moves Point forward to end of a C++ nomenclature
+This command moves point forward to end of a C++ nomenclature
 section or word.  With prefix argument @var{n}, move @var{n} times.
 
 @item M-x c-backward-into-nomenclature
 @findex c-backward-into-nomenclature
 @findex backward-into-nomenclature (c-)
-Move Point backward to beginning of a C++ nomenclature
+Move point backward to beginning of a C++ nomenclature
 section or word.  With prefix argument @var{n}, move @var{n} times.  If
 @var{n} is negative, move forward.
 
@@ -1337,6 +1380,35 @@
 operator without performing the electric behavior of colon insertion.
 @kbd{C-c :} does just this.
 
+@item M-q (fill-paragraph)
+@kindex ESC q
+@findex fill-paragraph
+@vindex c-hanging-comment-starter-p
+@vindex c-hanging-comment-ender-p
+@vindex hanging-comment-starter-p (c-)
+@vindex hanging-comment-ender-p (c-)
+The command is used to fill a block style (C) or line style (C++)
+comment, in much the same way that text in the various text modes can be
+filled.  You should never attempt to fill non-comment code sections;
+you'll end up with garbage!  Two variables control how C style block
+comments are filled, specifically how the comment start and end
+delimiters are handled.
+
+The variable @code{c-hanging-comment-starter-p} controls whether comment
+start delimiters which appear on a line by themselves, end up on a line
+by themselves after the fill.  When the value is @code{nil}, the comment
+starter will remain on its own line@footnote{It will not be placed on a
+separate line if it is not already on a separate line.}.  Otherwise,
+text on the next line will be put on the same line as the comment
+starter.  This is called @dfn{hanging} because the following text hangs
+on the line with the comment starter.
+
+The variable @code{c-hanging-comment-ender-p} controls the analogous
+behavior for the block comment end delimiter.  When the value is
+@code{nil}, the comment ender will remain on its own line after the
+file@footnote{The same caveat as above holds true.}.  Otherwise, the
+comment end delimiter will be placed at the end of the previous line.
+
 @end table
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -1347,8 +1419,15 @@
 @cindex   Customizing Indentation
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
+@vindex c-offsets-alist
+@vindex offsets-alist (c-)
 @cindex c-set-offset
 @cindex set-offset (c-)
+The variable @code{c-offsets-alist} contains the mappings between
+syntactic symbols and the offsets to apply for those symbols.  You
+should never modify this variable directly though.  Use the function
+@code{c-set-offset} instead (see below for details).
+
 The @code{c-offsets-alist} variable is where you customize all your
 indentations.  You simply need to decide what additional offset you want
 to add for every syntactic symbol.  You can use the command @kbd{C-c
@@ -1363,14 +1442,14 @@
 @cindex basic-offset (c-)
 As mentioned previously, the variable @code{c-offsets-alist} is an
 association list of syntactic symbols and the offsets to be applied for
-those symbols.  In fact, these offset values can be any of an integer,
-a function or variable name, or one of the following symbols: @code{+},
-@code{-}, @code{++}, @code{--}, @code{*}, or @code{/}.  These symbols
-describe offset in multiples of the value of the variable
-@code{c-basic-offset}.  By defining a style's indentation in terms of
-this fundamental variable, you can change the amount of whitespace given
-to an indentation level while leaving the same relationship between
-levels.  Here are the values that the special
+those symbols.  In fact, these offset values can be any of an integer, a
+function or lambda expression, a variable name, or one of the following
+symbols: @code{+}, @code{-}, @code{++}, @code{--}, @code{*}, or
+@code{/}.  These symbols describe offset in multiples of the value of
+the variable @code{c-basic-offset}.  By defining a style's indentation
+in terms of this fundamental variable, you can change the amount of
+whitespace given to an indentation level while leaving the same
+relationship between levels.  Here are the values that the special
 symbols correspond to:
 
 @table @code
@@ -1390,6 +1469,8 @@
 
 @end table
 
+@vindex c-style-variables-are-local-p
+@vindex style-variables-are-local-p (c-)
 @noindent
 So, for example, because most of the default offsets are defined in
 terms of @code{+}, @code{-}, and @code{0}, if you like the general
@@ -1397,10 +1478,12 @@
 you can probably achieve your style just by changing
 @code{c-basic-offset} like so (in your @file{.emacs} file)@footnote{The
 reason you need to use @code{setq-default} instead of @code{setq} is
-that @code{c-basic-offset} is a buffer local variable, as are most of
-the @code{cc-mode} configuration variables.  If you were to put this
-code in, e.g. your @code{c-mode-common-hook} function, you could use
-@code{setq}.}:
+that @code{c-basic-offset} is a buffer local variable, as are most
+configuration variables.  If you were to put this code in, e.g. your
+@code{c-mode-common-hook} function, you could use @code{setq}.
+Alternatively, you can keep these variables global by setting
+@code{c-style-variables-are-local-p} to @code{nil}, but you must do this
+before @code{cc-mode.el} is loaded into your Emacs session.}:
 @example
 
 (setq-default c-basic-offset 4)
@@ -1521,7 +1604,7 @@
 @code{substatement-open}, which is just the syntactic symbol we want to
 change!
 
-After you hit return, @code{cc-mode} will then prompt you for the new
+After you hit return, @ccmode{} will then prompt you for the new
 offset value, with the old value as the default.  The default in this
 case is @samp{+}, but we want no extra indentation so enter
 @samp{0} and @kbd{RET}.  This will associate the offset 0 with the
@@ -1561,8 +1644,8 @@
 @node     Permanent Customization, Styles, Interactive Customization, Customizing Indentation
 @comment  node-name,              next,                    previous,up
 
-@section  Permanent Indentation
-@cindex   Permanent Indentation
+@section  Permanent Customization
+@cindex   Permanent Customization
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 @vindex c-mode-common-hook
@@ -1572,9 +1655,9 @@
 @vindex java-mode-hook
 @cindex hooks
 To make this change permanent, you need to add some lisp code to your
-@file{.emacs} file.  @code{cc-mode} provides several hooks that you can
+@file{.emacs} file.  @ccmode{} provides several hooks that you can
 use to customize the mode according to your coding style.  Each language
-mode has its own hook, adhering to standard to Emacs major mode
+mode has its own hook, adhering to standard Emacs major mode
 conventions.  There is also one general hook:
 
 @itemize @bullet
@@ -1606,11 +1689,12 @@
 
 Here's a simplified example of what you can add to your @file{.emacs}
 file to make the changes described in the previous section
-(@ref{Interactive Customization}) more permanent.  See the Emacs
-manuals for more information on customizing Emacs via hooks.
-@xref{Sample .emacs File} for a more complete sample @file{.emacs} file.
+(@ref{Interactive Customization}) more permanent.  See the Emacs manuals
+for more information on customizing Emacs via hooks.  @xref{Sample
+.emacs File} for a more complete sample @file{.emacs} file.
 @footnote{The use of @code{add-hook} in this example only works for
-Emacs 19.  Workarounds are available if you are using Emacs 18.}
+Emacs 19 and beyond.  Workarounds are available if you are using Emacs
+18.}
 @example
 @group
 
@@ -1642,7 +1726,7 @@
 people who work on GNU software will have to use the GNU coding style on
 C code.  Some shops are more lenient, allowing some variety of coding
 styles, and as programmers come and go, there could be a number of
-styles in use.  For this reason, @code{cc-mode} makes it convenient for
+styles in use.  For this reason, @ccmode{} makes it convenient for
 you to set up logical groupings of customizations called @dfn{styles},
 associate a single name for any particular style, and pretty easily
 start editing new or existing code using these styles.  This section
@@ -1663,9 +1747,8 @@
 @cindex   Built-in Styles
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-If you're lucky, one of @code{cc-mode}'s built-in styles might be just
-what you're looking for.  Some of the most common C and C++ styles are
-already built-in.  These include:
+If you're lucky, one of @ccmode{}'s built-in styles might be just
+what you're looking for.  These include:
 
 @itemize @bullet
 @item
@@ -1698,6 +1781,17 @@
 @code{euagate.eua.ericsson.se}}.
 
 @item
+@cindex Linux style
+@code{linux} --- C coding standard for Linux development.
+
+@item
+@cindex Python style
+@code{python} --- C coding standard for Python extension
+modules@footnote{Python is a high level scripting language with a C/C++
+foreign function interface.  For more information, see
+@code{<http://www.python.org/>}.}.
+
+@item
 @cindex Java style
 @cindex java-mode
 @code{java} --- The style for editing Java code.  Note that this style is
@@ -1707,24 +1801,26 @@
 
 @findex c-set-style
 @findex set-style (c-)
+@kindex C-c .
 If you'd like to experiment with these built-in styles you can simply
-type the following in a @code{cc-mode} buffer:
+type the following in a @ccmode{} buffer:
 @example
 @group
 
-@kbd{M-x c-set-style RET @var{STYLE-NAME} RET}
+@kbd{C-c . @var{STYLE-NAME} RET}
 
 @end group
 @end example
 @noindent
-Note that all style names are case insensitive, even the ones you define.
+@kbd{C-c .} runs the command @code{c-set-style}.  Note that all style
+names are case insensitive, even the ones you define.
 
 Setting a style in this way does @emph{not} automatically re-indent your
 file.  For commands that you can use to view the effect of your changes,
 see @ref{Commands}.
 
 Once you find a built-in style you like, you can make the change
-permanent by adding a call to your @file{.emacs} file.  Let's say for
+permanent by adding some lisp to your @file{.emacs} file.  Let's say for
 example that you want to use the @samp{ellemtel} style in all your
 files.  You would add this:
 @example
@@ -1740,6 +1836,7 @@
 @end group
 @end example
 
+@cindex cc-mode style
 There is one other special style you can use, called @samp{cc-mode}
 style.  This style is special because all other styles implicitly
 inherit from it; in other words, whenever you set a style,
@@ -1747,11 +1844,20 @@
 your style need only define the differences between it and
 @samp{cc-mode} style.
 
+Note @emph{you should never change any of the default styles}.
+Instead, it's better to add a new style using @code{c-add-style}
+(@xref{Adding Styles}).  This is especially true for @code{cc-mode} and
+@code{java} styles.
+
+@vindex c-indentation-style
+@vindex indentation-style (c-)
 Note that for BOCM compatibility, @samp{gnu} is the default
 style, and any non-style based customizations you make (i.e. in
 @code{c-mode-common-hook} in your
 @file{.emacs} file) will be based on @samp{gnu} style unless you do
-a @code{c-set-style} as the first thing in your hook.
+a @code{c-set-style} as the first thing in your hook.  The variable
+@code{c-indentation-style} always contains the buffer's current style name,
+as a string.
 
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -1769,7 +1875,7 @@
 If none of the built-in styles is appropriate, you'll probably want to
 add a new @dfn{style definition}.  Styles are kept in the
 @code{c-style-alist} variable, but you should never modify this variable
-directly.  Instead, @code{cc-mode} provides the function
+directly.  Instead, @ccmode{} provides the function
 @code{c-add-style} that you can use to easily add new styles or change
 existing styles.  This function takes two arguments, a @var{stylename}
 string, and an association list @var{description} of style
@@ -1795,8 +1901,8 @@
 The Emacs manual describes how you can customize certain variables on a
 per-file basis by including a @dfn{Local Variable} block at the end of
 the file.  So far, you've only seen a functional interface to
-@code{cc-mode}, which is highly inconvenient for use in a Local Variable
-block.  @code{cc-mode} provides two variables that make it easier for
+@ccmode{}, which is highly inconvenient for use in a Local Variable
+block.  @ccmode{} provides two variables that make it easier for
 you to customize your style on a per-file basis.
 
 @vindex c-file-style
@@ -1805,7 +1911,7 @@
 @vindex file-offsets (c-)
 
 The variable @code{c-file-style} can be set to a style name string.
-When the file is visited, @code{cc-mode} will automatically set the
+When the file is visited, @ccmode{} will automatically set the
 file's style to this style using @code{c-set-style}.
 
 @vindex c-offsets-alist
@@ -1814,13 +1920,15 @@
 @findex set-offset (c-)
 Another variable, @code{c-file-offsets}, takes an association list
 similar to what is allowed in @code{c-offsets-alist}.  When the file is
-visited, @code{cc-mode} will automatically institute these offets using
+visited, @ccmode{} will automatically institute these offets using
 @code{c-set-offset}.
 
 Note that file style settings (i.e. @code{c-file-style}) are applied
 before file offset settings (i.e. @code{c-file-offsets})@footnote{File
-styles are only supported since XEmacs 19.12 and Emacs 19.29.  They work
-via the standard Emacs hook variable @code{hack-local-variables-hook}.}.
+styles have only been supported since XEmacs 19.12 and Emacs 19.29.
+They work via the standard Emacs hook variable
+@code{hack-local-variables-hook}.  Older Emacsen lack this hook, so file
+styles can't be used with them.}.
 
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
@@ -1835,17 +1943,36 @@
 @vindex style-alist (c-)
 @vindex c-basic-offset
 @vindex basic-offset (c-)
-For most users, @code{cc-mode} will support their coding styles with
+For most users, @ccmode{} will support their coding styles with
 very little need for more advanced customizations.  Usually, one of the
 standard styles defined in @code{c-style-alist} will do the trick.  At
 most, perhaps one of the syntactic symbol offsets will need to be
 tweaked slightly, or maybe @code{c-basic-offset} will need to be
 changed.  However, some styles require a more flexible framework for
-customization, and one of the real strengths of @code{cc-mode} is that
+customization, and one of the real strengths of @ccmode{} is that
 the syntactic analysis model provides just such a framework. This allows
-you to implement special indentation calculations for situations not
+you to implement custom indentation calculations for situations not
 handled by the mode directly.
 
+@vindex c-style-variables-are-local-p
+@vindex style-variables-are-local-p
+Note that the style controlling variables can either have global values,
+or can be buffer local (e.g. different in every buffer).  If all the C
+files you edit tend to have the same style, you might want to keep the
+variables global.  If you tend to edit files with many different styles,
+you will have to make the variables buffer local.  The variable
+@code{c-style-variables-are-local-p} controls this.
+
+When @code{c-style-variables-are-local-p} is non-nil, then the style
+variables will have a different settable value for each buffer,
+otherwise all buffers will share the same values.  This variable only
+takes effect when @ccmode{} is loaded into your Emacs session.  By
+default (for backwards compatibility reasons), its value is @code{t}.
+Note that once the variables are made buffer local, they will retain
+this property for the remainder of the current Emacs session.  To change
+this behavior, set @code{c-style-variables-are-local-p} to @code{nil}
+@emph{before} you load @file{cc-mode.el}.
+
 @menu
 * Custom Indentation Functions::
 * Custom Brace and Colon Hanging::
@@ -1862,11 +1989,11 @@
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 @cindex custom indentation functions
-One of the most common ways to customize @code{cc-mode} is by writing
-@dfn{custom indentation functions} and associating them with specific
-syntactic symbols (see @ref{Syntactic Symbols}).  @code{cc-mode} itself
-uses custom indentation functions to provide more sophisticated
-indentation, for example when lining up C++ stream operator blocks:
+The most flexible way to customize @ccmode{} is by writing @dfn{custom
+indentation functions} and associating them with specific syntactic
+symbols (see @ref{Syntactic Symbols}).  @ccmode{} itself uses custom
+indentation functions to provide more sophisticated indentation, for
+example when lining up C++ stream operator blocks:
 @example
 @group
 
@@ -1885,7 +2012,7 @@
 syntactic symbol.  Here, @code{stream-op} has an offset of @code{+}, and
 with a @code{c-basic-offset} of 2, you can see that lines 4 through 6
 are simply indented two spaces to the right of line 3.  But perhaps we'd
-like @code{cc-mode} to be a little more intelligent so that it lines up
+like @ccmode{} to be a little more intelligent so that it lines up
 all the @samp{<<} symbols in lines 3 through 6.  To do this, we have
 to write a custom indentation function which finds the column of first
 stream operator on the first line of the statement.  Here is the lisp
@@ -1912,7 +2039,7 @@
 running total indentation for the line.  Note that what actually gets
 returned is the difference between the column that the first stream
 operator is on, and the column of the buffer relative position passed in
-the function's argument.  Remember that @code{cc-mode} automatically
+the function's argument.  Remember that @ccmode{} automatically
 adds in the column of the component's relative buffer position and we
 don't want that value added into the final total twice.
 
@@ -1951,7 +2078,7 @@
 @vindex offsets-alist (c-)
 Custom indentation functions can be as simple or as complex as you like,
 and any syntactic symbol that appears in @code{c-offsets-alist} can have
-a custom indentation function associated with it.  @code{cc-mode} comes
+a custom indentation function associated with it.  @ccmode{} comes
 with several standard custom indentation functions, not all of which are
 used by the default styles.
 
@@ -2047,7 +2174,7 @@
 @vindex c-hanging-braces-alist
 @vindex hanging-braces-alist (c-)
 Syntactic symbols aren't the only place where you can customize
-@code{cc-mode} with the lisp equivalent of callback functions.  Brace
+@ccmode{} with the lisp equivalent of callback functions.  Brace
 ``hanginess'' can also be determined by custom functions associated with
 syntactic symbols on the @code{c-hanging-braces-alist} variable.
 Remember that @var{ACTION}'s are typically a list containing some
@@ -2064,7 +2191,7 @@
 function can also return @code{nil}.  This return value has the normal
 brace hanging semantics.
 
-As an example, @code{cc-mode} itself uses this feature to dynamically
+As an example, @ccmode{} itself uses this feature to dynamically
 determine the hanginess of braces which close ``do-while''
 constructs:
 @example
@@ -2084,7 +2211,7 @@
 
 @findex c-snug-do-while
 @findex snug-do-while (c-)
-@code{cc-mode} assigns the @code{block-close} syntactic symbol to the
+@ccmode{} assigns the @code{block-close} syntactic symbol to the
 brace that closes the @code{do} construct, and normally we'd like the
 line that follows a @code{block-close} brace to begin on a separate
 line.  However, with ``do-while'' constructs, we want the
@@ -2130,7 +2257,7 @@
 Note that for symmetry, colon hanginess should be customizable by
 allowing function symbols as @var{ACTION}s on the
 @code{c-hanging-colon-alist} variable.  Since no use has actually been
-found for this feature, it isn't currently implemented.
+found for this feature, it isn't currently implemented!
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 @node     Customizing Semi-colons and Commas, Other Special Indentations, Custom Brace and Colon Hanging, Advanced Customizations
@@ -2173,7 +2300,8 @@
 
 Here's an example of a criteria function that will prevent newlines from
 being inserted after semicolons when there is a non-blank following
-line.  Otherwise, it makes no determination:
+line.  Otherwise, it makes no determination.  To use, add this to the
+front of the @code{c-hanging-semi&comma-criteria} list.
 
 @example
 @group
@@ -2201,20 +2329,20 @@
 @vindex c-label-minimum-indentation
 @vindex label-minimum-indentation (c-)
 In @samp{gnu} style (see @ref{Built-in Styles}), a minimum indentation
-is imposed on lines with @code{label} or @code{case-label} syntax.  This
-minimum indentation is controlled by the variable
+is imposed on lines inside top-level constructs.  This minimum
+indentation is controlled by the variable
 @code{c-label-minimum-indentation}.  The default value for this variable
 is 1.
 
 @vindex c-special-indent-hook
 @vindex special-indent-hook (c-)
-One other customization variable is available in @code{cc-mode}:
+One other customization variable is available in @ccmode{}:
 @code{c-special-indent-hook}.  This is a standard hook variable that is
-called after every line is indented by @code{cc-mode}.  You can use it
+called after every line is indented by @ccmode{}.  You can use it
 to do any special indentation or line adjustments your style dictates,
 such as adding extra indentation to constructors or destructor
 declarations in a class definition, etc.  Note however, that you should
-not change Point or Mark inside your @code{c-special-indent-hook}
+not change point or mark inside your @code{c-special-indent-hook}
 functions (i.e. you'll probably want to wrap your function in a
 @code{save-excursion}).
 
@@ -2262,14 +2390,16 @@
 @item
 @code{inline-close} --- brace that closes an in-class inline method
 @item
-@code{ansi-funcdecl-cont} --- the nether region between an ANSI function
-declaration and the defun opening brace
+@code{func-decl-cont} --- the nether region between a function
+declaration's argument list and the defun opening brace.  In C++ and
+Java, this can include the @code{throws} clauses of a method
+declaration.
 @item
 @code{knr-argdecl-intro} --- first line of a K&R C argument declaration
 @item
 @code{knr-argdecl} --- subsequent lines in a K&R C argument declaration
 @item
-@code{topmost-intro} --- the first line in a topmost construct definition
+@code{topmost-intro} --- the first line in a topmost definition
 @item
 @code{topmost-intro-cont} --- topmost definition continuation lines
 @item
@@ -2293,9 +2423,9 @@
 @item
 @code{brace-list-entry} --- subsequent lines in an enum or static array list
 @item
-@code{statement} --- a C (or like) statement
+@code{statement} --- a C statement
 @item
-@code{statement-cont} --- a continuation of a C (or like) statement
+@code{statement-cont} --- a continuation of a C statement
 @item
 @code{statement-block-intro} --- the first line in a new statement block
 @item
@@ -2304,19 +2434,20 @@
 @code{statement-case-open} --- the first line in a case block starting
 with brace
 @item
-@code{substatement} --- the first line after an if/while/for/do/else
+@code{substatement} --- the first line after a conditional
 @item
 @code{substatement-open} --- the brace that opens a substatement block
 @item
 @code{case-label} --- a case or default label
 @item
-@code{access-label} --- C++ private/protected/public access label
+@code{access-label} --- C++ access control label
 @item
-@code{label} --- any non-special C (or like) label
+@code{label} --- any non-special C label
 @item
-@code{do-while-closure} --- the `while' that ends a do/while construct
+@code{do-while-closure} --- the `while' that ends a
+@code{do}-@code{while} construct
 @item
-@code{else-clause} --- the `else' of an if/else construct
+@code{else-clause} --- the `else' of an @code{if}-@code{else} construct
 @item
 @code{comment-intro} --- a line containing only a comment introduction
 @item
@@ -2330,9 +2461,9 @@
 @item
 @code{arglist-close} --- the solo close paren of an argument list
 @item
-@code{stream-op} --- lines continuing a stream operator construct
+@code{stream-op} --- lines continuing a stream operator
 @item
-@code{inclass} --- the construct is nested inside a class definition
+@code{inclass} --- the line is nested inside a class definition
 @item
 @code{cpp-macro} --- the start of a cpp macro
 @item
@@ -2349,7 +2480,8 @@
 @item
 @code{extern-lang-close} --- brace that closes an external language block
 @item
-@code{inextern-lang} --- analogous to `inclass' syntactic symbol
+@code{inextern-lang} --- analogous to `inclass' syntactic symbol, but
+for @code{extern} blocks.
 @end itemize
 
 @cindex -open syntactic symbols
@@ -2750,19 +2882,14 @@
 parenthesis that opens the list is @emph{not empty} following the open
 parenthesis.  Contrast this against lines 6 and 13 which are assigned
 @code{arglist-cont} syntax.  This is because the parenthesis that opens
-their argument lists is the last character on that line @footnote{The
-need for this somewhat confusing arrangement is that the typical
-indentation desired for these lines is calculated differently.
-This should be simplified in version 5 of @code{cc-mode}, along with the
-added distinction between argument lists in function declarations, and
-argument lists in function calls.}.
+their argument lists is the last character on that line.
 
 Note that there is no @code{arglist-open} syntax.  This is because any
 parenthesis that opens an argument list, appearing on a separate line,
 is assigned the @code{statement-cont} syntax instead.
 
 A few miscellaneous syntactic symbols that haven't been previously
-covered are illustrated by this example:
+covered are illustrated by this C++ example:
 @example
 @group
 
@@ -2772,7 +2899,7 @@
    4:     /* this line starts a multi-line
    5:      * comment.  This line should get `c' syntax */
    6: 
-   7:     char* a_long_multiline_string = "This line starts a multi-line \
+   7:     char* a_multiline_string = "This line starts a multi-line \
    8: string.  This line should get `string' syntax.";
    9: 
   10:   note:
@@ -2794,17 +2921,14 @@
 
 @itemize @bullet
 
-@cindex ansi-funcdecl-cont syntactic symbol
+@cindex func-decl-cont syntactic symbol
 @item
-line 2, assigned the @code{ansi-funcdecl-cont} syntax;
+line 2, assigned the @code{func-decl-cont} syntax;
 
 @cindex comment-intro syntactic symbol
 @item
 line 4, assigned both @code{defun-block-intro} @emph{and}
-@code{comment-intro} syntax @footnote{The @code{comment-intro} syntactic
-symbol is is another example of a @dfn{modifier} since it always appears
-on a syntactic analysis list with other symbols, and rarely has an
-associated relative buffer position.};
+@code{comment-intro} syntax;
 
 @cindex c syntactic symbol
 @item
@@ -2837,7 +2961,7 @@
 
 @cindex stream-op syntactic symbol
 @item
-line 17, assigned @code{stream-op} syntax @footnote{In C++ only.}.
+line 17, assigned @code{stream-op} syntax.
 
 @end itemize
 
@@ -2897,24 +3021,19 @@
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 C and it's derivative languages are highly complex creatures.  Often,
-ambiguous code situations arise that require @code{cc-mode} to scan
+ambiguous code situations arise that require @ccmode{} to scan
 large portions of the buffer to determine syntactic context.  Such
 pathological code@footnote{such as the output of @code{lex(1)}!}
-can cause @code{cc-mode} to perform fairly badly.
+can cause @ccmode{} to perform fairly badly.
 This section identifies some of the coding styles to watch out for, and
 suggests some workarounds that you can use to improve performance.
 
-Note that this is an area that will get a lot of attention in
-@code{cc-mode} version 5.  The mode should end up being much faster, at
-the expense of dropping Emacs 18 support, owing to the implementation of
-syntactic analysis caching.
-
-Because @code{cc-mode} has to scan the buffer backwards from the current
+Because @ccmode{} has to scan the buffer backwards from the current
 insertion point, and because C's syntax is fairly difficult to parse in
-the backwards direction, @code{cc-mode} often tries to find the nearest
+the backwards direction, @ccmode{} often tries to find the nearest
 position higher up in the buffer from which to begin a forward scan.
 The farther this position is from the current insertion point, the
-slower the mode gets.  Some coding styles can even force @code{cc-mode}
+slower the mode gets.  Some coding styles can even force @ccmode{}
 to scan from the beginning of the buffer!
 
 @findex beginning-of-defun
@@ -2922,46 +3041,61 @@
 One of the simplest things you can do to reduce scan time, is make sure
 any brace that opens a top-level block construct always appears in the
 leftmost column.  This is actually an Emacs constraint, as embodied in
-the @code{beginning-of-defun} function which @code{cc-mode} uses
+the @code{beginning-of-defun} function which @ccmode{} uses
 heavily.  If you insist on hanging top-level open braces on the right
 side of the line, then you should set the variable
 @code{defun-prompt-regexp} to something reasonable @footnote{Note that
 this variable is only defined in Emacs 19.}, however that ``something
-reasonable'' is difficult to define, so @code{cc-mode} doesn't do it
+reasonable'' is difficult to define, so @ccmode{} doesn't do it
 for you.
 
-You will probably notice pathological behavior from @code{cc-mode} when
+@vindex c-Java-defun-prompt-regexp
+@vindex Java-defun-prompt-regexp (c-)
+A special note about @code{defun-prompt-regexp} in Java mode: while much
+of the early sample Java code seems to encourage a style where the brace
+that opens a class is hung on the right side of the line, this is not a
+good style to pursue in Emacs.  @ccmode{} comes with a variable
+@code{c-Java-defun-prompt-regexp} which tries to define a regular
+expression usable for this style, but there are problems with it.  In
+some cases it can cause @code{beginning-of-defun} to hang@footnote{This
+has been observed in Emacs 19.34 and XEmacs 19.15.}.  For this reason,
+it is not used by default, but if you feel adventurous, you can set
+@code{defun-prompt-regexp} to it in your mode hook.  In any event,
+setting and rely on @code{defun-prompt-regexp} will definitely slow
+things down!
+
+You will probably notice pathological behavior from @ccmode{} when
 working in files containing large amounts of cpp macros.  This is
-because @code{cc-mode} cannot quickly skip backwards over these lines.
+because @ccmode{} cannot quickly skip backwards over these lines.
 
 @vindex c-recognize-knr-p
 @vindex recognize-knr-p (c-)
-Previous versions of @code{cc-mode} had potential performance problems
-when recognizing ``K&R'' style function argument declarations.  This was
+Previous versions of @ccmode{} had potential performance problems
+when recognizing K&R style function argument declarations.  This was
 because there are ambiguities in the C syntax when K&R style argument
-lists are used (it is hard to distinguish them from top-level
-declarations).  @code{cc-mode} has adopted BOCM's convention for
+lists are used@footnote{It is hard to distinguish them from top-level
+declarations.}.  @ccmode{} has adopted BOCM's convention for
 limiting the search: it assumes that argdecls are indented at least one
 space, and that the function headers are not indented at all.  With
-current versions of @code{cc-mode},
-@code{c-recognize-knr-p} is deprecated.
+current versions of @ccmode{}, user customization of
+@code{c-recognize-knr-p} is deprecated.  Just don't put argdecls in
+column zero!
 
 @cindex @file{cc-lobotomy.el} file
 @vindex cc-lobotomy-pith-list
-You might want to investigate some of the
-speed-ups contained in the file @file{cc-lobotomy.el}, which
-is part of the canonical @code{cc-mode} distribution.  As mentioned
-previous, @code{cc-mode} always trades accuracy for speed, however it is
-recognized that sometimes you need speed and can sacrifice some accuracy
-in indentation.  The file @file{cc-lobotomy.el} contains hacks that
-will ``dumb down'' @code{cc-mode} in some specific ways, making that
-trade-off of speed for accuracy.  I won't go into details of its use
-here; you should read the comments at the top of the file, and look at
-the variable @code{cc-lobotomy-pith-list} for details.
+You might want to investigate the speed-ups contained in the
+file @file{cc-lobotomy.el}, which is part of the @ccmode{} distribution.
+As mentioned previous, @ccmode{} always trades accuracy for speed,
+however it is recognized that sometimes you need speed and can sacrifice
+some accuracy in indentation.  The file @file{cc-lobotomy.el} contains
+hacks that will ``dumb down'' @ccmode{} in some specific ways, making
+that trade-off of speed for accuracy.  I won't go into details of its
+use here; you should read the comments at the top of the file, and look
+at the variable @code{cc-lobotomy-pith-list} for details.
 
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-@node  Frequently Asked Questions, Getting the latest cc-mode release, Performance Issues, Top
+@node  Frequently Asked Questions, Getting the latest CC Mode release, Performance Issues, Top
 @comment  node-name,              next,                    previous,up
 
 @chapter  Frequently Asked Questions
@@ -3014,17 +3148,17 @@
 
 @end example
 
-This is a very common question. @code{:-)} If you want this to be the
-default behavior, don't lobby me, lobby RMS!
+This is a very common question.  If you want this to be the default
+behavior, don't lobby me, lobby RMS!  @code{:-)}
 @sp 1
 
 @strong{Q.} @emph{I put @code{(c-set-offset 'substatement-open 0)}
 in my @file{.emacs} file but I get an error saying that
 @code{c-set-offset}'s function definition is void.}
 
-@strong{A.} This means that @code{cc-mode} wasn't loaded into your
+@strong{A.} This means that @ccmode{} wasn't loaded into your
 Emacs session by the time the @code{c-set-offset} call was reached,
-mostly likely because @code{cc-mode} is being autoloaded.  Instead
+mostly likely because @ccmode{} is being autoloaded.  Instead
 of putting the @code{c-set-offset} line in your top-level
 @file{.emacs} file, put it in your @code{c-mode-common-hook}, or
 simply add the following to the top of your @file{.emacs} file:
@@ -3042,31 +3176,36 @@
 constructs appear in different colors, or in bold face, etc.?}
 
 @strong{A.} ``Syntax Colorization'' is an Emacs 19 feature, controlled
-by @code{font-lock-mode}.  It is not part of @code{cc-mode}.
+by @code{font-lock-mode}.  It is not part of @ccmode{}.
 
 @sp 1
 @strong{Q.} @emph{I @code{setq} @code{c-basic-offset} to 4 in my
 @file{.emacs} file, but why does everything still get indented with only
 2 spaces?}
 
-@strong{A.} It's because @code{c-basic-offset} is now a ``buffer local
-variable'', meaning its value is unique to each buffer.  The prefered
-way to customize this is to change its value in a ``mode hook'' (most
-likely @code{c-mode-common-hook}.  Alternatively you can use
-@code{setq-default} to change its value globally.
+@vindex c-style-variables-are-local-p
+@vindex style-variables-are-local-p
+@strong{A.} It's because @code{c-basic-offset} is, by default, a
+``buffer local variable'', meaning its value is unique to each buffer.
+The prefered way to customize this is to change its value in a ``mode
+hook'' (most likely @code{c-mode-common-hook}).  Alternatively you can
+use @code{setq-default} to change its value globally.  Better yet,
+before you load @file{cc-mode.el}, set the variable
+@code{c-style-variables-are-local-p} to @code{nil}.  @xref{Advanced
+Customizations}.
 
 @end quotation
 
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-@node  Getting the latest cc-mode release, Sample .emacs File, Frequently Asked Questions, Top
+@node  Getting the latest CC Mode release, Sample .emacs File, Frequently Asked Questions, Top
 @comment  node-name,              next,                    previous,up
 
-@chapter  Getting the latest @code{cc-mode} release
-@cindex   Getting the latest @code{cc-mode} release
+@chapter  Getting the latest CC Mode release
+@cindex   Getting the latest CC Mode release
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-@code{cc-mode} is now distributed with both Emacs 19 and XEmacs 19, so
+@ccmode{} is now distributed with Emacs 19, XEmacs 19, and XEmacs 20, so
 you would typically just use the version that comes with your Emacs.
 These may be slightly out of date due to release schedule skew, so you
 should always check the canonical site for the latest version.
@@ -3089,10 +3228,16 @@
 distribution (named @code{cc-mode.tar.gz}; a gzip'd tar file), or any of
 the individual files, including PostScript documentation.
 
-If you do not have anonymous ftp access, you can get the distribution
-through an anonymous ftp-to-mail gateway, such as the one run by DEC at
-@code{ftpmail@@decwrl.dec.com}.  To get @code{cc-mode} via email, send
-the following message in the body of your mail to that address:
+If you do not have World Wide Web, or anonymous ftp access, you can get
+the distribution through an anonymous ftp-to-mail gateway, such as the
+one run by DEC at:
+@example
+
+@code{ftpmail@@decwrl.dec.com}
+
+@end example
+To get @ccmode{} via email, send the following message in the body of
+your mail to that address:
 @example
 
 reply <a valid net address back to you>
@@ -3110,11 +3255,11 @@
 about its availability!
 
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-@node  Sample .emacs File, Limitations and Known Bugs, Getting the latest cc-mode release, Top
+@node  Sample .emacs File, Limitations and Known Bugs, Getting the latest CC Mode release, Top
 @comment  node-name,              next,                    previous,up
 
-@chapter  Sample @file{.emacs} file
-@cindex   Sample @file{.emacs} file
+@chapter  Sample .emacs file
+@cindex   Sample .emacs file
 @comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
 @example
@@ -3123,23 +3268,23 @@
 ;; change some of the actual values.
 
 (defconst my-c-style
-  '((c-tab-always-indent           . t)
-    (c-comment-only-line-offset    . 4)
-    (c-hanging-braces-alist        . ((substatement-open after)
-                                      (brace-list-open)))
-    (c-hanging-colons-alist        . ((member-init-intro before)
-                                      (inher-intro)
-                                      (case-label after)
-                                      (label after)
-                                      (access-label after)))
-    (c-cleanup-list                . (scope-operator
-                                      empty-defun-braces
-                                      defun-close-semi))
-    (c-offsets-alist               . ((arglist-close     . c-lineup-arglist)
-                                      (substatement-open . 0)
-                                      (case-label        . 4)
-                                      (block-open        . 0)
-                                      (knr-argdecl-intro . -)))
+  '((c-tab-always-indent        . t)
+    (c-comment-only-line-offset . 4)
+    (c-hanging-braces-alist     . ((substatement-open after)
+                                   (brace-list-open)))
+    (c-hanging-colons-alist     . ((member-init-intro before)
+                                   (inher-intro)
+                                   (case-label after)
+                                   (label after)
+                                   (access-label after)))
+    (c-cleanup-list             . (scope-operator
+                                   empty-defun-braces
+                                   defun-close-semi))
+    (c-offsets-alist            . ((arglist-close . c-lineup-arglist)
+                                   (substatement-open . 0)
+                                   (case-label        . 4)
+                                   (block-open        . 0)
+                                   (knr-argdecl-intro . -)))
     (c-echo-syntactic-information-p . t)
     )
   "My C Programming Style")
@@ -3183,14 +3328,13 @@
 Re-indenting large regions or expressions can be slow.
 
 @item
-Use with Emacs 18 can be slow and annoying. You should seriously
+Use with Emacs 18 can be slow and annoying.  You should seriously
 consider upgrading to Emacs 19.
 
 @item
-There is still some weird behavior when filling C block comments.
-My suggestion is to check out separate fill packages such as
-@code{filladapt} or @code{adaptive-fill-mode}.  These can do a much
-better job of filling comment regions.
+Add-on fill packages may not work as well as @ccmode{}'s built-in
+filling routines.  I no longer recommend you use @code{filladapt} to
+fill comments.
 
 @cindex c-indent-exp
 @cindex indent-exp (c-)
@@ -3225,9 +3369,10 @@
 
 Bug reports are now sent to the following email addresses:
 @code{cc-mode-help@@python.org} and
-@code{bug-gnu-emacs@@prep.ai.mit.edu}; the latter is mirrored on the Usenet
-newsgroup @code{gnu.emacs.bug}.  Other questions and suggestions should
-be mailed to @code{help-gnu-emacs@@prep.ai.mit.edu} which is mirrored on
+@code{bug-gnu-emacs@@prep.ai.mit.edu}; the latter is mirrored on the
+Usenet newsgroup @code{gnu.emacs.bug}.  You can send other questions,
+suggestions, and kudos to @code{cc-mode-help@@python.org}, or
+@code{help-gnu-emacs@@prep.ai.mit.edu} which is mirrored on newsgroup
 @code{gnu.emacs.help}.
 
 
@@ -3249,7 +3394,7 @@
 @ifinfo
 
 @end ifinfo
-Since all @code{cc-mode} commands are prepended with the string
+Since all @ccmode{} commands are prepended with the string
 @samp{c-}, each appears under its @code{c-@var{<thing>}} name and its
 @code{@var{<thing>} (c-)} name.
 @iftex
@@ -3273,10 +3418,7 @@
 @unnumbered Variable Index
 @c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-@ifinfo
-
-@end ifinfo
-Since all @code{cc-mode} variables are prepended with the string
+Since all @ccmode{} variables are prepended with the string
 @samp{c-}, each appears under its @code{c-@var{<thing>}} name and its
 @code{@var{<thing>} (c-)} name.
 @iftex
--- a/man/custom.texi	Mon Aug 13 08:52:30 2007 +0200
+++ b/man/custom.texi	Mon Aug 13 08:52:56 2007 +0200
@@ -13,7 +13,7 @@
 @comment  node-name,  next,  previous,  up
 @top The Customization Library
 
-Version: 1.59
+Version: 1.63
 
 @menu
 * Introduction::                
@@ -648,6 +648,14 @@
 definitions. 
 
 @item
+Support selectable color themes.  I.e., change many faces by setting one
+variable.
+
+@item
+There should be a way to see only the "current" display when editing a
+face, and that should be "on" by default.
+
+@item
 Support undo using lmi's @file{gnus-undo.el}.
 
 @item
--- a/man/gnus.texi	Mon Aug 13 08:52:30 2007 +0200
+++ b/man/gnus.texi	Mon Aug 13 08:52:56 2007 +0200
@@ -13386,11 +13386,15 @@
 
 @table @code
 
+@item gnus-home-directory
+All Gnus path variables will be initialized from this variable, which
+defaults to @file{~/}.
+
 @item gnus-directory
 @vindex gnus-directory
-All Gnus directories will be initialized from this variable, which
-defaults to the @samp{SAVEDIR} environment variable, or @file{~/News/}
-if that variable isn't set.
+Most Gnus storage path variables will be initialized from this variable,
+which defaults to the @samp{SAVEDIR} environment variable, or
+@file{~/News/} if that variable isn't set.
 
 @item gnus-default-directory
 @vindex gnus-default-directory
--- a/man/w3.texi	Mon Aug 13 08:52:30 2007 +0200
+++ b/man/w3.texi	Mon Aug 13 08:52:56 2007 +0200
@@ -130,12 +130,48 @@
 @vindex w3-default-homepage
 @findex w3
 If installed correctly, starting Emacs-W3 is quite painless.  Just type
-@kbd{M-x w3} in a running Emacs sessions.  This will retrieve the
-default page that has been configured - by default the documentation for
-Emacs-W3 at Indiana University.
+@kbd{M-x w3} in a running Emacs session.  This will retrieve the default
+page that has been configured (@pxref{Preferences Panel}) - by default the
+documentation for Emacs-W3 at Indiana University.
 
 If the default page is not retrieved correctly at startup, you will have
-to do some customization.
+to do some customization (@pxref{Preferences Panel}).
+
+Once started, you can use the mouse and the menu or use the following
+key commands (for more commands and more detail, @pxref{Basic Usage, ,
+Basic Usage}).
+
+@table @asis
+@item move forward 
+press the space bar, 
+
+@item move backwards
+press the backspace key, 
+
+@item move to the next HTML reference on the page
+press the @kbd{TAB} key,
+
+@item move to the previous HTML reference on the page
+press the @kbd{SHIFT} and @kbd{TAB} keys at the same time.  If this does
+not work (some text terminals cannot distinguish between @kbd{TAB} and
+@kbd{SHIFT-TAB}, pressing the @kbd{ALT} and @kbd{TAB} keys should also
+work.
+
+@item follow a link 
+put the cursor over it
+and press the @kbd{RETURN} key, or @*
+click the left mouse button on it,
+
+@item fetch a @sc{url}
+press the @kbd{Control} and @kbd{o} keys at the same time,@*
+type the @sc{url}, and then press the @kbd{RETURN} key,
+
+@item return to the last URL you were at 
+press the @kbd{l} key,
+
+@item quit W3 mode 
+press the @kbd{q} key.
+@end table
 
 @menu
 * Downloading::                 Where to download Emacs-W3.
@@ -3396,18 +3432,37 @@
 ftp://ftp.psy.uq.oz.au/pub/Crypto/SSL/
 @end table
 
+Currently, an external in order to use SSL from within Emacs-W3.  This
+program should be able to take command line parameters for the hostname
+and port number to connect to, and read/write to standard input/output
+(similar to telnet, but without the annoying status messages).  
+
+The following variables control how the external program is invoked.
+
+@table @code
+@item ssl-program-name
 @vindex ssl-program-name
-Whichever reference implementation is used (I recommend the SSLeay
-distribution, just to thumb a nose at the NSA :), there is a program
-that can be run in a subprocess that takes a hostname and port number on
-the command line, and reads/writes to standard input/output (the
-Netscape implementation comes with one of these by default).  Set the
-variable @code{ssl-program-name} to point to this program.
-
-
-This should be all the configuration necessary.  In the future, I will
-be distributing a set of patches to Emacs 19.xx and XEmacs 19.xx to
-SSL-enable them, for the sake of speed.
+The name of the program to run, as a string.
+
+@example
+(setq ssl-program-name "s_client")
+@end example
+
+@item ssl-program-arguments
+@vindex ssl-program-arguments
+This should be used if your SSL program needs command line switches to
+specify any behaviour (certificate file locations, etc).  This is a list
+of strings and symbols.
+
+The special symbols 'host and 'port may be used in the list of arguments
+and will be replaced with the hostname and service/port that will be
+connected to.
+
+@example
+(setq ssl-program-arguments '("-host" host "-port" service "-verify" "4"
+                              "-CApath /usr/local/ssl/certs"))
+@end example
+@end table
 
 @node Mailcap Files, Down with DoubleClick, Installing SSL, Top
 @appendix Mailcap Files
--- a/man/widget.texi	Mon Aug 13 08:52:30 2007 +0200
+++ b/man/widget.texi	Mon Aug 13 08:52:56 2007 +0200
@@ -1,6 +1,6 @@
 \input texinfo.tex
 
-@c $Id: widget.texi,v 1.7 1997/03/09 02:38:24 steve Exp $
+@c $Id: widget.texi,v 1.8 1997/03/16 05:56:07 steve Exp $
 
 @c %**start of header
 @setfilename widget
@@ -15,7 +15,7 @@
 @comment  node-name,  next,  previous,  up
 @top The Emacs Widget Library
 
-Version: 1.59
+Version: 1.63
 
 @menu
 * Introduction::                
@@ -530,9 +530,28 @@
 return the widget containing the invalid data, and set that widgets
 @code{:error} property to a string explaining the error.
 
+@item :tab-order
+Specify the order in which widgets are traversed with
+@code{widget-forward} or @code{widget-backward}.  This is only partially
+implemented.
+
+@enumerate a
+@item
+Widgets with tabbing order @code{-1} are ignored.
+
+@item 
+(Unimplemented) When on a widget with tabbing order @var{n}, go to the
+next widget in the buffer with tabbing order @var{n+1} or @code{nil},
+whichever comes first.
+
+@item
+When on a widget with no tabbing order specified, go to the next widget
+in the buffer with a positive tabbing order, or @code{nil}
+@end enumerate
+
 @item :parent
-The parent of a nested widget (e.g. a @code{menu-choice} item or an element of a
-@code{editable-list} widget). 
+The parent of a nested widget (e.g. a @code{menu-choice} item or an
+element of a @code{editable-list} widget).
 
 @item :sibling-args
 This keyword is only used for members of a @code{radio-button-choice} or
--- a/src/EmacsFrame.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/EmacsFrame.c	Mon Aug 13 08:52:56 2007 +0200
@@ -103,10 +103,10 @@
   {XtNrightToolBarWidth, XtCRightToolBarWidth, XtRInt, sizeof (int),
      offset (right_toolbar_width), XtRImmediate, (XtPointer)-1},
   {XtNtopToolBarShadowColor, XtCTopToolBarShadowColor, XtRPixel, sizeof(Pixel),
-     offset(top_toolbar_shadow_pixel), XtRString, (String) "black"},
+     offset(top_toolbar_shadow_pixel), XtRString, (String) "#000000"},
   {XtNbottomToolBarShadowColor, XtCBottomToolBarShadowColor, XtRPixel,
      sizeof(Pixel), offset(bottom_toolbar_shadow_pixel), XtRString,
-     (String) "black"},
+     (String) "#000000"},
   {XtNbackgroundToolBarColor, XtCBackgroundToolBarColor, XtRPixel,
      sizeof(Pixel), offset(background_toolbar_pixel), XtRString,
      (String) "Gray75"},
--- a/src/Makefile.in.in	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/Makefile.in.in	Mon Aug 13 08:52:56 2007 +0200
@@ -1160,7 +1160,7 @@
         ${lispdir}bytecomp/bytecomp-runtime.elc FLOAT_LISP EPOCH_LISP \
         ${lispdir}prim/itimer.elc ${lispdir}prim/itimer-autosave.elc \
 	${lispdir}ediff/ediff-hook.elc \
-	${lispdir}custom/widget.elc \
+	${lispdir}custom/widget.elc ${lispdir}prim/custom-load.elc \
 	${lispdir}custom/custom.elc \
 	${lispdir}packages/fontl-hooks.elc SCROLLBAR_LISP \
 	${lispdir}prim/buffer.elc MENUBAR_LISP \
--- a/src/alloc.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/alloc.c	Mon Aug 13 08:52:56 2007 +0200
@@ -3823,6 +3823,7 @@
   Vprocess_environment = Qnil;
   Vexec_directory = Qnil;
   Vdata_directory = Qnil;
+  Vsite_directory = Qnil;
   Vdoc_directory = Qnil;
   Vconfigure_info_directory = Qnil;
   Vexec_path = Qnil;
--- a/src/buffer.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/buffer.c	Mon Aug 13 08:52:56 2007 +0200
@@ -996,6 +996,7 @@
      display).  We still need to make sure redisplay realizes that the
      contents have potentially altered and it needs to do some
      work. */
+  buf = decode_buffer(buffer, 0);
   BUF_MODIFF (buf)++;
   BUF_SAVE_MODIFF (buf) = NILP (flag) ? BUF_MODIFF (buf) : 0;
   MARK_MODELINE_CHANGED;
--- a/src/callproc.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/callproc.c	Mon Aug 13 08:52:56 2007 +0200
@@ -49,7 +49,7 @@
 #endif /* DOS_NT */
 
 Lisp_Object Vexec_path, Vexec_directory, Vdata_directory, Vdoc_directory;
-Lisp_Object Vconfigure_info_directory;
+Lisp_Object Vconfigure_info_directory, Vsite_directory;
 
 /* The default base directory XEmacs is installed under. */
 Lisp_Object Vprefix_directory;
@@ -946,6 +946,7 @@
   if (!initialized)
     {
       Vdata_directory = Qnil;
+      Vsite_directory = Qnil;
       Vdoc_directory  = Qnil;
       Vexec_path      = Qnil;
     }
@@ -953,6 +954,7 @@
 #endif
     {
       char *data_dir = egetenv ("EMACSDATA");
+      char *site_dir = egetenv ("EMACSSITE");
       char *doc_dir  = egetenv ("EMACSDOC");
     
 #ifdef PATH_DATA
@@ -963,6 +965,10 @@
       if (!doc_dir)
 	doc_dir = (char *) PATH_DOC;
 #endif
+#ifdef PATH_SITE
+      if (!site_dir)
+	site_dir = (char *) PATH_SITE;
+#endif
     
       if (data_dir)
 	Vdata_directory = Ffile_name_as_directory
@@ -974,6 +980,11 @@
 	  (build_string (doc_dir));
       else
 	Vdoc_directory = Qnil;
+      if (site_dir)
+	Vsite_directory = Ffile_name_as_directory
+	  (build_string (site_dir));
+      else
+	Vsite_directory = Qnil;
 
       /* Check the EMACSPATH environment variable, defaulting to the
 	 PATH_EXEC path from paths.h.  */
@@ -1032,6 +1043,24 @@
 	}
     }
   
+  if (!NILP (Vsite_directory))
+    {
+      tempdir = Fdirectory_file_name (Vsite_directory);
+      if (access ((char *) XSTRING_DATA (tempdir), 0) < 0)
+	{
+	  /* If the hard-coded path is bogus, fail silently.
+	     This will allow the normal heuristics to make an attempt. */
+#if 0
+	  warn_when_safe
+	    (Qpath, Qwarning,
+	     "Warning: machine-independent site dir (%s) does not exist.\n",
+	     XSTRING_DATA (Vsite_directory));
+#else
+	  Vsite_directory = Qnil;
+#endif
+	}
+    }
+  
 #ifdef PATH_PREFIX
   Vprefix_directory = build_string ((char *) PATH_PREFIX);
 #else
@@ -1120,6 +1149,11 @@
 intended for Emacs to use.
 */ );
 
+  DEFVAR_LISP ("site-directory", &Vsite_directory /*
+Directory of architecture-independent files that do not come with XEmacs,
+intended for Emacs to use.
+*/ );
+
   /* FSF puts the DOC file into data-directory.  They do a bunch of
      contortions to attempt to put everything into the DOC file
      whether the support is there or not. */
--- a/src/console-stream.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/console-stream.c	Mon Aug 13 08:52:56 2007 +0200
@@ -318,17 +318,17 @@
 vars_of_console_stream (void)
 {
   DEFVAR_LISP ("terminal-console", &Vterminal_console /*
-The initial console-object, which represent's Emacs's stdout.
+The initial console-object, which represents XEmacs' stdout.
 */ );
   Vterminal_console = Qnil;
 
   DEFVAR_LISP ("terminal-device", &Vterminal_device /*
-The initial device-object, which represent's Emacs's stdout.
+The initial device-object, which represents XEmacs' stdout.
 */ );
   Vterminal_device = Qnil;
 
   DEFVAR_LISP ("terminal-frame", &Vterminal_frame /*
-The initial frame-object, which represents Emacs's stdout.
+The initial frame-object, which represents XEmacs' stdout.
 */ );
   Vterminal_frame = Qnil;
 
--- a/src/console.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/console.c	Mon Aug 13 08:52:56 2007 +0200
@@ -315,7 +315,7 @@
 Return the type of the specified console (e.g. `x' or `tty').
 Value is `tty' for a tty console (a character-only terminal),
 `x' for a console that is an X display,
-`ns' for a console that is a NeXTstep connection (not yet implemeted),
+`ns' for a console that is a NeXTstep connection (not yet implemented),
 `win32' for a console that is a Windows or Windows NT connection (not yet
   implemented),
 `pc' for a console that is a direct-write MS-DOS connection (not yet
@@ -903,6 +903,9 @@
 # endif
 #endif /* BSD */
 }
+#ifdef HAVE_TTY
+extern Lisp_Object Fconsole_tty_controlling_process(Lisp_Object console);
+#endif
 
 DEFUN ("suspend-console", Fsuspend_console, 0, 1, "", /*
 Suspend a console.  For tty consoles, it sends a signal to suspend
@@ -922,6 +925,7 @@
   struct console *c;
   struct gcpro gcpro1;
 
+#ifdef HAVE_TTY
   if (NILP (console))
       console=Fselected_console();
 
@@ -944,6 +948,7 @@
   }
 
   UNGCPRO;
+#endif
   return Qnil;
 }
 
@@ -958,6 +963,7 @@
   struct console *c;
   struct gcpro gcpro1, gcpro2, gcpro3;
 
+#ifdef HAVE_TTY
   GCPRO2 (console, devcons);
 
   c = decode_console(console);
@@ -976,6 +982,7 @@
   }
 
   UNGCPRO;
+#endif
   return Qnil;
 }
 
--- a/src/editfns.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/editfns.c	Mon Aug 13 08:52:56 2007 +0200
@@ -2151,7 +2151,7 @@
 set-mark-command (C-SPC) pushes a mark and activates the region.  Moving the
 cursor with normal motion commands (C-n, C-p, etc) will cause the region
 between point and the recently-pushed mark to be highlighted.  It will
-remain highlighted until some non-motion comand is executed.
+remain highlighted until some non-motion command is executed.
 
 exchange-point-and-mark (\\[exchange-point-and-mark]) activates the region.  So if you mark a
 region and execute a command that operates on it, you can reactivate the
--- a/src/emacs.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/emacs.c	Mon Aug 13 08:52:56 2007 +0200
@@ -180,6 +180,7 @@
       stderr_out("\nLisp backtrace follows:\n\n");
       Fbacktrace(Qexternal_debugging_output, Qt);
       
+# if 0	/* This is evil, rarely useful, and causes grief in some cases. */
       /* Check for Sun-style stack printing via /proc */
       {
         CONST char *pstack = "/usr/proc/bin/pstack";
@@ -192,6 +193,7 @@
             system(buf);
           }
       }
+# endif
     }
 #ifdef VMS
   LIB$STOP (SS$_ABORT);
@@ -2120,7 +2122,6 @@
    in one session without having to recompile. */
 /* #define ASSERTIONS_DONT_ABORT */
 
-#ifdef USE_ASSERTIONS
 /* This highly dubious kludge ... shut up Jamie, I'm tired of your slagging. */
 
 DOESNT_RETURN
@@ -2133,7 +2134,6 @@
   abort ();
 #endif
 }
-#endif /* USE_ASSERTIONS */
 
 #ifdef QUANTIFY
 DEFUN ("quantify-start-recording-data",
--- a/src/emacsfns.h	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/emacsfns.h	Mon Aug 13 08:52:56 2007 +0200
@@ -217,7 +217,7 @@
 
 /* Defined in callproc.c */
 extern Lisp_Object Vexec_path, Vexec_directory, Vdata_directory,
-		   Vdoc_directory;
+		   Vdoc_directory, Vsite_directory;
 
 
 /* Defined in casefiddle.c */
--- a/src/event-stream.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/event-stream.c	Mon Aug 13 08:52:56 2007 +0200
@@ -2357,9 +2357,8 @@
 /* This is used in accept-process-output, sleep-for and sit-for.
    Before running any process_events in these routines, we set
    recursive_sit_for to Qt, and use this unwind protect to reset it to
-   Qnil upon exit.  When recursive_sit_for is Qt, calling any of these
-   three routines will cause them to return immediately no matter what
-   their arguments were. 
+   Qnil upon exit.  When recursive_sit_for is Qt, calling sit-for will
+   cause it to return immediately.
    
    All of these routines install timeouts, so we clear the installed
    timeout as well.
@@ -2395,13 +2394,6 @@
 If the third arg is non-nil, it is a number of milliseconds that is added
  to the second arg.  (This exists only for compatibility.)
 Return non-nil iff we received any output before the timeout expired.
-
-If a filter function or timeout handler (such as installed by `add-timeout')
- calls any of accept-process-output, sleep-for, or sit-for, those calls
- will return nil immediately (regardless of their arguments) in recursive
- situations.  It is recommended that you never call accept-process-output
- from inside of a process filter function or timer event (either synchronous
- or asynchronous).
 */
        (process, timeout_secs, timeout_msecs))
 {
@@ -2415,10 +2407,6 @@
   struct buffer *old_buffer = current_buffer;
   int count;
 
-  /* Recusive call from a filter function or timeout handler. */
-  if (!NILP(recursive_sit_for))
-    return Qnil;
-
   /* We preserve the current buffer but nothing else.  If a focus
      change alters the selected window then the top level event loop
      will eventually alter current_buffer to match.  In the mean time
@@ -2536,12 +2524,8 @@
 Pause, without updating display, for ARG seconds.
 ARG may be a float, meaning pause for some fractional part of a second.
 
-If a filter function or timeout handler (such as installed by `add-timeout')
- calls any of accept-process-output, sleep-for, or sit-for, those calls
- will return nil immediately (regardless of their arguments) in recursive
- situations.  It is recommended that you never call sleep-for from inside
- of a process filter function or timer event (either synchronous or
- asynchronous).
+It is recommended that you never call sleep-for from inside of a process
+ filter function or timer event (either synchronous or asynchronous).
 */
        (seconds))
 {
@@ -2552,10 +2536,6 @@
   int count;
   struct gcpro gcpro1;
 
-  /* Recusive call from a filter function or timeout handler. */
-  if (!NILP(recursive_sit_for))
-    return Qnil;
-
   GCPRO1 (event);
 
   id = event_stream_generate_wakeup (msecs, 0, Qnil, Qnil, 0);
@@ -2616,12 +2596,8 @@
  happen if input is available before it starts.
 Value is t if waited the full time with no input arriving.
 
-If a filter function or timeout handler (such as installed by `add-timeout')
- calls any of accept-process-output, sleep-for, or sit-for, those calls
- will return nil immediately (regardless of their arguments) in recursive
- situations.  It is recommended that you never call sit-for from inside
- of a process filter function or timer event (either synchronous or
- asynchronous) with an argument other than 0.
+If sit-for is called from within a process filter function or timer
+ event (either synchronous or asynchronous) it will return immediately.
 */
        (seconds, nodisplay))
 {
@@ -2632,10 +2608,6 @@
   int id;
   int count;
 
-  /* Recusive call from a filter function or timeout handler. */
-  if (!NILP(recursive_sit_for))
-    return Qnil;
-
   /* The unread-command-events count as pending input */
   if (!NILP (Vunread_command_events) || !NILP (Vunread_command_event))
     return Qnil;
@@ -2657,6 +2629,18 @@
   if (noninteractive || !NILP (Vexecuting_macro))
     return (Qnil);
 
+  /* Recusive call from a filter function or timeout handler. */
+  if (!NILP(recursive_sit_for))
+    {
+      if (!event_stream_event_pending_p (1) && NILP (nodisplay))
+	{
+	  run_pre_idle_hook ();
+	  redisplay ();
+	}
+      return Qnil;
+    }
+
+
   /* Otherwise, start reading events from the event_stream.
      Do this loop at least once even if (sit-for 0) so that we
      redisplay when no input pending.
@@ -3260,7 +3244,7 @@
       like command prefixes; they signal this by setting prefix-arg
       to non-nil.
    -- Therefore, we reset this-command-keys when we finish
-      executing a comand, unless prefix-arg is set.
+      executing a command, unless prefix-arg is set.
    -- However, if we ever do a non-local exit out of a command
       loop (e.g. an error in a command), we need to reset
       this-command-keys.  We do this by calling reset_this_command_keys()
@@ -3294,7 +3278,7 @@
 
 /* The following two functions are used in call-interactively,
    for the @ and e specifications.  We used to just use
-   `current-mouse-event' (i.e. the last mouse event in this-comand-keys),
+   `current-mouse-event' (i.e. the last mouse event in this-command-keys),
    but FSF does it more generally so we follow their lead. */
 
 Lisp_Object
@@ -4619,10 +4603,7 @@
       (/ (- (caddr ,end) (caddr ,start)) 1000000.0)))
 
 (defun testee (ignore)
-  ;; All three of these should return immediately.
-  (sit-for 10)
-  (sleep-for 10)
-  (accept-process-output nil 10))
+  (sit-for 10))
 
 (defun test-them ()
   (let ((start (current-time))
@@ -4636,7 +4617,8 @@
     (setq end (current-time))
     (test-diff-time start end)))
 
-(test-them) should sit for 15 seconds, not 105 or 96.
-
+(test-them) should sit for 15 seconds.
+Repeat with testee set to sleep-for and accept-process-output.
+These should each delay 36 seconds.
 
 */
--- a/src/extents.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/extents.c	Mon Aug 13 08:52:56 2007 +0200
@@ -1578,7 +1578,8 @@
    descendants. */
 
 static void
-extent_changed_for_redisplay (EXTENT extent, int descendants_too)
+extent_changed_for_redisplay (EXTENT extent, int descendants_too,
+			      int invisibility_change)
 {
   Lisp_Object object;
   Lisp_Object rest;
@@ -1597,7 +1598,8 @@
 	     if there are any circularities here, so we sure as hell better
 	     ensure that there aren't. */
 	  LIST_LOOP (rest, XWEAK_LIST_LIST (children))
-	    extent_changed_for_redisplay (XEXTENT (XCAR (rest)), 1);
+	    extent_changed_for_redisplay (XEXTENT (XCAR (rest)), 1,
+					  invisibility_change);
 	}
     }
 
@@ -1626,6 +1628,8 @@
     b = XBUFFER (object);
     BUF_FACECHANGE (b)++;
     MARK_EXTENTS_CHANGED;
+    if (invisibility_change)
+      MARK_CLIP_CHANGED;
     buffer_extent_signal_changed_region (b,
 					 extent_endpoint_bufpos (extent, 0),
 					 extent_endpoint_bufpos (extent, 1));
@@ -1638,14 +1642,16 @@
    the extent has any displayable attributes. */
 
 static void
-extent_maybe_changed_for_redisplay (EXTENT extent, int descendants_too)
+extent_maybe_changed_for_redisplay (EXTENT extent, int descendants_too,
+				    int invisibility_change)
 {
   /* Retrieve the ancestor for efficiency */
   EXTENT anc = extent_ancestor (extent);
   if (!NILP (extent_face (anc)) || !NILP (extent_begin_glyph (anc)) ||
       !NILP (extent_end_glyph (anc)) || !NILP (extent_mouse_face (anc)) ||
-      !NILP (extent_invisible (anc)))
-    extent_changed_for_redisplay (extent, descendants_too);
+      !NILP (extent_invisible (anc)) || invisibility_change)
+    extent_changed_for_redisplay (extent, descendants_too,
+				  invisibility_change);
 }
 
 static EXTENT
@@ -1793,7 +1799,8 @@
   extent_list_insert (el, extent);
   soe_insert (extent_object (extent), extent);
   /* only this extent changed */
-  extent_maybe_changed_for_redisplay (extent, 0);
+  extent_maybe_changed_for_redisplay (extent, 0,
+				      !NILP (extent_invisible (extent)));
 }
 
 static void
@@ -1806,7 +1813,8 @@
   el = extent_extent_list (extent);
 
   /* call this before messing with the extent. */
-  extent_maybe_changed_for_redisplay (extent, 0);
+  extent_maybe_changed_for_redisplay (extent, 0,
+				      !NILP (extent_invisible (extent)));
   extent_list_delete (el, extent);
   soe_delete (extent_object (extent), extent);
   set_extent_start (extent, -1);
@@ -3511,7 +3519,15 @@
       e->flags.has_parent = 1;
     }
   /* changing the parent also changes the properties of all children. */
-  extent_maybe_changed_for_redisplay (e, 1);
+  {
+    int old_invis = (!NILP (cur_parent) &&
+		     !NILP (extent_invisible (XEXTENT (cur_parent))));
+    int new_invis = (!NILP (parent) &&
+		     !NILP (extent_invisible (XEXTENT (parent))));
+
+    extent_maybe_changed_for_redisplay (e, 1, new_invis != old_invis);
+  }
+
   return Qnil;
 }
 
@@ -4610,7 +4626,7 @@
   if (!EQ (extent_invisible (extent), value))
     {
       set_extent_invisible_1 (extent, value);
-      extent_changed_for_redisplay (extent, 1);
+      extent_changed_for_redisplay (extent, 1, 1);
     }
 }
 
@@ -4767,18 +4783,16 @@
 */
        (extent, face))
 {
-  EXTENT e;
+  EXTENT e = decode_extent(extent, 0);
   Lisp_Object orig_face = face;
 
-  CHECK_EXTENT (extent);
-  e = XEXTENT (extent);
   /* retrieve the ancestor for efficiency and proper redisplay noting. */
   e = extent_ancestor (e);
 
   face = memoize_extent_face_internal (face);
 
   extent_face (e) = face;
-  extent_changed_for_redisplay (e, 1);
+  extent_changed_for_redisplay (e, 1, 0);
 
   return orig_face;
 }
@@ -4818,7 +4832,7 @@
   face = memoize_extent_face_internal (face);
 
   set_extent_mouse_face (e, face);
-  extent_changed_for_redisplay (e, 1);
+  extent_changed_for_redisplay (e, 1, 0);
 
   return orig_face;
 }
@@ -4840,7 +4854,7 @@
       extent_end_glyph_layout (extent) = layout;
     }
 
-  extent_changed_for_redisplay (extent, 1);
+  extent_changed_for_redisplay (extent, 1, 0);
 }
 
 static Lisp_Object
@@ -4942,7 +4956,7 @@
   EXTENT e = decode_extent (extent, 0);
   e = extent_ancestor (e);
   extent_begin_glyph_layout (e) = symbol_to_glyph_layout (layout);
-  extent_maybe_changed_for_redisplay (e, 1);
+  extent_maybe_changed_for_redisplay (e, 1, 0);
   return layout;
 }
 
@@ -4955,7 +4969,7 @@
   EXTENT e = decode_extent (extent, 0);
   e = extent_ancestor (e);
   extent_end_glyph_layout (e) = symbol_to_glyph_layout (layout);
-  extent_maybe_changed_for_redisplay (e, 1);
+  extent_maybe_changed_for_redisplay (e, 1, 0);
   return layout;
 }
 
@@ -4994,7 +5008,7 @@
   CHECK_INT (pri);
   e = extent_ancestor (e);
   set_extent_priority (e, XINT (pri));
-  extent_maybe_changed_for_redisplay (e, 1);
+  extent_maybe_changed_for_redisplay (e, 1, 0);
   return pri;
 }
 
@@ -5374,14 +5388,14 @@
     {
       /* do not recurse on descendants.  Only one extent is highlighted
 	 at a time. */
-      extent_changed_for_redisplay (XEXTENT (Vlast_highlighted_extent), 0);
+      extent_changed_for_redisplay (XEXTENT (Vlast_highlighted_extent), 0, 0);
     }
   Vlast_highlighted_extent = Qnil;
   if (!NILP (extent_obj)
       && BUFFERP (extent_object (XEXTENT (extent_obj)))
       && highlight_p)
     {
-      extent_changed_for_redisplay (XEXTENT (extent_obj), 0);
+      extent_changed_for_redisplay (XEXTENT (extent_obj), 0, 0);
       Vlast_highlighted_extent = extent_obj;
     }
 }
--- a/src/fileio.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/fileio.c	Mon Aug 13 08:52:56 2007 +0200
@@ -4121,6 +4121,9 @@
   /* This function can GC */
   if (gc_in_progress)
     return Qnil;
+  /* Don't try printing an error message after everything is gone! */
+  if (preparing_for_armageddon)
+    return Qnil;
   clear_echo_area (selected_frame (), Qauto_saving, 1);
   Fding (Qt, Qauto_save_error, Qnil);
   message ("Auto-saving...error for %s", XSTRING_DATA (current_buffer->name));
@@ -4196,17 +4199,19 @@
        (no_message, current_only))
 {
   /* This function can GC */
-  struct buffer *old = current_buffer, *b;
+  struct buffer *b;
   Lisp_Object tail, buf;
   int auto_saved = 0;
   int do_handled_files;
   Lisp_Object oquit = Qnil;
   Lisp_Object listfile = Qnil;
+  Lisp_Object old;
   int listdesc = -1;
   int speccount = specpdl_depth ();
-  struct gcpro gcpro1, gcpro2;
-
-  GCPRO2 (oquit, listfile);
+  struct gcpro gcpro1, gcpro2, gcpro3;
+
+  XSETBUFFER (old, current_buffer);
+  GCPRO3 (oquit, listfile, old);
   check_quit (); /* make Vquit_flag accurate */
   /* Ordinarily don't quit within this function,
      but don't make it impossible to quit (in case we get hung in I/O).  */
@@ -4358,14 +4363,36 @@
 		  write (listdesc, "\n", 1);
 		}
 
-	      condition_case_1 (Qt,
-				auto_save_1, Qnil,
-				auto_save_error, Qnil);
+	      /* dmoore - In a bad scenario we've set b=XBUFFER(buf)
+		 based on values in Vbuffer_alist.  auto_save_1 may
+		 cause lisp handlers to run.  Those handlers may kill
+		 the buffer and then GC.  Since the buffer is killed,
+		 it's no longer in Vbuffer_alist so it might get reaped
+		 by the GC.  We also need to protect tail. */
+	      /* #### There is probably a lot of other code which has
+		 pointers into buffers which may get blown away by
+		 handlers. */
+	      {
+		struct gcpro gcpro1, gcpro2;
+		GCPRO2 (buf, tail);
+		condition_case_1 (Qt,
+				  auto_save_1, Qnil,
+				  auto_save_error, Qnil);
+		UNGCPRO;
+	      }
+	      /* Handler killed our saved current-buffer!  Pick any. */
+	      if (!BUFFER_LIVE_P (XBUFFER (old)))
+		XSETBUFFER (old, current_buffer);
+
+	      set_buffer_internal (XBUFFER (old));
 	      auto_saved++;
+	      
+	      /* Handler killed their own buffer! */
+	      if (!BUFFER_LIVE_P(b))
+		continue;
+
 	      b->auto_save_modified = BUF_MODIFF (b);
 	      b->save_length = make_int (BUF_SIZE (b));
-	      set_buffer_internal (old);
-
 	      EMACS_GET_TIME (after_time);
 	      /* If auto-save took more than 60 seconds,
 		 assume it was an NFS failure that got a timeout.  */
--- a/src/intl.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/intl.c	Mon Aug 13 08:52:56 2007 +0200
@@ -263,7 +263,7 @@
 
 DEFUN ("set-domain", Fset_domain, 1, 1, 0, /*
 Specify the domain used for translating messages in this source file.
-The domain declaration may only appear at top-level, and should preceed
+The domain declaration may only appear at top-level, and should precede
 all function and variable definitions.
 
 The presence of this declaration in a compiled file effectively sets the
--- a/src/linuxplay.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/linuxplay.c	Mon Aug 13 08:52:56 2007 +0200
@@ -297,7 +297,7 @@
 	  parsestate.wave.state = wvSkipChunk; }
       else if (rq)
 	/* align data length to a multiple of datasize; keep additional data
-	   in "leftover" buffer --- this is neccessary to ensure proper
+	   in "leftover" buffer --- this is necessary to ensure proper
 	   functioning of the sndcnv... routines */
 	waverequire(data,sz,rq);
       return(count); }
@@ -997,7 +997,7 @@
   memset(&parsestate,0,sizeof(parsestate));
 
   /* Mainloop: read a block of data, parse its contents, perform all
-               the neccessary conversions and output it to the sound
+               the necessary conversions and output it to the sound
                device; repeat until all data has been processed */
   rrtn = length;
   do {
--- a/src/lisp.h	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/lisp.h	Mon Aug 13 08:52:56 2007 +0200
@@ -274,11 +274,12 @@
    assert checks take is measurable so let's not include them in
    production binaries. */
 
+#define abort() (assert_failed (__FILE__, __LINE__, "abort()"))
+
 #ifdef USE_ASSERTIONS
 /* Highly dubious kludge */
 /*   (thanks, Jamie, I feel better now -- ben) */
 DECLARE_DOESNT_RETURN (assert_failed (CONST char *, int, CONST char *));
-# define abort() (assert_failed (__FILE__, __LINE__, "abort()"))
 # define assert(x) ((x) ? (void) 0 : assert_failed (__FILE__, __LINE__, #x))
 #else
 # ifdef DEBUG_XEMACS
--- a/src/lread.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/lread.c	Mon Aug 13 08:52:56 2007 +0200
@@ -1645,7 +1645,7 @@
       /* If a token had any backslashes in it, it is disqualified from
 	 being an integer or a float.  This means that 123\456 is a
 	 symbol, as is \123 (which is the way (intern "123") prints).
-	 Also, if token was preceeded by #:, it's always a symbol.
+	 Also, if token was preceded by #:, it's always a symbol.
        */
       char *p = read_ptr + len;
       char *p1 = read_ptr;
--- a/src/minibuf.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/minibuf.c	Mon Aug 13 08:52:56 2007 +0200
@@ -232,7 +232,7 @@
 	  Lisp_Object re = XCAR (regexps);
 	  if (STRINGP (re)
 	      && (fast_string_match (re, nonreloc, reloc, offset,
-				     length, 0, ERROR_ME, 0) >= 0))
+				     length, 0, ERROR_ME, 0) < 0))
 	    return (1);
 	}
     }
@@ -895,9 +895,9 @@
 */ );
   completion_ignore_case = 0;
 
-  /* Worthless doc string */
   DEFVAR_LISP ("completion-regexp-list", &Vcompletion_regexp_list /*
 List of regexps that should restrict possible completions.
+Each completion has to match all regexps in this list.
 */ );
   Vcompletion_regexp_list = Qnil;
 }
--- a/src/print.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/print.c	Mon Aug 13 08:52:56 2007 +0200
@@ -1574,7 +1574,7 @@
 those which were made with `make-symbol' or by calling `intern' with a
 second argument.
 
-When print-gensym is true, such symbols will be preceeded by \"#:\", which
+When print-gensym is true, such symbols will be preceded by \"#:\", which
 causes the reader to create a new symbol instead of interning and returning
 an existing one.  Beware: the #: syntax creates a new symbol each time it is
 seen, so if you print an object which contains two pointers to the same
--- a/src/redisplay.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/redisplay.c	Mon Aug 13 08:52:56 2007 +0200
@@ -2424,7 +2424,7 @@
 	      /* If the cursor is past the truncation line then we
                  make it appear on the truncation glyph.  If we've hit
                  the end of the buffer then we also make the cursor
-                 appear unless eob is immediately preceeded by a
+                 appear unless eob is immediately preceded by a
                  newline.  In that case the cursor should actually
                  appear on the next line. */
 	      if (data.cursor_type == CURSOR_ON 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/s/bsdos3.h	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,6 @@
+/* Synched up with: not in FSF. */
+
+/* s/ file for BSDI BSD/OS 3.0 system. */
+
+/* unlike BSD/OS 2.1, 3.0 does not require -lipc */
+#include "bsdos2.h"
--- a/src/s/irix6-0.h	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/s/irix6-0.h	Mon Aug 13 08:52:56 2007 +0200
@@ -16,3 +16,6 @@
 #ifndef THIS_IS_MAKEFILE
 #undef C_SWITCH_SYSTEM
 #endif
+
+/* Irix 6.2 doesn't need -lw */
+#undef NEED_LIBW
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/s/sunos4-1-4-shr.h	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,14 @@
+/* Synched up with: Not in FSF. */
+
+/* For building XEmacs under SunOS 4.1.* with dynamic libraries. */
+
+#ifdef NOT_C_CODE
+# ifdef USE_GCC
+  /* of course gcc has to take different args than the rest of the universe */
+#  define LD_SWITCH_SYSTEM -dynamic
+# else
+#  define LD_SWITCH_SYSTEM -Bdynamic
+# endif
+#endif
+
+#include "sunos4-1-4.h"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/s/sunos4-1-4.h	Mon Aug 13 08:52:56 2007 +0200
@@ -0,0 +1,34 @@
+/* Synched up with: FSF 19.31. */
+
+#include "sunos4-1.h"
+
+#if 0
+/* XEmacs: FSF 19.31 removes this.  Let's just comment it out. */
+/* TERMIOS is broken under SunOS??
+
+   Someone says: This causes failure in process_send_signal (tcgetattr
+   loses) and may also cause hanging at Emacs startup when parent is
+   not a job control shell.  */
+/* murray@chemical-eng.edinburgh.ac.uk says this works, and avoids
+   the problem of spurious ^M in subprocess output.  */
+#undef HAVE_TERMIOS
+#endif
+
+#if 0
+/* XEmacs: FSF 19.31 mistakenly reenables this. */
+/* jik@gza.com says this works now.  */
+/* The bug that corrupts GNU malloc's memory pool is fixed in SunOS 4.1.3. */
+
+#undef SYSTEM_MALLOC
+#endif /* 0 */
+
+/* barrie@calvin.demon.co.uk says memmove is missing.  */
+#ifndef SYSTEM_MALLOC
+#define MEMMOVE_MISSING
+#endif
+
+/* A reliable source says this is broken through SunOS 4.1.3 */
+/* but not SunOS 4.1.4 */
+#ifdef BROKEN_SIGIO
+#undef BROKEN_SIGIO
+#endif
--- a/src/s/sunos4-1.h	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/s/sunos4-1.h	Mon Aug 13 08:52:56 2007 +0200
@@ -50,3 +50,6 @@
 #if !defined(HAVE_STRERROR) && defined(__SUNPRO_C)
 #define HAVE_STRERROR
 #endif
+
+/* This appears to be broken on SunOS4.1.[123] */
+#define BROKEN_SIGIO
--- a/src/toolbar-x.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/toolbar-x.c	Mon Aug 13 08:52:56 2007 +0200
@@ -673,13 +673,11 @@
   FRAME_X_TOOLBAR_BLANK_BACKGROUND_GC (f) =
     XtGetGC ((Widget) ef, flags, &gcv);
 
-  if (ef->emacs_frame.top_toolbar_shadow_pixel == 0)
+  if (ef->emacs_frame.top_toolbar_shadow_pixel ==
+      ef->emacs_frame.bottom_toolbar_shadow_pixel)
     {
       ef->emacs_frame.top_toolbar_shadow_pixel =
 	ef->emacs_frame.background_toolbar_pixel;
-    }
-  if (ef->emacs_frame.bottom_toolbar_shadow_pixel == 0)
-    {
       ef->emacs_frame.bottom_toolbar_shadow_pixel =
 	ef->emacs_frame.background_toolbar_pixel;
     }
--- a/src/tooltalk.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/tooltalk.c	Mon Aug 13 08:52:56 2007 +0200
@@ -933,7 +933,7 @@
 protocol you're using need to agree what types mean (if anything).
 Conventionally \"string\" is used for strings and \"int\" for 32 bit integers.
 Arguments can initialized by providing a value or with
-`set-tooltalk-message-attribute'.  The latter is neccessary if you
+`set-tooltalk-message-attribute'.  The latter is necessary if you
 want to initialize the argument with a string that can contain
 embedded nulls (use 'arg_bval).
 */
--- a/src/window.c	Mon Aug 13 08:52:30 2007 +0200
+++ b/src/window.c	Mon Aug 13 08:52:56 2007 +0200
@@ -2012,7 +2012,7 @@
 }
 
 DEFUN ("previous-window", Fprevious_window, 0, 4, 0, /*
-Return the window preceeding WINDOW in canonical ordering of windows.
+Return the window preceding WINDOW in canonical ordering of windows.
 If omitted, WINDOW defaults to the selected window.
 
 Optional second arg MINIBUF t means count the minibuffer window even