diff --git a/CMark.hsc b/CMark.hsc
--- a/CMark.hsc
+++ b/CMark.hsc
@@ -5,15 +5,18 @@
     commonmarkToHtml
   , commonmarkToXml
   , commonmarkToMan
+  , commonmarkToLaTeX
   , commonmarkToNode
   , nodeToHtml
   , nodeToXml
   , nodeToMan
+  , nodeToLaTeX
   , nodeToCommonmark
   , optSourcePos
   , optNormalize
   , optHardBreaks
   , optSmart
+  , optSafe
   , Node(..)
   , NodeType(..)
   , PosInfo(..)
@@ -31,6 +34,7 @@
 import Foreign.C.Types
 import Foreign.C.String (CString)
 import qualified System.IO.Unsafe as Unsafe
+import Data.Maybe (fromMaybe)
 import GHC.Generics (Generic)
 import Data.Data (Data)
 import Data.Typeable (Typeable)
@@ -45,18 +49,25 @@
 -- | Convert CommonMark formatted text to Html, using cmark's
 -- built-in renderer.
 commonmarkToHtml :: [CMarkOption] -> Text -> Text
-commonmarkToHtml = commonmarkToX c_cmark_render_html
+commonmarkToHtml opts = commonmarkToX render_html opts Nothing
+  where render_html n o _ = c_cmark_render_html n o
 
 -- | Convert CommonMark formatted text to CommonMark XML, using cmark's
 -- built-in renderer.
 commonmarkToXml :: [CMarkOption] -> Text -> Text
-commonmarkToXml = commonmarkToX c_cmark_render_xml
+commonmarkToXml opts = commonmarkToX render_xml opts Nothing
+  where render_xml n o _ = c_cmark_render_xml n o
 
 -- | Convert CommonMark formatted text to groff man, using cmark's
 -- built-in renderer.
-commonmarkToMan :: [CMarkOption] -> Text -> Text
+commonmarkToMan :: [CMarkOption] -> Maybe Int -> Text -> Text
 commonmarkToMan = commonmarkToX c_cmark_render_man
 
+-- | Convert CommonMark formatted text to latex, using cmark's
+-- built-in renderer.
+commonmarkToLaTeX :: [CMarkOption] -> Maybe Int -> Text -> Text
+commonmarkToLaTeX = commonmarkToX c_cmark_render_latex
+
 -- | Convert CommonMark formatted text to a structured 'Node' tree,
 -- which can be transformed or rendered using Haskell code.
 commonmarkToNode :: [CMarkOption] -> Text -> Node
@@ -67,43 +78,44 @@
   withForeignPtr fptr toNode
 
 nodeToHtml :: [CMarkOption] -> Node -> Text
-nodeToHtml = nodeToX c_cmark_render_html
+nodeToHtml opts = nodeToX render_html opts Nothing
+  where render_html n o _ = c_cmark_render_html n o
 
 nodeToXml :: [CMarkOption] -> Node -> Text
-nodeToXml = nodeToX c_cmark_render_xml
+nodeToXml opts = nodeToX render_xml opts Nothing
+  where render_xml n o _ = c_cmark_render_xml n o
 
-nodeToMan :: [CMarkOption] -> Node -> Text
+nodeToMan :: [CMarkOption] -> Maybe Int -> Node -> Text
 nodeToMan = nodeToX c_cmark_render_man
 
-nodeToCommonmark :: [CMarkOption] -> Int -> Node -> Text
-nodeToCommonmark opts width node = Unsafe.unsafePerformIO $ do
-  nptr <- fromNode node
-  fptr <- newForeignPtr c_cmark_node_free nptr
-  withForeignPtr fptr $ \ptr -> do
-    cstr <- c_cmark_render_commonmark ptr (combineOptions opts) width
-    TF.peekCStringLen (cstr, c_strlen cstr)
+nodeToLaTeX :: [CMarkOption] -> Maybe Int -> Node -> Text
+nodeToLaTeX = nodeToX c_cmark_render_latex
 
-type Renderer = NodePtr -> CInt -> IO CString
+nodeToCommonmark :: [CMarkOption] -> Maybe Int -> Node -> Text
+nodeToCommonmark = nodeToX c_cmark_render_commonmark
 
-nodeToX :: Renderer -> [CMarkOption] -> Node -> Text
-nodeToX renderer opts node = Unsafe.unsafePerformIO $ do
+type Renderer = NodePtr -> CInt -> Int -> IO CString
+
+nodeToX :: Renderer -> [CMarkOption] -> Maybe Int -> Node -> Text
+nodeToX renderer opts mbWidth node = Unsafe.unsafePerformIO $ do
   nptr <- fromNode node
   fptr <- newForeignPtr c_cmark_node_free nptr
   withForeignPtr fptr $ \ptr -> do
-    cstr <- renderer ptr (combineOptions opts)
+    cstr <- renderer ptr (combineOptions opts) (fromMaybe 0 mbWidth)
     TF.peekCStringLen (cstr, c_strlen cstr)
 
-commonmarkToX :: (NodePtr -> CInt -> IO CString)
+commonmarkToX :: Renderer
               -> [CMarkOption]
+              -> Maybe Int
               -> Text
               -> Text
-commonmarkToX renderer opts s = Unsafe.unsafePerformIO $
+commonmarkToX renderer opts mbWidth s = Unsafe.unsafePerformIO $
   TF.withCStringLen s $ \(ptr, len) -> do
     let opts' = combineOptions opts
     nptr <- c_cmark_parse_document ptr len opts'
     fptr <- newForeignPtr c_cmark_node_free nptr
     withForeignPtr fptr $ \p -> do
-      str <- renderer p opts'
+      str <- renderer p opts' (fromMaybe 0 mbWidth)
       t <- TF.peekCStringLen $! (str, c_strlen str)
       return t
 
@@ -171,22 +183,27 @@
 combineOptions :: [CMarkOption] -> CInt
 combineOptions = foldr ((.|.) . unCMarkOption) 0
 
--- Include a @data-sourcepos@ attribute on block elements.
+-- | Include a @data-sourcepos@ attribute on block elements.
 optSourcePos :: CMarkOption
 optSourcePos = CMarkOption #const CMARK_OPT_SOURCEPOS
 
--- Render @softbreak@ elements as hard line breaks.
+-- | Render @softbreak@ elements as hard line breaks.
 optHardBreaks :: CMarkOption
 optHardBreaks = CMarkOption #const CMARK_OPT_HARDBREAKS
 
--- Normalize the document by consolidating adjacent text nodes.
+-- | Normalize the document by consolidating adjacent text nodes.
 optNormalize :: CMarkOption
 optNormalize = CMarkOption #const CMARK_OPT_NORMALIZE
 
--- Convert straight quotes to curly, @---@ to em-dash, @--@ to en-dash.
+-- | Convert straight quotes to curly, @---@ to em-dash, @--@ to en-dash.
 optSmart :: CMarkOption
 optSmart = CMarkOption #const CMARK_OPT_SMART
 
+-- | Suppress rendering of raw HTML and potentially dangerous URLs in links
+-- and images.
+optSafe :: CMarkOption
+optSafe = CMarkOption #const CMARK_OPT_SAFE
+
 ptrToNodeType :: NodePtr -> IO NodeType
 ptrToNodeType ptr = do
   nodeType <- c_cmark_node_get_type ptr
@@ -361,7 +378,10 @@
     c_cmark_render_xml :: NodePtr -> CInt -> IO CString
 
 foreign import ccall "cmark.h cmark_render_man"
-    c_cmark_render_man :: NodePtr -> CInt -> IO CString
+    c_cmark_render_man :: NodePtr -> CInt -> Int -> IO CString
+
+foreign import ccall "cmark.h cmark_render_latex"
+    c_cmark_render_latex :: NodePtr -> CInt -> Int -> IO CString
 
 foreign import ccall "cmark.h cmark_render_commonmark"
     c_cmark_render_commonmark :: NodePtr -> CInt -> Int -> IO CString
diff --git a/cbits/blocks.c b/cbits/blocks.c
--- a/cbits/blocks.c
+++ b/cbits/blocks.c
@@ -13,9 +13,10 @@
 #include "inlines.h"
 #include "houdini.h"
 #include "buffer.h"
-#include "debug.h"
 
 #define CODE_INDENT 4
+#define TAB_STOP 4
+
 #define peek_at(i, n) (i)->data[n]
 
 static inline bool
@@ -70,7 +71,9 @@
 	parser->current = document;
 	parser->line_number = 0;
 	parser->offset = 0;
+	parser->column = 0;
 	parser->first_nonspace = 0;
+	parser->first_nonspace_column = 0;
 	parser->indent = 0;
 	parser->blank = false;
 	parser->curline = line;
@@ -105,6 +108,9 @@
 		case ' ':
 			offset++;
 			break;
+		case '\t':
+			offset++;
+			break;
 		default:
 			return false;
 		}
@@ -394,11 +400,16 @@
 		}
 	} else if (cmark_isdigit(c)) {
 		int start = 0;
+		int digits = 0;
 
 		do {
 			start = (10 * start) + (peek_at(input, pos) - '0');
 			pos++;
-		} while (cmark_isdigit(peek_at(input, pos)));
+			digits++;
+			// We limit to 9 digits to avoid overflow,
+			// assuming max int is 2^31 - 1
+			// This also seems to be the limit for 'start' in some browsers.
+		} while (digits < 9 && cmark_isdigit(peek_at(input, pos)));
 
 		c = peek_at(input, pos);
 		if (c == '.' || c == ')') {
@@ -493,44 +504,52 @@
               bool eof)
 {
 	const unsigned char *end = buffer + len;
+	static const uint8_t repl[] = {239, 191, 189};
 
 	while (buffer < end) {
 		const unsigned char *eol;
-		size_t line_len;
-		bufsize_t bufsize;
-
+		bufsize_t chunk_len;
+		bool process = false;
 		for (eol = buffer; eol < end; ++eol) {
-			if (S_is_line_end_char(*eol))
+			if (S_is_line_end_char(*eol)) {
+				if (eol < end && *eol == '\r')
+					eol++;
+				if (eol < end && *eol == '\n')
+					eol++;
+				process = true;
 				break;
+			}
+			if (*eol == '\0' && eol < end) {
+				break;
+			}
 		}
-		if (eol >= end)
-			eol = NULL;
-
-		if (eol) {
-			if (eol < end && *eol == '\r')
-				eol++;
-			if (eol < end && *eol == '\n')
-				eol++;
-			line_len = eol - buffer;
-		} else if (eof) {
-			line_len = end - buffer;
-		} else {
-			bufsize = cmark_strbuf_check_bufsize(end - buffer);
-			cmark_strbuf_put(parser->linebuf, buffer, bufsize);
-			break;
+		if (eol >= end && eof) {
+			process = true;
 		}
 
-		bufsize = cmark_strbuf_check_bufsize(line_len);
-		if (parser->linebuf->size > 0) {
-			cmark_strbuf_put(parser->linebuf, buffer, bufsize);
-			S_process_line(parser, parser->linebuf->ptr,
-			               parser->linebuf->size);
-			cmark_strbuf_clear(parser->linebuf);
+		chunk_len = cmark_strbuf_check_bufsize(eol - buffer);
+		if (process) {
+			if (parser->linebuf->size > 0) {
+				cmark_strbuf_put(parser->linebuf, buffer, chunk_len);
+				S_process_line(parser, parser->linebuf->ptr,
+				               parser->linebuf->size);
+				cmark_strbuf_clear(parser->linebuf);
+			} else {
+				S_process_line(parser, buffer, chunk_len);
+			}
 		} else {
-			S_process_line(parser, buffer, bufsize);
+			if (eol < end && *eol == '\0') {
+				// omit NULL byte
+				cmark_strbuf_put(parser->linebuf, buffer, chunk_len);
+				// add replacement character
+				cmark_strbuf_put(parser->linebuf, repl, 3);
+				chunk_len += 1; // so we advance the buffer past NULL
+			} else {
+				cmark_strbuf_put(parser->linebuf, buffer, chunk_len);
+			}
 		}
 
-		buffer += line_len;
+		buffer += chunk_len;
 	}
 }
 
@@ -555,16 +574,53 @@
 static void
 S_find_first_nonspace(cmark_parser *parser, cmark_chunk *input)
 {
+	char c;
+	int chars_to_tab = TAB_STOP - (parser->column % TAB_STOP);
+
 	parser->first_nonspace = parser->offset;
-	while (peek_at(input, parser->first_nonspace) == ' ') {
-		parser->first_nonspace++;
+	parser->first_nonspace_column = parser->column;
+	while ((c = peek_at(input, parser->first_nonspace))) {
+		if (c == ' ') {
+			parser->first_nonspace += 1;
+			parser->first_nonspace_column += 1;
+			chars_to_tab = chars_to_tab - 1;
+			if (chars_to_tab == 0) {
+				chars_to_tab = TAB_STOP;
+			}
+		} else if (c == '\t') {
+			parser->first_nonspace += 1;
+			parser->first_nonspace_column += chars_to_tab;
+			chars_to_tab = TAB_STOP;
+		} else {
+			break;
+		}
 	}
 
-	parser->indent = parser->first_nonspace - parser->offset;
+	parser->indent = parser->first_nonspace_column - parser->column;
 	parser->blank = S_is_line_end_char(peek_at(input, parser->first_nonspace));
 }
 
 static void
+S_advance_offset(cmark_parser *parser, cmark_chunk *input, bufsize_t count, bool columns)
+{
+	char c;
+	int chars_to_tab;
+	while (count > 0 && (c = peek_at(input, parser->offset))) {
+		if (c == '\t') {
+			chars_to_tab = 4 - (parser->column % TAB_STOP);
+			parser->column += chars_to_tab;
+			parser->offset += 1;
+			count -= (columns ? chars_to_tab : 1);
+		} else {
+			parser->offset += 1;
+			parser->column += 1; // assume ascii; block starts are ascii
+			count -= 1;
+		}
+	}
+}
+
+
+static void
 S_process_line(cmark_parser *parser, const unsigned char *buffer, bufsize_t bytes)
 {
 	cmark_node* last_matched_container;
@@ -578,17 +634,15 @@
 	cmark_chunk input;
 	bool maybe_lazy;
 
-	utf8proc_detab(parser->curline, buffer, bytes);
+	if (parser->options & CMARK_OPT_VALIDATE_UTF8) {
+		utf8proc_check(parser->curline, buffer, bytes);
+	} else {
+		cmark_strbuf_put(parser->curline, buffer, bytes);
+	}
 	parser->offset = 0;
+	parser->column = 0;
 	parser->blank = false;
 
-	// Add a newline to the end if not present:
-	// TODO this breaks abstraction:
-	if (parser->curline->size > 0 &&
-	    !S_is_line_end_char(parser->curline->ptr[parser->curline->size - 1])) {
-		cmark_strbuf_putc(parser->curline, '\n');
-	}
-
 	input.data = parser->curline->ptr;
 	input.len = parser->curline->size;
 
@@ -608,7 +662,7 @@
 		if (container->type == NODE_BLOCK_QUOTE) {
 			matched = parser->indent <= 3 && peek_at(&input, parser->first_nonspace) == '>';
 			if (matched) {
-				parser->offset = parser->first_nonspace + 1;
+				S_advance_offset(parser, &input, parser->indent + 1, true);
 				if (peek_at(&input, parser->offset) == ' ')
 					parser->offset++;
 			} else {
@@ -616,13 +670,14 @@
 			}
 
 		} else if (container->type == NODE_ITEM) {
-
 			if (parser->indent >= container->as.list.marker_offset +
 			    container->as.list.padding) {
-				parser->offset += container->as.list.marker_offset +
-				          container->as.list.padding;
+				S_advance_offset(parser, &input,
+				                 container->as.list.marker_offset +
+				                 container->as.list.padding, true);
 			} else if (parser->blank) {
-				parser->offset = parser->first_nonspace;
+				S_advance_offset(parser, &input,
+				                 parser->first_nonspace - parser->offset, false);
 			} else {
 				all_matched = false;
 			}
@@ -631,9 +686,11 @@
 
 			if (!container->as.code.fenced) { // indented
 				if (parser->indent >= CODE_INDENT) {
-					parser->offset += CODE_INDENT;
+					S_advance_offset(parser, &input, CODE_INDENT, true);
 				} else if (parser->blank) {
-					parser->offset = parser->first_nonspace;
+					S_advance_offset(parser, &input,
+					                 parser->first_nonspace - parser->offset,
+					                 false);
 				} else {
 					all_matched = false;
 				}
@@ -649,7 +706,7 @@
 					// closing fence - and since we're at
 					// the end of a line, we can return:
 					all_matched = false;
-					parser->offset += matched;
+					S_advance_offset(parser, &input, matched, false);
 					parser->current = finalize(parser, container);
 					goto finished;
 				} else {
@@ -657,7 +714,7 @@
 					i = container->as.code.fence_offset;
 					while (i > 0 &&
 					       peek_at(&input, parser->offset) == ' ') {
-						parser->offset++;
+						S_advance_offset(parser, &input, 1, false);
 						i--;
 					}
 				}
@@ -669,8 +726,26 @@
 
 		} else if (container->type == NODE_HTML) {
 
-			if (parser->blank) {
-				all_matched = false;
+			switch (container->as.html_block_type) {
+			case 1:
+			case 2:
+			case 3:
+			case 4:
+			case 5:
+				// these types of blocks can accept blanks
+				break;
+			case 6:
+			case 7:
+				if (parser->blank) {
+					all_matched = false;
+				}
+				break;
+			default:
+				fprintf(stderr,
+				        "Error (%s:%d): Unknown HTML block type %d\n",
+				        __FILE__, __LINE__,
+				        container->as.html_block_type);
+				exit(1);
 			}
 
 		} else if (container->type == NODE_PARAGRAPH) {
@@ -704,15 +779,16 @@
 
 		if (!indented && peek_at(&input, parser->first_nonspace) == '>') {
 
-			parser->offset = parser->first_nonspace + 1;
+			S_advance_offset(parser, &input, parser->first_nonspace + 1 - parser->offset, false);
 			// optional following character
 			if (peek_at(&input, parser->offset) == ' ')
-				parser->offset++;
+				S_advance_offset(parser, &input, 1, false);
 			container = add_child(parser, container, NODE_BLOCK_QUOTE, parser->offset + 1);
 
 		} else if (!indented && (matched = scan_atx_header_start(&input, parser->first_nonspace))) {
 
-			parser->offset = parser->first_nonspace + matched;
+			S_advance_offset(parser, &input,
+			                 parser->first_nonspace + matched - parser->offset, false);
 			container = add_child(parser, container, NODE_HEADER, parser->offset + 1);
 
 			bufsize_t hashpos = cmark_chunk_strchr(&input, '#', parser->first_nonspace);
@@ -733,11 +809,15 @@
 			container->as.code.fence_length = matched;
 			container->as.code.fence_offset = parser->first_nonspace - parser->offset;
 			container->as.code.info = cmark_chunk_literal("");
-			parser->offset = parser->first_nonspace + matched;
+			S_advance_offset(parser, &input, parser->first_nonspace + matched - parser->offset, false);
 
-		} else if (!indented && (matched = scan_html_block_tag(&input, parser->first_nonspace))) {
+		} else if (!indented &&
+		           ((matched = scan_html_block_start(&input, parser->first_nonspace)) ||
+		            (container->type != NODE_PARAGRAPH &&
+		             (matched = scan_html_block_start_7(&input, parser->first_nonspace))))) {
 
 			container = add_child(parser, container, NODE_HTML, parser->first_nonspace + 1);
+			container->as.html_block_type = matched;
 			// note, we don't adjust parser->offset because the tag is part of the text
 
 		} else if (!indented &&
@@ -750,7 +830,7 @@
 			container->type = NODE_HEADER;
 			container->as.header.level = lev;
 			container->as.header.setext = true;
-			parser->offset = input.len - 1;
+			S_advance_offset(parser, &input, input.len - 1 - parser->offset, false);
 
 		} else if (!indented &&
 		           !(container->type == NODE_PARAGRAPH &&
@@ -760,7 +840,7 @@
 			// it's only now that we know the line is not part of a setext header:
 			container = add_child(parser, container, NODE_HRULE, parser->first_nonspace + 1);
 			container = finalize(parser, container);
-			parser->offset = input.len - 1;
+			S_advance_offset(parser, &input, input.len - 1 - parser->offset, false);
 
 		} else if ((matched = parse_list_marker(&input, parser->first_nonspace, &data)) &&
 		           (!indented || container->type == NODE_LIST)) {
@@ -768,7 +848,7 @@
 			// spaces indent, as long as the list container is still open.
 
 			// compute padding:
-			parser->offset = parser->first_nonspace + matched;
+			S_advance_offset(parser, &input, parser->first_nonspace + matched - parser->offset, false);
 			i = 0;
 			while (i <= 5 && peek_at(&input, parser->offset + i) == ' ') {
 				i++;
@@ -778,11 +858,11 @@
 			    S_is_line_end_char(peek_at(&input, parser->offset))) {
 				data->padding = matched + 1;
 				if (i > 0) {
-					parser->offset += 1;
+					S_advance_offset(parser, &input, 1, false);
 				}
 			} else {
 				data->padding = matched + i;
-				parser->offset += i;
+				S_advance_offset(parser, &input, i, true);
 			}
 
 			// check container; if it's a list, see if this list item
@@ -806,7 +886,7 @@
 			free(data);
 
 		} else if (indented && !maybe_lazy && !parser->blank) {
-			parser->offset += CODE_INDENT;
+			S_advance_offset(parser, &input, CODE_INDENT, true);
 			container = add_child(parser, container, NODE_CODE_BLOCK, parser->offset + 1);
 			container->as.code.fenced = false;
 			container->as.code.fence_char = 0;
@@ -869,10 +949,50 @@
 			assert(parser->current != NULL);
 		}
 
-		if (container->type == NODE_CODE_BLOCK ||
-		    container->type == NODE_HTML) {
+		if (container->type == NODE_CODE_BLOCK) {
 
 			add_line(container, &input, parser->offset);
+
+		} else if (container->type == NODE_HTML) {
+
+			add_line(container, &input, parser->offset);
+
+			int matches_end_condition;
+			switch (container->as.html_block_type) {
+			case 1:
+				// </script>, </style>, </pre>
+				matches_end_condition =
+				    scan_html_block_end_1(&input, parser->first_nonspace);
+				break;
+			case 2:
+				// -->
+				matches_end_condition =
+				    scan_html_block_end_2(&input, parser->first_nonspace);
+				break;
+			case 3:
+				// ?>
+				matches_end_condition =
+				    scan_html_block_end_3(&input, parser->first_nonspace);
+				break;
+			case 4:
+				// >
+				matches_end_condition =
+				    scan_html_block_end_4(&input, parser->first_nonspace);
+				break;
+			case 5:
+				// ]]>
+				matches_end_condition =
+				    scan_html_block_end_5(&input, parser->first_nonspace);
+				break;
+			default:
+				matches_end_condition = 0;
+				break;
+			}
+
+			if (matches_end_condition) {
+				container = finalize(parser, container);
+				assert(parser->current != NULL);
+			}
 
 		} else if (parser->blank) {
 
diff --git a/cbits/buffer.c b/cbits/buffer.c
--- a/cbits/buffer.c
+++ b/cbits/buffer.c
@@ -29,18 +29,20 @@
 		cmark_strbuf_grow(buf, initial_size);
 }
 
-void cmark_strbuf_overflow_err() {
+void cmark_strbuf_overflow_err()
+{
 	fprintf(stderr, "String buffer overflow");
 	abort();
 }
 
 static inline void
-S_strbuf_grow_by(cmark_strbuf *buf, size_t add) {
+S_strbuf_grow_by(cmark_strbuf *buf, size_t add)
+{
 	size_t target_size = (size_t)buf->size + add;
 
 	if (target_size < add             /* Integer overflow. */
 	    || target_size > BUFSIZE_MAX  /* Truncation overflow. */
-	) {
+	   ) {
 		cmark_strbuf_overflow_err();
 		return; /* unreachable */
 	}
@@ -74,7 +76,7 @@
 
 	if (new_size < (size_t)target_size  /* Integer overflow. */
 	    || new_size > BUFSIZE_MAX       /* Truncation overflow. */
-	) {
+	   ) {
 		if (target_size >= BUFSIZE_MAX) {
 			/* No space for terminating null byte. */
 			cmark_strbuf_overflow_err();
@@ -160,7 +162,7 @@
 void cmark_strbuf_puts(cmark_strbuf *buf, const char *string)
 {
 	cmark_strbuf_put(buf, (const unsigned char *)string,
-			 cmark_strbuf_safe_strlen(string));
+	                 cmark_strbuf_safe_strlen(string));
 }
 
 void cmark_strbuf_vprintf(cmark_strbuf *buf, const char *format, va_list ap)
@@ -175,10 +177,10 @@
 		va_copy(args, ap);
 
 		int len = vsnprintf(
-		          (char *)buf->ptr + buf->size,
-		          buf->asize - buf->size,
-		          format, args
-		      );
+		              (char *)buf->ptr + buf->size,
+		              buf->asize - buf->size,
+		              format, args
+		          );
 #ifndef HAVE_C99_SNPRINTF
 		// Assume we're on Windows.
 		if (len < 0) {
diff --git a/cbits/cmark.c b/cbits/cmark.c
--- a/cbits/cmark.c
+++ b/cbits/cmark.c
@@ -6,8 +6,15 @@
 #include "cmark.h"
 #include "buffer.h"
 
-const int cmark_version = CMARK_VERSION;
-const char cmark_version_string[] = CMARK_VERSION_STRING;
+int cmark_version()
+{
+	return CMARK_VERSION;
+}
+
+const char *cmark_version_string()
+{
+	return CMARK_VERSION_STRING;
+}
 
 char *cmark_markdown_to_html(const char *text, size_t len, int options)
 {
diff --git a/cbits/cmark.h b/cbits/cmark.h
--- a/cbits/cmark.h
+++ b/cbits/cmark.h
@@ -479,13 +479,18 @@
 /** Render a 'node' tree as a groff man page, without the header.
  */
 CMARK_EXPORT
-char *cmark_render_man(cmark_node *root, int options);
+char *cmark_render_man(cmark_node *root, int options, int width);
 
 /** Render a 'node' tree as a commonmark document.
  */
 CMARK_EXPORT
 char *cmark_render_commonmark(cmark_node *root, int options, int width);
 
+/** Render a 'node' tree as a LaTeX document.
+ */
+CMARK_EXPORT
+char *cmark_render_latex(cmark_node *root, int options, int width);
+
 /** Default writer options.
  */
 #define CMARK_OPT_DEFAULT 0
@@ -506,6 +511,19 @@
  */
 #define CMARK_OPT_SMART 8
 
+/** Validate UTF-8 in the input before parsing, replacing illegal
+ * sequences with the replacement character U+FFFD.
+ */
+#define CMARK_OPT_VALIDATE_UTF8 16
+
+/** Suppress raw HTML and unsafe links (`javascript:`, `vbscript:`,
+ * `file:`, and `data:`, except for `image/png`, `image/gif`,
+ * `image/jpeg`, or `image/webp` mime types).  Raw HTML is replaced
+ * by a placeholder HTML comment. Unsafe links are replaced by
+ * empty strings.
+ */
+#define CMARK_OPT_SAFE 32
+
 /**
  * ## Version information
  */
@@ -520,13 +538,13 @@
  * In hexadecimal format, the number 0x010203 represents version 1.2.3.
  */
 CMARK_EXPORT
-extern const int cmark_version;
+int cmark_version();
 
 /** The library version string for runtime checks. Also available as
  * macro CMARK_VERSION_STRING for compile time checks.
  */
 CMARK_EXPORT
-extern const char cmark_version_string[];
+const char *cmark_version_string();
 
 /** # AUTHORS
  *
diff --git a/cbits/commonmark.c b/cbits/commonmark.c
--- a/cbits/commonmark.c
+++ b/cbits/commonmark.c
@@ -10,192 +10,63 @@
 #include "buffer.h"
 #include "utf8.h"
 #include "scanners.h"
-
-// Functions to convert cmark_nodes to commonmark strings.
-
-struct render_state {
-	int options;
-	cmark_strbuf* buffer;
-	cmark_strbuf* prefix;
-	int column;
-	int width;
-	int need_cr;
-	bufsize_t last_breakable;
-	bool begin_line;
-	bool no_wrap;
-	bool in_tight_list_item;
-};
-
-static inline void cr(struct render_state *state)
-{
-	if (state->need_cr < 1) {
-		state->need_cr = 1;
-	}
-}
-
-static inline void blankline(struct render_state *state)
-{
-	if (state->need_cr < 2) {
-		state->need_cr = 2;
-	}
-}
+#include "render.h"
 
-typedef enum  {
-	LITERAL,
-	NORMAL,
-	TITLE,
-	URL
-} escaping;
+#define safe_strlen(s) cmark_strbuf_safe_strlen(s)
+#define OUT(s, wrap, escaping) renderer->out(renderer, s, wrap, escaping)
+#define LIT(s) renderer->out(renderer, s, false, LITERAL)
+#define CR() renderer->cr(renderer)
+#define BLANKLINE() renderer->blankline(renderer)
 
-static inline bool
-needs_escaping(escaping escape,
-               int32_t c,
-               unsigned char next_c,
-               struct render_state *state)
-{
-	if (escape == NORMAL) {
-		return (c == '*' || c == '_' || c == '[' || c == ']' ||
-		        c == '<' || c == '>' || c == '\\' || c == '`' ||
-		        (c == '&' && isalpha(next_c)) ||
-		        (c == '!' && next_c == '[') ||
-		        (state->begin_line &&
-		         (c == '-' || c == '+' || c == '#' || c == '=')) ||
-		        (c == '#' && (isspace(next_c) || next_c == '\0')) ||
-		        ((c == '.' || c == ')') &&
-		         isdigit(state->buffer->ptr[state->buffer->size - 1])));
-	} else if (escape == TITLE) {
-		return (c == '`' || c == '<' || c == '>' || c == '"' ||
-		        c == '\\');
-	} else if (escape == URL) {
-		return (c == '`' || c == '<' || c == '>' || isspace(c) ||
-		        c == '\\' || c == ')' || c == '(');
-	} else {
-		return false;
-	}
-}
+// Functions to convert cmark_nodes to commonmark strings.
 
-static inline void out(struct render_state *state,
-                       cmark_chunk str,
-                       bool wrap,
-                       escaping escape)
+static inline void outc(cmark_renderer *renderer,
+                        cmark_escaping escape,
+                        int32_t c,
+                        unsigned char nextc)
 {
-	unsigned char* source = str.data;
-	int length = str.len;
-	unsigned char nextc;
-	int32_t c;
-	int i = 0;
-	int len;
-	cmark_chunk remainder = cmark_chunk_literal("");
-	int k = state->buffer->size - 1;
-
-	wrap = wrap && !state->no_wrap;
-
-	if (state->in_tight_list_item && state->need_cr > 1) {
-		state->need_cr = 1;
-	}
-	while (state->need_cr) {
-		if (k < 0 || state->buffer->ptr[k] == '\n') {
-			k -= 1;
-		} else {
-			cmark_strbuf_putc(state->buffer, '\n');
-			if (state->need_cr > 1) {
-				cmark_strbuf_put(state->buffer, state->prefix->ptr,
-				                 state->prefix->size);
-			}
-		}
-		state->column = 0;
-		state->begin_line = true;
-		state->need_cr -= 1;
-	}
-
-	while (i < length) {
-		if (state->begin_line) {
-			cmark_strbuf_put(state->buffer, state->prefix->ptr,
-			                 state->prefix->size);
-			// note: this assumes prefix is ascii:
-			state->column = state->prefix->size;
-		}
-
-		len = utf8proc_iterate(source + i, length - i, &c);
-		if (len == -1) { // error condition
-			return;  // return without rendering rest of string
-		}
-		nextc = source[i + len];
-		if (c == 32 && wrap) {
-			if (!state->begin_line) {
-				cmark_strbuf_putc(state->buffer, ' ');
-				state->column += 1;
-				state->begin_line = false;
-				state->last_breakable = state->buffer->size -
-				                        1;
-				// skip following spaces
-				while (source[i + 1] == ' ') {
-					i++;
-				}
-			}
+	bool needs_escaping = false;
+	needs_escaping =
+	    escape != LITERAL &&
+	    ((escape == NORMAL &&
+	      (c == '*' || c == '_' || c == '[' || c == ']' || c == '#' ||
+	       c == '<' || c == '>' || c == '\\' || c == '`' || c == '!' ||
+	       (c == '&' && isalpha(nextc)) ||
+	       (c == '!' && nextc == '[') ||
+	       (renderer->begin_line &&
+	        (c == '-' || c == '+' || c == '=')) ||
+	       ((c == '.' || c == ')') &&
+	        isdigit(renderer->buffer->ptr[renderer->buffer->size - 1])))) ||
+	     (escape == URL &&
+	      (c == '`' || c == '<' || c == '>' || isspace(c) ||
+	       c == '\\' || c == ')' || c == '(')) ||
+	     (escape == TITLE &&
+	      (c == '`' || c == '<' || c == '>' || c == '"' ||
+	       c == '\\')));
 
-		} else if (c == 10) {
-			cmark_strbuf_putc(state->buffer, '\n');
-			state->column = 0;
-			state->begin_line = true;
-			state->last_breakable = 0;
-		} else if (needs_escaping(escape, c, nextc, state)) {
-			if (isspace(c)) {
-				// use percent encoding for spaces
-				cmark_strbuf_printf(state->buffer, "%%%2x", c);
-				state->column += 3;
-			} else {
-				cmark_strbuf_putc(state->buffer, '\\');
-				utf8proc_encode_char(c, state->buffer);
-				state->column += 2;
-			}
-			state->begin_line = false;
+	if (needs_escaping) {
+		if (isspace(c)) {
+			// use percent encoding for spaces
+			cmark_strbuf_printf(renderer->buffer, "%%%2x", c);
+			renderer->column += 3;
 		} else {
-			utf8proc_encode_char(c, state->buffer);
-			state->column += 1;
-			state->begin_line = false;
-		}
-
-		// If adding the character went beyond width, look for an
-		// earlier place where the line could be broken:
-		if (state->width > 0 &&
-		    state->column > state->width &&
-		    !state->begin_line &&
-		    state->last_breakable > 0) {
-
-			// copy from last_breakable to remainder
-			cmark_chunk_set_cstr(&remainder, (char *) state->buffer->ptr + state->last_breakable + 1);
-			// truncate at last_breakable
-			cmark_strbuf_truncate(state->buffer, state->last_breakable);
-			// add newline, prefix, and remainder
-			cmark_strbuf_putc(state->buffer, '\n');
-			cmark_strbuf_put(state->buffer, state->prefix->ptr,
-			                 state->prefix->size);
-			cmark_strbuf_put(state->buffer, remainder.data, remainder.len);
-			state->column = state->prefix->size + remainder.len;
-			cmark_chunk_free(&remainder);
-			state->last_breakable = 0;
-			state->begin_line = false;
+			cmark_render_ascii(renderer, "\\");
+			cmark_render_code_point(renderer, c);
 		}
-
-		i += len;
+	} else {
+		cmark_render_code_point(renderer, c);
 	}
 }
 
-static void lit(struct render_state *state, char *s, bool wrap)
-{
-	cmark_chunk str = cmark_chunk_literal(s);
-	out(state, str, wrap, LITERAL);
-}
-
 static int
-longest_backtick_sequence(cmark_chunk *code)
+longest_backtick_sequence(const char *code)
 {
 	int longest = 0;
 	int current = 0;
-	int i = 0;
-	while (i <= code->len) {
-		if (code->data[i] == '`') {
+	size_t i = 0;
+	size_t code_len = safe_strlen(code);
+	while (i <= code_len) {
+		if (code[i] == '`') {
 			current++;
 		} else {
 			if (current > longest) {
@@ -209,13 +80,14 @@
 }
 
 static int
-shortest_unused_backtick_sequence(cmark_chunk *code)
+shortest_unused_backtick_sequence(const char *code)
 {
 	int32_t used = 1;
 	int current = 0;
-	int i = 0;
-	while (i <= code->len) {
-		if (code->data[i] == '`') {
+	size_t i = 0;
+	size_t code_len = safe_strlen(code);
+	while (i <= code_len) {
+		if (code[i] == '`') {
 			current++;
 		} else {
 			if (current) {
@@ -240,6 +112,8 @@
 	cmark_chunk *title;
 	cmark_chunk *url;
 	cmark_node *link_text;
+	char *realurl;
+	int realurllen;
 
 	if (node->type != CMARK_NODE_LINK) {
 		return false;
@@ -258,8 +132,14 @@
 
 	link_text = node->first_child;
 	cmark_consolidate_text_nodes(link_text);
-	return (url->len == link_text->as.literal.len &&
-	        strncmp((char*)url->data,
+	realurl = (char*)url->data;
+	realurllen = url->len;
+	if (strncmp(realurl, "mailto:", 7) == 0) {
+		realurl += 7;
+		realurllen -= 7;
+	}
+	return (realurllen == link_text->as.literal.len &&
+	        strncmp(realurl,
 	                (char*)link_text->as.literal.data,
 	                link_text->as.literal.len) == 0);
 }
@@ -278,18 +158,19 @@
 }
 
 static int
-S_render_node(cmark_node *node, cmark_event_type ev_type,
-              struct render_state *state)
+S_render_node(cmark_renderer *renderer,
+              cmark_node *node,
+              cmark_event_type ev_type,
+              int options)
 {
 	cmark_node *tmp;
-	cmark_chunk *code;
 	int list_number;
 	cmark_delim_type list_delim;
 	int numticks;
 	int i;
 	bool entering = (ev_type == CMARK_EVENT_ENTER);
-	cmark_chunk *info;
-	cmark_chunk *title;
+	const char *info, *code, *title;
+	size_t info_len, code_len;
 	cmark_strbuf listmarker = GH_BUF_INIT;
 	char *emph_delim;
 	bufsize_t marker_width;
@@ -300,7 +181,7 @@
 	if (!(node->type == CMARK_NODE_ITEM && node->prev == NULL &&
 	      entering)) {
 		tmp = get_containing_block(node);
-		state->in_tight_list_item =
+		renderer->in_tight_list_item =
 		    (tmp->type == CMARK_NODE_ITEM &&
 		     cmark_node_get_list_tight(tmp->parent)) ||
 		    (tmp &&
@@ -311,19 +192,16 @@
 
 	switch (node->type) {
 	case CMARK_NODE_DOCUMENT:
-		if (!entering) {
-			cmark_strbuf_putc(state->buffer, '\n');
-		}
 		break;
 
 	case CMARK_NODE_BLOCK_QUOTE:
 		if (entering) {
-			lit(state, "> ", false);
-			cmark_strbuf_puts(state->prefix, "> ");
+			LIT("> ");
+			cmark_strbuf_puts(renderer->prefix, "> ");
 		} else {
-			cmark_strbuf_truncate(state->prefix,
-			                      state->prefix->size - 2);
-			blankline(state);
+			cmark_strbuf_truncate(renderer->prefix,
+			                      renderer->prefix->size - 2);
+			BLANKLINE();
 		}
 		break;
 
@@ -333,8 +211,7 @@
 		     node->next->type == CMARK_NODE_LIST)) {
 			// this ensures 2 blank lines after list,
 			// if before code block or list:
-			lit(state, "\n", false);
-			state->need_cr = 0;
+			LIT("\n");
 		}
 		break;
 
@@ -363,19 +240,19 @@
 		if (entering) {
 			if (cmark_node_get_list_type(node->parent) ==
 			    CMARK_BULLET_LIST) {
-				lit(state, "* ", false);
-				cmark_strbuf_puts(state->prefix, "  ");
+				LIT("* ");
+				cmark_strbuf_puts(renderer->prefix, "  ");
 			} else {
-				lit(state, (char *)listmarker.ptr, false);
+				LIT((char *)listmarker.ptr);
 				for (i = marker_width; i--;) {
-					cmark_strbuf_putc(state->prefix, ' ');
+					cmark_strbuf_putc(renderer->prefix, ' ');
 				}
 			}
 		} else {
-			cmark_strbuf_truncate(state->prefix,
-			                      state->prefix->size -
+			cmark_strbuf_truncate(renderer->prefix,
+			                      renderer->prefix->size -
 			                      marker_width);
-			cr(state);
+			CR();
 		}
 		cmark_strbuf_free(&listmarker);
 		break;
@@ -383,119 +260,123 @@
 	case CMARK_NODE_HEADER:
 		if (entering) {
 			for (int i = cmark_node_get_header_level(node); i > 0; i--) {
-				lit(state, "#", false);
+				LIT("#");
 			}
-			lit(state, " ", false);
-			state->no_wrap = true;
+			LIT(" ");
+			renderer->no_wrap = true;
 		} else {
-			state->no_wrap = false;
-			blankline(state);
+			renderer->no_wrap = false;
+			BLANKLINE();
 		}
 		break;
 
 	case CMARK_NODE_CODE_BLOCK:
-		blankline(state);
-		info = &node->as.code.info;
-		code = &node->as.code.literal;
+		BLANKLINE();
+		info = cmark_node_get_fence_info(node);
+		info_len = safe_strlen(info);
+		code = cmark_node_get_literal(node);
+		code_len = safe_strlen(code);
 		// use indented form if no info, and code doesn't
 		// begin or end with a blank line, and code isn't
 		// first thing in a list item
-		if (info->len == 0 &&
-		    (code->len > 2 &&
-		     !isspace(code->data[0]) &&
-		     !(isspace(code->data[code->len - 1]) &&
-		       isspace(code->data[code->len - 2]))) &&
+		if (info_len == 0 &&
+		    (code_len > 2 &&
+		     !isspace(code[0]) &&
+		     !(isspace(code[code_len - 1]) &&
+		       isspace(code[code_len - 2]))) &&
 		    !(node->prev == NULL && node->parent &&
 		      node->parent->type == CMARK_NODE_ITEM)) {
-			lit(state, "    ", false);
-			cmark_strbuf_puts(state->prefix, "    ");
-			out(state, node->as.code.literal, false, LITERAL);
-			cmark_strbuf_truncate(state->prefix,
-			                      state->prefix->size - 4);
+			LIT("    ");
+			cmark_strbuf_puts(renderer->prefix, "    ");
+			OUT(cmark_node_get_literal(node), false, LITERAL);
+			cmark_strbuf_truncate(renderer->prefix,
+			                      renderer->prefix->size - 4);
 		} else {
 			numticks = longest_backtick_sequence(code) + 1;
 			if (numticks < 3) {
 				numticks = 3;
 			}
 			for (i = 0; i < numticks; i++) {
-				lit(state, "`", false);
+				LIT("`");
 			}
-			lit(state, " ", false);
-			out(state, *info, false, LITERAL);
-			cr(state);
-			out(state, node->as.code.literal, false, LITERAL);
-			cr(state);
+			LIT(" ");
+			OUT(info, false, LITERAL);
+			CR();
+			OUT(cmark_node_get_literal(node), false, LITERAL);
+			CR();
 			for (i = 0; i < numticks; i++) {
-				lit(state, "`", false);
+				LIT("`");
 			}
 		}
-		blankline(state);
+		BLANKLINE();
 		break;
 
 	case CMARK_NODE_HTML:
-		blankline(state);
-		out(state, node->as.literal, false, LITERAL);
-		blankline(state);
+		BLANKLINE();
+		OUT(cmark_node_get_literal(node), false, LITERAL);
+		BLANKLINE();
 		break;
 
 	case CMARK_NODE_HRULE:
-		blankline(state);
-		lit(state, "-----", false);
-		blankline(state);
+		BLANKLINE();
+		LIT("-----");
+		BLANKLINE();
 		break;
 
 	case CMARK_NODE_PARAGRAPH:
 		if (!entering) {
-			blankline(state);
+			BLANKLINE();
 		}
 		break;
 
 	case CMARK_NODE_TEXT:
-		out(state, node->as.literal, true, NORMAL);
+		OUT(cmark_node_get_literal(node), true, NORMAL);
 		break;
 
 	case CMARK_NODE_LINEBREAK:
-		if (!(CMARK_OPT_HARDBREAKS & state->options)) {
-			lit(state, "\\", false);
+		if (!(CMARK_OPT_HARDBREAKS & options)) {
+			LIT("\\");
 		}
-		cr(state);
+		CR();
 		break;
 
 	case CMARK_NODE_SOFTBREAK:
-		if (state->width == 0) {
-			cr(state);
+		if (renderer->width == 0 &&
+		    !(CMARK_OPT_HARDBREAKS & options)) {
+			CR();
 		} else {
-			lit(state, " ", true);
+			OUT(" ", true, LITERAL);
 		}
 		break;
 
 	case CMARK_NODE_CODE:
-		code = &node->as.literal;
+		code = cmark_node_get_literal(node);
+		code_len = safe_strlen(code);
 		numticks = shortest_unused_backtick_sequence(code);
 		for (i = 0; i < numticks; i++) {
-			lit(state, "`", false);
+			LIT("`");
 		}
-		if (code->len == 0 || code->data[0] == '`') {
-			lit(state, " ", false);
+		if (code_len == 0 || code[0] == '`') {
+			LIT(" ");
 		}
-		out(state, node->as.literal, true, LITERAL);
-		if (code->len == 0 || code->data[code->len - 1] == '`') {
-			lit(state, " ", false);
+		OUT(cmark_node_get_literal(node), true, LITERAL);
+		if (code_len == 0 || code[code_len - 1] == '`') {
+			LIT(" ");
 		}
 		for (i = 0; i < numticks; i++) {
-			lit(state, "`", false);
+			LIT("`");
 		}
 		break;
 
 	case CMARK_NODE_INLINE_HTML:
-		out(state, node->as.literal, false, LITERAL);
+		OUT(cmark_node_get_literal(node), false, LITERAL);
 		break;
 
 	case CMARK_NODE_STRONG:
 		if (entering) {
-			lit(state, "**", false);
+			LIT("**");
 		} else {
-			lit(state, "**", false);
+			LIT("**");
 		}
 		break;
 
@@ -509,62 +390,56 @@
 			emph_delim = "*";
 		}
 		if (entering) {
-			lit(state, emph_delim, false);
+			LIT(emph_delim);
 		} else {
-			lit(state, emph_delim, false);
+			LIT(emph_delim);
 		}
 		break;
 
 	case CMARK_NODE_LINK:
 		if (is_autolink(node)) {
 			if (entering) {
-				lit(state, "<", false);
+				LIT("<");
 				if (strncmp(cmark_node_get_url(node),
 				            "mailto:", 7) == 0) {
-					lit(state,
-					    (char *)cmark_node_get_url(node) + 7,
-					    false);
+					LIT((char *)cmark_node_get_url(node) + 7);
 				} else {
-					lit(state,
-					    (char *)cmark_node_get_url(node),
-					    false);
+					LIT((char *)cmark_node_get_url(node));
 				}
-				lit(state, ">", false);
+				LIT(">");
 				// return signal to skip contents of node...
 				return 0;
 			}
 		} else {
 			if (entering) {
-				lit(state, "[", false);
+				LIT("[");
 			} else {
-				lit(state, "](", false);
-				out(state,
-				    cmark_chunk_literal(cmark_node_get_url(node)),
-				    false, URL);
-				title = &node->as.link.title;
-				if (title->len > 0) {
-					lit(state, " \"", true);
-					out(state, *title, false, TITLE);
-					lit(state, "\"", false);
+				LIT("](");
+				OUT(cmark_node_get_url(node), false, URL);
+				title = cmark_node_get_title(node);
+				if (safe_strlen(title) > 0) {
+					LIT(" \"");
+					OUT(title, false, TITLE);
+					LIT("\"");
 				}
-				lit(state, ")", false);
+				LIT(")");
 			}
 		}
 		break;
 
 	case CMARK_NODE_IMAGE:
 		if (entering) {
-			lit(state, "![", false);
+			LIT("![");
 		} else {
-			lit(state, "](", false);
-			out(state, cmark_chunk_literal(cmark_node_get_url(node)), false, URL);
-			title = &node->as.link.title;
-			if (title->len > 0) {
-				lit(state, " \"", true);
-				out(state, *title, false, TITLE);
-				lit(state, "\"", false);
+			LIT("](");
+			OUT(cmark_node_get_url(node), false, URL);
+			title = cmark_node_get_title(node);
+			if (safe_strlen(title) > 0) {
+				OUT(" \"", true, LITERAL);
+				OUT(title, false, TITLE);
+				LIT("\"");
 			}
-			lit(state, ")", false);
+			LIT(")");
 		}
 		break;
 
@@ -578,32 +453,10 @@
 
 char *cmark_render_commonmark(cmark_node *root, int options, int width)
 {
-	char *result;
-	cmark_strbuf commonmark = GH_BUF_INIT;
-	cmark_strbuf prefix = GH_BUF_INIT;
-	if (CMARK_OPT_HARDBREAKS & options) {
+	if (options & CMARK_OPT_HARDBREAKS) {
+		// disable breaking on width, since it has
+		// a different meaning with OPT_HARDBREAKS
 		width = 0;
 	}
-	struct render_state state = {
-		options, &commonmark, &prefix, 0, width,
-		0, 0, true, false, false
-	};
-	cmark_node *cur;
-	cmark_event_type ev_type;
-	cmark_iter *iter = cmark_iter_new(root);
-
-	while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
-		cur = cmark_iter_get_node(iter);
-		if (!S_render_node(cur, ev_type, &state)) {
-			// a false value causes us to skip processing
-			// the node's contents.  this is used for
-			// autolinks.
-			cmark_iter_reset(iter, cur, CMARK_EVENT_EXIT);
-		}
-	}
-	result = (char *)cmark_strbuf_detach(&commonmark);
-
-	cmark_strbuf_free(&prefix);
-	cmark_iter_free(iter);
-	return result;
+	return cmark_render(root, options, width, outc, S_render_node);
 }
diff --git a/cbits/entities.inc b/cbits/entities.inc
new file mode 100644
--- /dev/null
+++ b/cbits/entities.inc
@@ -0,0 +1,2138 @@
+/* Autogenerated by tools/make_headers_inc.py */
+
+struct cmark_entity_node {
+	unsigned char *entity;
+        unsigned char bytes[8];
+};
+
+#define CMARK_ENTITY_MIN_LENGTH 2
+#define CMARK_ENTITY_MAX_LENGTH 31
+#define CMARK_NUM_ENTITIES 2125
+
+static const struct cmark_entity_node cmark_entities[] = {
+{(unsigned char*)"AElig", {195, 134, 0}},
+{(unsigned char*)"AMP", {38, 0}},
+{(unsigned char*)"Aacute", {195, 129, 0}},
+{(unsigned char*)"Abreve", {196, 130, 0}},
+{(unsigned char*)"Acirc", {195, 130, 0}},
+{(unsigned char*)"Acy", {208, 144, 0}},
+{(unsigned char*)"Afr", {240, 157, 148, 132, 0}},
+{(unsigned char*)"Agrave", {195, 128, 0}},
+{(unsigned char*)"Alpha", {206, 145, 0}},
+{(unsigned char*)"Amacr", {196, 128, 0}},
+{(unsigned char*)"And", {226, 169, 147, 0}},
+{(unsigned char*)"Aogon", {196, 132, 0}},
+{(unsigned char*)"Aopf", {240, 157, 148, 184, 0}},
+{(unsigned char*)"ApplyFunction", {226, 129, 161, 0}},
+{(unsigned char*)"Aring", {195, 133, 0}},
+{(unsigned char*)"Ascr", {240, 157, 146, 156, 0}},
+{(unsigned char*)"Assign", {226, 137, 148, 0}},
+{(unsigned char*)"Atilde", {195, 131, 0}},
+{(unsigned char*)"Auml", {195, 132, 0}},
+{(unsigned char*)"Backslash", {226, 136, 150, 0}},
+{(unsigned char*)"Barv", {226, 171, 167, 0}},
+{(unsigned char*)"Barwed", {226, 140, 134, 0}},
+{(unsigned char*)"Bcy", {208, 145, 0}},
+{(unsigned char*)"Because", {226, 136, 181, 0}},
+{(unsigned char*)"Bernoullis", {226, 132, 172, 0}},
+{(unsigned char*)"Beta", {206, 146, 0}},
+{(unsigned char*)"Bfr", {240, 157, 148, 133, 0}},
+{(unsigned char*)"Bopf", {240, 157, 148, 185, 0}},
+{(unsigned char*)"Breve", {203, 152, 0}},
+{(unsigned char*)"Bscr", {226, 132, 172, 0}},
+{(unsigned char*)"Bumpeq", {226, 137, 142, 0}},
+{(unsigned char*)"CHcy", {208, 167, 0}},
+{(unsigned char*)"COPY", {194, 169, 0}},
+{(unsigned char*)"Cacute", {196, 134, 0}},
+{(unsigned char*)"Cap", {226, 139, 146, 0}},
+{(unsigned char*)"CapitalDifferentialD", {226, 133, 133, 0}},
+{(unsigned char*)"Cayleys", {226, 132, 173, 0}},
+{(unsigned char*)"Ccaron", {196, 140, 0}},
+{(unsigned char*)"Ccedil", {195, 135, 0}},
+{(unsigned char*)"Ccirc", {196, 136, 0}},
+{(unsigned char*)"Cconint", {226, 136, 176, 0}},
+{(unsigned char*)"Cdot", {196, 138, 0}},
+{(unsigned char*)"Cedilla", {194, 184, 0}},
+{(unsigned char*)"CenterDot", {194, 183, 0}},
+{(unsigned char*)"Cfr", {226, 132, 173, 0}},
+{(unsigned char*)"Chi", {206, 167, 0}},
+{(unsigned char*)"CircleDot", {226, 138, 153, 0}},
+{(unsigned char*)"CircleMinus", {226, 138, 150, 0}},
+{(unsigned char*)"CirclePlus", {226, 138, 149, 0}},
+{(unsigned char*)"CircleTimes", {226, 138, 151, 0}},
+{(unsigned char*)"ClockwiseContourIntegral", {226, 136, 178, 0}},
+{(unsigned char*)"CloseCurlyDoubleQuote", {226, 128, 157, 0}},
+{(unsigned char*)"CloseCurlyQuote", {226, 128, 153, 0}},
+{(unsigned char*)"Colon", {226, 136, 183, 0}},
+{(unsigned char*)"Colone", {226, 169, 180, 0}},
+{(unsigned char*)"Congruent", {226, 137, 161, 0}},
+{(unsigned char*)"Conint", {226, 136, 175, 0}},
+{(unsigned char*)"ContourIntegral", {226, 136, 174, 0}},
+{(unsigned char*)"Copf", {226, 132, 130, 0}},
+{(unsigned char*)"Coproduct", {226, 136, 144, 0}},
+{(unsigned char*)"CounterClockwiseContourIntegral", {226, 136, 179, 0}},
+{(unsigned char*)"Cross", {226, 168, 175, 0}},
+{(unsigned char*)"Cscr", {240, 157, 146, 158, 0}},
+{(unsigned char*)"Cup", {226, 139, 147, 0}},
+{(unsigned char*)"CupCap", {226, 137, 141, 0}},
+{(unsigned char*)"DD", {226, 133, 133, 0}},
+{(unsigned char*)"DDotrahd", {226, 164, 145, 0}},
+{(unsigned char*)"DJcy", {208, 130, 0}},
+{(unsigned char*)"DScy", {208, 133, 0}},
+{(unsigned char*)"DZcy", {208, 143, 0}},
+{(unsigned char*)"Dagger", {226, 128, 161, 0}},
+{(unsigned char*)"Darr", {226, 134, 161, 0}},
+{(unsigned char*)"Dashv", {226, 171, 164, 0}},
+{(unsigned char*)"Dcaron", {196, 142, 0}},
+{(unsigned char*)"Dcy", {208, 148, 0}},
+{(unsigned char*)"Del", {226, 136, 135, 0}},
+{(unsigned char*)"Delta", {206, 148, 0}},
+{(unsigned char*)"Dfr", {240, 157, 148, 135, 0}},
+{(unsigned char*)"DiacriticalAcute", {194, 180, 0}},
+{(unsigned char*)"DiacriticalDot", {203, 153, 0}},
+{(unsigned char*)"DiacriticalDoubleAcute", {203, 157, 0}},
+{(unsigned char*)"DiacriticalGrave", {96, 0}},
+{(unsigned char*)"DiacriticalTilde", {203, 156, 0}},
+{(unsigned char*)"Diamond", {226, 139, 132, 0}},
+{(unsigned char*)"DifferentialD", {226, 133, 134, 0}},
+{(unsigned char*)"Dopf", {240, 157, 148, 187, 0}},
+{(unsigned char*)"Dot", {194, 168, 0}},
+{(unsigned char*)"DotDot", {226, 131, 156, 0}},
+{(unsigned char*)"DotEqual", {226, 137, 144, 0}},
+{(unsigned char*)"DoubleContourIntegral", {226, 136, 175, 0}},
+{(unsigned char*)"DoubleDot", {194, 168, 0}},
+{(unsigned char*)"DoubleDownArrow", {226, 135, 147, 0}},
+{(unsigned char*)"DoubleLeftArrow", {226, 135, 144, 0}},
+{(unsigned char*)"DoubleLeftRightArrow", {226, 135, 148, 0}},
+{(unsigned char*)"DoubleLeftTee", {226, 171, 164, 0}},
+{(unsigned char*)"DoubleLongLeftArrow", {226, 159, 184, 0}},
+{(unsigned char*)"DoubleLongLeftRightArrow", {226, 159, 186, 0}},
+{(unsigned char*)"DoubleLongRightArrow", {226, 159, 185, 0}},
+{(unsigned char*)"DoubleRightArrow", {226, 135, 146, 0}},
+{(unsigned char*)"DoubleRightTee", {226, 138, 168, 0}},
+{(unsigned char*)"DoubleUpArrow", {226, 135, 145, 0}},
+{(unsigned char*)"DoubleUpDownArrow", {226, 135, 149, 0}},
+{(unsigned char*)"DoubleVerticalBar", {226, 136, 165, 0}},
+{(unsigned char*)"DownArrow", {226, 134, 147, 0}},
+{(unsigned char*)"DownArrowBar", {226, 164, 147, 0}},
+{(unsigned char*)"DownArrowUpArrow", {226, 135, 181, 0}},
+{(unsigned char*)"DownBreve", {204, 145, 0}},
+{(unsigned char*)"DownLeftRightVector", {226, 165, 144, 0}},
+{(unsigned char*)"DownLeftTeeVector", {226, 165, 158, 0}},
+{(unsigned char*)"DownLeftVector", {226, 134, 189, 0}},
+{(unsigned char*)"DownLeftVectorBar", {226, 165, 150, 0}},
+{(unsigned char*)"DownRightTeeVector", {226, 165, 159, 0}},
+{(unsigned char*)"DownRightVector", {226, 135, 129, 0}},
+{(unsigned char*)"DownRightVectorBar", {226, 165, 151, 0}},
+{(unsigned char*)"DownTee", {226, 138, 164, 0}},
+{(unsigned char*)"DownTeeArrow", {226, 134, 167, 0}},
+{(unsigned char*)"Downarrow", {226, 135, 147, 0}},
+{(unsigned char*)"Dscr", {240, 157, 146, 159, 0}},
+{(unsigned char*)"Dstrok", {196, 144, 0}},
+{(unsigned char*)"ENG", {197, 138, 0}},
+{(unsigned char*)"ETH", {195, 144, 0}},
+{(unsigned char*)"Eacute", {195, 137, 0}},
+{(unsigned char*)"Ecaron", {196, 154, 0}},
+{(unsigned char*)"Ecirc", {195, 138, 0}},
+{(unsigned char*)"Ecy", {208, 173, 0}},
+{(unsigned char*)"Edot", {196, 150, 0}},
+{(unsigned char*)"Efr", {240, 157, 148, 136, 0}},
+{(unsigned char*)"Egrave", {195, 136, 0}},
+{(unsigned char*)"Element", {226, 136, 136, 0}},
+{(unsigned char*)"Emacr", {196, 146, 0}},
+{(unsigned char*)"EmptySmallSquare", {226, 151, 187, 0}},
+{(unsigned char*)"EmptyVerySmallSquare", {226, 150, 171, 0}},
+{(unsigned char*)"Eogon", {196, 152, 0}},
+{(unsigned char*)"Eopf", {240, 157, 148, 188, 0}},
+{(unsigned char*)"Epsilon", {206, 149, 0}},
+{(unsigned char*)"Equal", {226, 169, 181, 0}},
+{(unsigned char*)"EqualTilde", {226, 137, 130, 0}},
+{(unsigned char*)"Equilibrium", {226, 135, 140, 0}},
+{(unsigned char*)"Escr", {226, 132, 176, 0}},
+{(unsigned char*)"Esim", {226, 169, 179, 0}},
+{(unsigned char*)"Eta", {206, 151, 0}},
+{(unsigned char*)"Euml", {195, 139, 0}},
+{(unsigned char*)"Exists", {226, 136, 131, 0}},
+{(unsigned char*)"ExponentialE", {226, 133, 135, 0}},
+{(unsigned char*)"Fcy", {208, 164, 0}},
+{(unsigned char*)"Ffr", {240, 157, 148, 137, 0}},
+{(unsigned char*)"FilledSmallSquare", {226, 151, 188, 0}},
+{(unsigned char*)"FilledVerySmallSquare", {226, 150, 170, 0}},
+{(unsigned char*)"Fopf", {240, 157, 148, 189, 0}},
+{(unsigned char*)"ForAll", {226, 136, 128, 0}},
+{(unsigned char*)"Fouriertrf", {226, 132, 177, 0}},
+{(unsigned char*)"Fscr", {226, 132, 177, 0}},
+{(unsigned char*)"GJcy", {208, 131, 0}},
+{(unsigned char*)"GT", {62, 0}},
+{(unsigned char*)"Gamma", {206, 147, 0}},
+{(unsigned char*)"Gammad", {207, 156, 0}},
+{(unsigned char*)"Gbreve", {196, 158, 0}},
+{(unsigned char*)"Gcedil", {196, 162, 0}},
+{(unsigned char*)"Gcirc", {196, 156, 0}},
+{(unsigned char*)"Gcy", {208, 147, 0}},
+{(unsigned char*)"Gdot", {196, 160, 0}},
+{(unsigned char*)"Gfr", {240, 157, 148, 138, 0}},
+{(unsigned char*)"Gg", {226, 139, 153, 0}},
+{(unsigned char*)"Gopf", {240, 157, 148, 190, 0}},
+{(unsigned char*)"GreaterEqual", {226, 137, 165, 0}},
+{(unsigned char*)"GreaterEqualLess", {226, 139, 155, 0}},
+{(unsigned char*)"GreaterFullEqual", {226, 137, 167, 0}},
+{(unsigned char*)"GreaterGreater", {226, 170, 162, 0}},
+{(unsigned char*)"GreaterLess", {226, 137, 183, 0}},
+{(unsigned char*)"GreaterSlantEqual", {226, 169, 190, 0}},
+{(unsigned char*)"GreaterTilde", {226, 137, 179, 0}},
+{(unsigned char*)"Gscr", {240, 157, 146, 162, 0}},
+{(unsigned char*)"Gt", {226, 137, 171, 0}},
+{(unsigned char*)"HARDcy", {208, 170, 0}},
+{(unsigned char*)"Hacek", {203, 135, 0}},
+{(unsigned char*)"Hat", {94, 0}},
+{(unsigned char*)"Hcirc", {196, 164, 0}},
+{(unsigned char*)"Hfr", {226, 132, 140, 0}},
+{(unsigned char*)"HilbertSpace", {226, 132, 139, 0}},
+{(unsigned char*)"Hopf", {226, 132, 141, 0}},
+{(unsigned char*)"HorizontalLine", {226, 148, 128, 0}},
+{(unsigned char*)"Hscr", {226, 132, 139, 0}},
+{(unsigned char*)"Hstrok", {196, 166, 0}},
+{(unsigned char*)"HumpDownHump", {226, 137, 142, 0}},
+{(unsigned char*)"HumpEqual", {226, 137, 143, 0}},
+{(unsigned char*)"IEcy", {208, 149, 0}},
+{(unsigned char*)"IJlig", {196, 178, 0}},
+{(unsigned char*)"IOcy", {208, 129, 0}},
+{(unsigned char*)"Iacute", {195, 141, 0}},
+{(unsigned char*)"Icirc", {195, 142, 0}},
+{(unsigned char*)"Icy", {208, 152, 0}},
+{(unsigned char*)"Idot", {196, 176, 0}},
+{(unsigned char*)"Ifr", {226, 132, 145, 0}},
+{(unsigned char*)"Igrave", {195, 140, 0}},
+{(unsigned char*)"Im", {226, 132, 145, 0}},
+{(unsigned char*)"Imacr", {196, 170, 0}},
+{(unsigned char*)"ImaginaryI", {226, 133, 136, 0}},
+{(unsigned char*)"Implies", {226, 135, 146, 0}},
+{(unsigned char*)"Int", {226, 136, 172, 0}},
+{(unsigned char*)"Integral", {226, 136, 171, 0}},
+{(unsigned char*)"Intersection", {226, 139, 130, 0}},
+{(unsigned char*)"InvisibleComma", {226, 129, 163, 0}},
+{(unsigned char*)"InvisibleTimes", {226, 129, 162, 0}},
+{(unsigned char*)"Iogon", {196, 174, 0}},
+{(unsigned char*)"Iopf", {240, 157, 149, 128, 0}},
+{(unsigned char*)"Iota", {206, 153, 0}},
+{(unsigned char*)"Iscr", {226, 132, 144, 0}},
+{(unsigned char*)"Itilde", {196, 168, 0}},
+{(unsigned char*)"Iukcy", {208, 134, 0}},
+{(unsigned char*)"Iuml", {195, 143, 0}},
+{(unsigned char*)"Jcirc", {196, 180, 0}},
+{(unsigned char*)"Jcy", {208, 153, 0}},
+{(unsigned char*)"Jfr", {240, 157, 148, 141, 0}},
+{(unsigned char*)"Jopf", {240, 157, 149, 129, 0}},
+{(unsigned char*)"Jscr", {240, 157, 146, 165, 0}},
+{(unsigned char*)"Jsercy", {208, 136, 0}},
+{(unsigned char*)"Jukcy", {208, 132, 0}},
+{(unsigned char*)"KHcy", {208, 165, 0}},
+{(unsigned char*)"KJcy", {208, 140, 0}},
+{(unsigned char*)"Kappa", {206, 154, 0}},
+{(unsigned char*)"Kcedil", {196, 182, 0}},
+{(unsigned char*)"Kcy", {208, 154, 0}},
+{(unsigned char*)"Kfr", {240, 157, 148, 142, 0}},
+{(unsigned char*)"Kopf", {240, 157, 149, 130, 0}},
+{(unsigned char*)"Kscr", {240, 157, 146, 166, 0}},
+{(unsigned char*)"LJcy", {208, 137, 0}},
+{(unsigned char*)"LT", {60, 0}},
+{(unsigned char*)"Lacute", {196, 185, 0}},
+{(unsigned char*)"Lambda", {206, 155, 0}},
+{(unsigned char*)"Lang", {226, 159, 170, 0}},
+{(unsigned char*)"Laplacetrf", {226, 132, 146, 0}},
+{(unsigned char*)"Larr", {226, 134, 158, 0}},
+{(unsigned char*)"Lcaron", {196, 189, 0}},
+{(unsigned char*)"Lcedil", {196, 187, 0}},
+{(unsigned char*)"Lcy", {208, 155, 0}},
+{(unsigned char*)"LeftAngleBracket", {226, 159, 168, 0}},
+{(unsigned char*)"LeftArrow", {226, 134, 144, 0}},
+{(unsigned char*)"LeftArrowBar", {226, 135, 164, 0}},
+{(unsigned char*)"LeftArrowRightArrow", {226, 135, 134, 0}},
+{(unsigned char*)"LeftCeiling", {226, 140, 136, 0}},
+{(unsigned char*)"LeftDoubleBracket", {226, 159, 166, 0}},
+{(unsigned char*)"LeftDownTeeVector", {226, 165, 161, 0}},
+{(unsigned char*)"LeftDownVector", {226, 135, 131, 0}},
+{(unsigned char*)"LeftDownVectorBar", {226, 165, 153, 0}},
+{(unsigned char*)"LeftFloor", {226, 140, 138, 0}},
+{(unsigned char*)"LeftRightArrow", {226, 134, 148, 0}},
+{(unsigned char*)"LeftRightVector", {226, 165, 142, 0}},
+{(unsigned char*)"LeftTee", {226, 138, 163, 0}},
+{(unsigned char*)"LeftTeeArrow", {226, 134, 164, 0}},
+{(unsigned char*)"LeftTeeVector", {226, 165, 154, 0}},
+{(unsigned char*)"LeftTriangle", {226, 138, 178, 0}},
+{(unsigned char*)"LeftTriangleBar", {226, 167, 143, 0}},
+{(unsigned char*)"LeftTriangleEqual", {226, 138, 180, 0}},
+{(unsigned char*)"LeftUpDownVector", {226, 165, 145, 0}},
+{(unsigned char*)"LeftUpTeeVector", {226, 165, 160, 0}},
+{(unsigned char*)"LeftUpVector", {226, 134, 191, 0}},
+{(unsigned char*)"LeftUpVectorBar", {226, 165, 152, 0}},
+{(unsigned char*)"LeftVector", {226, 134, 188, 0}},
+{(unsigned char*)"LeftVectorBar", {226, 165, 146, 0}},
+{(unsigned char*)"Leftarrow", {226, 135, 144, 0}},
+{(unsigned char*)"Leftrightarrow", {226, 135, 148, 0}},
+{(unsigned char*)"LessEqualGreater", {226, 139, 154, 0}},
+{(unsigned char*)"LessFullEqual", {226, 137, 166, 0}},
+{(unsigned char*)"LessGreater", {226, 137, 182, 0}},
+{(unsigned char*)"LessLess", {226, 170, 161, 0}},
+{(unsigned char*)"LessSlantEqual", {226, 169, 189, 0}},
+{(unsigned char*)"LessTilde", {226, 137, 178, 0}},
+{(unsigned char*)"Lfr", {240, 157, 148, 143, 0}},
+{(unsigned char*)"Ll", {226, 139, 152, 0}},
+{(unsigned char*)"Lleftarrow", {226, 135, 154, 0}},
+{(unsigned char*)"Lmidot", {196, 191, 0}},
+{(unsigned char*)"LongLeftArrow", {226, 159, 181, 0}},
+{(unsigned char*)"LongLeftRightArrow", {226, 159, 183, 0}},
+{(unsigned char*)"LongRightArrow", {226, 159, 182, 0}},
+{(unsigned char*)"Longleftarrow", {226, 159, 184, 0}},
+{(unsigned char*)"Longleftrightarrow", {226, 159, 186, 0}},
+{(unsigned char*)"Longrightarrow", {226, 159, 185, 0}},
+{(unsigned char*)"Lopf", {240, 157, 149, 131, 0}},
+{(unsigned char*)"LowerLeftArrow", {226, 134, 153, 0}},
+{(unsigned char*)"LowerRightArrow", {226, 134, 152, 0}},
+{(unsigned char*)"Lscr", {226, 132, 146, 0}},
+{(unsigned char*)"Lsh", {226, 134, 176, 0}},
+{(unsigned char*)"Lstrok", {197, 129, 0}},
+{(unsigned char*)"Lt", {226, 137, 170, 0}},
+{(unsigned char*)"Map", {226, 164, 133, 0}},
+{(unsigned char*)"Mcy", {208, 156, 0}},
+{(unsigned char*)"MediumSpace", {226, 129, 159, 0}},
+{(unsigned char*)"Mellintrf", {226, 132, 179, 0}},
+{(unsigned char*)"Mfr", {240, 157, 148, 144, 0}},
+{(unsigned char*)"MinusPlus", {226, 136, 147, 0}},
+{(unsigned char*)"Mopf", {240, 157, 149, 132, 0}},
+{(unsigned char*)"Mscr", {226, 132, 179, 0}},
+{(unsigned char*)"Mu", {206, 156, 0}},
+{(unsigned char*)"NJcy", {208, 138, 0}},
+{(unsigned char*)"Nacute", {197, 131, 0}},
+{(unsigned char*)"Ncaron", {197, 135, 0}},
+{(unsigned char*)"Ncedil", {197, 133, 0}},
+{(unsigned char*)"Ncy", {208, 157, 0}},
+{(unsigned char*)"NegativeMediumSpace", {226, 128, 139, 0}},
+{(unsigned char*)"NegativeThickSpace", {226, 128, 139, 0}},
+{(unsigned char*)"NegativeThinSpace", {226, 128, 139, 0}},
+{(unsigned char*)"NegativeVeryThinSpace", {226, 128, 139, 0}},
+{(unsigned char*)"NestedGreaterGreater", {226, 137, 171, 0}},
+{(unsigned char*)"NestedLessLess", {226, 137, 170, 0}},
+{(unsigned char*)"NewLine", {10, 0}},
+{(unsigned char*)"Nfr", {240, 157, 148, 145, 0}},
+{(unsigned char*)"NoBreak", {226, 129, 160, 0}},
+{(unsigned char*)"NonBreakingSpace", {194, 160, 0}},
+{(unsigned char*)"Nopf", {226, 132, 149, 0}},
+{(unsigned char*)"Not", {226, 171, 172, 0}},
+{(unsigned char*)"NotCongruent", {226, 137, 162, 0}},
+{(unsigned char*)"NotCupCap", {226, 137, 173, 0}},
+{(unsigned char*)"NotDoubleVerticalBar", {226, 136, 166, 0}},
+{(unsigned char*)"NotElement", {226, 136, 137, 0}},
+{(unsigned char*)"NotEqual", {226, 137, 160, 0}},
+{(unsigned char*)"NotEqualTilde", {226, 137, 130, 204, 184, 0}},
+{(unsigned char*)"NotExists", {226, 136, 132, 0}},
+{(unsigned char*)"NotGreater", {226, 137, 175, 0}},
+{(unsigned char*)"NotGreaterEqual", {226, 137, 177, 0}},
+{(unsigned char*)"NotGreaterFullEqual", {226, 137, 167, 204, 184, 0}},
+{(unsigned char*)"NotGreaterGreater", {226, 137, 171, 204, 184, 0}},
+{(unsigned char*)"NotGreaterLess", {226, 137, 185, 0}},
+{(unsigned char*)"NotGreaterSlantEqual", {226, 169, 190, 204, 184, 0}},
+{(unsigned char*)"NotGreaterTilde", {226, 137, 181, 0}},
+{(unsigned char*)"NotHumpDownHump", {226, 137, 142, 204, 184, 0}},
+{(unsigned char*)"NotHumpEqual", {226, 137, 143, 204, 184, 0}},
+{(unsigned char*)"NotLeftTriangle", {226, 139, 170, 0}},
+{(unsigned char*)"NotLeftTriangleBar", {226, 167, 143, 204, 184, 0}},
+{(unsigned char*)"NotLeftTriangleEqual", {226, 139, 172, 0}},
+{(unsigned char*)"NotLess", {226, 137, 174, 0}},
+{(unsigned char*)"NotLessEqual", {226, 137, 176, 0}},
+{(unsigned char*)"NotLessGreater", {226, 137, 184, 0}},
+{(unsigned char*)"NotLessLess", {226, 137, 170, 204, 184, 0}},
+{(unsigned char*)"NotLessSlantEqual", {226, 169, 189, 204, 184, 0}},
+{(unsigned char*)"NotLessTilde", {226, 137, 180, 0}},
+{(unsigned char*)"NotNestedGreaterGreater", {226, 170, 162, 204, 184, 0}},
+{(unsigned char*)"NotNestedLessLess", {226, 170, 161, 204, 184, 0}},
+{(unsigned char*)"NotPrecedes", {226, 138, 128, 0}},
+{(unsigned char*)"NotPrecedesEqual", {226, 170, 175, 204, 184, 0}},
+{(unsigned char*)"NotPrecedesSlantEqual", {226, 139, 160, 0}},
+{(unsigned char*)"NotReverseElement", {226, 136, 140, 0}},
+{(unsigned char*)"NotRightTriangle", {226, 139, 171, 0}},
+{(unsigned char*)"NotRightTriangleBar", {226, 167, 144, 204, 184, 0}},
+{(unsigned char*)"NotRightTriangleEqual", {226, 139, 173, 0}},
+{(unsigned char*)"NotSquareSubset", {226, 138, 143, 204, 184, 0}},
+{(unsigned char*)"NotSquareSubsetEqual", {226, 139, 162, 0}},
+{(unsigned char*)"NotSquareSuperset", {226, 138, 144, 204, 184, 0}},
+{(unsigned char*)"NotSquareSupersetEqual", {226, 139, 163, 0}},
+{(unsigned char*)"NotSubset", {226, 138, 130, 226, 131, 146, 0}},
+{(unsigned char*)"NotSubsetEqual", {226, 138, 136, 0}},
+{(unsigned char*)"NotSucceeds", {226, 138, 129, 0}},
+{(unsigned char*)"NotSucceedsEqual", {226, 170, 176, 204, 184, 0}},
+{(unsigned char*)"NotSucceedsSlantEqual", {226, 139, 161, 0}},
+{(unsigned char*)"NotSucceedsTilde", {226, 137, 191, 204, 184, 0}},
+{(unsigned char*)"NotSuperset", {226, 138, 131, 226, 131, 146, 0}},
+{(unsigned char*)"NotSupersetEqual", {226, 138, 137, 0}},
+{(unsigned char*)"NotTilde", {226, 137, 129, 0}},
+{(unsigned char*)"NotTildeEqual", {226, 137, 132, 0}},
+{(unsigned char*)"NotTildeFullEqual", {226, 137, 135, 0}},
+{(unsigned char*)"NotTildeTilde", {226, 137, 137, 0}},
+{(unsigned char*)"NotVerticalBar", {226, 136, 164, 0}},
+{(unsigned char*)"Nscr", {240, 157, 146, 169, 0}},
+{(unsigned char*)"Ntilde", {195, 145, 0}},
+{(unsigned char*)"Nu", {206, 157, 0}},
+{(unsigned char*)"OElig", {197, 146, 0}},
+{(unsigned char*)"Oacute", {195, 147, 0}},
+{(unsigned char*)"Ocirc", {195, 148, 0}},
+{(unsigned char*)"Ocy", {208, 158, 0}},
+{(unsigned char*)"Odblac", {197, 144, 0}},
+{(unsigned char*)"Ofr", {240, 157, 148, 146, 0}},
+{(unsigned char*)"Ograve", {195, 146, 0}},
+{(unsigned char*)"Omacr", {197, 140, 0}},
+{(unsigned char*)"Omega", {206, 169, 0}},
+{(unsigned char*)"Omicron", {206, 159, 0}},
+{(unsigned char*)"Oopf", {240, 157, 149, 134, 0}},
+{(unsigned char*)"OpenCurlyDoubleQuote", {226, 128, 156, 0}},
+{(unsigned char*)"OpenCurlyQuote", {226, 128, 152, 0}},
+{(unsigned char*)"Or", {226, 169, 148, 0}},
+{(unsigned char*)"Oscr", {240, 157, 146, 170, 0}},
+{(unsigned char*)"Oslash", {195, 152, 0}},
+{(unsigned char*)"Otilde", {195, 149, 0}},
+{(unsigned char*)"Otimes", {226, 168, 183, 0}},
+{(unsigned char*)"Ouml", {195, 150, 0}},
+{(unsigned char*)"OverBar", {226, 128, 190, 0}},
+{(unsigned char*)"OverBrace", {226, 143, 158, 0}},
+{(unsigned char*)"OverBracket", {226, 142, 180, 0}},
+{(unsigned char*)"OverParenthesis", {226, 143, 156, 0}},
+{(unsigned char*)"PartialD", {226, 136, 130, 0}},
+{(unsigned char*)"Pcy", {208, 159, 0}},
+{(unsigned char*)"Pfr", {240, 157, 148, 147, 0}},
+{(unsigned char*)"Phi", {206, 166, 0}},
+{(unsigned char*)"Pi", {206, 160, 0}},
+{(unsigned char*)"PlusMinus", {194, 177, 0}},
+{(unsigned char*)"Poincareplane", {226, 132, 140, 0}},
+{(unsigned char*)"Popf", {226, 132, 153, 0}},
+{(unsigned char*)"Pr", {226, 170, 187, 0}},
+{(unsigned char*)"Precedes", {226, 137, 186, 0}},
+{(unsigned char*)"PrecedesEqual", {226, 170, 175, 0}},
+{(unsigned char*)"PrecedesSlantEqual", {226, 137, 188, 0}},
+{(unsigned char*)"PrecedesTilde", {226, 137, 190, 0}},
+{(unsigned char*)"Prime", {226, 128, 179, 0}},
+{(unsigned char*)"Product", {226, 136, 143, 0}},
+{(unsigned char*)"Proportion", {226, 136, 183, 0}},
+{(unsigned char*)"Proportional", {226, 136, 157, 0}},
+{(unsigned char*)"Pscr", {240, 157, 146, 171, 0}},
+{(unsigned char*)"Psi", {206, 168, 0}},
+{(unsigned char*)"QUOT", {34, 0}},
+{(unsigned char*)"Qfr", {240, 157, 148, 148, 0}},
+{(unsigned char*)"Qopf", {226, 132, 154, 0}},
+{(unsigned char*)"Qscr", {240, 157, 146, 172, 0}},
+{(unsigned char*)"RBarr", {226, 164, 144, 0}},
+{(unsigned char*)"REG", {194, 174, 0}},
+{(unsigned char*)"Racute", {197, 148, 0}},
+{(unsigned char*)"Rang", {226, 159, 171, 0}},
+{(unsigned char*)"Rarr", {226, 134, 160, 0}},
+{(unsigned char*)"Rarrtl", {226, 164, 150, 0}},
+{(unsigned char*)"Rcaron", {197, 152, 0}},
+{(unsigned char*)"Rcedil", {197, 150, 0}},
+{(unsigned char*)"Rcy", {208, 160, 0}},
+{(unsigned char*)"Re", {226, 132, 156, 0}},
+{(unsigned char*)"ReverseElement", {226, 136, 139, 0}},
+{(unsigned char*)"ReverseEquilibrium", {226, 135, 139, 0}},
+{(unsigned char*)"ReverseUpEquilibrium", {226, 165, 175, 0}},
+{(unsigned char*)"Rfr", {226, 132, 156, 0}},
+{(unsigned char*)"Rho", {206, 161, 0}},
+{(unsigned char*)"RightAngleBracket", {226, 159, 169, 0}},
+{(unsigned char*)"RightArrow", {226, 134, 146, 0}},
+{(unsigned char*)"RightArrowBar", {226, 135, 165, 0}},
+{(unsigned char*)"RightArrowLeftArrow", {226, 135, 132, 0}},
+{(unsigned char*)"RightCeiling", {226, 140, 137, 0}},
+{(unsigned char*)"RightDoubleBracket", {226, 159, 167, 0}},
+{(unsigned char*)"RightDownTeeVector", {226, 165, 157, 0}},
+{(unsigned char*)"RightDownVector", {226, 135, 130, 0}},
+{(unsigned char*)"RightDownVectorBar", {226, 165, 149, 0}},
+{(unsigned char*)"RightFloor", {226, 140, 139, 0}},
+{(unsigned char*)"RightTee", {226, 138, 162, 0}},
+{(unsigned char*)"RightTeeArrow", {226, 134, 166, 0}},
+{(unsigned char*)"RightTeeVector", {226, 165, 155, 0}},
+{(unsigned char*)"RightTriangle", {226, 138, 179, 0}},
+{(unsigned char*)"RightTriangleBar", {226, 167, 144, 0}},
+{(unsigned char*)"RightTriangleEqual", {226, 138, 181, 0}},
+{(unsigned char*)"RightUpDownVector", {226, 165, 143, 0}},
+{(unsigned char*)"RightUpTeeVector", {226, 165, 156, 0}},
+{(unsigned char*)"RightUpVector", {226, 134, 190, 0}},
+{(unsigned char*)"RightUpVectorBar", {226, 165, 148, 0}},
+{(unsigned char*)"RightVector", {226, 135, 128, 0}},
+{(unsigned char*)"RightVectorBar", {226, 165, 147, 0}},
+{(unsigned char*)"Rightarrow", {226, 135, 146, 0}},
+{(unsigned char*)"Ropf", {226, 132, 157, 0}},
+{(unsigned char*)"RoundImplies", {226, 165, 176, 0}},
+{(unsigned char*)"Rrightarrow", {226, 135, 155, 0}},
+{(unsigned char*)"Rscr", {226, 132, 155, 0}},
+{(unsigned char*)"Rsh", {226, 134, 177, 0}},
+{(unsigned char*)"RuleDelayed", {226, 167, 180, 0}},
+{(unsigned char*)"SHCHcy", {208, 169, 0}},
+{(unsigned char*)"SHcy", {208, 168, 0}},
+{(unsigned char*)"SOFTcy", {208, 172, 0}},
+{(unsigned char*)"Sacute", {197, 154, 0}},
+{(unsigned char*)"Sc", {226, 170, 188, 0}},
+{(unsigned char*)"Scaron", {197, 160, 0}},
+{(unsigned char*)"Scedil", {197, 158, 0}},
+{(unsigned char*)"Scirc", {197, 156, 0}},
+{(unsigned char*)"Scy", {208, 161, 0}},
+{(unsigned char*)"Sfr", {240, 157, 148, 150, 0}},
+{(unsigned char*)"ShortDownArrow", {226, 134, 147, 0}},
+{(unsigned char*)"ShortLeftArrow", {226, 134, 144, 0}},
+{(unsigned char*)"ShortRightArrow", {226, 134, 146, 0}},
+{(unsigned char*)"ShortUpArrow", {226, 134, 145, 0}},
+{(unsigned char*)"Sigma", {206, 163, 0}},
+{(unsigned char*)"SmallCircle", {226, 136, 152, 0}},
+{(unsigned char*)"Sopf", {240, 157, 149, 138, 0}},
+{(unsigned char*)"Sqrt", {226, 136, 154, 0}},
+{(unsigned char*)"Square", {226, 150, 161, 0}},
+{(unsigned char*)"SquareIntersection", {226, 138, 147, 0}},
+{(unsigned char*)"SquareSubset", {226, 138, 143, 0}},
+{(unsigned char*)"SquareSubsetEqual", {226, 138, 145, 0}},
+{(unsigned char*)"SquareSuperset", {226, 138, 144, 0}},
+{(unsigned char*)"SquareSupersetEqual", {226, 138, 146, 0}},
+{(unsigned char*)"SquareUnion", {226, 138, 148, 0}},
+{(unsigned char*)"Sscr", {240, 157, 146, 174, 0}},
+{(unsigned char*)"Star", {226, 139, 134, 0}},
+{(unsigned char*)"Sub", {226, 139, 144, 0}},
+{(unsigned char*)"Subset", {226, 139, 144, 0}},
+{(unsigned char*)"SubsetEqual", {226, 138, 134, 0}},
+{(unsigned char*)"Succeeds", {226, 137, 187, 0}},
+{(unsigned char*)"SucceedsEqual", {226, 170, 176, 0}},
+{(unsigned char*)"SucceedsSlantEqual", {226, 137, 189, 0}},
+{(unsigned char*)"SucceedsTilde", {226, 137, 191, 0}},
+{(unsigned char*)"SuchThat", {226, 136, 139, 0}},
+{(unsigned char*)"Sum", {226, 136, 145, 0}},
+{(unsigned char*)"Sup", {226, 139, 145, 0}},
+{(unsigned char*)"Superset", {226, 138, 131, 0}},
+{(unsigned char*)"SupersetEqual", {226, 138, 135, 0}},
+{(unsigned char*)"Supset", {226, 139, 145, 0}},
+{(unsigned char*)"THORN", {195, 158, 0}},
+{(unsigned char*)"TRADE", {226, 132, 162, 0}},
+{(unsigned char*)"TSHcy", {208, 139, 0}},
+{(unsigned char*)"TScy", {208, 166, 0}},
+{(unsigned char*)"Tab", {9, 0}},
+{(unsigned char*)"Tau", {206, 164, 0}},
+{(unsigned char*)"Tcaron", {197, 164, 0}},
+{(unsigned char*)"Tcedil", {197, 162, 0}},
+{(unsigned char*)"Tcy", {208, 162, 0}},
+{(unsigned char*)"Tfr", {240, 157, 148, 151, 0}},
+{(unsigned char*)"Therefore", {226, 136, 180, 0}},
+{(unsigned char*)"Theta", {206, 152, 0}},
+{(unsigned char*)"ThickSpace", {226, 129, 159, 226, 128, 138, 0}},
+{(unsigned char*)"ThinSpace", {226, 128, 137, 0}},
+{(unsigned char*)"Tilde", {226, 136, 188, 0}},
+{(unsigned char*)"TildeEqual", {226, 137, 131, 0}},
+{(unsigned char*)"TildeFullEqual", {226, 137, 133, 0}},
+{(unsigned char*)"TildeTilde", {226, 137, 136, 0}},
+{(unsigned char*)"Topf", {240, 157, 149, 139, 0}},
+{(unsigned char*)"TripleDot", {226, 131, 155, 0}},
+{(unsigned char*)"Tscr", {240, 157, 146, 175, 0}},
+{(unsigned char*)"Tstrok", {197, 166, 0}},
+{(unsigned char*)"Uacute", {195, 154, 0}},
+{(unsigned char*)"Uarr", {226, 134, 159, 0}},
+{(unsigned char*)"Uarrocir", {226, 165, 137, 0}},
+{(unsigned char*)"Ubrcy", {208, 142, 0}},
+{(unsigned char*)"Ubreve", {197, 172, 0}},
+{(unsigned char*)"Ucirc", {195, 155, 0}},
+{(unsigned char*)"Ucy", {208, 163, 0}},
+{(unsigned char*)"Udblac", {197, 176, 0}},
+{(unsigned char*)"Ufr", {240, 157, 148, 152, 0}},
+{(unsigned char*)"Ugrave", {195, 153, 0}},
+{(unsigned char*)"Umacr", {197, 170, 0}},
+{(unsigned char*)"UnderBar", {95, 0}},
+{(unsigned char*)"UnderBrace", {226, 143, 159, 0}},
+{(unsigned char*)"UnderBracket", {226, 142, 181, 0}},
+{(unsigned char*)"UnderParenthesis", {226, 143, 157, 0}},
+{(unsigned char*)"Union", {226, 139, 131, 0}},
+{(unsigned char*)"UnionPlus", {226, 138, 142, 0}},
+{(unsigned char*)"Uogon", {197, 178, 0}},
+{(unsigned char*)"Uopf", {240, 157, 149, 140, 0}},
+{(unsigned char*)"UpArrow", {226, 134, 145, 0}},
+{(unsigned char*)"UpArrowBar", {226, 164, 146, 0}},
+{(unsigned char*)"UpArrowDownArrow", {226, 135, 133, 0}},
+{(unsigned char*)"UpDownArrow", {226, 134, 149, 0}},
+{(unsigned char*)"UpEquilibrium", {226, 165, 174, 0}},
+{(unsigned char*)"UpTee", {226, 138, 165, 0}},
+{(unsigned char*)"UpTeeArrow", {226, 134, 165, 0}},
+{(unsigned char*)"Uparrow", {226, 135, 145, 0}},
+{(unsigned char*)"Updownarrow", {226, 135, 149, 0}},
+{(unsigned char*)"UpperLeftArrow", {226, 134, 150, 0}},
+{(unsigned char*)"UpperRightArrow", {226, 134, 151, 0}},
+{(unsigned char*)"Upsi", {207, 146, 0}},
+{(unsigned char*)"Upsilon", {206, 165, 0}},
+{(unsigned char*)"Uring", {197, 174, 0}},
+{(unsigned char*)"Uscr", {240, 157, 146, 176, 0}},
+{(unsigned char*)"Utilde", {197, 168, 0}},
+{(unsigned char*)"Uuml", {195, 156, 0}},
+{(unsigned char*)"VDash", {226, 138, 171, 0}},
+{(unsigned char*)"Vbar", {226, 171, 171, 0}},
+{(unsigned char*)"Vcy", {208, 146, 0}},
+{(unsigned char*)"Vdash", {226, 138, 169, 0}},
+{(unsigned char*)"Vdashl", {226, 171, 166, 0}},
+{(unsigned char*)"Vee", {226, 139, 129, 0}},
+{(unsigned char*)"Verbar", {226, 128, 150, 0}},
+{(unsigned char*)"Vert", {226, 128, 150, 0}},
+{(unsigned char*)"VerticalBar", {226, 136, 163, 0}},
+{(unsigned char*)"VerticalLine", {124, 0}},
+{(unsigned char*)"VerticalSeparator", {226, 157, 152, 0}},
+{(unsigned char*)"VerticalTilde", {226, 137, 128, 0}},
+{(unsigned char*)"VeryThinSpace", {226, 128, 138, 0}},
+{(unsigned char*)"Vfr", {240, 157, 148, 153, 0}},
+{(unsigned char*)"Vopf", {240, 157, 149, 141, 0}},
+{(unsigned char*)"Vscr", {240, 157, 146, 177, 0}},
+{(unsigned char*)"Vvdash", {226, 138, 170, 0}},
+{(unsigned char*)"Wcirc", {197, 180, 0}},
+{(unsigned char*)"Wedge", {226, 139, 128, 0}},
+{(unsigned char*)"Wfr", {240, 157, 148, 154, 0}},
+{(unsigned char*)"Wopf", {240, 157, 149, 142, 0}},
+{(unsigned char*)"Wscr", {240, 157, 146, 178, 0}},
+{(unsigned char*)"Xfr", {240, 157, 148, 155, 0}},
+{(unsigned char*)"Xi", {206, 158, 0}},
+{(unsigned char*)"Xopf", {240, 157, 149, 143, 0}},
+{(unsigned char*)"Xscr", {240, 157, 146, 179, 0}},
+{(unsigned char*)"YAcy", {208, 175, 0}},
+{(unsigned char*)"YIcy", {208, 135, 0}},
+{(unsigned char*)"YUcy", {208, 174, 0}},
+{(unsigned char*)"Yacute", {195, 157, 0}},
+{(unsigned char*)"Ycirc", {197, 182, 0}},
+{(unsigned char*)"Ycy", {208, 171, 0}},
+{(unsigned char*)"Yfr", {240, 157, 148, 156, 0}},
+{(unsigned char*)"Yopf", {240, 157, 149, 144, 0}},
+{(unsigned char*)"Yscr", {240, 157, 146, 180, 0}},
+{(unsigned char*)"Yuml", {197, 184, 0}},
+{(unsigned char*)"ZHcy", {208, 150, 0}},
+{(unsigned char*)"Zacute", {197, 185, 0}},
+{(unsigned char*)"Zcaron", {197, 189, 0}},
+{(unsigned char*)"Zcy", {208, 151, 0}},
+{(unsigned char*)"Zdot", {197, 187, 0}},
+{(unsigned char*)"ZeroWidthSpace", {226, 128, 139, 0}},
+{(unsigned char*)"Zeta", {206, 150, 0}},
+{(unsigned char*)"Zfr", {226, 132, 168, 0}},
+{(unsigned char*)"Zopf", {226, 132, 164, 0}},
+{(unsigned char*)"Zscr", {240, 157, 146, 181, 0}},
+{(unsigned char*)"aacute", {195, 161, 0}},
+{(unsigned char*)"abreve", {196, 131, 0}},
+{(unsigned char*)"ac", {226, 136, 190, 0}},
+{(unsigned char*)"acE", {226, 136, 190, 204, 179, 0}},
+{(unsigned char*)"acd", {226, 136, 191, 0}},
+{(unsigned char*)"acirc", {195, 162, 0}},
+{(unsigned char*)"acute", {194, 180, 0}},
+{(unsigned char*)"acy", {208, 176, 0}},
+{(unsigned char*)"aelig", {195, 166, 0}},
+{(unsigned char*)"af", {226, 129, 161, 0}},
+{(unsigned char*)"afr", {240, 157, 148, 158, 0}},
+{(unsigned char*)"agrave", {195, 160, 0}},
+{(unsigned char*)"alefsym", {226, 132, 181, 0}},
+{(unsigned char*)"aleph", {226, 132, 181, 0}},
+{(unsigned char*)"alpha", {206, 177, 0}},
+{(unsigned char*)"amacr", {196, 129, 0}},
+{(unsigned char*)"amalg", {226, 168, 191, 0}},
+{(unsigned char*)"amp", {38, 0}},
+{(unsigned char*)"and", {226, 136, 167, 0}},
+{(unsigned char*)"andand", {226, 169, 149, 0}},
+{(unsigned char*)"andd", {226, 169, 156, 0}},
+{(unsigned char*)"andslope", {226, 169, 152, 0}},
+{(unsigned char*)"andv", {226, 169, 154, 0}},
+{(unsigned char*)"ang", {226, 136, 160, 0}},
+{(unsigned char*)"ange", {226, 166, 164, 0}},
+{(unsigned char*)"angle", {226, 136, 160, 0}},
+{(unsigned char*)"angmsd", {226, 136, 161, 0}},
+{(unsigned char*)"angmsdaa", {226, 166, 168, 0}},
+{(unsigned char*)"angmsdab", {226, 166, 169, 0}},
+{(unsigned char*)"angmsdac", {226, 166, 170, 0}},
+{(unsigned char*)"angmsdad", {226, 166, 171, 0}},
+{(unsigned char*)"angmsdae", {226, 166, 172, 0}},
+{(unsigned char*)"angmsdaf", {226, 166, 173, 0}},
+{(unsigned char*)"angmsdag", {226, 166, 174, 0}},
+{(unsigned char*)"angmsdah", {226, 166, 175, 0}},
+{(unsigned char*)"angrt", {226, 136, 159, 0}},
+{(unsigned char*)"angrtvb", {226, 138, 190, 0}},
+{(unsigned char*)"angrtvbd", {226, 166, 157, 0}},
+{(unsigned char*)"angsph", {226, 136, 162, 0}},
+{(unsigned char*)"angst", {195, 133, 0}},
+{(unsigned char*)"angzarr", {226, 141, 188, 0}},
+{(unsigned char*)"aogon", {196, 133, 0}},
+{(unsigned char*)"aopf", {240, 157, 149, 146, 0}},
+{(unsigned char*)"ap", {226, 137, 136, 0}},
+{(unsigned char*)"apE", {226, 169, 176, 0}},
+{(unsigned char*)"apacir", {226, 169, 175, 0}},
+{(unsigned char*)"ape", {226, 137, 138, 0}},
+{(unsigned char*)"apid", {226, 137, 139, 0}},
+{(unsigned char*)"apos", {39, 0}},
+{(unsigned char*)"approx", {226, 137, 136, 0}},
+{(unsigned char*)"approxeq", {226, 137, 138, 0}},
+{(unsigned char*)"aring", {195, 165, 0}},
+{(unsigned char*)"ascr", {240, 157, 146, 182, 0}},
+{(unsigned char*)"ast", {42, 0}},
+{(unsigned char*)"asymp", {226, 137, 136, 0}},
+{(unsigned char*)"asympeq", {226, 137, 141, 0}},
+{(unsigned char*)"atilde", {195, 163, 0}},
+{(unsigned char*)"auml", {195, 164, 0}},
+{(unsigned char*)"awconint", {226, 136, 179, 0}},
+{(unsigned char*)"awint", {226, 168, 145, 0}},
+{(unsigned char*)"bNot", {226, 171, 173, 0}},
+{(unsigned char*)"backcong", {226, 137, 140, 0}},
+{(unsigned char*)"backepsilon", {207, 182, 0}},
+{(unsigned char*)"backprime", {226, 128, 181, 0}},
+{(unsigned char*)"backsim", {226, 136, 189, 0}},
+{(unsigned char*)"backsimeq", {226, 139, 141, 0}},
+{(unsigned char*)"barvee", {226, 138, 189, 0}},
+{(unsigned char*)"barwed", {226, 140, 133, 0}},
+{(unsigned char*)"barwedge", {226, 140, 133, 0}},
+{(unsigned char*)"bbrk", {226, 142, 181, 0}},
+{(unsigned char*)"bbrktbrk", {226, 142, 182, 0}},
+{(unsigned char*)"bcong", {226, 137, 140, 0}},
+{(unsigned char*)"bcy", {208, 177, 0}},
+{(unsigned char*)"bdquo", {226, 128, 158, 0}},
+{(unsigned char*)"becaus", {226, 136, 181, 0}},
+{(unsigned char*)"because", {226, 136, 181, 0}},
+{(unsigned char*)"bemptyv", {226, 166, 176, 0}},
+{(unsigned char*)"bepsi", {207, 182, 0}},
+{(unsigned char*)"bernou", {226, 132, 172, 0}},
+{(unsigned char*)"beta", {206, 178, 0}},
+{(unsigned char*)"beth", {226, 132, 182, 0}},
+{(unsigned char*)"between", {226, 137, 172, 0}},
+{(unsigned char*)"bfr", {240, 157, 148, 159, 0}},
+{(unsigned char*)"bigcap", {226, 139, 130, 0}},
+{(unsigned char*)"bigcirc", {226, 151, 175, 0}},
+{(unsigned char*)"bigcup", {226, 139, 131, 0}},
+{(unsigned char*)"bigodot", {226, 168, 128, 0}},
+{(unsigned char*)"bigoplus", {226, 168, 129, 0}},
+{(unsigned char*)"bigotimes", {226, 168, 130, 0}},
+{(unsigned char*)"bigsqcup", {226, 168, 134, 0}},
+{(unsigned char*)"bigstar", {226, 152, 133, 0}},
+{(unsigned char*)"bigtriangledown", {226, 150, 189, 0}},
+{(unsigned char*)"bigtriangleup", {226, 150, 179, 0}},
+{(unsigned char*)"biguplus", {226, 168, 132, 0}},
+{(unsigned char*)"bigvee", {226, 139, 129, 0}},
+{(unsigned char*)"bigwedge", {226, 139, 128, 0}},
+{(unsigned char*)"bkarow", {226, 164, 141, 0}},
+{(unsigned char*)"blacklozenge", {226, 167, 171, 0}},
+{(unsigned char*)"blacksquare", {226, 150, 170, 0}},
+{(unsigned char*)"blacktriangle", {226, 150, 180, 0}},
+{(unsigned char*)"blacktriangledown", {226, 150, 190, 0}},
+{(unsigned char*)"blacktriangleleft", {226, 151, 130, 0}},
+{(unsigned char*)"blacktriangleright", {226, 150, 184, 0}},
+{(unsigned char*)"blank", {226, 144, 163, 0}},
+{(unsigned char*)"blk12", {226, 150, 146, 0}},
+{(unsigned char*)"blk14", {226, 150, 145, 0}},
+{(unsigned char*)"blk34", {226, 150, 147, 0}},
+{(unsigned char*)"block", {226, 150, 136, 0}},
+{(unsigned char*)"bne", {61, 226, 131, 165, 0}},
+{(unsigned char*)"bnequiv", {226, 137, 161, 226, 131, 165, 0}},
+{(unsigned char*)"bnot", {226, 140, 144, 0}},
+{(unsigned char*)"bopf", {240, 157, 149, 147, 0}},
+{(unsigned char*)"bot", {226, 138, 165, 0}},
+{(unsigned char*)"bottom", {226, 138, 165, 0}},
+{(unsigned char*)"bowtie", {226, 139, 136, 0}},
+{(unsigned char*)"boxDL", {226, 149, 151, 0}},
+{(unsigned char*)"boxDR", {226, 149, 148, 0}},
+{(unsigned char*)"boxDl", {226, 149, 150, 0}},
+{(unsigned char*)"boxDr", {226, 149, 147, 0}},
+{(unsigned char*)"boxH", {226, 149, 144, 0}},
+{(unsigned char*)"boxHD", {226, 149, 166, 0}},
+{(unsigned char*)"boxHU", {226, 149, 169, 0}},
+{(unsigned char*)"boxHd", {226, 149, 164, 0}},
+{(unsigned char*)"boxHu", {226, 149, 167, 0}},
+{(unsigned char*)"boxUL", {226, 149, 157, 0}},
+{(unsigned char*)"boxUR", {226, 149, 154, 0}},
+{(unsigned char*)"boxUl", {226, 149, 156, 0}},
+{(unsigned char*)"boxUr", {226, 149, 153, 0}},
+{(unsigned char*)"boxV", {226, 149, 145, 0}},
+{(unsigned char*)"boxVH", {226, 149, 172, 0}},
+{(unsigned char*)"boxVL", {226, 149, 163, 0}},
+{(unsigned char*)"boxVR", {226, 149, 160, 0}},
+{(unsigned char*)"boxVh", {226, 149, 171, 0}},
+{(unsigned char*)"boxVl", {226, 149, 162, 0}},
+{(unsigned char*)"boxVr", {226, 149, 159, 0}},
+{(unsigned char*)"boxbox", {226, 167, 137, 0}},
+{(unsigned char*)"boxdL", {226, 149, 149, 0}},
+{(unsigned char*)"boxdR", {226, 149, 146, 0}},
+{(unsigned char*)"boxdl", {226, 148, 144, 0}},
+{(unsigned char*)"boxdr", {226, 148, 140, 0}},
+{(unsigned char*)"boxh", {226, 148, 128, 0}},
+{(unsigned char*)"boxhD", {226, 149, 165, 0}},
+{(unsigned char*)"boxhU", {226, 149, 168, 0}},
+{(unsigned char*)"boxhd", {226, 148, 172, 0}},
+{(unsigned char*)"boxhu", {226, 148, 180, 0}},
+{(unsigned char*)"boxminus", {226, 138, 159, 0}},
+{(unsigned char*)"boxplus", {226, 138, 158, 0}},
+{(unsigned char*)"boxtimes", {226, 138, 160, 0}},
+{(unsigned char*)"boxuL", {226, 149, 155, 0}},
+{(unsigned char*)"boxuR", {226, 149, 152, 0}},
+{(unsigned char*)"boxul", {226, 148, 152, 0}},
+{(unsigned char*)"boxur", {226, 148, 148, 0}},
+{(unsigned char*)"boxv", {226, 148, 130, 0}},
+{(unsigned char*)"boxvH", {226, 149, 170, 0}},
+{(unsigned char*)"boxvL", {226, 149, 161, 0}},
+{(unsigned char*)"boxvR", {226, 149, 158, 0}},
+{(unsigned char*)"boxvh", {226, 148, 188, 0}},
+{(unsigned char*)"boxvl", {226, 148, 164, 0}},
+{(unsigned char*)"boxvr", {226, 148, 156, 0}},
+{(unsigned char*)"bprime", {226, 128, 181, 0}},
+{(unsigned char*)"breve", {203, 152, 0}},
+{(unsigned char*)"brvbar", {194, 166, 0}},
+{(unsigned char*)"bscr", {240, 157, 146, 183, 0}},
+{(unsigned char*)"bsemi", {226, 129, 143, 0}},
+{(unsigned char*)"bsim", {226, 136, 189, 0}},
+{(unsigned char*)"bsime", {226, 139, 141, 0}},
+{(unsigned char*)"bsol", {92, 0}},
+{(unsigned char*)"bsolb", {226, 167, 133, 0}},
+{(unsigned char*)"bsolhsub", {226, 159, 136, 0}},
+{(unsigned char*)"bull", {226, 128, 162, 0}},
+{(unsigned char*)"bullet", {226, 128, 162, 0}},
+{(unsigned char*)"bump", {226, 137, 142, 0}},
+{(unsigned char*)"bumpE", {226, 170, 174, 0}},
+{(unsigned char*)"bumpe", {226, 137, 143, 0}},
+{(unsigned char*)"bumpeq", {226, 137, 143, 0}},
+{(unsigned char*)"cacute", {196, 135, 0}},
+{(unsigned char*)"cap", {226, 136, 169, 0}},
+{(unsigned char*)"capand", {226, 169, 132, 0}},
+{(unsigned char*)"capbrcup", {226, 169, 137, 0}},
+{(unsigned char*)"capcap", {226, 169, 139, 0}},
+{(unsigned char*)"capcup", {226, 169, 135, 0}},
+{(unsigned char*)"capdot", {226, 169, 128, 0}},
+{(unsigned char*)"caps", {226, 136, 169, 239, 184, 128, 0}},
+{(unsigned char*)"caret", {226, 129, 129, 0}},
+{(unsigned char*)"caron", {203, 135, 0}},
+{(unsigned char*)"ccaps", {226, 169, 141, 0}},
+{(unsigned char*)"ccaron", {196, 141, 0}},
+{(unsigned char*)"ccedil", {195, 167, 0}},
+{(unsigned char*)"ccirc", {196, 137, 0}},
+{(unsigned char*)"ccups", {226, 169, 140, 0}},
+{(unsigned char*)"ccupssm", {226, 169, 144, 0}},
+{(unsigned char*)"cdot", {196, 139, 0}},
+{(unsigned char*)"cedil", {194, 184, 0}},
+{(unsigned char*)"cemptyv", {226, 166, 178, 0}},
+{(unsigned char*)"cent", {194, 162, 0}},
+{(unsigned char*)"centerdot", {194, 183, 0}},
+{(unsigned char*)"cfr", {240, 157, 148, 160, 0}},
+{(unsigned char*)"chcy", {209, 135, 0}},
+{(unsigned char*)"check", {226, 156, 147, 0}},
+{(unsigned char*)"checkmark", {226, 156, 147, 0}},
+{(unsigned char*)"chi", {207, 135, 0}},
+{(unsigned char*)"cir", {226, 151, 139, 0}},
+{(unsigned char*)"cirE", {226, 167, 131, 0}},
+{(unsigned char*)"circ", {203, 134, 0}},
+{(unsigned char*)"circeq", {226, 137, 151, 0}},
+{(unsigned char*)"circlearrowleft", {226, 134, 186, 0}},
+{(unsigned char*)"circlearrowright", {226, 134, 187, 0}},
+{(unsigned char*)"circledR", {194, 174, 0}},
+{(unsigned char*)"circledS", {226, 147, 136, 0}},
+{(unsigned char*)"circledast", {226, 138, 155, 0}},
+{(unsigned char*)"circledcirc", {226, 138, 154, 0}},
+{(unsigned char*)"circleddash", {226, 138, 157, 0}},
+{(unsigned char*)"cire", {226, 137, 151, 0}},
+{(unsigned char*)"cirfnint", {226, 168, 144, 0}},
+{(unsigned char*)"cirmid", {226, 171, 175, 0}},
+{(unsigned char*)"cirscir", {226, 167, 130, 0}},
+{(unsigned char*)"clubs", {226, 153, 163, 0}},
+{(unsigned char*)"clubsuit", {226, 153, 163, 0}},
+{(unsigned char*)"colon", {58, 0}},
+{(unsigned char*)"colone", {226, 137, 148, 0}},
+{(unsigned char*)"coloneq", {226, 137, 148, 0}},
+{(unsigned char*)"comma", {44, 0}},
+{(unsigned char*)"commat", {64, 0}},
+{(unsigned char*)"comp", {226, 136, 129, 0}},
+{(unsigned char*)"compfn", {226, 136, 152, 0}},
+{(unsigned char*)"complement", {226, 136, 129, 0}},
+{(unsigned char*)"complexes", {226, 132, 130, 0}},
+{(unsigned char*)"cong", {226, 137, 133, 0}},
+{(unsigned char*)"congdot", {226, 169, 173, 0}},
+{(unsigned char*)"conint", {226, 136, 174, 0}},
+{(unsigned char*)"copf", {240, 157, 149, 148, 0}},
+{(unsigned char*)"coprod", {226, 136, 144, 0}},
+{(unsigned char*)"copy", {194, 169, 0}},
+{(unsigned char*)"copysr", {226, 132, 151, 0}},
+{(unsigned char*)"crarr", {226, 134, 181, 0}},
+{(unsigned char*)"cross", {226, 156, 151, 0}},
+{(unsigned char*)"cscr", {240, 157, 146, 184, 0}},
+{(unsigned char*)"csub", {226, 171, 143, 0}},
+{(unsigned char*)"csube", {226, 171, 145, 0}},
+{(unsigned char*)"csup", {226, 171, 144, 0}},
+{(unsigned char*)"csupe", {226, 171, 146, 0}},
+{(unsigned char*)"ctdot", {226, 139, 175, 0}},
+{(unsigned char*)"cudarrl", {226, 164, 184, 0}},
+{(unsigned char*)"cudarrr", {226, 164, 181, 0}},
+{(unsigned char*)"cuepr", {226, 139, 158, 0}},
+{(unsigned char*)"cuesc", {226, 139, 159, 0}},
+{(unsigned char*)"cularr", {226, 134, 182, 0}},
+{(unsigned char*)"cularrp", {226, 164, 189, 0}},
+{(unsigned char*)"cup", {226, 136, 170, 0}},
+{(unsigned char*)"cupbrcap", {226, 169, 136, 0}},
+{(unsigned char*)"cupcap", {226, 169, 134, 0}},
+{(unsigned char*)"cupcup", {226, 169, 138, 0}},
+{(unsigned char*)"cupdot", {226, 138, 141, 0}},
+{(unsigned char*)"cupor", {226, 169, 133, 0}},
+{(unsigned char*)"cups", {226, 136, 170, 239, 184, 128, 0}},
+{(unsigned char*)"curarr", {226, 134, 183, 0}},
+{(unsigned char*)"curarrm", {226, 164, 188, 0}},
+{(unsigned char*)"curlyeqprec", {226, 139, 158, 0}},
+{(unsigned char*)"curlyeqsucc", {226, 139, 159, 0}},
+{(unsigned char*)"curlyvee", {226, 139, 142, 0}},
+{(unsigned char*)"curlywedge", {226, 139, 143, 0}},
+{(unsigned char*)"curren", {194, 164, 0}},
+{(unsigned char*)"curvearrowleft", {226, 134, 182, 0}},
+{(unsigned char*)"curvearrowright", {226, 134, 183, 0}},
+{(unsigned char*)"cuvee", {226, 139, 142, 0}},
+{(unsigned char*)"cuwed", {226, 139, 143, 0}},
+{(unsigned char*)"cwconint", {226, 136, 178, 0}},
+{(unsigned char*)"cwint", {226, 136, 177, 0}},
+{(unsigned char*)"cylcty", {226, 140, 173, 0}},
+{(unsigned char*)"dArr", {226, 135, 147, 0}},
+{(unsigned char*)"dHar", {226, 165, 165, 0}},
+{(unsigned char*)"dagger", {226, 128, 160, 0}},
+{(unsigned char*)"daleth", {226, 132, 184, 0}},
+{(unsigned char*)"darr", {226, 134, 147, 0}},
+{(unsigned char*)"dash", {226, 128, 144, 0}},
+{(unsigned char*)"dashv", {226, 138, 163, 0}},
+{(unsigned char*)"dbkarow", {226, 164, 143, 0}},
+{(unsigned char*)"dblac", {203, 157, 0}},
+{(unsigned char*)"dcaron", {196, 143, 0}},
+{(unsigned char*)"dcy", {208, 180, 0}},
+{(unsigned char*)"dd", {226, 133, 134, 0}},
+{(unsigned char*)"ddagger", {226, 128, 161, 0}},
+{(unsigned char*)"ddarr", {226, 135, 138, 0}},
+{(unsigned char*)"ddotseq", {226, 169, 183, 0}},
+{(unsigned char*)"deg", {194, 176, 0}},
+{(unsigned char*)"delta", {206, 180, 0}},
+{(unsigned char*)"demptyv", {226, 166, 177, 0}},
+{(unsigned char*)"dfisht", {226, 165, 191, 0}},
+{(unsigned char*)"dfr", {240, 157, 148, 161, 0}},
+{(unsigned char*)"dharl", {226, 135, 131, 0}},
+{(unsigned char*)"dharr", {226, 135, 130, 0}},
+{(unsigned char*)"diam", {226, 139, 132, 0}},
+{(unsigned char*)"diamond", {226, 139, 132, 0}},
+{(unsigned char*)"diamondsuit", {226, 153, 166, 0}},
+{(unsigned char*)"diams", {226, 153, 166, 0}},
+{(unsigned char*)"die", {194, 168, 0}},
+{(unsigned char*)"digamma", {207, 157, 0}},
+{(unsigned char*)"disin", {226, 139, 178, 0}},
+{(unsigned char*)"div", {195, 183, 0}},
+{(unsigned char*)"divide", {195, 183, 0}},
+{(unsigned char*)"divideontimes", {226, 139, 135, 0}},
+{(unsigned char*)"divonx", {226, 139, 135, 0}},
+{(unsigned char*)"djcy", {209, 146, 0}},
+{(unsigned char*)"dlcorn", {226, 140, 158, 0}},
+{(unsigned char*)"dlcrop", {226, 140, 141, 0}},
+{(unsigned char*)"dollar", {36, 0}},
+{(unsigned char*)"dopf", {240, 157, 149, 149, 0}},
+{(unsigned char*)"dot", {203, 153, 0}},
+{(unsigned char*)"doteq", {226, 137, 144, 0}},
+{(unsigned char*)"doteqdot", {226, 137, 145, 0}},
+{(unsigned char*)"dotminus", {226, 136, 184, 0}},
+{(unsigned char*)"dotplus", {226, 136, 148, 0}},
+{(unsigned char*)"dotsquare", {226, 138, 161, 0}},
+{(unsigned char*)"doublebarwedge", {226, 140, 134, 0}},
+{(unsigned char*)"downarrow", {226, 134, 147, 0}},
+{(unsigned char*)"downdownarrows", {226, 135, 138, 0}},
+{(unsigned char*)"downharpoonleft", {226, 135, 131, 0}},
+{(unsigned char*)"downharpoonright", {226, 135, 130, 0}},
+{(unsigned char*)"drbkarow", {226, 164, 144, 0}},
+{(unsigned char*)"drcorn", {226, 140, 159, 0}},
+{(unsigned char*)"drcrop", {226, 140, 140, 0}},
+{(unsigned char*)"dscr", {240, 157, 146, 185, 0}},
+{(unsigned char*)"dscy", {209, 149, 0}},
+{(unsigned char*)"dsol", {226, 167, 182, 0}},
+{(unsigned char*)"dstrok", {196, 145, 0}},
+{(unsigned char*)"dtdot", {226, 139, 177, 0}},
+{(unsigned char*)"dtri", {226, 150, 191, 0}},
+{(unsigned char*)"dtrif", {226, 150, 190, 0}},
+{(unsigned char*)"duarr", {226, 135, 181, 0}},
+{(unsigned char*)"duhar", {226, 165, 175, 0}},
+{(unsigned char*)"dwangle", {226, 166, 166, 0}},
+{(unsigned char*)"dzcy", {209, 159, 0}},
+{(unsigned char*)"dzigrarr", {226, 159, 191, 0}},
+{(unsigned char*)"eDDot", {226, 169, 183, 0}},
+{(unsigned char*)"eDot", {226, 137, 145, 0}},
+{(unsigned char*)"eacute", {195, 169, 0}},
+{(unsigned char*)"easter", {226, 169, 174, 0}},
+{(unsigned char*)"ecaron", {196, 155, 0}},
+{(unsigned char*)"ecir", {226, 137, 150, 0}},
+{(unsigned char*)"ecirc", {195, 170, 0}},
+{(unsigned char*)"ecolon", {226, 137, 149, 0}},
+{(unsigned char*)"ecy", {209, 141, 0}},
+{(unsigned char*)"edot", {196, 151, 0}},
+{(unsigned char*)"ee", {226, 133, 135, 0}},
+{(unsigned char*)"efDot", {226, 137, 146, 0}},
+{(unsigned char*)"efr", {240, 157, 148, 162, 0}},
+{(unsigned char*)"eg", {226, 170, 154, 0}},
+{(unsigned char*)"egrave", {195, 168, 0}},
+{(unsigned char*)"egs", {226, 170, 150, 0}},
+{(unsigned char*)"egsdot", {226, 170, 152, 0}},
+{(unsigned char*)"el", {226, 170, 153, 0}},
+{(unsigned char*)"elinters", {226, 143, 167, 0}},
+{(unsigned char*)"ell", {226, 132, 147, 0}},
+{(unsigned char*)"els", {226, 170, 149, 0}},
+{(unsigned char*)"elsdot", {226, 170, 151, 0}},
+{(unsigned char*)"emacr", {196, 147, 0}},
+{(unsigned char*)"empty", {226, 136, 133, 0}},
+{(unsigned char*)"emptyset", {226, 136, 133, 0}},
+{(unsigned char*)"emptyv", {226, 136, 133, 0}},
+{(unsigned char*)"emsp", {226, 128, 131, 0}},
+{(unsigned char*)"emsp13", {226, 128, 132, 0}},
+{(unsigned char*)"emsp14", {226, 128, 133, 0}},
+{(unsigned char*)"eng", {197, 139, 0}},
+{(unsigned char*)"ensp", {226, 128, 130, 0}},
+{(unsigned char*)"eogon", {196, 153, 0}},
+{(unsigned char*)"eopf", {240, 157, 149, 150, 0}},
+{(unsigned char*)"epar", {226, 139, 149, 0}},
+{(unsigned char*)"eparsl", {226, 167, 163, 0}},
+{(unsigned char*)"eplus", {226, 169, 177, 0}},
+{(unsigned char*)"epsi", {206, 181, 0}},
+{(unsigned char*)"epsilon", {206, 181, 0}},
+{(unsigned char*)"epsiv", {207, 181, 0}},
+{(unsigned char*)"eqcirc", {226, 137, 150, 0}},
+{(unsigned char*)"eqcolon", {226, 137, 149, 0}},
+{(unsigned char*)"eqsim", {226, 137, 130, 0}},
+{(unsigned char*)"eqslantgtr", {226, 170, 150, 0}},
+{(unsigned char*)"eqslantless", {226, 170, 149, 0}},
+{(unsigned char*)"equals", {61, 0}},
+{(unsigned char*)"equest", {226, 137, 159, 0}},
+{(unsigned char*)"equiv", {226, 137, 161, 0}},
+{(unsigned char*)"equivDD", {226, 169, 184, 0}},
+{(unsigned char*)"eqvparsl", {226, 167, 165, 0}},
+{(unsigned char*)"erDot", {226, 137, 147, 0}},
+{(unsigned char*)"erarr", {226, 165, 177, 0}},
+{(unsigned char*)"escr", {226, 132, 175, 0}},
+{(unsigned char*)"esdot", {226, 137, 144, 0}},
+{(unsigned char*)"esim", {226, 137, 130, 0}},
+{(unsigned char*)"eta", {206, 183, 0}},
+{(unsigned char*)"eth", {195, 176, 0}},
+{(unsigned char*)"euml", {195, 171, 0}},
+{(unsigned char*)"euro", {226, 130, 172, 0}},
+{(unsigned char*)"excl", {33, 0}},
+{(unsigned char*)"exist", {226, 136, 131, 0}},
+{(unsigned char*)"expectation", {226, 132, 176, 0}},
+{(unsigned char*)"exponentiale", {226, 133, 135, 0}},
+{(unsigned char*)"fallingdotseq", {226, 137, 146, 0}},
+{(unsigned char*)"fcy", {209, 132, 0}},
+{(unsigned char*)"female", {226, 153, 128, 0}},
+{(unsigned char*)"ffilig", {239, 172, 131, 0}},
+{(unsigned char*)"fflig", {239, 172, 128, 0}},
+{(unsigned char*)"ffllig", {239, 172, 132, 0}},
+{(unsigned char*)"ffr", {240, 157, 148, 163, 0}},
+{(unsigned char*)"filig", {239, 172, 129, 0}},
+{(unsigned char*)"fjlig", {102, 106, 0}},
+{(unsigned char*)"flat", {226, 153, 173, 0}},
+{(unsigned char*)"fllig", {239, 172, 130, 0}},
+{(unsigned char*)"fltns", {226, 150, 177, 0}},
+{(unsigned char*)"fnof", {198, 146, 0}},
+{(unsigned char*)"fopf", {240, 157, 149, 151, 0}},
+{(unsigned char*)"forall", {226, 136, 128, 0}},
+{(unsigned char*)"fork", {226, 139, 148, 0}},
+{(unsigned char*)"forkv", {226, 171, 153, 0}},
+{(unsigned char*)"fpartint", {226, 168, 141, 0}},
+{(unsigned char*)"frac12", {194, 189, 0}},
+{(unsigned char*)"frac13", {226, 133, 147, 0}},
+{(unsigned char*)"frac14", {194, 188, 0}},
+{(unsigned char*)"frac15", {226, 133, 149, 0}},
+{(unsigned char*)"frac16", {226, 133, 153, 0}},
+{(unsigned char*)"frac18", {226, 133, 155, 0}},
+{(unsigned char*)"frac23", {226, 133, 148, 0}},
+{(unsigned char*)"frac25", {226, 133, 150, 0}},
+{(unsigned char*)"frac34", {194, 190, 0}},
+{(unsigned char*)"frac35", {226, 133, 151, 0}},
+{(unsigned char*)"frac38", {226, 133, 156, 0}},
+{(unsigned char*)"frac45", {226, 133, 152, 0}},
+{(unsigned char*)"frac56", {226, 133, 154, 0}},
+{(unsigned char*)"frac58", {226, 133, 157, 0}},
+{(unsigned char*)"frac78", {226, 133, 158, 0}},
+{(unsigned char*)"frasl", {226, 129, 132, 0}},
+{(unsigned char*)"frown", {226, 140, 162, 0}},
+{(unsigned char*)"fscr", {240, 157, 146, 187, 0}},
+{(unsigned char*)"gE", {226, 137, 167, 0}},
+{(unsigned char*)"gEl", {226, 170, 140, 0}},
+{(unsigned char*)"gacute", {199, 181, 0}},
+{(unsigned char*)"gamma", {206, 179, 0}},
+{(unsigned char*)"gammad", {207, 157, 0}},
+{(unsigned char*)"gap", {226, 170, 134, 0}},
+{(unsigned char*)"gbreve", {196, 159, 0}},
+{(unsigned char*)"gcirc", {196, 157, 0}},
+{(unsigned char*)"gcy", {208, 179, 0}},
+{(unsigned char*)"gdot", {196, 161, 0}},
+{(unsigned char*)"ge", {226, 137, 165, 0}},
+{(unsigned char*)"gel", {226, 139, 155, 0}},
+{(unsigned char*)"geq", {226, 137, 165, 0}},
+{(unsigned char*)"geqq", {226, 137, 167, 0}},
+{(unsigned char*)"geqslant", {226, 169, 190, 0}},
+{(unsigned char*)"ges", {226, 169, 190, 0}},
+{(unsigned char*)"gescc", {226, 170, 169, 0}},
+{(unsigned char*)"gesdot", {226, 170, 128, 0}},
+{(unsigned char*)"gesdoto", {226, 170, 130, 0}},
+{(unsigned char*)"gesdotol", {226, 170, 132, 0}},
+{(unsigned char*)"gesl", {226, 139, 155, 239, 184, 128, 0}},
+{(unsigned char*)"gesles", {226, 170, 148, 0}},
+{(unsigned char*)"gfr", {240, 157, 148, 164, 0}},
+{(unsigned char*)"gg", {226, 137, 171, 0}},
+{(unsigned char*)"ggg", {226, 139, 153, 0}},
+{(unsigned char*)"gimel", {226, 132, 183, 0}},
+{(unsigned char*)"gjcy", {209, 147, 0}},
+{(unsigned char*)"gl", {226, 137, 183, 0}},
+{(unsigned char*)"glE", {226, 170, 146, 0}},
+{(unsigned char*)"gla", {226, 170, 165, 0}},
+{(unsigned char*)"glj", {226, 170, 164, 0}},
+{(unsigned char*)"gnE", {226, 137, 169, 0}},
+{(unsigned char*)"gnap", {226, 170, 138, 0}},
+{(unsigned char*)"gnapprox", {226, 170, 138, 0}},
+{(unsigned char*)"gne", {226, 170, 136, 0}},
+{(unsigned char*)"gneq", {226, 170, 136, 0}},
+{(unsigned char*)"gneqq", {226, 137, 169, 0}},
+{(unsigned char*)"gnsim", {226, 139, 167, 0}},
+{(unsigned char*)"gopf", {240, 157, 149, 152, 0}},
+{(unsigned char*)"grave", {96, 0}},
+{(unsigned char*)"gscr", {226, 132, 138, 0}},
+{(unsigned char*)"gsim", {226, 137, 179, 0}},
+{(unsigned char*)"gsime", {226, 170, 142, 0}},
+{(unsigned char*)"gsiml", {226, 170, 144, 0}},
+{(unsigned char*)"gt", {62, 0}},
+{(unsigned char*)"gtcc", {226, 170, 167, 0}},
+{(unsigned char*)"gtcir", {226, 169, 186, 0}},
+{(unsigned char*)"gtdot", {226, 139, 151, 0}},
+{(unsigned char*)"gtlPar", {226, 166, 149, 0}},
+{(unsigned char*)"gtquest", {226, 169, 188, 0}},
+{(unsigned char*)"gtrapprox", {226, 170, 134, 0}},
+{(unsigned char*)"gtrarr", {226, 165, 184, 0}},
+{(unsigned char*)"gtrdot", {226, 139, 151, 0}},
+{(unsigned char*)"gtreqless", {226, 139, 155, 0}},
+{(unsigned char*)"gtreqqless", {226, 170, 140, 0}},
+{(unsigned char*)"gtrless", {226, 137, 183, 0}},
+{(unsigned char*)"gtrsim", {226, 137, 179, 0}},
+{(unsigned char*)"gvertneqq", {226, 137, 169, 239, 184, 128, 0}},
+{(unsigned char*)"gvnE", {226, 137, 169, 239, 184, 128, 0}},
+{(unsigned char*)"hArr", {226, 135, 148, 0}},
+{(unsigned char*)"hairsp", {226, 128, 138, 0}},
+{(unsigned char*)"half", {194, 189, 0}},
+{(unsigned char*)"hamilt", {226, 132, 139, 0}},
+{(unsigned char*)"hardcy", {209, 138, 0}},
+{(unsigned char*)"harr", {226, 134, 148, 0}},
+{(unsigned char*)"harrcir", {226, 165, 136, 0}},
+{(unsigned char*)"harrw", {226, 134, 173, 0}},
+{(unsigned char*)"hbar", {226, 132, 143, 0}},
+{(unsigned char*)"hcirc", {196, 165, 0}},
+{(unsigned char*)"hearts", {226, 153, 165, 0}},
+{(unsigned char*)"heartsuit", {226, 153, 165, 0}},
+{(unsigned char*)"hellip", {226, 128, 166, 0}},
+{(unsigned char*)"hercon", {226, 138, 185, 0}},
+{(unsigned char*)"hfr", {240, 157, 148, 165, 0}},
+{(unsigned char*)"hksearow", {226, 164, 165, 0}},
+{(unsigned char*)"hkswarow", {226, 164, 166, 0}},
+{(unsigned char*)"hoarr", {226, 135, 191, 0}},
+{(unsigned char*)"homtht", {226, 136, 187, 0}},
+{(unsigned char*)"hookleftarrow", {226, 134, 169, 0}},
+{(unsigned char*)"hookrightarrow", {226, 134, 170, 0}},
+{(unsigned char*)"hopf", {240, 157, 149, 153, 0}},
+{(unsigned char*)"horbar", {226, 128, 149, 0}},
+{(unsigned char*)"hscr", {240, 157, 146, 189, 0}},
+{(unsigned char*)"hslash", {226, 132, 143, 0}},
+{(unsigned char*)"hstrok", {196, 167, 0}},
+{(unsigned char*)"hybull", {226, 129, 131, 0}},
+{(unsigned char*)"hyphen", {226, 128, 144, 0}},
+{(unsigned char*)"iacute", {195, 173, 0}},
+{(unsigned char*)"ic", {226, 129, 163, 0}},
+{(unsigned char*)"icirc", {195, 174, 0}},
+{(unsigned char*)"icy", {208, 184, 0}},
+{(unsigned char*)"iecy", {208, 181, 0}},
+{(unsigned char*)"iexcl", {194, 161, 0}},
+{(unsigned char*)"iff", {226, 135, 148, 0}},
+{(unsigned char*)"ifr", {240, 157, 148, 166, 0}},
+{(unsigned char*)"igrave", {195, 172, 0}},
+{(unsigned char*)"ii", {226, 133, 136, 0}},
+{(unsigned char*)"iiiint", {226, 168, 140, 0}},
+{(unsigned char*)"iiint", {226, 136, 173, 0}},
+{(unsigned char*)"iinfin", {226, 167, 156, 0}},
+{(unsigned char*)"iiota", {226, 132, 169, 0}},
+{(unsigned char*)"ijlig", {196, 179, 0}},
+{(unsigned char*)"imacr", {196, 171, 0}},
+{(unsigned char*)"image", {226, 132, 145, 0}},
+{(unsigned char*)"imagline", {226, 132, 144, 0}},
+{(unsigned char*)"imagpart", {226, 132, 145, 0}},
+{(unsigned char*)"imath", {196, 177, 0}},
+{(unsigned char*)"imof", {226, 138, 183, 0}},
+{(unsigned char*)"imped", {198, 181, 0}},
+{(unsigned char*)"in", {226, 136, 136, 0}},
+{(unsigned char*)"incare", {226, 132, 133, 0}},
+{(unsigned char*)"infin", {226, 136, 158, 0}},
+{(unsigned char*)"infintie", {226, 167, 157, 0}},
+{(unsigned char*)"inodot", {196, 177, 0}},
+{(unsigned char*)"int", {226, 136, 171, 0}},
+{(unsigned char*)"intcal", {226, 138, 186, 0}},
+{(unsigned char*)"integers", {226, 132, 164, 0}},
+{(unsigned char*)"intercal", {226, 138, 186, 0}},
+{(unsigned char*)"intlarhk", {226, 168, 151, 0}},
+{(unsigned char*)"intprod", {226, 168, 188, 0}},
+{(unsigned char*)"iocy", {209, 145, 0}},
+{(unsigned char*)"iogon", {196, 175, 0}},
+{(unsigned char*)"iopf", {240, 157, 149, 154, 0}},
+{(unsigned char*)"iota", {206, 185, 0}},
+{(unsigned char*)"iprod", {226, 168, 188, 0}},
+{(unsigned char*)"iquest", {194, 191, 0}},
+{(unsigned char*)"iscr", {240, 157, 146, 190, 0}},
+{(unsigned char*)"isin", {226, 136, 136, 0}},
+{(unsigned char*)"isinE", {226, 139, 185, 0}},
+{(unsigned char*)"isindot", {226, 139, 181, 0}},
+{(unsigned char*)"isins", {226, 139, 180, 0}},
+{(unsigned char*)"isinsv", {226, 139, 179, 0}},
+{(unsigned char*)"isinv", {226, 136, 136, 0}},
+{(unsigned char*)"it", {226, 129, 162, 0}},
+{(unsigned char*)"itilde", {196, 169, 0}},
+{(unsigned char*)"iukcy", {209, 150, 0}},
+{(unsigned char*)"iuml", {195, 175, 0}},
+{(unsigned char*)"jcirc", {196, 181, 0}},
+{(unsigned char*)"jcy", {208, 185, 0}},
+{(unsigned char*)"jfr", {240, 157, 148, 167, 0}},
+{(unsigned char*)"jmath", {200, 183, 0}},
+{(unsigned char*)"jopf", {240, 157, 149, 155, 0}},
+{(unsigned char*)"jscr", {240, 157, 146, 191, 0}},
+{(unsigned char*)"jsercy", {209, 152, 0}},
+{(unsigned char*)"jukcy", {209, 148, 0}},
+{(unsigned char*)"kappa", {206, 186, 0}},
+{(unsigned char*)"kappav", {207, 176, 0}},
+{(unsigned char*)"kcedil", {196, 183, 0}},
+{(unsigned char*)"kcy", {208, 186, 0}},
+{(unsigned char*)"kfr", {240, 157, 148, 168, 0}},
+{(unsigned char*)"kgreen", {196, 184, 0}},
+{(unsigned char*)"khcy", {209, 133, 0}},
+{(unsigned char*)"kjcy", {209, 156, 0}},
+{(unsigned char*)"kopf", {240, 157, 149, 156, 0}},
+{(unsigned char*)"kscr", {240, 157, 147, 128, 0}},
+{(unsigned char*)"lAarr", {226, 135, 154, 0}},
+{(unsigned char*)"lArr", {226, 135, 144, 0}},
+{(unsigned char*)"lAtail", {226, 164, 155, 0}},
+{(unsigned char*)"lBarr", {226, 164, 142, 0}},
+{(unsigned char*)"lE", {226, 137, 166, 0}},
+{(unsigned char*)"lEg", {226, 170, 139, 0}},
+{(unsigned char*)"lHar", {226, 165, 162, 0}},
+{(unsigned char*)"lacute", {196, 186, 0}},
+{(unsigned char*)"laemptyv", {226, 166, 180, 0}},
+{(unsigned char*)"lagran", {226, 132, 146, 0}},
+{(unsigned char*)"lambda", {206, 187, 0}},
+{(unsigned char*)"lang", {226, 159, 168, 0}},
+{(unsigned char*)"langd", {226, 166, 145, 0}},
+{(unsigned char*)"langle", {226, 159, 168, 0}},
+{(unsigned char*)"lap", {226, 170, 133, 0}},
+{(unsigned char*)"laquo", {194, 171, 0}},
+{(unsigned char*)"larr", {226, 134, 144, 0}},
+{(unsigned char*)"larrb", {226, 135, 164, 0}},
+{(unsigned char*)"larrbfs", {226, 164, 159, 0}},
+{(unsigned char*)"larrfs", {226, 164, 157, 0}},
+{(unsigned char*)"larrhk", {226, 134, 169, 0}},
+{(unsigned char*)"larrlp", {226, 134, 171, 0}},
+{(unsigned char*)"larrpl", {226, 164, 185, 0}},
+{(unsigned char*)"larrsim", {226, 165, 179, 0}},
+{(unsigned char*)"larrtl", {226, 134, 162, 0}},
+{(unsigned char*)"lat", {226, 170, 171, 0}},
+{(unsigned char*)"latail", {226, 164, 153, 0}},
+{(unsigned char*)"late", {226, 170, 173, 0}},
+{(unsigned char*)"lates", {226, 170, 173, 239, 184, 128, 0}},
+{(unsigned char*)"lbarr", {226, 164, 140, 0}},
+{(unsigned char*)"lbbrk", {226, 157, 178, 0}},
+{(unsigned char*)"lbrace", {123, 0}},
+{(unsigned char*)"lbrack", {91, 0}},
+{(unsigned char*)"lbrke", {226, 166, 139, 0}},
+{(unsigned char*)"lbrksld", {226, 166, 143, 0}},
+{(unsigned char*)"lbrkslu", {226, 166, 141, 0}},
+{(unsigned char*)"lcaron", {196, 190, 0}},
+{(unsigned char*)"lcedil", {196, 188, 0}},
+{(unsigned char*)"lceil", {226, 140, 136, 0}},
+{(unsigned char*)"lcub", {123, 0}},
+{(unsigned char*)"lcy", {208, 187, 0}},
+{(unsigned char*)"ldca", {226, 164, 182, 0}},
+{(unsigned char*)"ldquo", {226, 128, 156, 0}},
+{(unsigned char*)"ldquor", {226, 128, 158, 0}},
+{(unsigned char*)"ldrdhar", {226, 165, 167, 0}},
+{(unsigned char*)"ldrushar", {226, 165, 139, 0}},
+{(unsigned char*)"ldsh", {226, 134, 178, 0}},
+{(unsigned char*)"le", {226, 137, 164, 0}},
+{(unsigned char*)"leftarrow", {226, 134, 144, 0}},
+{(unsigned char*)"leftarrowtail", {226, 134, 162, 0}},
+{(unsigned char*)"leftharpoondown", {226, 134, 189, 0}},
+{(unsigned char*)"leftharpoonup", {226, 134, 188, 0}},
+{(unsigned char*)"leftleftarrows", {226, 135, 135, 0}},
+{(unsigned char*)"leftrightarrow", {226, 134, 148, 0}},
+{(unsigned char*)"leftrightarrows", {226, 135, 134, 0}},
+{(unsigned char*)"leftrightharpoons", {226, 135, 139, 0}},
+{(unsigned char*)"leftrightsquigarrow", {226, 134, 173, 0}},
+{(unsigned char*)"leftthreetimes", {226, 139, 139, 0}},
+{(unsigned char*)"leg", {226, 139, 154, 0}},
+{(unsigned char*)"leq", {226, 137, 164, 0}},
+{(unsigned char*)"leqq", {226, 137, 166, 0}},
+{(unsigned char*)"leqslant", {226, 169, 189, 0}},
+{(unsigned char*)"les", {226, 169, 189, 0}},
+{(unsigned char*)"lescc", {226, 170, 168, 0}},
+{(unsigned char*)"lesdot", {226, 169, 191, 0}},
+{(unsigned char*)"lesdoto", {226, 170, 129, 0}},
+{(unsigned char*)"lesdotor", {226, 170, 131, 0}},
+{(unsigned char*)"lesg", {226, 139, 154, 239, 184, 128, 0}},
+{(unsigned char*)"lesges", {226, 170, 147, 0}},
+{(unsigned char*)"lessapprox", {226, 170, 133, 0}},
+{(unsigned char*)"lessdot", {226, 139, 150, 0}},
+{(unsigned char*)"lesseqgtr", {226, 139, 154, 0}},
+{(unsigned char*)"lesseqqgtr", {226, 170, 139, 0}},
+{(unsigned char*)"lessgtr", {226, 137, 182, 0}},
+{(unsigned char*)"lesssim", {226, 137, 178, 0}},
+{(unsigned char*)"lfisht", {226, 165, 188, 0}},
+{(unsigned char*)"lfloor", {226, 140, 138, 0}},
+{(unsigned char*)"lfr", {240, 157, 148, 169, 0}},
+{(unsigned char*)"lg", {226, 137, 182, 0}},
+{(unsigned char*)"lgE", {226, 170, 145, 0}},
+{(unsigned char*)"lhard", {226, 134, 189, 0}},
+{(unsigned char*)"lharu", {226, 134, 188, 0}},
+{(unsigned char*)"lharul", {226, 165, 170, 0}},
+{(unsigned char*)"lhblk", {226, 150, 132, 0}},
+{(unsigned char*)"ljcy", {209, 153, 0}},
+{(unsigned char*)"ll", {226, 137, 170, 0}},
+{(unsigned char*)"llarr", {226, 135, 135, 0}},
+{(unsigned char*)"llcorner", {226, 140, 158, 0}},
+{(unsigned char*)"llhard", {226, 165, 171, 0}},
+{(unsigned char*)"lltri", {226, 151, 186, 0}},
+{(unsigned char*)"lmidot", {197, 128, 0}},
+{(unsigned char*)"lmoust", {226, 142, 176, 0}},
+{(unsigned char*)"lmoustache", {226, 142, 176, 0}},
+{(unsigned char*)"lnE", {226, 137, 168, 0}},
+{(unsigned char*)"lnap", {226, 170, 137, 0}},
+{(unsigned char*)"lnapprox", {226, 170, 137, 0}},
+{(unsigned char*)"lne", {226, 170, 135, 0}},
+{(unsigned char*)"lneq", {226, 170, 135, 0}},
+{(unsigned char*)"lneqq", {226, 137, 168, 0}},
+{(unsigned char*)"lnsim", {226, 139, 166, 0}},
+{(unsigned char*)"loang", {226, 159, 172, 0}},
+{(unsigned char*)"loarr", {226, 135, 189, 0}},
+{(unsigned char*)"lobrk", {226, 159, 166, 0}},
+{(unsigned char*)"longleftarrow", {226, 159, 181, 0}},
+{(unsigned char*)"longleftrightarrow", {226, 159, 183, 0}},
+{(unsigned char*)"longmapsto", {226, 159, 188, 0}},
+{(unsigned char*)"longrightarrow", {226, 159, 182, 0}},
+{(unsigned char*)"looparrowleft", {226, 134, 171, 0}},
+{(unsigned char*)"looparrowright", {226, 134, 172, 0}},
+{(unsigned char*)"lopar", {226, 166, 133, 0}},
+{(unsigned char*)"lopf", {240, 157, 149, 157, 0}},
+{(unsigned char*)"loplus", {226, 168, 173, 0}},
+{(unsigned char*)"lotimes", {226, 168, 180, 0}},
+{(unsigned char*)"lowast", {226, 136, 151, 0}},
+{(unsigned char*)"lowbar", {95, 0}},
+{(unsigned char*)"loz", {226, 151, 138, 0}},
+{(unsigned char*)"lozenge", {226, 151, 138, 0}},
+{(unsigned char*)"lozf", {226, 167, 171, 0}},
+{(unsigned char*)"lpar", {40, 0}},
+{(unsigned char*)"lparlt", {226, 166, 147, 0}},
+{(unsigned char*)"lrarr", {226, 135, 134, 0}},
+{(unsigned char*)"lrcorner", {226, 140, 159, 0}},
+{(unsigned char*)"lrhar", {226, 135, 139, 0}},
+{(unsigned char*)"lrhard", {226, 165, 173, 0}},
+{(unsigned char*)"lrm", {226, 128, 142, 0}},
+{(unsigned char*)"lrtri", {226, 138, 191, 0}},
+{(unsigned char*)"lsaquo", {226, 128, 185, 0}},
+{(unsigned char*)"lscr", {240, 157, 147, 129, 0}},
+{(unsigned char*)"lsh", {226, 134, 176, 0}},
+{(unsigned char*)"lsim", {226, 137, 178, 0}},
+{(unsigned char*)"lsime", {226, 170, 141, 0}},
+{(unsigned char*)"lsimg", {226, 170, 143, 0}},
+{(unsigned char*)"lsqb", {91, 0}},
+{(unsigned char*)"lsquo", {226, 128, 152, 0}},
+{(unsigned char*)"lsquor", {226, 128, 154, 0}},
+{(unsigned char*)"lstrok", {197, 130, 0}},
+{(unsigned char*)"lt", {60, 0}},
+{(unsigned char*)"ltcc", {226, 170, 166, 0}},
+{(unsigned char*)"ltcir", {226, 169, 185, 0}},
+{(unsigned char*)"ltdot", {226, 139, 150, 0}},
+{(unsigned char*)"lthree", {226, 139, 139, 0}},
+{(unsigned char*)"ltimes", {226, 139, 137, 0}},
+{(unsigned char*)"ltlarr", {226, 165, 182, 0}},
+{(unsigned char*)"ltquest", {226, 169, 187, 0}},
+{(unsigned char*)"ltrPar", {226, 166, 150, 0}},
+{(unsigned char*)"ltri", {226, 151, 131, 0}},
+{(unsigned char*)"ltrie", {226, 138, 180, 0}},
+{(unsigned char*)"ltrif", {226, 151, 130, 0}},
+{(unsigned char*)"lurdshar", {226, 165, 138, 0}},
+{(unsigned char*)"luruhar", {226, 165, 166, 0}},
+{(unsigned char*)"lvertneqq", {226, 137, 168, 239, 184, 128, 0}},
+{(unsigned char*)"lvnE", {226, 137, 168, 239, 184, 128, 0}},
+{(unsigned char*)"mDDot", {226, 136, 186, 0}},
+{(unsigned char*)"macr", {194, 175, 0}},
+{(unsigned char*)"male", {226, 153, 130, 0}},
+{(unsigned char*)"malt", {226, 156, 160, 0}},
+{(unsigned char*)"maltese", {226, 156, 160, 0}},
+{(unsigned char*)"map", {226, 134, 166, 0}},
+{(unsigned char*)"mapsto", {226, 134, 166, 0}},
+{(unsigned char*)"mapstodown", {226, 134, 167, 0}},
+{(unsigned char*)"mapstoleft", {226, 134, 164, 0}},
+{(unsigned char*)"mapstoup", {226, 134, 165, 0}},
+{(unsigned char*)"marker", {226, 150, 174, 0}},
+{(unsigned char*)"mcomma", {226, 168, 169, 0}},
+{(unsigned char*)"mcy", {208, 188, 0}},
+{(unsigned char*)"mdash", {226, 128, 148, 0}},
+{(unsigned char*)"measuredangle", {226, 136, 161, 0}},
+{(unsigned char*)"mfr", {240, 157, 148, 170, 0}},
+{(unsigned char*)"mho", {226, 132, 167, 0}},
+{(unsigned char*)"micro", {194, 181, 0}},
+{(unsigned char*)"mid", {226, 136, 163, 0}},
+{(unsigned char*)"midast", {42, 0}},
+{(unsigned char*)"midcir", {226, 171, 176, 0}},
+{(unsigned char*)"middot", {194, 183, 0}},
+{(unsigned char*)"minus", {226, 136, 146, 0}},
+{(unsigned char*)"minusb", {226, 138, 159, 0}},
+{(unsigned char*)"minusd", {226, 136, 184, 0}},
+{(unsigned char*)"minusdu", {226, 168, 170, 0}},
+{(unsigned char*)"mlcp", {226, 171, 155, 0}},
+{(unsigned char*)"mldr", {226, 128, 166, 0}},
+{(unsigned char*)"mnplus", {226, 136, 147, 0}},
+{(unsigned char*)"models", {226, 138, 167, 0}},
+{(unsigned char*)"mopf", {240, 157, 149, 158, 0}},
+{(unsigned char*)"mp", {226, 136, 147, 0}},
+{(unsigned char*)"mscr", {240, 157, 147, 130, 0}},
+{(unsigned char*)"mstpos", {226, 136, 190, 0}},
+{(unsigned char*)"mu", {206, 188, 0}},
+{(unsigned char*)"multimap", {226, 138, 184, 0}},
+{(unsigned char*)"mumap", {226, 138, 184, 0}},
+{(unsigned char*)"nGg", {226, 139, 153, 204, 184, 0}},
+{(unsigned char*)"nGt", {226, 137, 171, 226, 131, 146, 0}},
+{(unsigned char*)"nGtv", {226, 137, 171, 204, 184, 0}},
+{(unsigned char*)"nLeftarrow", {226, 135, 141, 0}},
+{(unsigned char*)"nLeftrightarrow", {226, 135, 142, 0}},
+{(unsigned char*)"nLl", {226, 139, 152, 204, 184, 0}},
+{(unsigned char*)"nLt", {226, 137, 170, 226, 131, 146, 0}},
+{(unsigned char*)"nLtv", {226, 137, 170, 204, 184, 0}},
+{(unsigned char*)"nRightarrow", {226, 135, 143, 0}},
+{(unsigned char*)"nVDash", {226, 138, 175, 0}},
+{(unsigned char*)"nVdash", {226, 138, 174, 0}},
+{(unsigned char*)"nabla", {226, 136, 135, 0}},
+{(unsigned char*)"nacute", {197, 132, 0}},
+{(unsigned char*)"nang", {226, 136, 160, 226, 131, 146, 0}},
+{(unsigned char*)"nap", {226, 137, 137, 0}},
+{(unsigned char*)"napE", {226, 169, 176, 204, 184, 0}},
+{(unsigned char*)"napid", {226, 137, 139, 204, 184, 0}},
+{(unsigned char*)"napos", {197, 137, 0}},
+{(unsigned char*)"napprox", {226, 137, 137, 0}},
+{(unsigned char*)"natur", {226, 153, 174, 0}},
+{(unsigned char*)"natural", {226, 153, 174, 0}},
+{(unsigned char*)"naturals", {226, 132, 149, 0}},
+{(unsigned char*)"nbsp", {194, 160, 0}},
+{(unsigned char*)"nbump", {226, 137, 142, 204, 184, 0}},
+{(unsigned char*)"nbumpe", {226, 137, 143, 204, 184, 0}},
+{(unsigned char*)"ncap", {226, 169, 131, 0}},
+{(unsigned char*)"ncaron", {197, 136, 0}},
+{(unsigned char*)"ncedil", {197, 134, 0}},
+{(unsigned char*)"ncong", {226, 137, 135, 0}},
+{(unsigned char*)"ncongdot", {226, 169, 173, 204, 184, 0}},
+{(unsigned char*)"ncup", {226, 169, 130, 0}},
+{(unsigned char*)"ncy", {208, 189, 0}},
+{(unsigned char*)"ndash", {226, 128, 147, 0}},
+{(unsigned char*)"ne", {226, 137, 160, 0}},
+{(unsigned char*)"neArr", {226, 135, 151, 0}},
+{(unsigned char*)"nearhk", {226, 164, 164, 0}},
+{(unsigned char*)"nearr", {226, 134, 151, 0}},
+{(unsigned char*)"nearrow", {226, 134, 151, 0}},
+{(unsigned char*)"nedot", {226, 137, 144, 204, 184, 0}},
+{(unsigned char*)"nequiv", {226, 137, 162, 0}},
+{(unsigned char*)"nesear", {226, 164, 168, 0}},
+{(unsigned char*)"nesim", {226, 137, 130, 204, 184, 0}},
+{(unsigned char*)"nexist", {226, 136, 132, 0}},
+{(unsigned char*)"nexists", {226, 136, 132, 0}},
+{(unsigned char*)"nfr", {240, 157, 148, 171, 0}},
+{(unsigned char*)"ngE", {226, 137, 167, 204, 184, 0}},
+{(unsigned char*)"nge", {226, 137, 177, 0}},
+{(unsigned char*)"ngeq", {226, 137, 177, 0}},
+{(unsigned char*)"ngeqq", {226, 137, 167, 204, 184, 0}},
+{(unsigned char*)"ngeqslant", {226, 169, 190, 204, 184, 0}},
+{(unsigned char*)"nges", {226, 169, 190, 204, 184, 0}},
+{(unsigned char*)"ngsim", {226, 137, 181, 0}},
+{(unsigned char*)"ngt", {226, 137, 175, 0}},
+{(unsigned char*)"ngtr", {226, 137, 175, 0}},
+{(unsigned char*)"nhArr", {226, 135, 142, 0}},
+{(unsigned char*)"nharr", {226, 134, 174, 0}},
+{(unsigned char*)"nhpar", {226, 171, 178, 0}},
+{(unsigned char*)"ni", {226, 136, 139, 0}},
+{(unsigned char*)"nis", {226, 139, 188, 0}},
+{(unsigned char*)"nisd", {226, 139, 186, 0}},
+{(unsigned char*)"niv", {226, 136, 139, 0}},
+{(unsigned char*)"njcy", {209, 154, 0}},
+{(unsigned char*)"nlArr", {226, 135, 141, 0}},
+{(unsigned char*)"nlE", {226, 137, 166, 204, 184, 0}},
+{(unsigned char*)"nlarr", {226, 134, 154, 0}},
+{(unsigned char*)"nldr", {226, 128, 165, 0}},
+{(unsigned char*)"nle", {226, 137, 176, 0}},
+{(unsigned char*)"nleftarrow", {226, 134, 154, 0}},
+{(unsigned char*)"nleftrightarrow", {226, 134, 174, 0}},
+{(unsigned char*)"nleq", {226, 137, 176, 0}},
+{(unsigned char*)"nleqq", {226, 137, 166, 204, 184, 0}},
+{(unsigned char*)"nleqslant", {226, 169, 189, 204, 184, 0}},
+{(unsigned char*)"nles", {226, 169, 189, 204, 184, 0}},
+{(unsigned char*)"nless", {226, 137, 174, 0}},
+{(unsigned char*)"nlsim", {226, 137, 180, 0}},
+{(unsigned char*)"nlt", {226, 137, 174, 0}},
+{(unsigned char*)"nltri", {226, 139, 170, 0}},
+{(unsigned char*)"nltrie", {226, 139, 172, 0}},
+{(unsigned char*)"nmid", {226, 136, 164, 0}},
+{(unsigned char*)"nopf", {240, 157, 149, 159, 0}},
+{(unsigned char*)"not", {194, 172, 0}},
+{(unsigned char*)"notin", {226, 136, 137, 0}},
+{(unsigned char*)"notinE", {226, 139, 185, 204, 184, 0}},
+{(unsigned char*)"notindot", {226, 139, 181, 204, 184, 0}},
+{(unsigned char*)"notinva", {226, 136, 137, 0}},
+{(unsigned char*)"notinvb", {226, 139, 183, 0}},
+{(unsigned char*)"notinvc", {226, 139, 182, 0}},
+{(unsigned char*)"notni", {226, 136, 140, 0}},
+{(unsigned char*)"notniva", {226, 136, 140, 0}},
+{(unsigned char*)"notnivb", {226, 139, 190, 0}},
+{(unsigned char*)"notnivc", {226, 139, 189, 0}},
+{(unsigned char*)"npar", {226, 136, 166, 0}},
+{(unsigned char*)"nparallel", {226, 136, 166, 0}},
+{(unsigned char*)"nparsl", {226, 171, 189, 226, 131, 165, 0}},
+{(unsigned char*)"npart", {226, 136, 130, 204, 184, 0}},
+{(unsigned char*)"npolint", {226, 168, 148, 0}},
+{(unsigned char*)"npr", {226, 138, 128, 0}},
+{(unsigned char*)"nprcue", {226, 139, 160, 0}},
+{(unsigned char*)"npre", {226, 170, 175, 204, 184, 0}},
+{(unsigned char*)"nprec", {226, 138, 128, 0}},
+{(unsigned char*)"npreceq", {226, 170, 175, 204, 184, 0}},
+{(unsigned char*)"nrArr", {226, 135, 143, 0}},
+{(unsigned char*)"nrarr", {226, 134, 155, 0}},
+{(unsigned char*)"nrarrc", {226, 164, 179, 204, 184, 0}},
+{(unsigned char*)"nrarrw", {226, 134, 157, 204, 184, 0}},
+{(unsigned char*)"nrightarrow", {226, 134, 155, 0}},
+{(unsigned char*)"nrtri", {226, 139, 171, 0}},
+{(unsigned char*)"nrtrie", {226, 139, 173, 0}},
+{(unsigned char*)"nsc", {226, 138, 129, 0}},
+{(unsigned char*)"nsccue", {226, 139, 161, 0}},
+{(unsigned char*)"nsce", {226, 170, 176, 204, 184, 0}},
+{(unsigned char*)"nscr", {240, 157, 147, 131, 0}},
+{(unsigned char*)"nshortmid", {226, 136, 164, 0}},
+{(unsigned char*)"nshortparallel", {226, 136, 166, 0}},
+{(unsigned char*)"nsim", {226, 137, 129, 0}},
+{(unsigned char*)"nsime", {226, 137, 132, 0}},
+{(unsigned char*)"nsimeq", {226, 137, 132, 0}},
+{(unsigned char*)"nsmid", {226, 136, 164, 0}},
+{(unsigned char*)"nspar", {226, 136, 166, 0}},
+{(unsigned char*)"nsqsube", {226, 139, 162, 0}},
+{(unsigned char*)"nsqsupe", {226, 139, 163, 0}},
+{(unsigned char*)"nsub", {226, 138, 132, 0}},
+{(unsigned char*)"nsubE", {226, 171, 133, 204, 184, 0}},
+{(unsigned char*)"nsube", {226, 138, 136, 0}},
+{(unsigned char*)"nsubset", {226, 138, 130, 226, 131, 146, 0}},
+{(unsigned char*)"nsubseteq", {226, 138, 136, 0}},
+{(unsigned char*)"nsubseteqq", {226, 171, 133, 204, 184, 0}},
+{(unsigned char*)"nsucc", {226, 138, 129, 0}},
+{(unsigned char*)"nsucceq", {226, 170, 176, 204, 184, 0}},
+{(unsigned char*)"nsup", {226, 138, 133, 0}},
+{(unsigned char*)"nsupE", {226, 171, 134, 204, 184, 0}},
+{(unsigned char*)"nsupe", {226, 138, 137, 0}},
+{(unsigned char*)"nsupset", {226, 138, 131, 226, 131, 146, 0}},
+{(unsigned char*)"nsupseteq", {226, 138, 137, 0}},
+{(unsigned char*)"nsupseteqq", {226, 171, 134, 204, 184, 0}},
+{(unsigned char*)"ntgl", {226, 137, 185, 0}},
+{(unsigned char*)"ntilde", {195, 177, 0}},
+{(unsigned char*)"ntlg", {226, 137, 184, 0}},
+{(unsigned char*)"ntriangleleft", {226, 139, 170, 0}},
+{(unsigned char*)"ntrianglelefteq", {226, 139, 172, 0}},
+{(unsigned char*)"ntriangleright", {226, 139, 171, 0}},
+{(unsigned char*)"ntrianglerighteq", {226, 139, 173, 0}},
+{(unsigned char*)"nu", {206, 189, 0}},
+{(unsigned char*)"num", {35, 0}},
+{(unsigned char*)"numero", {226, 132, 150, 0}},
+{(unsigned char*)"numsp", {226, 128, 135, 0}},
+{(unsigned char*)"nvDash", {226, 138, 173, 0}},
+{(unsigned char*)"nvHarr", {226, 164, 132, 0}},
+{(unsigned char*)"nvap", {226, 137, 141, 226, 131, 146, 0}},
+{(unsigned char*)"nvdash", {226, 138, 172, 0}},
+{(unsigned char*)"nvge", {226, 137, 165, 226, 131, 146, 0}},
+{(unsigned char*)"nvgt", {62, 226, 131, 146, 0}},
+{(unsigned char*)"nvinfin", {226, 167, 158, 0}},
+{(unsigned char*)"nvlArr", {226, 164, 130, 0}},
+{(unsigned char*)"nvle", {226, 137, 164, 226, 131, 146, 0}},
+{(unsigned char*)"nvlt", {60, 226, 131, 146, 0}},
+{(unsigned char*)"nvltrie", {226, 138, 180, 226, 131, 146, 0}},
+{(unsigned char*)"nvrArr", {226, 164, 131, 0}},
+{(unsigned char*)"nvrtrie", {226, 138, 181, 226, 131, 146, 0}},
+{(unsigned char*)"nvsim", {226, 136, 188, 226, 131, 146, 0}},
+{(unsigned char*)"nwArr", {226, 135, 150, 0}},
+{(unsigned char*)"nwarhk", {226, 164, 163, 0}},
+{(unsigned char*)"nwarr", {226, 134, 150, 0}},
+{(unsigned char*)"nwarrow", {226, 134, 150, 0}},
+{(unsigned char*)"nwnear", {226, 164, 167, 0}},
+{(unsigned char*)"oS", {226, 147, 136, 0}},
+{(unsigned char*)"oacute", {195, 179, 0}},
+{(unsigned char*)"oast", {226, 138, 155, 0}},
+{(unsigned char*)"ocir", {226, 138, 154, 0}},
+{(unsigned char*)"ocirc", {195, 180, 0}},
+{(unsigned char*)"ocy", {208, 190, 0}},
+{(unsigned char*)"odash", {226, 138, 157, 0}},
+{(unsigned char*)"odblac", {197, 145, 0}},
+{(unsigned char*)"odiv", {226, 168, 184, 0}},
+{(unsigned char*)"odot", {226, 138, 153, 0}},
+{(unsigned char*)"odsold", {226, 166, 188, 0}},
+{(unsigned char*)"oelig", {197, 147, 0}},
+{(unsigned char*)"ofcir", {226, 166, 191, 0}},
+{(unsigned char*)"ofr", {240, 157, 148, 172, 0}},
+{(unsigned char*)"ogon", {203, 155, 0}},
+{(unsigned char*)"ograve", {195, 178, 0}},
+{(unsigned char*)"ogt", {226, 167, 129, 0}},
+{(unsigned char*)"ohbar", {226, 166, 181, 0}},
+{(unsigned char*)"ohm", {206, 169, 0}},
+{(unsigned char*)"oint", {226, 136, 174, 0}},
+{(unsigned char*)"olarr", {226, 134, 186, 0}},
+{(unsigned char*)"olcir", {226, 166, 190, 0}},
+{(unsigned char*)"olcross", {226, 166, 187, 0}},
+{(unsigned char*)"oline", {226, 128, 190, 0}},
+{(unsigned char*)"olt", {226, 167, 128, 0}},
+{(unsigned char*)"omacr", {197, 141, 0}},
+{(unsigned char*)"omega", {207, 137, 0}},
+{(unsigned char*)"omicron", {206, 191, 0}},
+{(unsigned char*)"omid", {226, 166, 182, 0}},
+{(unsigned char*)"ominus", {226, 138, 150, 0}},
+{(unsigned char*)"oopf", {240, 157, 149, 160, 0}},
+{(unsigned char*)"opar", {226, 166, 183, 0}},
+{(unsigned char*)"operp", {226, 166, 185, 0}},
+{(unsigned char*)"oplus", {226, 138, 149, 0}},
+{(unsigned char*)"or", {226, 136, 168, 0}},
+{(unsigned char*)"orarr", {226, 134, 187, 0}},
+{(unsigned char*)"ord", {226, 169, 157, 0}},
+{(unsigned char*)"order", {226, 132, 180, 0}},
+{(unsigned char*)"orderof", {226, 132, 180, 0}},
+{(unsigned char*)"ordf", {194, 170, 0}},
+{(unsigned char*)"ordm", {194, 186, 0}},
+{(unsigned char*)"origof", {226, 138, 182, 0}},
+{(unsigned char*)"oror", {226, 169, 150, 0}},
+{(unsigned char*)"orslope", {226, 169, 151, 0}},
+{(unsigned char*)"orv", {226, 169, 155, 0}},
+{(unsigned char*)"oscr", {226, 132, 180, 0}},
+{(unsigned char*)"oslash", {195, 184, 0}},
+{(unsigned char*)"osol", {226, 138, 152, 0}},
+{(unsigned char*)"otilde", {195, 181, 0}},
+{(unsigned char*)"otimes", {226, 138, 151, 0}},
+{(unsigned char*)"otimesas", {226, 168, 182, 0}},
+{(unsigned char*)"ouml", {195, 182, 0}},
+{(unsigned char*)"ovbar", {226, 140, 189, 0}},
+{(unsigned char*)"par", {226, 136, 165, 0}},
+{(unsigned char*)"para", {194, 182, 0}},
+{(unsigned char*)"parallel", {226, 136, 165, 0}},
+{(unsigned char*)"parsim", {226, 171, 179, 0}},
+{(unsigned char*)"parsl", {226, 171, 189, 0}},
+{(unsigned char*)"part", {226, 136, 130, 0}},
+{(unsigned char*)"pcy", {208, 191, 0}},
+{(unsigned char*)"percnt", {37, 0}},
+{(unsigned char*)"period", {46, 0}},
+{(unsigned char*)"permil", {226, 128, 176, 0}},
+{(unsigned char*)"perp", {226, 138, 165, 0}},
+{(unsigned char*)"pertenk", {226, 128, 177, 0}},
+{(unsigned char*)"pfr", {240, 157, 148, 173, 0}},
+{(unsigned char*)"phi", {207, 134, 0}},
+{(unsigned char*)"phiv", {207, 149, 0}},
+{(unsigned char*)"phmmat", {226, 132, 179, 0}},
+{(unsigned char*)"phone", {226, 152, 142, 0}},
+{(unsigned char*)"pi", {207, 128, 0}},
+{(unsigned char*)"pitchfork", {226, 139, 148, 0}},
+{(unsigned char*)"piv", {207, 150, 0}},
+{(unsigned char*)"planck", {226, 132, 143, 0}},
+{(unsigned char*)"planckh", {226, 132, 142, 0}},
+{(unsigned char*)"plankv", {226, 132, 143, 0}},
+{(unsigned char*)"plus", {43, 0}},
+{(unsigned char*)"plusacir", {226, 168, 163, 0}},
+{(unsigned char*)"plusb", {226, 138, 158, 0}},
+{(unsigned char*)"pluscir", {226, 168, 162, 0}},
+{(unsigned char*)"plusdo", {226, 136, 148, 0}},
+{(unsigned char*)"plusdu", {226, 168, 165, 0}},
+{(unsigned char*)"pluse", {226, 169, 178, 0}},
+{(unsigned char*)"plusmn", {194, 177, 0}},
+{(unsigned char*)"plussim", {226, 168, 166, 0}},
+{(unsigned char*)"plustwo", {226, 168, 167, 0}},
+{(unsigned char*)"pm", {194, 177, 0}},
+{(unsigned char*)"pointint", {226, 168, 149, 0}},
+{(unsigned char*)"popf", {240, 157, 149, 161, 0}},
+{(unsigned char*)"pound", {194, 163, 0}},
+{(unsigned char*)"pr", {226, 137, 186, 0}},
+{(unsigned char*)"prE", {226, 170, 179, 0}},
+{(unsigned char*)"prap", {226, 170, 183, 0}},
+{(unsigned char*)"prcue", {226, 137, 188, 0}},
+{(unsigned char*)"pre", {226, 170, 175, 0}},
+{(unsigned char*)"prec", {226, 137, 186, 0}},
+{(unsigned char*)"precapprox", {226, 170, 183, 0}},
+{(unsigned char*)"preccurlyeq", {226, 137, 188, 0}},
+{(unsigned char*)"preceq", {226, 170, 175, 0}},
+{(unsigned char*)"precnapprox", {226, 170, 185, 0}},
+{(unsigned char*)"precneqq", {226, 170, 181, 0}},
+{(unsigned char*)"precnsim", {226, 139, 168, 0}},
+{(unsigned char*)"precsim", {226, 137, 190, 0}},
+{(unsigned char*)"prime", {226, 128, 178, 0}},
+{(unsigned char*)"primes", {226, 132, 153, 0}},
+{(unsigned char*)"prnE", {226, 170, 181, 0}},
+{(unsigned char*)"prnap", {226, 170, 185, 0}},
+{(unsigned char*)"prnsim", {226, 139, 168, 0}},
+{(unsigned char*)"prod", {226, 136, 143, 0}},
+{(unsigned char*)"profalar", {226, 140, 174, 0}},
+{(unsigned char*)"profline", {226, 140, 146, 0}},
+{(unsigned char*)"profsurf", {226, 140, 147, 0}},
+{(unsigned char*)"prop", {226, 136, 157, 0}},
+{(unsigned char*)"propto", {226, 136, 157, 0}},
+{(unsigned char*)"prsim", {226, 137, 190, 0}},
+{(unsigned char*)"prurel", {226, 138, 176, 0}},
+{(unsigned char*)"pscr", {240, 157, 147, 133, 0}},
+{(unsigned char*)"psi", {207, 136, 0}},
+{(unsigned char*)"puncsp", {226, 128, 136, 0}},
+{(unsigned char*)"qfr", {240, 157, 148, 174, 0}},
+{(unsigned char*)"qint", {226, 168, 140, 0}},
+{(unsigned char*)"qopf", {240, 157, 149, 162, 0}},
+{(unsigned char*)"qprime", {226, 129, 151, 0}},
+{(unsigned char*)"qscr", {240, 157, 147, 134, 0}},
+{(unsigned char*)"quaternions", {226, 132, 141, 0}},
+{(unsigned char*)"quatint", {226, 168, 150, 0}},
+{(unsigned char*)"quest", {63, 0}},
+{(unsigned char*)"questeq", {226, 137, 159, 0}},
+{(unsigned char*)"quot", {34, 0}},
+{(unsigned char*)"rAarr", {226, 135, 155, 0}},
+{(unsigned char*)"rArr", {226, 135, 146, 0}},
+{(unsigned char*)"rAtail", {226, 164, 156, 0}},
+{(unsigned char*)"rBarr", {226, 164, 143, 0}},
+{(unsigned char*)"rHar", {226, 165, 164, 0}},
+{(unsigned char*)"race", {226, 136, 189, 204, 177, 0}},
+{(unsigned char*)"racute", {197, 149, 0}},
+{(unsigned char*)"radic", {226, 136, 154, 0}},
+{(unsigned char*)"raemptyv", {226, 166, 179, 0}},
+{(unsigned char*)"rang", {226, 159, 169, 0}},
+{(unsigned char*)"rangd", {226, 166, 146, 0}},
+{(unsigned char*)"range", {226, 166, 165, 0}},
+{(unsigned char*)"rangle", {226, 159, 169, 0}},
+{(unsigned char*)"raquo", {194, 187, 0}},
+{(unsigned char*)"rarr", {226, 134, 146, 0}},
+{(unsigned char*)"rarrap", {226, 165, 181, 0}},
+{(unsigned char*)"rarrb", {226, 135, 165, 0}},
+{(unsigned char*)"rarrbfs", {226, 164, 160, 0}},
+{(unsigned char*)"rarrc", {226, 164, 179, 0}},
+{(unsigned char*)"rarrfs", {226, 164, 158, 0}},
+{(unsigned char*)"rarrhk", {226, 134, 170, 0}},
+{(unsigned char*)"rarrlp", {226, 134, 172, 0}},
+{(unsigned char*)"rarrpl", {226, 165, 133, 0}},
+{(unsigned char*)"rarrsim", {226, 165, 180, 0}},
+{(unsigned char*)"rarrtl", {226, 134, 163, 0}},
+{(unsigned char*)"rarrw", {226, 134, 157, 0}},
+{(unsigned char*)"ratail", {226, 164, 154, 0}},
+{(unsigned char*)"ratio", {226, 136, 182, 0}},
+{(unsigned char*)"rationals", {226, 132, 154, 0}},
+{(unsigned char*)"rbarr", {226, 164, 141, 0}},
+{(unsigned char*)"rbbrk", {226, 157, 179, 0}},
+{(unsigned char*)"rbrace", {125, 0}},
+{(unsigned char*)"rbrack", {93, 0}},
+{(unsigned char*)"rbrke", {226, 166, 140, 0}},
+{(unsigned char*)"rbrksld", {226, 166, 142, 0}},
+{(unsigned char*)"rbrkslu", {226, 166, 144, 0}},
+{(unsigned char*)"rcaron", {197, 153, 0}},
+{(unsigned char*)"rcedil", {197, 151, 0}},
+{(unsigned char*)"rceil", {226, 140, 137, 0}},
+{(unsigned char*)"rcub", {125, 0}},
+{(unsigned char*)"rcy", {209, 128, 0}},
+{(unsigned char*)"rdca", {226, 164, 183, 0}},
+{(unsigned char*)"rdldhar", {226, 165, 169, 0}},
+{(unsigned char*)"rdquo", {226, 128, 157, 0}},
+{(unsigned char*)"rdquor", {226, 128, 157, 0}},
+{(unsigned char*)"rdsh", {226, 134, 179, 0}},
+{(unsigned char*)"real", {226, 132, 156, 0}},
+{(unsigned char*)"realine", {226, 132, 155, 0}},
+{(unsigned char*)"realpart", {226, 132, 156, 0}},
+{(unsigned char*)"reals", {226, 132, 157, 0}},
+{(unsigned char*)"rect", {226, 150, 173, 0}},
+{(unsigned char*)"reg", {194, 174, 0}},
+{(unsigned char*)"rfisht", {226, 165, 189, 0}},
+{(unsigned char*)"rfloor", {226, 140, 139, 0}},
+{(unsigned char*)"rfr", {240, 157, 148, 175, 0}},
+{(unsigned char*)"rhard", {226, 135, 129, 0}},
+{(unsigned char*)"rharu", {226, 135, 128, 0}},
+{(unsigned char*)"rharul", {226, 165, 172, 0}},
+{(unsigned char*)"rho", {207, 129, 0}},
+{(unsigned char*)"rhov", {207, 177, 0}},
+{(unsigned char*)"rightarrow", {226, 134, 146, 0}},
+{(unsigned char*)"rightarrowtail", {226, 134, 163, 0}},
+{(unsigned char*)"rightharpoondown", {226, 135, 129, 0}},
+{(unsigned char*)"rightharpoonup", {226, 135, 128, 0}},
+{(unsigned char*)"rightleftarrows", {226, 135, 132, 0}},
+{(unsigned char*)"rightleftharpoons", {226, 135, 140, 0}},
+{(unsigned char*)"rightrightarrows", {226, 135, 137, 0}},
+{(unsigned char*)"rightsquigarrow", {226, 134, 157, 0}},
+{(unsigned char*)"rightthreetimes", {226, 139, 140, 0}},
+{(unsigned char*)"ring", {203, 154, 0}},
+{(unsigned char*)"risingdotseq", {226, 137, 147, 0}},
+{(unsigned char*)"rlarr", {226, 135, 132, 0}},
+{(unsigned char*)"rlhar", {226, 135, 140, 0}},
+{(unsigned char*)"rlm", {226, 128, 143, 0}},
+{(unsigned char*)"rmoust", {226, 142, 177, 0}},
+{(unsigned char*)"rmoustache", {226, 142, 177, 0}},
+{(unsigned char*)"rnmid", {226, 171, 174, 0}},
+{(unsigned char*)"roang", {226, 159, 173, 0}},
+{(unsigned char*)"roarr", {226, 135, 190, 0}},
+{(unsigned char*)"robrk", {226, 159, 167, 0}},
+{(unsigned char*)"ropar", {226, 166, 134, 0}},
+{(unsigned char*)"ropf", {240, 157, 149, 163, 0}},
+{(unsigned char*)"roplus", {226, 168, 174, 0}},
+{(unsigned char*)"rotimes", {226, 168, 181, 0}},
+{(unsigned char*)"rpar", {41, 0}},
+{(unsigned char*)"rpargt", {226, 166, 148, 0}},
+{(unsigned char*)"rppolint", {226, 168, 146, 0}},
+{(unsigned char*)"rrarr", {226, 135, 137, 0}},
+{(unsigned char*)"rsaquo", {226, 128, 186, 0}},
+{(unsigned char*)"rscr", {240, 157, 147, 135, 0}},
+{(unsigned char*)"rsh", {226, 134, 177, 0}},
+{(unsigned char*)"rsqb", {93, 0}},
+{(unsigned char*)"rsquo", {226, 128, 153, 0}},
+{(unsigned char*)"rsquor", {226, 128, 153, 0}},
+{(unsigned char*)"rthree", {226, 139, 140, 0}},
+{(unsigned char*)"rtimes", {226, 139, 138, 0}},
+{(unsigned char*)"rtri", {226, 150, 185, 0}},
+{(unsigned char*)"rtrie", {226, 138, 181, 0}},
+{(unsigned char*)"rtrif", {226, 150, 184, 0}},
+{(unsigned char*)"rtriltri", {226, 167, 142, 0}},
+{(unsigned char*)"ruluhar", {226, 165, 168, 0}},
+{(unsigned char*)"rx", {226, 132, 158, 0}},
+{(unsigned char*)"sacute", {197, 155, 0}},
+{(unsigned char*)"sbquo", {226, 128, 154, 0}},
+{(unsigned char*)"sc", {226, 137, 187, 0}},
+{(unsigned char*)"scE", {226, 170, 180, 0}},
+{(unsigned char*)"scap", {226, 170, 184, 0}},
+{(unsigned char*)"scaron", {197, 161, 0}},
+{(unsigned char*)"sccue", {226, 137, 189, 0}},
+{(unsigned char*)"sce", {226, 170, 176, 0}},
+{(unsigned char*)"scedil", {197, 159, 0}},
+{(unsigned char*)"scirc", {197, 157, 0}},
+{(unsigned char*)"scnE", {226, 170, 182, 0}},
+{(unsigned char*)"scnap", {226, 170, 186, 0}},
+{(unsigned char*)"scnsim", {226, 139, 169, 0}},
+{(unsigned char*)"scpolint", {226, 168, 147, 0}},
+{(unsigned char*)"scsim", {226, 137, 191, 0}},
+{(unsigned char*)"scy", {209, 129, 0}},
+{(unsigned char*)"sdot", {226, 139, 133, 0}},
+{(unsigned char*)"sdotb", {226, 138, 161, 0}},
+{(unsigned char*)"sdote", {226, 169, 166, 0}},
+{(unsigned char*)"seArr", {226, 135, 152, 0}},
+{(unsigned char*)"searhk", {226, 164, 165, 0}},
+{(unsigned char*)"searr", {226, 134, 152, 0}},
+{(unsigned char*)"searrow", {226, 134, 152, 0}},
+{(unsigned char*)"sect", {194, 167, 0}},
+{(unsigned char*)"semi", {59, 0}},
+{(unsigned char*)"seswar", {226, 164, 169, 0}},
+{(unsigned char*)"setminus", {226, 136, 150, 0}},
+{(unsigned char*)"setmn", {226, 136, 150, 0}},
+{(unsigned char*)"sext", {226, 156, 182, 0}},
+{(unsigned char*)"sfr", {240, 157, 148, 176, 0}},
+{(unsigned char*)"sfrown", {226, 140, 162, 0}},
+{(unsigned char*)"sharp", {226, 153, 175, 0}},
+{(unsigned char*)"shchcy", {209, 137, 0}},
+{(unsigned char*)"shcy", {209, 136, 0}},
+{(unsigned char*)"shortmid", {226, 136, 163, 0}},
+{(unsigned char*)"shortparallel", {226, 136, 165, 0}},
+{(unsigned char*)"shy", {194, 173, 0}},
+{(unsigned char*)"sigma", {207, 131, 0}},
+{(unsigned char*)"sigmaf", {207, 130, 0}},
+{(unsigned char*)"sigmav", {207, 130, 0}},
+{(unsigned char*)"sim", {226, 136, 188, 0}},
+{(unsigned char*)"simdot", {226, 169, 170, 0}},
+{(unsigned char*)"sime", {226, 137, 131, 0}},
+{(unsigned char*)"simeq", {226, 137, 131, 0}},
+{(unsigned char*)"simg", {226, 170, 158, 0}},
+{(unsigned char*)"simgE", {226, 170, 160, 0}},
+{(unsigned char*)"siml", {226, 170, 157, 0}},
+{(unsigned char*)"simlE", {226, 170, 159, 0}},
+{(unsigned char*)"simne", {226, 137, 134, 0}},
+{(unsigned char*)"simplus", {226, 168, 164, 0}},
+{(unsigned char*)"simrarr", {226, 165, 178, 0}},
+{(unsigned char*)"slarr", {226, 134, 144, 0}},
+{(unsigned char*)"smallsetminus", {226, 136, 150, 0}},
+{(unsigned char*)"smashp", {226, 168, 179, 0}},
+{(unsigned char*)"smeparsl", {226, 167, 164, 0}},
+{(unsigned char*)"smid", {226, 136, 163, 0}},
+{(unsigned char*)"smile", {226, 140, 163, 0}},
+{(unsigned char*)"smt", {226, 170, 170, 0}},
+{(unsigned char*)"smte", {226, 170, 172, 0}},
+{(unsigned char*)"smtes", {226, 170, 172, 239, 184, 128, 0}},
+{(unsigned char*)"softcy", {209, 140, 0}},
+{(unsigned char*)"sol", {47, 0}},
+{(unsigned char*)"solb", {226, 167, 132, 0}},
+{(unsigned char*)"solbar", {226, 140, 191, 0}},
+{(unsigned char*)"sopf", {240, 157, 149, 164, 0}},
+{(unsigned char*)"spades", {226, 153, 160, 0}},
+{(unsigned char*)"spadesuit", {226, 153, 160, 0}},
+{(unsigned char*)"spar", {226, 136, 165, 0}},
+{(unsigned char*)"sqcap", {226, 138, 147, 0}},
+{(unsigned char*)"sqcaps", {226, 138, 147, 239, 184, 128, 0}},
+{(unsigned char*)"sqcup", {226, 138, 148, 0}},
+{(unsigned char*)"sqcups", {226, 138, 148, 239, 184, 128, 0}},
+{(unsigned char*)"sqsub", {226, 138, 143, 0}},
+{(unsigned char*)"sqsube", {226, 138, 145, 0}},
+{(unsigned char*)"sqsubset", {226, 138, 143, 0}},
+{(unsigned char*)"sqsubseteq", {226, 138, 145, 0}},
+{(unsigned char*)"sqsup", {226, 138, 144, 0}},
+{(unsigned char*)"sqsupe", {226, 138, 146, 0}},
+{(unsigned char*)"sqsupset", {226, 138, 144, 0}},
+{(unsigned char*)"sqsupseteq", {226, 138, 146, 0}},
+{(unsigned char*)"squ", {226, 150, 161, 0}},
+{(unsigned char*)"square", {226, 150, 161, 0}},
+{(unsigned char*)"squarf", {226, 150, 170, 0}},
+{(unsigned char*)"squf", {226, 150, 170, 0}},
+{(unsigned char*)"srarr", {226, 134, 146, 0}},
+{(unsigned char*)"sscr", {240, 157, 147, 136, 0}},
+{(unsigned char*)"ssetmn", {226, 136, 150, 0}},
+{(unsigned char*)"ssmile", {226, 140, 163, 0}},
+{(unsigned char*)"sstarf", {226, 139, 134, 0}},
+{(unsigned char*)"star", {226, 152, 134, 0}},
+{(unsigned char*)"starf", {226, 152, 133, 0}},
+{(unsigned char*)"straightepsilon", {207, 181, 0}},
+{(unsigned char*)"straightphi", {207, 149, 0}},
+{(unsigned char*)"strns", {194, 175, 0}},
+{(unsigned char*)"sub", {226, 138, 130, 0}},
+{(unsigned char*)"subE", {226, 171, 133, 0}},
+{(unsigned char*)"subdot", {226, 170, 189, 0}},
+{(unsigned char*)"sube", {226, 138, 134, 0}},
+{(unsigned char*)"subedot", {226, 171, 131, 0}},
+{(unsigned char*)"submult", {226, 171, 129, 0}},
+{(unsigned char*)"subnE", {226, 171, 139, 0}},
+{(unsigned char*)"subne", {226, 138, 138, 0}},
+{(unsigned char*)"subplus", {226, 170, 191, 0}},
+{(unsigned char*)"subrarr", {226, 165, 185, 0}},
+{(unsigned char*)"subset", {226, 138, 130, 0}},
+{(unsigned char*)"subseteq", {226, 138, 134, 0}},
+{(unsigned char*)"subseteqq", {226, 171, 133, 0}},
+{(unsigned char*)"subsetneq", {226, 138, 138, 0}},
+{(unsigned char*)"subsetneqq", {226, 171, 139, 0}},
+{(unsigned char*)"subsim", {226, 171, 135, 0}},
+{(unsigned char*)"subsub", {226, 171, 149, 0}},
+{(unsigned char*)"subsup", {226, 171, 147, 0}},
+{(unsigned char*)"succ", {226, 137, 187, 0}},
+{(unsigned char*)"succapprox", {226, 170, 184, 0}},
+{(unsigned char*)"succcurlyeq", {226, 137, 189, 0}},
+{(unsigned char*)"succeq", {226, 170, 176, 0}},
+{(unsigned char*)"succnapprox", {226, 170, 186, 0}},
+{(unsigned char*)"succneqq", {226, 170, 182, 0}},
+{(unsigned char*)"succnsim", {226, 139, 169, 0}},
+{(unsigned char*)"succsim", {226, 137, 191, 0}},
+{(unsigned char*)"sum", {226, 136, 145, 0}},
+{(unsigned char*)"sung", {226, 153, 170, 0}},
+{(unsigned char*)"sup", {226, 138, 131, 0}},
+{(unsigned char*)"sup1", {194, 185, 0}},
+{(unsigned char*)"sup2", {194, 178, 0}},
+{(unsigned char*)"sup3", {194, 179, 0}},
+{(unsigned char*)"supE", {226, 171, 134, 0}},
+{(unsigned char*)"supdot", {226, 170, 190, 0}},
+{(unsigned char*)"supdsub", {226, 171, 152, 0}},
+{(unsigned char*)"supe", {226, 138, 135, 0}},
+{(unsigned char*)"supedot", {226, 171, 132, 0}},
+{(unsigned char*)"suphsol", {226, 159, 137, 0}},
+{(unsigned char*)"suphsub", {226, 171, 151, 0}},
+{(unsigned char*)"suplarr", {226, 165, 187, 0}},
+{(unsigned char*)"supmult", {226, 171, 130, 0}},
+{(unsigned char*)"supnE", {226, 171, 140, 0}},
+{(unsigned char*)"supne", {226, 138, 139, 0}},
+{(unsigned char*)"supplus", {226, 171, 128, 0}},
+{(unsigned char*)"supset", {226, 138, 131, 0}},
+{(unsigned char*)"supseteq", {226, 138, 135, 0}},
+{(unsigned char*)"supseteqq", {226, 171, 134, 0}},
+{(unsigned char*)"supsetneq", {226, 138, 139, 0}},
+{(unsigned char*)"supsetneqq", {226, 171, 140, 0}},
+{(unsigned char*)"supsim", {226, 171, 136, 0}},
+{(unsigned char*)"supsub", {226, 171, 148, 0}},
+{(unsigned char*)"supsup", {226, 171, 150, 0}},
+{(unsigned char*)"swArr", {226, 135, 153, 0}},
+{(unsigned char*)"swarhk", {226, 164, 166, 0}},
+{(unsigned char*)"swarr", {226, 134, 153, 0}},
+{(unsigned char*)"swarrow", {226, 134, 153, 0}},
+{(unsigned char*)"swnwar", {226, 164, 170, 0}},
+{(unsigned char*)"szlig", {195, 159, 0}},
+{(unsigned char*)"target", {226, 140, 150, 0}},
+{(unsigned char*)"tau", {207, 132, 0}},
+{(unsigned char*)"tbrk", {226, 142, 180, 0}},
+{(unsigned char*)"tcaron", {197, 165, 0}},
+{(unsigned char*)"tcedil", {197, 163, 0}},
+{(unsigned char*)"tcy", {209, 130, 0}},
+{(unsigned char*)"tdot", {226, 131, 155, 0}},
+{(unsigned char*)"telrec", {226, 140, 149, 0}},
+{(unsigned char*)"tfr", {240, 157, 148, 177, 0}},
+{(unsigned char*)"there4", {226, 136, 180, 0}},
+{(unsigned char*)"therefore", {226, 136, 180, 0}},
+{(unsigned char*)"theta", {206, 184, 0}},
+{(unsigned char*)"thetasym", {207, 145, 0}},
+{(unsigned char*)"thetav", {207, 145, 0}},
+{(unsigned char*)"thickapprox", {226, 137, 136, 0}},
+{(unsigned char*)"thicksim", {226, 136, 188, 0}},
+{(unsigned char*)"thinsp", {226, 128, 137, 0}},
+{(unsigned char*)"thkap", {226, 137, 136, 0}},
+{(unsigned char*)"thksim", {226, 136, 188, 0}},
+{(unsigned char*)"thorn", {195, 190, 0}},
+{(unsigned char*)"tilde", {203, 156, 0}},
+{(unsigned char*)"times", {195, 151, 0}},
+{(unsigned char*)"timesb", {226, 138, 160, 0}},
+{(unsigned char*)"timesbar", {226, 168, 177, 0}},
+{(unsigned char*)"timesd", {226, 168, 176, 0}},
+{(unsigned char*)"tint", {226, 136, 173, 0}},
+{(unsigned char*)"toea", {226, 164, 168, 0}},
+{(unsigned char*)"top", {226, 138, 164, 0}},
+{(unsigned char*)"topbot", {226, 140, 182, 0}},
+{(unsigned char*)"topcir", {226, 171, 177, 0}},
+{(unsigned char*)"topf", {240, 157, 149, 165, 0}},
+{(unsigned char*)"topfork", {226, 171, 154, 0}},
+{(unsigned char*)"tosa", {226, 164, 169, 0}},
+{(unsigned char*)"tprime", {226, 128, 180, 0}},
+{(unsigned char*)"trade", {226, 132, 162, 0}},
+{(unsigned char*)"triangle", {226, 150, 181, 0}},
+{(unsigned char*)"triangledown", {226, 150, 191, 0}},
+{(unsigned char*)"triangleleft", {226, 151, 131, 0}},
+{(unsigned char*)"trianglelefteq", {226, 138, 180, 0}},
+{(unsigned char*)"triangleq", {226, 137, 156, 0}},
+{(unsigned char*)"triangleright", {226, 150, 185, 0}},
+{(unsigned char*)"trianglerighteq", {226, 138, 181, 0}},
+{(unsigned char*)"tridot", {226, 151, 172, 0}},
+{(unsigned char*)"trie", {226, 137, 156, 0}},
+{(unsigned char*)"triminus", {226, 168, 186, 0}},
+{(unsigned char*)"triplus", {226, 168, 185, 0}},
+{(unsigned char*)"trisb", {226, 167, 141, 0}},
+{(unsigned char*)"tritime", {226, 168, 187, 0}},
+{(unsigned char*)"trpezium", {226, 143, 162, 0}},
+{(unsigned char*)"tscr", {240, 157, 147, 137, 0}},
+{(unsigned char*)"tscy", {209, 134, 0}},
+{(unsigned char*)"tshcy", {209, 155, 0}},
+{(unsigned char*)"tstrok", {197, 167, 0}},
+{(unsigned char*)"twixt", {226, 137, 172, 0}},
+{(unsigned char*)"twoheadleftarrow", {226, 134, 158, 0}},
+{(unsigned char*)"twoheadrightarrow", {226, 134, 160, 0}},
+{(unsigned char*)"uArr", {226, 135, 145, 0}},
+{(unsigned char*)"uHar", {226, 165, 163, 0}},
+{(unsigned char*)"uacute", {195, 186, 0}},
+{(unsigned char*)"uarr", {226, 134, 145, 0}},
+{(unsigned char*)"ubrcy", {209, 158, 0}},
+{(unsigned char*)"ubreve", {197, 173, 0}},
+{(unsigned char*)"ucirc", {195, 187, 0}},
+{(unsigned char*)"ucy", {209, 131, 0}},
+{(unsigned char*)"udarr", {226, 135, 133, 0}},
+{(unsigned char*)"udblac", {197, 177, 0}},
+{(unsigned char*)"udhar", {226, 165, 174, 0}},
+{(unsigned char*)"ufisht", {226, 165, 190, 0}},
+{(unsigned char*)"ufr", {240, 157, 148, 178, 0}},
+{(unsigned char*)"ugrave", {195, 185, 0}},
+{(unsigned char*)"uharl", {226, 134, 191, 0}},
+{(unsigned char*)"uharr", {226, 134, 190, 0}},
+{(unsigned char*)"uhblk", {226, 150, 128, 0}},
+{(unsigned char*)"ulcorn", {226, 140, 156, 0}},
+{(unsigned char*)"ulcorner", {226, 140, 156, 0}},
+{(unsigned char*)"ulcrop", {226, 140, 143, 0}},
+{(unsigned char*)"ultri", {226, 151, 184, 0}},
+{(unsigned char*)"umacr", {197, 171, 0}},
+{(unsigned char*)"uml", {194, 168, 0}},
+{(unsigned char*)"uogon", {197, 179, 0}},
+{(unsigned char*)"uopf", {240, 157, 149, 166, 0}},
+{(unsigned char*)"uparrow", {226, 134, 145, 0}},
+{(unsigned char*)"updownarrow", {226, 134, 149, 0}},
+{(unsigned char*)"upharpoonleft", {226, 134, 191, 0}},
+{(unsigned char*)"upharpoonright", {226, 134, 190, 0}},
+{(unsigned char*)"uplus", {226, 138, 142, 0}},
+{(unsigned char*)"upsi", {207, 133, 0}},
+{(unsigned char*)"upsih", {207, 146, 0}},
+{(unsigned char*)"upsilon", {207, 133, 0}},
+{(unsigned char*)"upuparrows", {226, 135, 136, 0}},
+{(unsigned char*)"urcorn", {226, 140, 157, 0}},
+{(unsigned char*)"urcorner", {226, 140, 157, 0}},
+{(unsigned char*)"urcrop", {226, 140, 142, 0}},
+{(unsigned char*)"uring", {197, 175, 0}},
+{(unsigned char*)"urtri", {226, 151, 185, 0}},
+{(unsigned char*)"uscr", {240, 157, 147, 138, 0}},
+{(unsigned char*)"utdot", {226, 139, 176, 0}},
+{(unsigned char*)"utilde", {197, 169, 0}},
+{(unsigned char*)"utri", {226, 150, 181, 0}},
+{(unsigned char*)"utrif", {226, 150, 180, 0}},
+{(unsigned char*)"uuarr", {226, 135, 136, 0}},
+{(unsigned char*)"uuml", {195, 188, 0}},
+{(unsigned char*)"uwangle", {226, 166, 167, 0}},
+{(unsigned char*)"vArr", {226, 135, 149, 0}},
+{(unsigned char*)"vBar", {226, 171, 168, 0}},
+{(unsigned char*)"vBarv", {226, 171, 169, 0}},
+{(unsigned char*)"vDash", {226, 138, 168, 0}},
+{(unsigned char*)"vangrt", {226, 166, 156, 0}},
+{(unsigned char*)"varepsilon", {207, 181, 0}},
+{(unsigned char*)"varkappa", {207, 176, 0}},
+{(unsigned char*)"varnothing", {226, 136, 133, 0}},
+{(unsigned char*)"varphi", {207, 149, 0}},
+{(unsigned char*)"varpi", {207, 150, 0}},
+{(unsigned char*)"varpropto", {226, 136, 157, 0}},
+{(unsigned char*)"varr", {226, 134, 149, 0}},
+{(unsigned char*)"varrho", {207, 177, 0}},
+{(unsigned char*)"varsigma", {207, 130, 0}},
+{(unsigned char*)"varsubsetneq", {226, 138, 138, 239, 184, 128, 0}},
+{(unsigned char*)"varsubsetneqq", {226, 171, 139, 239, 184, 128, 0}},
+{(unsigned char*)"varsupsetneq", {226, 138, 139, 239, 184, 128, 0}},
+{(unsigned char*)"varsupsetneqq", {226, 171, 140, 239, 184, 128, 0}},
+{(unsigned char*)"vartheta", {207, 145, 0}},
+{(unsigned char*)"vartriangleleft", {226, 138, 178, 0}},
+{(unsigned char*)"vartriangleright", {226, 138, 179, 0}},
+{(unsigned char*)"vcy", {208, 178, 0}},
+{(unsigned char*)"vdash", {226, 138, 162, 0}},
+{(unsigned char*)"vee", {226, 136, 168, 0}},
+{(unsigned char*)"veebar", {226, 138, 187, 0}},
+{(unsigned char*)"veeeq", {226, 137, 154, 0}},
+{(unsigned char*)"vellip", {226, 139, 174, 0}},
+{(unsigned char*)"verbar", {124, 0}},
+{(unsigned char*)"vert", {124, 0}},
+{(unsigned char*)"vfr", {240, 157, 148, 179, 0}},
+{(unsigned char*)"vltri", {226, 138, 178, 0}},
+{(unsigned char*)"vnsub", {226, 138, 130, 226, 131, 146, 0}},
+{(unsigned char*)"vnsup", {226, 138, 131, 226, 131, 146, 0}},
+{(unsigned char*)"vopf", {240, 157, 149, 167, 0}},
+{(unsigned char*)"vprop", {226, 136, 157, 0}},
+{(unsigned char*)"vrtri", {226, 138, 179, 0}},
+{(unsigned char*)"vscr", {240, 157, 147, 139, 0}},
+{(unsigned char*)"vsubnE", {226, 171, 139, 239, 184, 128, 0}},
+{(unsigned char*)"vsubne", {226, 138, 138, 239, 184, 128, 0}},
+{(unsigned char*)"vsupnE", {226, 171, 140, 239, 184, 128, 0}},
+{(unsigned char*)"vsupne", {226, 138, 139, 239, 184, 128, 0}},
+{(unsigned char*)"vzigzag", {226, 166, 154, 0}},
+{(unsigned char*)"wcirc", {197, 181, 0}},
+{(unsigned char*)"wedbar", {226, 169, 159, 0}},
+{(unsigned char*)"wedge", {226, 136, 167, 0}},
+{(unsigned char*)"wedgeq", {226, 137, 153, 0}},
+{(unsigned char*)"weierp", {226, 132, 152, 0}},
+{(unsigned char*)"wfr", {240, 157, 148, 180, 0}},
+{(unsigned char*)"wopf", {240, 157, 149, 168, 0}},
+{(unsigned char*)"wp", {226, 132, 152, 0}},
+{(unsigned char*)"wr", {226, 137, 128, 0}},
+{(unsigned char*)"wreath", {226, 137, 128, 0}},
+{(unsigned char*)"wscr", {240, 157, 147, 140, 0}},
+{(unsigned char*)"xcap", {226, 139, 130, 0}},
+{(unsigned char*)"xcirc", {226, 151, 175, 0}},
+{(unsigned char*)"xcup", {226, 139, 131, 0}},
+{(unsigned char*)"xdtri", {226, 150, 189, 0}},
+{(unsigned char*)"xfr", {240, 157, 148, 181, 0}},
+{(unsigned char*)"xhArr", {226, 159, 186, 0}},
+{(unsigned char*)"xharr", {226, 159, 183, 0}},
+{(unsigned char*)"xi", {206, 190, 0}},
+{(unsigned char*)"xlArr", {226, 159, 184, 0}},
+{(unsigned char*)"xlarr", {226, 159, 181, 0}},
+{(unsigned char*)"xmap", {226, 159, 188, 0}},
+{(unsigned char*)"xnis", {226, 139, 187, 0}},
+{(unsigned char*)"xodot", {226, 168, 128, 0}},
+{(unsigned char*)"xopf", {240, 157, 149, 169, 0}},
+{(unsigned char*)"xoplus", {226, 168, 129, 0}},
+{(unsigned char*)"xotime", {226, 168, 130, 0}},
+{(unsigned char*)"xrArr", {226, 159, 185, 0}},
+{(unsigned char*)"xrarr", {226, 159, 182, 0}},
+{(unsigned char*)"xscr", {240, 157, 147, 141, 0}},
+{(unsigned char*)"xsqcup", {226, 168, 134, 0}},
+{(unsigned char*)"xuplus", {226, 168, 132, 0}},
+{(unsigned char*)"xutri", {226, 150, 179, 0}},
+{(unsigned char*)"xvee", {226, 139, 129, 0}},
+{(unsigned char*)"xwedge", {226, 139, 128, 0}},
+{(unsigned char*)"yacute", {195, 189, 0}},
+{(unsigned char*)"yacy", {209, 143, 0}},
+{(unsigned char*)"ycirc", {197, 183, 0}},
+{(unsigned char*)"ycy", {209, 139, 0}},
+{(unsigned char*)"yen", {194, 165, 0}},
+{(unsigned char*)"yfr", {240, 157, 148, 182, 0}},
+{(unsigned char*)"yicy", {209, 151, 0}},
+{(unsigned char*)"yopf", {240, 157, 149, 170, 0}},
+{(unsigned char*)"yscr", {240, 157, 147, 142, 0}},
+{(unsigned char*)"yucy", {209, 142, 0}},
+{(unsigned char*)"yuml", {195, 191, 0}},
+{(unsigned char*)"zacute", {197, 186, 0}},
+{(unsigned char*)"zcaron", {197, 190, 0}},
+{(unsigned char*)"zcy", {208, 183, 0}},
+{(unsigned char*)"zdot", {197, 188, 0}},
+{(unsigned char*)"zeetrf", {226, 132, 168, 0}},
+{(unsigned char*)"zeta", {206, 182, 0}},
+{(unsigned char*)"zfr", {240, 157, 148, 183, 0}},
+{(unsigned char*)"zhcy", {208, 182, 0}},
+{(unsigned char*)"zigrarr", {226, 135, 157, 0}},
+{(unsigned char*)"zopf", {240, 157, 149, 171, 0}},
+{(unsigned char*)"zscr", {240, 157, 147, 143, 0}},
+{(unsigned char*)"zwj", {226, 128, 141, 0}},
+{(unsigned char*)"zwnj", {226, 128, 140, 0}},
+};
diff --git a/cbits/houdini_html_u.c b/cbits/houdini_html_u.c
--- a/cbits/houdini_html_u.c
+++ b/cbits/houdini_html_u.c
@@ -5,8 +5,36 @@
 #include "buffer.h"
 #include "houdini.h"
 #include "utf8.h"
-#include "html_unescape.h"
+#include "entities.inc"
 
+/* Binary tree lookup code for entities added by JGM */
+
+static unsigned char *
+S_lookup(int i, int low, int hi, const unsigned char *s, int len)
+{
+	int j;
+	int cmp = strncmp((char *)s, (char *)cmark_entities[i].entity, len);
+	if (cmp == 0 && cmark_entities[i].entity[len] == 0) {
+		return (unsigned char *)cmark_entities[i].bytes;
+	} else if (cmp < 0 && i > low) {
+		j = i - ((i - low) / 2);
+		if (j == i) j -= 1;
+		return S_lookup(j, low, i - 1, s, len);
+	} else if (cmp > 0 && i < hi) {
+		j = i + ((hi - i) / 2);
+		if (j == i) j += 1;
+		return S_lookup(j, i + 1, hi, s, len);
+	} else {
+		return NULL;
+	}
+}
+
+static unsigned char *
+S_lookup_entity(const unsigned char *s, int len)
+{
+	return S_lookup(CMARK_NUM_ENTITIES / 2, 0, CMARK_NUM_ENTITIES - 1, s, len);
+}
+
 bufsize_t
 houdini_unescape_ent(cmark_strbuf *ob, const uint8_t *src, bufsize_t size)
 {
@@ -57,22 +85,18 @@
 	}
 
 	else {
-		if (size > MAX_WORD_LENGTH)
-			size = MAX_WORD_LENGTH;
+		if (size > CMARK_ENTITY_MAX_LENGTH)
+			size = CMARK_ENTITY_MAX_LENGTH;
 
-		for (i = MIN_WORD_LENGTH; i < size; ++i) {
+		for (i = CMARK_ENTITY_MIN_LENGTH; i < size; ++i) {
 			if (src[i] == ' ')
 				break;
 
 			if (src[i] == ';') {
-				const struct html_ent *entity = find_entity((char *)src, i);
+				const unsigned char *entity = S_lookup_entity(src, i);
 
 				if (entity != NULL) {
-					bufsize_t len = 0;
-					while (len < 4 && entity->utf8[len] != '\0') {
-						++len;
-					}
-					cmark_strbuf_put(ob, entity->utf8, len);
+					cmark_strbuf_puts(ob, (const char *)entity);
 					return i + 1;
 				}
 
diff --git a/cbits/html.c b/cbits/html.c
--- a/cbits/html.c
+++ b/cbits/html.c
@@ -2,12 +2,13 @@
 #include <stdio.h>
 #include <string.h>
 #include <assert.h>
-
+#include "cmark_ctype.h"
 #include "config.h"
 #include "cmark.h"
 #include "node.h"
 #include "buffer.h"
 #include "houdini.h"
+#include "scanners.h"
 
 // Functions to convert cmark_nodes to HTML strings.
 
@@ -156,7 +157,7 @@
 		} else {
 			bufsize_t first_tag = 0;
 			while (first_tag < node->as.code.info.len &&
-			       node->as.code.info.data[first_tag] != ' ') {
+			       !cmark_isspace(node->as.code.info.data[first_tag])) {
 				first_tag += 1;
 			}
 
@@ -174,7 +175,13 @@
 
 	case CMARK_NODE_HTML:
 		cr(html);
-		cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len);
+		if (options & CMARK_OPT_SAFE) {
+			cmark_strbuf_puts(html, "<!-- raw HTML omitted -->");
+		} else {
+			cmark_strbuf_put(html, node->as.literal.data,
+			                 node->as.literal.len);
+		}
+		cr(html);
 		break;
 
 	case CMARK_NODE_HRULE:
@@ -228,7 +235,12 @@
 		break;
 
 	case CMARK_NODE_INLINE_HTML:
-		cmark_strbuf_put(html, node->as.literal.data, node->as.literal.len);
+		if (options & CMARK_OPT_SAFE) {
+			cmark_strbuf_puts(html, "<!-- raw HTML omitted -->");
+		} else {
+			cmark_strbuf_put(html, node->as.literal.data,
+			                 node->as.literal.len);
+		}
 		break;
 
 	case CMARK_NODE_STRONG:
@@ -250,15 +262,19 @@
 	case CMARK_NODE_LINK:
 		if (entering) {
 			cmark_strbuf_puts(html, "<a href=\"");
-			houdini_escape_href(html, node->as.link.url.data,
-	                                    node->as.link.url.len);
+			if (!((options & CMARK_OPT_SAFE) &&
+			      scan_dangerous_url(&node->as.link.url, 0))) {
+				houdini_escape_href(html,
+				                    node->as.link.url.data,
+				                    node->as.link.url.len);
 
+			}
 			if (node->as.link.title.len) {
 				cmark_strbuf_puts(html, "\" title=\"");
-				escape_html(html, node->as.link.title.data,
+				escape_html(html,
+				            node->as.link.title.data,
 				            node->as.link.title.len);
 			}
-
 			cmark_strbuf_puts(html, "\">");
 		} else {
 			cmark_strbuf_puts(html, "</a>");
@@ -268,9 +284,13 @@
 	case CMARK_NODE_IMAGE:
 		if (entering) {
 			cmark_strbuf_puts(html, "<img src=\"");
-			houdini_escape_href(html, node->as.link.url.data,
-		                            node->as.link.url.len);
+			if (!((options & CMARK_OPT_SAFE) &&
+			      scan_dangerous_url(&node->as.link.url, 0))) {
+				houdini_escape_href(html,
+				                    node->as.link.url.data,
+				                    node->as.link.url.len);
 
+			}
 			cmark_strbuf_puts(html, "\" alt=\"");
 			state->plain = node;
 		} else {
diff --git a/cbits/inlines.c b/cbits/inlines.c
--- a/cbits/inlines.c
+++ b/cbits/inlines.c
@@ -50,6 +50,12 @@
 	delimiter *last_delim;
 } subject;
 
+static inline bool
+S_is_line_end_char(char c)
+{
+	return (c == '\n' || c == '\r');
+}
+
 static delimiter*
 S_insert_emph(subject *subj, delimiter *opener, delimiter *closer);
 
@@ -163,8 +169,6 @@
 	e->pos = 0;
 	e->refmap = refmap;
 	e->last_delim = NULL;
-
-	cmark_chunk_rtrim(&e->input);
 }
 
 static inline int isbacktick(int c)
@@ -174,6 +178,9 @@
 
 static inline unsigned char peek_char(subject *subj)
 {
+	// NULL bytes should have been stripped out by now.  If they're
+	// present, it's a programming error:
+	assert(!(subj->pos < subj->input.len && subj->input.data[subj->pos] == 0));
 	return (subj->pos < subj->input.len) ? subj->input.data[subj->pos] : 0;
 }
 
@@ -191,6 +198,32 @@
 // Advance the subject.  Doesn't check for eof.
 #define advance(subj) (subj)->pos += 1
 
+static inline bool
+skip_spaces(subject *subj)
+{
+	bool skipped = false;
+	while (peek_char(subj) == ' ' || peek_char(subj) == '\t') {
+		advance(subj);
+		skipped = true;
+	}
+	return skipped;
+}
+
+static inline bool
+skip_line_end(subject *subj)
+{
+	bool seen_line_end_char = false;
+	if (peek_char(subj) == '\r') {
+		advance(subj);
+		seen_line_end_char = true;
+	}
+	if (peek_char(subj) == '\n') {
+		advance(subj);
+		seen_line_end_char = true;
+	}
+	return seen_line_end_char || is_eof(subj);
+}
+
 // Take characters while a predicate holds, and return a string.
 static inline cmark_chunk take_while(subject* subj, int (*f)(int))
 {
@@ -326,10 +359,10 @@
 	delimiter *delim;
 	delim = subj->last_delim;
 	while (delim != NULL) {
-		printf("Item at %p: %d %d %d next(%p) prev(%p)\n",
-		       delim, delim->delim_char,
+		printf("Item at stack pos %p, text pos %d: %d %d %d next(%p) prev(%p)\n",
+		       (void*)delim, delim->position, delim->delim_char,
 		       delim->can_open, delim->can_close,
-		       delim->next, delim->previous);
+		       (void*)delim->next, (void*)delim->previous);
 		delim = delim->previous;
 	}
 }
@@ -404,18 +437,45 @@
 // Assumes we have a hyphen at the current position.
 static cmark_node* handle_hyphen(subject* subj, bool smart)
 {
+	int startpos = subj->pos;
+
 	advance(subj);
-	if (smart && peek_char(subj) == '-') {
-		advance(subj);
-		if (peek_char(subj) == '-') {
-			advance(subj);
-			return make_str(cmark_chunk_literal(EMDASH));
-		} else {
-			return make_str(cmark_chunk_literal(ENDASH));
-		}
-	} else {
+
+	if (!smart || peek_char(subj) != '-') {
 		return make_str(cmark_chunk_literal("-"));
 	}
+
+	while (smart && peek_char(subj) == '-') {
+		advance(subj);
+	}
+
+	int numhyphens = subj->pos - startpos;
+	int en_count = 0;
+	int em_count = 0;
+	int i;
+	cmark_strbuf buf = GH_BUF_INIT;
+
+	if (numhyphens % 3 == 0) { // if divisible by 3, use all em dashes
+		em_count = numhyphens / 3;
+	} else if (numhyphens % 2 == 0) { // if divisible by 2, use all en dashes
+		en_count = numhyphens / 2;
+	} else if (numhyphens % 3 == 2) { // use one en dash at end
+		en_count = 1;
+		em_count = (numhyphens - 2) / 3;
+	} else { // use two en dashes at the end
+		en_count = 2;
+		em_count = (numhyphens - 4) / 3;
+	}
+
+	for (i = em_count; i > 0; i--) {
+		cmark_strbuf_puts(&buf, EMDASH);
+	}
+
+	for (i = en_count; i > 0; i--) {
+		cmark_strbuf_puts(&buf, ENDASH);
+	}
+
+	return make_str(cmark_chunk_buf_detach(&buf));
 }
 
 // Assumes we have a period at the current position.
@@ -435,13 +495,22 @@
 	}
 }
 
-static void process_emphasis(subject *subj, delimiter *start_delim)
+static void process_emphasis(subject *subj, delimiter *stack_bottom)
 {
 	delimiter *closer = subj->last_delim;
 	delimiter *opener;
+	delimiter *old_closer;
+	bool opener_found;
+	delimiter *openers_bottom[128];
 
+	// initialize openers_bottom:
+	openers_bottom['*'] = stack_bottom;
+	openers_bottom['_'] = stack_bottom;
+	openers_bottom['\''] = stack_bottom;
+	openers_bottom['"'] = stack_bottom;
+
 	// move back to first relevant delim.
-	while (closer != NULL && closer->previous != start_delim) {
+	while (closer != NULL && closer->previous != stack_bottom) {
 		closer = closer->previous;
 	}
 
@@ -452,15 +521,19 @@
 		     closer->delim_char == '"' || closer->delim_char == '\'')) {
 			// Now look backwards for first matching opener:
 			opener = closer->previous;
-			while (opener != NULL && opener != start_delim) {
+			opener_found = false;
+			while (opener != NULL && opener != stack_bottom &&
+			       opener != openers_bottom[closer->delim_char]) {
 				if (opener->delim_char == closer->delim_char &&
 				    opener->can_open) {
+					opener_found = true;
 					break;
 				}
 				opener = opener->previous;
 			}
+			old_closer = closer;
 			if (closer->delim_char == '*' || closer->delim_char == '_') {
-				if (opener != NULL && opener != start_delim) {
+				if (opener_found) {
 					closer = S_insert_emph(subj, opener, closer);
 				} else {
 					closer = closer->next;
@@ -469,7 +542,7 @@
 				cmark_chunk_free(&closer->inl_text->as.literal);
 				closer->inl_text->as.literal =
 				    cmark_chunk_literal(RIGHTSINGLEQUOTE);
-				if (opener != NULL && opener != start_delim) {
+				if (opener_found) {
 					cmark_chunk_free(&opener->inl_text->as.literal);
 					opener->inl_text->as.literal =
 					    cmark_chunk_literal(LEFTSINGLEQUOTE);
@@ -479,19 +552,29 @@
 				cmark_chunk_free(&closer->inl_text->as.literal);
 				closer->inl_text->as.literal =
 				    cmark_chunk_literal(RIGHTDOUBLEQUOTE);
-				if (opener != NULL && opener != start_delim) {
+				if (opener_found) {
 					cmark_chunk_free(&opener->inl_text->as.literal);
 					opener->inl_text->as.literal =
 					    cmark_chunk_literal(LEFTDOUBLEQUOTE);
 				}
 				closer = closer->next;
 			}
+			if (!opener_found) {
+				// set lower bound for future searches for openers:
+				openers_bottom[old_closer->delim_char] = old_closer->previous;
+				if (!old_closer->can_open) {
+					// we can remove a closer that can't be an
+					// opener, once we've seen there's no
+					// matching opener:
+					remove_delimiter(subj, old_closer);
+				}
+			}
 		} else {
 			closer = closer->next;
 		}
 	}
-	// free all delimiters in list until start_delim:
-	while (subj->last_delim != start_delim) {
+	// free all delimiters in list until stack_bottom:
+	while (subj->last_delim != stack_bottom) {
 		remove_delimiter(subj, subj->last_delim);
 	}
 }
@@ -583,8 +666,7 @@
 	if (cmark_ispunct(nextchar)) {  // only ascii symbols and newline can be escaped
 		advance(subj);
 		return make_str(cmark_chunk_dup(&subj->input, subj->pos - 1, 1));
-	} else if (nextchar == '\r' || nextchar == '\n') {
-		advance(subj);
+	} else if (!is_eof(subj) && skip_line_end(subj)) {
 		return make_linebreak();
 	} else {
 		return make_str(cmark_chunk_literal("\\"));
@@ -882,7 +964,7 @@
 	inl->type = is_image ? NODE_IMAGE : NODE_LINK;
 	cmark_chunk_free(&inl->as.literal);
 	inl->first_child = link_text;
-	process_emphasis(subj, opener->previous);
+	process_emphasis(subj, opener);
 	inl->as.link.url   = url;
 	inl->as.link.title = title;
 	inl->next = NULL;
@@ -897,10 +979,10 @@
 	}
 	parent->last_child = inl;
 
-	// process_emphasis will remove this delimiter and all later ones.
 	// Now, if we have a link, we also want to deactivate earlier link
 	// delimiters. (This code can be removed if we decide to allow links
 	// inside links.)
+	remove_delimiter(subj, opener);
 	if (!is_image) {
 		opener = subj->last_delim;
 		while (opener != NULL) {
@@ -926,9 +1008,7 @@
 	// skip over newline
 	advance(subj);
 	// skip spaces at beginning of line
-	while (peek_char(subj) == ' ') {
-		advance(subj);
-	}
+	skip_spaces(subj);
 	if (nlpos > 1 &&
 	    peek_at(subj, nlpos - 1) == ' ' &&
 	    peek_at(subj, nlpos - 2) == ' ') {
@@ -1059,7 +1139,7 @@
 		subj->pos = endpos;
 
 		// if we're at a newline, strip trailing spaces.
-		if (peek_char(subj) == '\r' || peek_char(subj) == '\n') {
+		if (S_is_line_end_char(peek_char(subj))) {
 			cmark_chunk_rtrim(&contents);
 		}
 
@@ -1077,6 +1157,7 @@
 {
 	subject subj;
 	subject_from_buf(&subj, &parent->string_content, refmap);
+	cmark_chunk_rtrim(&subj.input);
 
 	while (!is_eof(&subj) && parse_inline(&subj, parent, options)) ;
 
@@ -1086,11 +1167,9 @@
 // Parse zero or more space characters, including at most one newline.
 static void spnl(subject* subj)
 {
-	bool seen_newline = false;
-	while (peek_char(subj) == ' ' ||
-	       (!seen_newline &&
-	        (seen_newline = peek_char(subj) == '\r' || peek_char(subj) == '\n'))) {
-		advance(subj);
+	skip_spaces(subj);
+	if (skip_line_end(subj)) {
+		skip_spaces(subj);
 	}
 }
 
@@ -1143,14 +1222,19 @@
 		subj.pos = beforetitle;
 		title = cmark_chunk_literal("");
 	}
+
 	// parse final spaces and newline:
-	while (peek_char(&subj) == ' ') {
-		advance(&subj);
-	}
-	if (peek_char(&subj) == '\r' || peek_char(&subj) == '\n') {
-		advance(&subj);
-	} else if (peek_char(&subj) != 0) {
-		return 0;
+	skip_spaces(&subj);
+	if (!skip_line_end(&subj)) {
+		if (matchlen) { // try rewinding before title
+			subj.pos = beforetitle;
+			skip_spaces(&subj);
+			if (!skip_line_end(&subj)) {
+				return 0;
+			}
+		} else {
+			return 0;
+		}
 	}
 	// insert reference into refmap
 	cmark_reference_create(refmap, &lab, &url, &title);
diff --git a/cbits/latex.c b/cbits/latex.c
new file mode 100644
--- /dev/null
+++ b/cbits/latex.c
@@ -0,0 +1,430 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+#include <assert.h>
+#include <ctype.h>
+
+#include "config.h"
+#include "cmark.h"
+#include "node.h"
+#include "buffer.h"
+#include "utf8.h"
+#include "scanners.h"
+#include "render.h"
+
+#define safe_strlen(s) cmark_strbuf_safe_strlen(s)
+#define OUT(s, wrap, escaping) renderer->out(renderer, s, wrap, escaping)
+#define LIT(s) renderer->out(renderer, s, false, LITERAL)
+#define CR() renderer->cr(renderer)
+#define BLANKLINE() renderer->blankline(renderer)
+
+static inline void outc(cmark_renderer *renderer,
+                        cmark_escaping escape,
+                        int32_t c,
+                        unsigned char nextc)
+{
+	if (escape == LITERAL) {
+		cmark_render_code_point(renderer, c);
+		return;
+	}
+
+	switch(c) {
+	case 123: // '{'
+	case 125: // '}'
+	case 35: // '#'
+	case 37: // '%'
+	case 38: // '&'
+		cmark_render_ascii(renderer, "\\");
+		cmark_render_code_point(renderer, c);
+		break;
+	case 36: // '$'
+	case 95: // '_'
+		if (escape == NORMAL) {
+			cmark_render_ascii(renderer, "\\");
+		}
+		cmark_render_code_point(renderer, c);
+		break;
+	case 45 : // '-'
+		if (nextc == 45) { // prevent ligature
+			cmark_render_ascii(renderer, "\\-");
+		} else {
+			cmark_render_ascii(renderer, "-");
+		}
+		break;
+	case 126: // '~'
+		if (escape == NORMAL) {
+			cmark_render_ascii(renderer, "\\textasciitilde{}");
+		} else {
+			cmark_render_code_point(renderer, c);
+		}
+		break;
+	case 94: // '^'
+		cmark_render_ascii(renderer, "\\^{}");
+		break;
+	case 92: // '\\'
+		if (escape == URL) {
+			// / acts as path sep even on windows:
+			cmark_render_ascii(renderer, "/");
+		} else {
+			cmark_render_ascii(renderer, "\\textbackslash{}");
+		}
+		break;
+	case 124: // '|'
+		cmark_render_ascii(renderer, "\\textbar{}");
+		break;
+	case 60: // '<'
+		cmark_render_ascii(renderer, "\\textless{}");
+		break;
+	case 62: // '>'
+		cmark_render_ascii(renderer, "\\textgreater{}");
+		break;
+	case 91: // '['
+	case 93: // ']'
+		cmark_render_ascii(renderer, "{");
+		cmark_render_code_point(renderer, c);
+		cmark_render_ascii(renderer, "}");
+		break;
+	case 34: // '"'
+		cmark_render_ascii(renderer, "\\textquotedbl{}");
+		// requires \usepackage[T1]{fontenc}
+		break;
+	case 39: // '\''
+		cmark_render_ascii(renderer, "\\textquotesingle{}");
+		// requires \usepackage{textcomp}
+		break;
+	case 160: // nbsp
+		cmark_render_ascii(renderer, "~");
+		break;
+	case 8230: // hellip
+		cmark_render_ascii(renderer, "\\ldots{}");
+		break;
+	case 8216: // lsquo
+		if (escape == NORMAL) {
+			cmark_render_ascii(renderer, "`");
+		} else {
+			cmark_render_code_point(renderer, c);
+		}
+		break;
+	case 8217: // rsquo
+		if (escape == NORMAL) {
+			cmark_render_ascii(renderer, "\'");
+		} else {
+			cmark_render_code_point(renderer, c);
+		}
+		break;
+	case 8220: // ldquo
+		if (escape == NORMAL) {
+			cmark_render_ascii(renderer, "``");
+		} else {
+			cmark_render_code_point(renderer, c);
+		}
+		break;
+	case 8221: // rdquo
+		if (escape == NORMAL) {
+			cmark_render_ascii(renderer, "''");
+		} else {
+			cmark_render_code_point(renderer, c);
+		}
+		break;
+	case 8212: // emdash
+		if (escape == NORMAL) {
+			cmark_render_ascii(renderer, "---");
+		} else {
+			cmark_render_code_point(renderer, c);
+		}
+		break;
+	case 8211: // endash
+		if (escape == NORMAL) {
+			cmark_render_ascii(renderer, "--");
+		} else {
+			cmark_render_code_point(renderer, c);
+		}
+		break;
+	default:
+		cmark_render_code_point(renderer, c);
+	}
+}
+
+typedef enum  {
+	NO_LINK,
+	URL_AUTOLINK,
+	EMAIL_AUTOLINK,
+	NORMAL_LINK
+} link_type;
+
+static link_type
+get_link_type(cmark_node *node)
+{
+	size_t title_len, url_len;
+	cmark_node *link_text;
+	char *realurl;
+	int realurllen;
+	bool isemail = false;
+
+	if (node->type != CMARK_NODE_LINK) {
+		return NO_LINK;
+	}
+
+	const char* url = cmark_node_get_url(node);
+	cmark_chunk url_chunk = cmark_chunk_literal(url);
+
+	url_len = safe_strlen(url);
+	if (url_len == 0 || scan_scheme(&url_chunk, 0) == 0) {
+		return NO_LINK;
+	}
+
+	const char* title = cmark_node_get_title(node);
+	title_len = safe_strlen(title);
+	// if it has a title, we can't treat it as an autolink:
+	if (title_len > 0) {
+		return NORMAL_LINK;
+	}
+
+	link_text = node->first_child;
+	cmark_consolidate_text_nodes(link_text);
+	realurl = (char*)url;
+	realurllen = url_len;
+	if (strncmp(realurl, "mailto:", 7) == 0) {
+		realurl += 7;
+		realurllen -= 7;
+		isemail = true;
+	}
+	if (realurllen == link_text->as.literal.len &&
+	    strncmp(realurl,
+	            (char*)link_text->as.literal.data,
+	            link_text->as.literal.len) == 0) {
+		if (isemail) {
+			return EMAIL_AUTOLINK;
+		} else {
+			return URL_AUTOLINK;
+		}
+	} else {
+		return NORMAL_LINK;
+	}
+}
+
+static int
+S_get_enumlevel(cmark_node *node)
+{
+	int enumlevel = 0;
+	cmark_node *tmp = node;
+	while (tmp) {
+		if (tmp->type == CMARK_NODE_LIST &&
+		    cmark_node_get_list_type(node) == CMARK_ORDERED_LIST) {
+			enumlevel++;
+		}
+		tmp = tmp->parent;
+	}
+	return enumlevel;
+}
+
+static int
+S_render_node(cmark_renderer *renderer,
+              cmark_node *node,
+              cmark_event_type ev_type,
+              int options)
+{
+	int list_number;
+	char list_number_string[20];
+	bool entering = (ev_type == CMARK_EVENT_ENTER);
+	cmark_list_type list_type;
+	const char* roman_numerals[] = { "", "i", "ii", "iii", "iv", "v",
+	                                 "vi", "vii", "viii", "ix", "x"
+	                               };
+
+	// avoid warning about unused parameter:
+	(void)(options);
+
+	switch (node->type) {
+	case CMARK_NODE_DOCUMENT:
+		break;
+
+	case CMARK_NODE_BLOCK_QUOTE:
+		if (entering) {
+			LIT("\\begin{quote}");
+			CR();
+		} else {
+			LIT("\\end{quote}");
+			BLANKLINE();
+		}
+		break;
+
+	case CMARK_NODE_LIST:
+		list_type = cmark_node_get_list_type(node);
+		if (entering) {
+			LIT("\\begin{");
+			LIT(list_type == CMARK_ORDERED_LIST ?
+			    "enumerate" : "itemize");
+			LIT("}");
+			CR();
+			list_number = cmark_node_get_list_start(node);
+			if (list_number > 1) {
+				sprintf(list_number_string,
+				        "%d", list_number);
+				LIT("\\setcounter{enum");
+				LIT((char *)roman_numerals[S_get_enumlevel(node)]);
+				LIT("}{");
+				OUT(list_number_string, false, NORMAL);
+				LIT("}");
+				CR();
+			}
+		} else {
+			LIT("\\end{");
+			LIT(list_type == CMARK_ORDERED_LIST ?
+			    "enumerate" : "itemize");
+			LIT("}");
+			BLANKLINE();
+		}
+		break;
+
+	case CMARK_NODE_ITEM:
+		if (entering) {
+			LIT("\\item ");
+		} else {
+			CR();
+		}
+		break;
+
+	case CMARK_NODE_HEADER:
+		if (entering) {
+			switch (cmark_node_get_header_level(node)) {
+			case 1:
+				LIT("\\section");
+				break;
+			case 2:
+				LIT("\\subsection");
+				break;
+			case 3:
+				LIT("\\subsubsection");
+				break;
+			case 4:
+				LIT("\\paragraph");
+				break;
+			case 5:
+				LIT("\\subparagraph");
+				break;
+			}
+			LIT("{");
+		} else {
+			LIT("}");
+			BLANKLINE();
+		}
+		break;
+
+	case CMARK_NODE_CODE_BLOCK:
+		CR();
+		LIT("\\begin{verbatim}");
+		CR();
+		OUT(cmark_node_get_literal(node), false, LITERAL);
+		CR();
+		LIT("\\end{verbatim}");
+		BLANKLINE();
+		break;
+
+	case CMARK_NODE_HTML:
+		break;
+
+	case CMARK_NODE_HRULE:
+		BLANKLINE();
+		LIT("\\begin{center}\\rule{0.5\\linewidth}{\\linethickness}\\end{center}");
+		BLANKLINE();
+		break;
+
+	case CMARK_NODE_PARAGRAPH:
+		if (!entering) {
+			BLANKLINE();
+		}
+		break;
+
+	case CMARK_NODE_TEXT:
+		OUT(cmark_node_get_literal(node), true, NORMAL);
+		break;
+
+	case CMARK_NODE_LINEBREAK:
+		LIT("\\\\");
+		CR();
+		break;
+
+	case CMARK_NODE_SOFTBREAK:
+		if (renderer->width == 0) {
+			CR();
+		} else {
+			OUT(" ", true, NORMAL);
+		}
+		break;
+
+	case CMARK_NODE_CODE:
+		LIT("\\texttt{");
+		OUT(cmark_node_get_literal(node), false, NORMAL);
+		LIT("}");
+		break;
+
+	case CMARK_NODE_INLINE_HTML:
+		break;
+
+	case CMARK_NODE_STRONG:
+		if (entering) {
+			LIT("\\textbf{");
+		} else {
+			LIT("}");
+		}
+		break;
+
+	case CMARK_NODE_EMPH:
+		if (entering) {
+			LIT("\\emph{");
+		} else {
+			LIT("}");
+		}
+		break;
+
+	case CMARK_NODE_LINK:
+		if (entering) {
+			const char* url = cmark_node_get_url(node);
+			// requires \usepackage{hyperref}
+			switch(get_link_type(node)) {
+			case URL_AUTOLINK:
+				LIT("\\url{");
+				OUT(url, false, URL);
+				break;
+			case EMAIL_AUTOLINK:
+				LIT("\\href{");
+				OUT(url, false, URL);
+				LIT("}\\nolinkurl{");
+				break;
+			case NORMAL_LINK:
+				LIT("\\href{");
+				OUT(url, false, URL);
+				LIT("}{");
+				break;
+			case NO_LINK:
+				LIT("{");  // error?
+			}
+		} else {
+			LIT("}");
+		}
+
+		break;
+
+	case CMARK_NODE_IMAGE:
+		if (entering) {
+			LIT("\\protect\\includegraphics{");
+			// requires \include{graphicx}
+			OUT(cmark_node_get_url(node), false, URL);
+			LIT("}");
+			return 0;
+		}
+		break;
+
+	default:
+		assert(false);
+		break;
+	}
+
+	return 1;
+}
+
+char *cmark_render_latex(cmark_node *root, int options, int width)
+{
+	return cmark_render(root, options, width, outc, S_render_node);
+}
diff --git a/cbits/man.c b/cbits/man.c
--- a/cbits/man.c
+++ b/cbits/man.c
@@ -8,110 +8,83 @@
 #include "node.h"
 #include "buffer.h"
 #include "utf8.h"
+#include "render.h"
 
-// Functions to convert cmark_nodes to groff man strings.
+#define OUT(s, wrap, escaping) renderer->out(renderer, s, wrap, escaping)
+#define LIT(s) renderer->out(renderer, s, false, LITERAL)
+#define CR() renderer->cr(renderer)
+#define BLANKLINE() renderer->blankline(renderer)
 
-static void escape_man(cmark_strbuf *dest, const unsigned char *source, int length)
+// Functions to convert cmark_nodes to groff man strings.
+static
+void S_outc(cmark_renderer *renderer,
+            cmark_escaping escape,
+            int32_t c,
+            unsigned char nextc)
 {
-	int32_t c;
-	int i = 0;
-	int len;
-	bool beginLine = true;
+	(void)(nextc);
 
-	while (i < length) {
-		len = utf8proc_iterate(source + i, length - i, &c);
-		if (len == -1) { // error condition
-			return;  // return without rendering anything
+	if (escape == LITERAL) {
+		cmark_render_code_point(renderer, c);
+		return;
+	}
+
+	switch(c) {
+	case 46:
+		if (renderer->begin_line) {
+			cmark_render_ascii(renderer, "\\&.");
+		} else {
+			cmark_render_code_point(renderer, c);
 		}
-		switch(c) {
-		case 46:
-			if (beginLine) {
-				cmark_strbuf_puts(dest, "\\&.");
-			} else {
-				utf8proc_encode_char(c, dest);
-			}
-			break;
-		case 39:
-			if (beginLine) {
-				cmark_strbuf_puts(dest, "\\&'");
-			} else {
-				utf8proc_encode_char(c, dest);
-			}
-			break;
-		case 45:
-			cmark_strbuf_puts(dest, "\\-");
-			break;
-		case 92:
-			cmark_strbuf_puts(dest, "\\e");
-			break;
-		case 8216: // left single quote
-			cmark_strbuf_puts(dest, "\\[oq]");
-			break;
-		case 8217: // right single quote
-			cmark_strbuf_puts(dest, "\\[cq]");
-			break;
-		case 8220: // left double quote
-			cmark_strbuf_puts(dest, "\\[lq]");
-			break;
-		case 8221: // right double quote
-			cmark_strbuf_puts(dest, "\\[rq]");
-			break;
-		case 8212: // em dash
-			cmark_strbuf_puts(dest, "\\[em]");
-			break;
-		case 8211: // en dash
-			cmark_strbuf_puts(dest, "\\[en]");
-			break;
-		default:
-			utf8proc_encode_char(c, dest);
+		break;
+	case 39:
+		if (renderer->begin_line) {
+			cmark_render_ascii(renderer, "\\&'");
+		} else {
+			cmark_render_code_point(renderer, c);
 		}
-		beginLine = (c == 10);
-		i += len;
+		break;
+	case 45:
+		cmark_render_ascii(renderer, "\\-");
+		break;
+	case 92:
+		cmark_render_ascii(renderer, "\\e");
+		break;
+	case 8216: // left single quote
+		cmark_render_ascii(renderer, "\\[oq]");
+		break;
+	case 8217: // right single quote
+		cmark_render_ascii(renderer, "\\[cq]");
+		break;
+	case 8220: // left double quote
+		cmark_render_ascii(renderer, "\\[lq]");
+		break;
+	case 8221: // right double quote
+		cmark_render_ascii(renderer, "\\[rq]");
+		break;
+	case 8212: // em dash
+		cmark_render_ascii(renderer, "\\[em]");
+		break;
+	case 8211: // en dash
+		cmark_render_ascii(renderer, "\\[en]");
+		break;
+	default:
+		cmark_render_code_point(renderer, c);
 	}
 }
 
-static inline void cr(cmark_strbuf *man)
-{
-	if (man->size && man->ptr[man->size - 1] != '\n')
-		cmark_strbuf_putc(man, '\n');
-}
-
-struct render_state {
-	cmark_strbuf* man;
-	cmark_node *plain;
-};
-
 static int
-S_render_node(cmark_node *node, cmark_event_type ev_type,
-              struct render_state *state)
+S_render_node(cmark_renderer *renderer,
+              cmark_node *node,
+              cmark_event_type ev_type,
+              int options)
 {
 	cmark_node *tmp;
-	cmark_strbuf *man = state->man;
 	int list_number;
 	bool entering = (ev_type == CMARK_EVENT_ENTER);
 
-	if (state->plain == node) { // back at original node
-		state->plain = NULL;
-	}
-
-	if (state->plain != NULL) {
-		switch(node->type) {
-		case CMARK_NODE_TEXT:
-		case CMARK_NODE_CODE:
-			escape_man(man, node->as.literal.data,
-			           node->as.literal.len);
-			break;
-
-		case CMARK_NODE_LINEBREAK:
-		case CMARK_NODE_SOFTBREAK:
-			cmark_strbuf_putc(man, ' ');
-			break;
-
-		default:
-			break;
-		}
-		return 1;
-	}
+	// avoid unused parameter error:
+	(void)(options);
 
 	switch (node->type) {
 	case CMARK_NODE_DOCUMENT:
@@ -119,13 +92,13 @@
 
 	case CMARK_NODE_BLOCK_QUOTE:
 		if (entering) {
-			cr(man);
-			cmark_strbuf_puts(man, ".RS");
-			cr(man);
+			CR();
+			LIT(".RS");
+			CR();
 		} else {
-			cr(man);
-			cmark_strbuf_puts(man, ".RE");
-			cr(man);
+			CR();
+			LIT(".RE");
+			CR();
 		}
 		break;
 
@@ -134,11 +107,11 @@
 
 	case CMARK_NODE_ITEM:
 		if (entering) {
-			cr(man);
-			cmark_strbuf_puts(man, ".IP ");
+			CR();
+			LIT(".IP ");
 			if (cmark_node_get_list_type(node->parent) ==
 			    CMARK_BULLET_LIST) {
-				cmark_strbuf_puts(man, "\\[bu] 2");
+				LIT("\\[bu] 2");
 			} else {
 				list_number = cmark_node_get_list_start(node->parent);
 				tmp = node;
@@ -146,43 +119,45 @@
 					tmp = tmp->prev;
 					list_number += 1;
 				}
-				cmark_strbuf_printf(man, "\"%d.\" 4", list_number);
+				char list_number_s[20];
+				sprintf(list_number_s, "\"%d.\" 4", list_number);
+				LIT(list_number_s);
 			}
-			cr(man);
+			CR();
 		} else {
-			cr(man);
+			CR();
 		}
 		break;
 
 	case CMARK_NODE_HEADER:
 		if (entering) {
-			cr(man);
-			cmark_strbuf_puts(man,
-			                  cmark_node_get_header_level(node) == 1 ?
-			                  ".SH" : ".SS");
-			cr(man);
+			CR();
+			LIT(cmark_node_get_header_level(node) == 1 ?
+			    ".SH" : ".SS");
+			CR();
 		} else {
-			cr(man);
+			CR();
 		}
 		break;
 
 	case CMARK_NODE_CODE_BLOCK:
-		cr(man);
-		cmark_strbuf_puts(man, ".IP\n.nf\n\\f[C]\n");
-		escape_man(man, node->as.code.literal.data,
-		           node->as.code.literal.len);
-		cr(man);
-		cmark_strbuf_puts(man, "\\f[]\n.fi");
-		cr(man);
+		CR();
+		LIT(".IP\n.nf\n\\f[C]\n");
+		OUT(cmark_node_get_literal(node),
+		    false,
+		    NORMAL);
+		CR();
+		LIT("\\f[]\n.fi");
+		CR();
 		break;
 
 	case CMARK_NODE_HTML:
 		break;
 
 	case CMARK_NODE_HRULE:
-		cr(man);
-		cmark_strbuf_puts(man, ".PP\n  *  *  *  *  *");
-		cr(man);
+		CR();
+		LIT(".PP\n  *  *  *  *  *");
+		CR();
 		break;
 
 	case CMARK_NODE_PARAGRAPH:
@@ -193,32 +168,36 @@
 			    node->prev == NULL) {
 				// no blank line or .PP
 			} else {
-				cr(man);
-				cmark_strbuf_puts(man, ".PP\n");
+				CR();
+				LIT(".PP");
+				CR();
 			}
 		} else {
-			cr(man);
+			CR();
 		}
 		break;
 
 	case CMARK_NODE_TEXT:
-		escape_man(man, node->as.literal.data,
-		           node->as.literal.len);
+		OUT(cmark_node_get_literal(node), true, NORMAL);
 		break;
 
 	case CMARK_NODE_LINEBREAK:
-		cmark_strbuf_puts(man, ".PD 0\n.P\n.PD");
-		cr(man);
+		LIT(".PD 0\n.P\n.PD");
+		CR();
 		break;
 
 	case CMARK_NODE_SOFTBREAK:
-		cmark_strbuf_putc(man, '\n');
+		if (renderer->width == 0) {
+			CR();
+		} else {
+			OUT(" ", true, LITERAL);
+		}
 		break;
 
 	case CMARK_NODE_CODE:
-		cmark_strbuf_puts(man, "\\f[C]");
-		escape_man(man, node->as.literal.data, node->as.literal.len);
-		cmark_strbuf_puts(man, "\\f[]");
+		LIT("\\f[C]");
+		OUT(cmark_node_get_literal(node), true, NORMAL);
+		LIT("\\f[]");
 		break;
 
 	case CMARK_NODE_INLINE_HTML:
@@ -226,33 +205,33 @@
 
 	case CMARK_NODE_STRONG:
 		if (entering) {
-			cmark_strbuf_puts(man, "\\f[B]");
+			LIT("\\f[B]");
 		} else {
-			cmark_strbuf_puts(man, "\\f[]");
+			LIT("\\f[]");
 		}
 		break;
 
 	case CMARK_NODE_EMPH:
 		if (entering) {
-			cmark_strbuf_puts(man, "\\f[I]");
+			LIT("\\f[I]");
 		} else {
-			cmark_strbuf_puts(man, "\\f[]");
+			LIT("\\f[]");
 		}
 		break;
 
 	case CMARK_NODE_LINK:
 		if (!entering) {
-			cmark_strbuf_printf(man, " (%s)",
-			                    cmark_node_get_url(node));
+			LIT(" (");
+			OUT(cmark_node_get_url(node), true, URL);
+			LIT(")");
 		}
 		break;
 
 	case CMARK_NODE_IMAGE:
 		if (entering) {
-			cmark_strbuf_puts(man, "[IMAGE: ");
-			state->plain = node;
+			LIT("[IMAGE: ");
 		} else {
-			cmark_strbuf_puts(man, "]");
+			LIT("]");
 		}
 		break;
 
@@ -261,27 +240,10 @@
 		break;
 	}
 
-	// cmark_strbuf_putc(man, 'x');
 	return 1;
 }
 
-char *cmark_render_man(cmark_node *root, int options)
+char *cmark_render_man(cmark_node *root, int options, int width)
 {
-	char *result;
-	cmark_strbuf man = GH_BUF_INIT;
-	struct render_state state = { &man, NULL };
-	cmark_node *cur;
-	cmark_event_type ev_type;
-	cmark_iter *iter = cmark_iter_new(root);
-
-	if (options == 0) options = 0; // avoid warning about unused parameters
-
-	while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
-		cur = cmark_iter_get_node(iter);
-		S_render_node(cur, ev_type, &state);
-	}
-	result = (char *)cmark_strbuf_detach(&man);
-
-	cmark_iter_free(iter);
-	return result;
+	return cmark_render(root, options, width, S_outc, S_render_node);
 }
diff --git a/cbits/node.h b/cbits/node.h
--- a/cbits/node.h
+++ b/cbits/node.h
@@ -69,6 +69,7 @@
 		cmark_code        code;
 		cmark_header      header;
 		cmark_link        link;
+		int               html_block_type;
 	} as;
 };
 
diff --git a/cbits/parser.h b/cbits/parser.h
--- a/cbits/parser.h
+++ b/cbits/parser.h
@@ -17,7 +17,9 @@
 	struct cmark_node* current;
 	int line_number;
 	bufsize_t offset;
+	bufsize_t column;
 	bufsize_t first_nonspace;
+	bufsize_t first_nonspace_column;
 	int indent;
 	bool blank;
 	cmark_strbuf *curline;
diff --git a/cbits/render.c b/cbits/render.c
new file mode 100644
--- /dev/null
+++ b/cbits/render.c
@@ -0,0 +1,186 @@
+#include <stdlib.h>
+#include "buffer.h"
+#include "chunk.h"
+#include "cmark.h"
+#include "utf8.h"
+#include "render.h"
+
+static inline
+void S_cr(cmark_renderer *renderer)
+{
+	if (renderer->need_cr < 1) {
+		renderer->need_cr = 1;
+	}
+}
+
+static inline
+void S_blankline(cmark_renderer *renderer)
+{
+	if (renderer->need_cr < 2) {
+		renderer->need_cr = 2;
+	}
+}
+
+static
+void S_out(cmark_renderer *renderer,
+           const char *source,
+           bool wrap,
+           cmark_escaping escape)
+{
+	int length = cmark_strbuf_safe_strlen(source);
+	unsigned char nextc;
+	int32_t c;
+	int i = 0;
+	int len;
+	cmark_chunk remainder = cmark_chunk_literal("");
+	int k = renderer->buffer->size - 1;
+
+	wrap = wrap && !renderer->no_wrap;
+
+	if (renderer->in_tight_list_item && renderer->need_cr > 1) {
+		renderer->need_cr = 1;
+	}
+	while (renderer->need_cr) {
+		if (k < 0 || renderer->buffer->ptr[k] == '\n') {
+			k -= 1;
+		} else {
+			cmark_strbuf_putc(renderer->buffer, '\n');
+			if (renderer->need_cr > 1) {
+				cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr,
+				                 renderer->prefix->size);
+			}
+		}
+		renderer->column = 0;
+		renderer->begin_line = true;
+		renderer->need_cr -= 1;
+	}
+
+	while (i < length) {
+		if (renderer->begin_line) {
+			cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr,
+			                 renderer->prefix->size);
+			// note: this assumes prefix is ascii:
+			renderer->column = renderer->prefix->size;
+		}
+
+		len = utf8proc_iterate((const uint8_t *)source + i, length - i, &c);
+		if (len == -1) { // error condition
+			return;  // return without rendering rest of string
+		}
+		nextc = source[i + len];
+		if (c == 32 && wrap) {
+			if (!renderer->begin_line) {
+				cmark_strbuf_putc(renderer->buffer, ' ');
+				renderer->column += 1;
+				renderer->begin_line = false;
+				renderer->last_breakable = renderer->buffer->size -
+				                           1;
+				// skip following spaces
+				while (source[i + 1] == ' ') {
+					i++;
+				}
+			}
+
+		} else if (c == 10) {
+			cmark_strbuf_putc(renderer->buffer, '\n');
+			renderer->column = 0;
+			renderer->begin_line = true;
+			renderer->last_breakable = 0;
+		} else if (escape == LITERAL) {
+			cmark_render_code_point(renderer, c);
+			renderer->begin_line = false;
+		} else {
+			(renderer->outc)(renderer, escape, c, nextc);
+			renderer->begin_line = false;
+		}
+
+		// If adding the character went beyond width, look for an
+		// earlier place where the line could be broken:
+		if (renderer->width > 0 &&
+		    renderer->column > renderer->width &&
+		    !renderer->begin_line &&
+		    renderer->last_breakable > 0) {
+
+			// copy from last_breakable to remainder
+			cmark_chunk_set_cstr(&remainder, (char *) renderer->buffer->ptr + renderer->last_breakable + 1);
+			// truncate at last_breakable
+			cmark_strbuf_truncate(renderer->buffer, renderer->last_breakable);
+			// add newline, prefix, and remainder
+			cmark_strbuf_putc(renderer->buffer, '\n');
+			cmark_strbuf_put(renderer->buffer, renderer->prefix->ptr,
+			                 renderer->prefix->size);
+			cmark_strbuf_put(renderer->buffer, remainder.data, remainder.len);
+			renderer->column = renderer->prefix->size + remainder.len;
+			cmark_chunk_free(&remainder);
+			renderer->last_breakable = 0;
+			renderer->begin_line = false;
+		}
+
+		i += len;
+	}
+}
+
+// Assumes no newlines, assumes ascii content:
+void
+cmark_render_ascii(cmark_renderer* renderer, const char* s)
+{
+	int origsize = renderer->buffer->size;
+	cmark_strbuf_puts(renderer->buffer, s);
+	renderer->column += renderer->buffer->size - origsize;
+}
+
+void
+cmark_render_code_point(cmark_renderer *renderer, uint32_t c)
+{
+	utf8proc_encode_char(c, renderer->buffer);
+	renderer->column += 1;
+}
+
+char*
+cmark_render(cmark_node *root,
+             int options,
+             int width,
+             void (*outc)(cmark_renderer*,
+                          cmark_escaping,
+                          int32_t,
+                          unsigned char),
+             int (*render_node)(cmark_renderer *renderer,
+                                cmark_node *node,
+                                cmark_event_type ev_type,
+                                int options))
+{
+	cmark_strbuf pref = GH_BUF_INIT;
+	cmark_strbuf buf = GH_BUF_INIT;
+	cmark_node *cur;
+	cmark_event_type ev_type;
+	char *result;
+	cmark_iter *iter = cmark_iter_new(root);
+
+	cmark_renderer renderer = { &buf, &pref, 0, width,
+	                            0, 0, true, false, false,
+	                            outc, S_cr, S_blankline, S_out
+	                          };
+
+	while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
+		cur = cmark_iter_get_node(iter);
+		if (!render_node(&renderer, cur, ev_type, options)) {
+			// a false value causes us to skip processing
+			// the node's contents.  this is used for
+			// autolinks.
+			cmark_iter_reset(iter, cur, CMARK_EVENT_EXIT);
+		}
+	}
+
+	// ensure final newline
+	if (renderer.buffer->ptr[renderer.buffer->size - 1] != '\n') {
+		cmark_strbuf_putc(renderer.buffer, '\n');
+	}
+
+	result = (char *)cmark_strbuf_detach(renderer.buffer);
+
+	cmark_iter_free(iter);
+	cmark_strbuf_free(renderer.prefix);
+	cmark_strbuf_free(renderer.buffer);
+
+	return result;
+}
diff --git a/cbits/render.h b/cbits/render.h
new file mode 100644
--- /dev/null
+++ b/cbits/render.h
@@ -0,0 +1,66 @@
+#ifndef CMARK_RENDER_H
+#define CMARK_RENDER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdlib.h>
+#include "buffer.h"
+#include "chunk.h"
+
+typedef enum  {
+	LITERAL,
+	NORMAL,
+	TITLE,
+	URL
+} cmark_escaping;
+
+struct cmark_renderer {
+	cmark_strbuf* buffer;
+	cmark_strbuf* prefix;
+	int column;
+	int width;
+	int need_cr;
+	bufsize_t last_breakable;
+	bool begin_line;
+	bool no_wrap;
+	bool in_tight_list_item;
+	void (*outc)(struct cmark_renderer*,
+		     cmark_escaping,
+		     int32_t,
+		     unsigned char);
+	void (*cr)(struct cmark_renderer*);
+	void (*blankline)(struct cmark_renderer*);
+	void (*out)(struct cmark_renderer*,
+		    const char *,
+		    bool,
+		    cmark_escaping);
+};
+
+typedef struct cmark_renderer cmark_renderer;
+
+void
+cmark_render_ascii(cmark_renderer *renderer, const char* s);
+
+void
+cmark_render_code_point(cmark_renderer *renderer, uint32_t c);
+
+char*
+cmark_render(cmark_node *root,
+	     int options,
+	     int width,
+	     void (*outc)(cmark_renderer*,
+			  cmark_escaping,
+			  int32_t,
+			  unsigned char),
+	     int (*render_node)(cmark_renderer *renderer,
+				cmark_node *node,
+				cmark_event_type ev_type,
+				int options));
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/cbits/scanners.c b/cbits/scanners.c
--- a/cbits/scanners.c
+++ b/cbits/scanners.c
@@ -1,15405 +1,21047 @@
-/* Generated by re2c 0.13.5 */
-#include <stdlib.h>
-#include "chunk.h"
-#include "scanners.h"
-
-bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c, bufsize_t offset)
-{
-	bufsize_t res;
-	unsigned char *ptr = (unsigned char *)c->data;
-	unsigned char lim = ptr[c->len];
-
-	ptr[c->len] = '\0';
-	res = scanner(ptr + offset);
-	ptr[c->len] = lim;
-
-	return res;
-}
-
-
-
-// Try to match a scheme including colon.
-bufsize_t _scan_scheme(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-
-	yych = *p;
-	switch (yych) {
-	case '\n':	goto yy2;
-	case 'A':
-	case 'a':	goto yy6;
-	case 'B':
-	case 'b':	goto yy24;
-	case 'C':
-	case 'c':	goto yy3;
-	case 'D':
-	case 'd':	goto yy4;
-	case 'E':
-	case 'e':	goto yy25;
-	case 'F':
-	case 'f':	goto yy7;
-	case 'G':
-	case 'g':	goto yy8;
-	case 'H':
-	case 'h':	goto yy9;
-	case 'I':
-	case 'i':	goto yy10;
-	case 'J':
-	case 'j':	goto yy5;
-	case 'K':
-	case 'k':	goto yy26;
-	case 'L':
-	case 'l':	goto yy11;
-	case 'M':
-	case 'm':	goto yy12;
-	case 'N':
-	case 'n':	goto yy13;
-	case 'O':
-	case 'o':	goto yy14;
-	case 'P':
-	case 'p':	goto yy15;
-	case 'Q':
-	case 'q':	goto yy27;
-	case 'R':
-	case 'r':	goto yy16;
-	case 'S':
-	case 's':	goto yy17;
-	case 'T':
-	case 't':	goto yy18;
-	case 'U':
-	case 'u':	goto yy19;
-	case 'V':
-	case 'v':	goto yy20;
-	case 'W':
-	case 'w':	goto yy21;
-	case 'X':
-	case 'x':	goto yy22;
-	case 'Y':
-	case 'y':	goto yy28;
-	case 'Z':
-	case 'z':	goto yy23;
-	default:	goto yy29;
-	}
-yy2:
-	{ return 0; }
-yy3:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy440;
-	case 'H':
-	case 'h':	goto yy439;
-	case 'I':
-	case 'i':	goto yy442;
-	case 'O':
-	case 'o':	goto yy438;
-	case 'R':
-	case 'r':	goto yy441;
-	case 'V':
-	case 'v':	goto yy437;
-	default:	goto yy2;
-	}
-yy4:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy413;
-	case 'I':
-	case 'i':	goto yy412;
-	case 'L':
-	case 'l':	goto yy410;
-	case 'N':
-	case 'n':	goto yy411;
-	case 'O':
-	case 'o':	goto yy414;
-	case 'T':
-	case 't':	goto yy409;
-	case 'V':
-	case 'v':	goto yy408;
-	default:	goto yy2;
-	}
-yy5:
-	yych = *(marker = ++p);
-	if (yych <= 'M') {
-		if (yych == 'A') goto yy400;
-		if (yych <= 'L') goto yy2;
-		goto yy399;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy2;
-			goto yy400;
-		} else {
-			if (yych == 'm') goto yy399;
-			goto yy2;
-		}
-	}
-yy6:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy381;
-	case 'B':
-	case 'b':	goto yy380;
-	case 'C':
-	case 'c':	goto yy379;
-	case 'D':
-	case 'd':	goto yy378;
-	case 'F':
-	case 'f':	goto yy377;
-	case 'I':
-	case 'i':	goto yy376;
-	case 'P':
-	case 'p':	goto yy375;
-	case 'T':
-	case 't':	goto yy374;
-	case 'W':
-	case 'w':	goto yy34;
-	default:	goto yy2;
-	}
-yy7:
-	yych = *(marker = ++p);
-	if (yych <= 'T') {
-		if (yych <= 'E') {
-			if (yych == 'A') goto yy361;
-			if (yych <= 'D') goto yy2;
-			goto yy360;
-		} else {
-			if (yych == 'I') goto yy359;
-			if (yych <= 'S') goto yy2;
-			goto yy362;
-		}
-	} else {
-		if (yych <= 'e') {
-			if (yych == 'a') goto yy361;
-			if (yych <= 'd') goto yy2;
-			goto yy360;
-		} else {
-			if (yych <= 'i') {
-				if (yych <= 'h') goto yy2;
-				goto yy359;
-			} else {
-				if (yych == 't') goto yy362;
-				goto yy2;
-			}
-		}
-	}
-yy8:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'E':
-	case 'e':	goto yy344;
-	case 'G':
-	case 'g':	goto yy34;
-	case 'I':
-	case 'i':	goto yy342;
-	case 'O':
-	case 'o':	goto yy343;
-	case 'T':
-	case 't':	goto yy341;
-	default:	goto yy2;
-	}
-yy9:
-	yych = *(marker = ++p);
-	if (yych <= 'S') {
-		if (yych <= '3') {
-			if (yych <= '2') goto yy2;
-			goto yy337;
-		} else {
-			if (yych == 'C') goto yy335;
-			goto yy2;
-		}
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'T') goto yy336;
-			if (yych <= 'b') goto yy2;
-			goto yy335;
-		} else {
-			if (yych == 't') goto yy336;
-			goto yy2;
-		}
-	}
-yy10:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy317;
-	case 'C':
-	case 'c':	goto yy314;
-	case 'M':
-	case 'm':	goto yy316;
-	case 'N':
-	case 'n':	goto yy315;
-	case 'P':
-	case 'p':	goto yy313;
-	case 'R':
-	case 'r':	goto yy312;
-	case 'T':
-	case 't':	goto yy311;
-	default:	goto yy2;
-	}
-yy11:
-	yych = *(marker = ++p);
-	if (yych <= 'D') {
-		if (yych == 'A') goto yy305;
-		if (yych <= 'C') goto yy2;
-		goto yy304;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy2;
-			goto yy305;
-		} else {
-			if (yych == 'd') goto yy304;
-			goto yy2;
-		}
-	}
-yy12:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy271;
-	case 'E':
-	case 'e':	goto yy270;
-	case 'I':
-	case 'i':	goto yy273;
-	case 'M':
-	case 'm':	goto yy269;
-	case 'S':
-	case 's':	goto yy268;
-	case 'T':
-	case 't':	goto yy272;
-	case 'U':
-	case 'u':	goto yy267;
-	case 'V':
-	case 'v':	goto yy266;
-	default:	goto yy2;
-	}
-yy13:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'E':
-	case 'e':	goto yy261;
-	case 'F':
-	case 'f':	goto yy260;
-	case 'I':
-	case 'i':	goto yy259;
-	case 'N':
-	case 'n':	goto yy258;
-	case 'O':
-	case 'o':	goto yy257;
-	default:	goto yy2;
-	}
-yy14:
-	yych = *(marker = ++p);
-	if (yych <= 'P') {
-		if (yych == 'I') goto yy243;
-		if (yych <= 'O') goto yy2;
-		goto yy244;
-	} else {
-		if (yych <= 'i') {
-			if (yych <= 'h') goto yy2;
-			goto yy243;
-		} else {
-			if (yych == 'p') goto yy244;
-			goto yy2;
-		}
-	}
-yy15:
-	yych = *(marker = ++p);
-	if (yych <= 'S') {
-		if (yych <= 'L') {
-			if (yych == 'A') goto yy225;
-			if (yych <= 'K') goto yy2;
-			goto yy224;
-		} else {
-			if (yych <= 'O') {
-				if (yych <= 'N') goto yy2;
-				goto yy226;
-			} else {
-				if (yych <= 'Q') goto yy2;
-				if (yych <= 'R') goto yy223;
-				goto yy222;
-			}
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'a') {
-				if (yych <= '`') goto yy2;
-				goto yy225;
-			} else {
-				if (yych == 'l') goto yy224;
-				goto yy2;
-			}
-		} else {
-			if (yych <= 'q') {
-				if (yych <= 'o') goto yy226;
-				goto yy2;
-			} else {
-				if (yych <= 'r') goto yy223;
-				if (yych <= 's') goto yy222;
-				goto yy2;
-			}
-		}
-	}
-yy16:
-	yych = *(marker = ++p);
-	if (yych <= 'T') {
-		if (yych <= 'L') {
-			if (yych == 'E') goto yy212;
-			goto yy2;
-		} else {
-			if (yych <= 'M') goto yy211;
-			if (yych <= 'R') goto yy2;
-			if (yych <= 'S') goto yy210;
-			goto yy209;
-		}
-	} else {
-		if (yych <= 'm') {
-			if (yych == 'e') goto yy212;
-			if (yych <= 'l') goto yy2;
-			goto yy211;
-		} else {
-			if (yych <= 'r') goto yy2;
-			if (yych <= 's') goto yy210;
-			if (yych <= 't') goto yy209;
-			goto yy2;
-		}
-	}
-yy17:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'E':
-	case 'e':	goto yy165;
-	case 'F':
-	case 'f':	goto yy164;
-	case 'G':
-	case 'g':	goto yy163;
-	case 'H':
-	case 'h':	goto yy168;
-	case 'I':
-	case 'i':	goto yy167;
-	case 'K':
-	case 'k':	goto yy162;
-	case 'M':
-	case 'm':	goto yy161;
-	case 'N':
-	case 'n':	goto yy166;
-	case 'O':
-	case 'o':	goto yy160;
-	case 'P':
-	case 'p':	goto yy159;
-	case 'S':
-	case 's':	goto yy158;
-	case 'T':
-	case 't':	goto yy157;
-	case 'V':
-	case 'v':	goto yy156;
-	default:	goto yy2;
-	}
-yy18:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy132;
-	case 'E':
-	case 'e':	goto yy128;
-	case 'F':
-	case 'f':	goto yy131;
-	case 'H':
-	case 'h':	goto yy127;
-	case 'I':
-	case 'i':	goto yy129;
-	case 'N':
-	case 'n':	goto yy130;
-	case 'V':
-	case 'v':	goto yy34;
-	default:	goto yy2;
-	}
-yy19:
-	yych = *(marker = ++p);
-	if (yych <= 'T') {
-		if (yych <= 'N') {
-			if (yych == 'D') goto yy119;
-			if (yych <= 'M') goto yy2;
-			goto yy118;
-		} else {
-			if (yych == 'R') goto yy120;
-			if (yych <= 'S') goto yy2;
-			goto yy117;
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych == 'd') goto yy119;
-			if (yych <= 'm') goto yy2;
-			goto yy118;
-		} else {
-			if (yych <= 'r') {
-				if (yych <= 'q') goto yy2;
-				goto yy120;
-			} else {
-				if (yych == 't') goto yy117;
-				goto yy2;
-			}
-		}
-	}
-yy20:
-	yych = *(marker = ++p);
-	if (yych <= 'I') {
-		if (yych == 'E') goto yy101;
-		if (yych <= 'H') goto yy2;
-		goto yy100;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy2;
-			goto yy101;
-		} else {
-			if (yych == 'i') goto yy100;
-			goto yy2;
-		}
-	}
-yy21:
-	yych = *(marker = ++p);
-	if (yych <= 'Y') {
-		if (yych <= 'R') {
-			if (yych == 'E') goto yy90;
-			goto yy2;
-		} else {
-			if (yych <= 'S') goto yy91;
-			if (yych <= 'T') goto yy89;
-			if (yych <= 'X') goto yy2;
-			goto yy88;
-		}
-	} else {
-		if (yych <= 's') {
-			if (yych == 'e') goto yy90;
-			if (yych <= 'r') goto yy2;
-			goto yy91;
-		} else {
-			if (yych <= 't') goto yy89;
-			if (yych == 'y') goto yy88;
-			goto yy2;
-		}
-	}
-yy22:
-	yych = *(marker = ++p);
-	if (yych <= 'R') {
-		if (yych <= 'F') {
-			if (yych == 'C') goto yy67;
-			if (yych <= 'E') goto yy2;
-			goto yy65;
-		} else {
-			if (yych == 'M') goto yy66;
-			if (yych <= 'Q') goto yy2;
-			goto yy64;
-		}
-	} else {
-		if (yych <= 'f') {
-			if (yych == 'c') goto yy67;
-			if (yych <= 'e') goto yy2;
-			goto yy65;
-		} else {
-			if (yych <= 'm') {
-				if (yych <= 'l') goto yy2;
-				goto yy66;
-			} else {
-				if (yych == 'r') goto yy64;
-				goto yy2;
-			}
-		}
-	}
-yy23:
-	yych = *(marker = ++p);
-	if (yych == '3') goto yy59;
-	goto yy2;
-yy24:
-	yych = *(marker = ++p);
-	if (yych <= 'O') {
-		if (yych <= 'H') {
-			if (yych == 'E') goto yy49;
-			goto yy2;
-		} else {
-			if (yych <= 'I') goto yy48;
-			if (yych <= 'N') goto yy2;
-			goto yy47;
-		}
-	} else {
-		if (yych <= 'h') {
-			if (yych == 'e') goto yy49;
-			goto yy2;
-		} else {
-			if (yych <= 'i') goto yy48;
-			if (yych == 'o') goto yy47;
-			goto yy2;
-		}
-	}
-yy25:
-	yych = *(marker = ++p);
-	if (yych == 'D') goto yy45;
-	if (yych == 'd') goto yy45;
-	goto yy2;
-yy26:
-	yych = *(marker = ++p);
-	if (yych == 'E') goto yy40;
-	if (yych == 'e') goto yy40;
-	goto yy2;
-yy27:
-	yych = *(marker = ++p);
-	if (yych == 'U') goto yy37;
-	if (yych == 'u') goto yy37;
-	goto yy2;
-yy28:
-	yych = *(marker = ++p);
-	if (yych == 'M') goto yy30;
-	if (yych == 'm') goto yy30;
-	goto yy2;
-yy29:
-	yych = *++p;
-	goto yy2;
-yy30:
-	yych = *++p;
-	if (yych == 'S') goto yy32;
-	if (yych == 's') goto yy32;
-yy31:
-	p = marker;
-	goto yy2;
-yy32:
-	yych = *++p;
-	if (yych == 'G') goto yy33;
-	if (yych != 'g') goto yy31;
-yy33:
-	yych = *++p;
-	if (yych == 'R') goto yy34;
-	if (yych != 'r') goto yy31;
-yy34:
-	yych = *++p;
-	if (yych != ':') goto yy31;
-yy35:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy37:
-	yych = *++p;
-	if (yych == 'E') goto yy38;
-	if (yych != 'e') goto yy31;
-yy38:
-	yych = *++p;
-	if (yych == 'R') goto yy39;
-	if (yych != 'r') goto yy31;
-yy39:
-	yych = *++p;
-	if (yych == 'Y') goto yy34;
-	if (yych == 'y') goto yy34;
-	goto yy31;
-yy40:
-	yych = *++p;
-	if (yych == 'Y') goto yy41;
-	if (yych != 'y') goto yy31;
-yy41:
-	yych = *++p;
-	if (yych == 'P') goto yy42;
-	if (yych != 'p') goto yy31;
-yy42:
-	yych = *++p;
-	if (yych == 'A') goto yy43;
-	if (yych != 'a') goto yy31;
-yy43:
-	yych = *++p;
-	if (yych == 'R') goto yy44;
-	if (yych != 'r') goto yy31;
-yy44:
-	yych = *++p;
-	if (yych == 'C') goto yy34;
-	if (yych == 'c') goto yy34;
-	goto yy31;
-yy45:
-	yych = *++p;
-	if (yych != '2') goto yy31;
-	yych = *++p;
-	if (yych == 'K') goto yy34;
-	if (yych == 'k') goto yy34;
-	goto yy31;
-yy47:
-	yych = *++p;
-	if (yych == 'L') goto yy58;
-	if (yych == 'l') goto yy58;
-	goto yy31;
-yy48:
-	yych = *++p;
-	if (yych == 'T') goto yy54;
-	if (yych == 't') goto yy54;
-	goto yy31;
-yy49:
-	yych = *++p;
-	if (yych == 'S') goto yy50;
-	if (yych != 's') goto yy31;
-yy50:
-	yych = *++p;
-	if (yych == 'H') goto yy51;
-	if (yych != 'h') goto yy31;
-yy51:
-	yych = *++p;
-	if (yych == 'A') goto yy52;
-	if (yych != 'a') goto yy31;
-yy52:
-	yych = *++p;
-	if (yych == 'R') goto yy53;
-	if (yych != 'r') goto yy31;
-yy53:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy54:
-	yych = *++p;
-	if (yych == 'C') goto yy55;
-	if (yych != 'c') goto yy31;
-yy55:
-	yych = *++p;
-	if (yych == 'O') goto yy56;
-	if (yych != 'o') goto yy31;
-yy56:
-	yych = *++p;
-	if (yych == 'I') goto yy57;
-	if (yych != 'i') goto yy31;
-yy57:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy58:
-	yych = *++p;
-	if (yych == 'O') goto yy34;
-	if (yych == 'o') goto yy34;
-	goto yy31;
-yy59:
-	yych = *++p;
-	if (yych != '9') goto yy31;
-	yych = *++p;
-	if (yych != '.') goto yy31;
-	yych = *++p;
-	if (yych != '5') goto yy31;
-	yych = *++p;
-	if (yych != '0') goto yy31;
-	yych = *++p;
-	if (yych <= 'Q') goto yy31;
-	if (yych <= 'S') goto yy34;
-	if (yych <= 'q') goto yy31;
-	if (yych <= 's') goto yy34;
-	goto yy31;
-yy64:
-	yych = *++p;
-	if (yych == 'I') goto yy34;
-	if (yych == 'i') goto yy34;
-	goto yy31;
-yy65:
-	yych = *++p;
-	if (yych == 'I') goto yy86;
-	if (yych == 'i') goto yy86;
-	goto yy31;
-yy66:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'L') goto yy76;
-		if (yych <= 'O') goto yy31;
-		goto yy77;
-	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy31;
-			goto yy76;
-		} else {
-			if (yych == 'p') goto yy77;
-			goto yy31;
-		}
-	}
-yy67:
-	yych = *++p;
-	if (yych == 'O') goto yy68;
-	if (yych != 'o') goto yy31;
-yy68:
-	yych = *++p;
-	if (yych == 'N') goto yy69;
-	if (yych != 'n') goto yy31;
-yy69:
-	yych = *++p;
-	if (yych == '-') goto yy70;
-	if (yych == ':') goto yy35;
-	goto yy31;
-yy70:
-	yych = *++p;
-	if (yych == 'U') goto yy71;
-	if (yych != 'u') goto yy31;
-yy71:
-	yych = *++p;
-	if (yych == 'S') goto yy72;
-	if (yych != 's') goto yy31;
-yy72:
-	yych = *++p;
-	if (yych == 'E') goto yy73;
-	if (yych != 'e') goto yy31;
-yy73:
-	yych = *++p;
-	if (yych == 'R') goto yy74;
-	if (yych != 'r') goto yy31;
-yy74:
-	yych = *++p;
-	if (yych == 'I') goto yy75;
-	if (yych != 'i') goto yy31;
-yy75:
-	yych = *++p;
-	if (yych == 'D') goto yy34;
-	if (yych == 'd') goto yy34;
-	goto yy31;
-yy76:
-	yych = *++p;
-	if (yych == 'R') goto yy78;
-	if (yych == 'r') goto yy78;
-	goto yy31;
-yy77:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy78:
-	yych = *++p;
-	if (yych == 'P') goto yy79;
-	if (yych != 'p') goto yy31;
-yy79:
-	yych = *++p;
-	if (yych == 'C') goto yy80;
-	if (yych != 'c') goto yy31;
-yy80:
-	yych = *++p;
-	if (yych != '.') goto yy31;
-	yych = *++p;
-	if (yych == 'B') goto yy82;
-	if (yych != 'b') goto yy31;
-yy82:
-	yych = *++p;
-	if (yych == 'E') goto yy83;
-	if (yych != 'e') goto yy31;
-yy83:
-	yych = *++p;
-	if (yych == 'E') goto yy84;
-	if (yych != 'e') goto yy31;
-yy84:
-	yych = *++p;
-	if (yych == 'P') goto yy85;
-	if (yych != 'p') goto yy31;
-yy85:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy86:
-	yych = *++p;
-	if (yych == 'R') goto yy87;
-	if (yych != 'r') goto yy31;
-yy87:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy88:
-	yych = *++p;
-	if (yych == 'C') goto yy96;
-	if (yych == 'c') goto yy96;
-	goto yy31;
-yy89:
-	yych = *++p;
-	if (yych == 'A') goto yy95;
-	if (yych == 'a') goto yy95;
-	goto yy31;
-yy90:
-	yych = *++p;
-	if (yych == 'B') goto yy92;
-	if (yych == 'b') goto yy92;
-	goto yy31;
-yy91:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy92:
-	yych = *++p;
-	if (yych == 'C') goto yy93;
-	if (yych != 'c') goto yy31;
-yy93:
-	yych = *++p;
-	if (yych == 'A') goto yy94;
-	if (yych != 'a') goto yy31;
-yy94:
-	yych = *++p;
-	if (yych == 'L') goto yy34;
-	if (yych == 'l') goto yy34;
-	goto yy31;
-yy95:
-	yych = *++p;
-	if (yych == 'I') goto yy34;
-	if (yych == 'i') goto yy34;
-	goto yy31;
-yy96:
-	yych = *++p;
-	if (yych == 'I') goto yy97;
-	if (yych != 'i') goto yy31;
-yy97:
-	yych = *++p;
-	if (yych == 'W') goto yy98;
-	if (yych != 'w') goto yy31;
-yy98:
-	yych = *++p;
-	if (yych == 'Y') goto yy99;
-	if (yych != 'y') goto yy31;
-yy99:
-	yych = *++p;
-	if (yych == 'G') goto yy34;
-	if (yych == 'g') goto yy34;
-	goto yy31;
-yy100:
-	yych = *++p;
-	if (yych == 'E') goto yy109;
-	if (yych == 'e') goto yy109;
-	goto yy31;
-yy101:
-	yych = *++p;
-	if (yych <= 'N') {
-		if (yych <= 'L') goto yy31;
-		if (yych >= 'N') goto yy103;
-	} else {
-		if (yych <= 'l') goto yy31;
-		if (yych <= 'm') goto yy102;
-		if (yych <= 'n') goto yy103;
-		goto yy31;
-	}
-yy102:
-	yych = *++p;
-	if (yych == 'M') goto yy108;
-	if (yych == 'm') goto yy108;
-	goto yy31;
-yy103:
-	yych = *++p;
-	if (yych == 'T') goto yy104;
-	if (yych != 't') goto yy31;
-yy104:
-	yych = *++p;
-	if (yych == 'R') goto yy105;
-	if (yych != 'r') goto yy31;
-yy105:
-	yych = *++p;
-	if (yych == 'I') goto yy106;
-	if (yych != 'i') goto yy31;
-yy106:
-	yych = *++p;
-	if (yych == 'L') goto yy107;
-	if (yych != 'l') goto yy31;
-yy107:
-	yych = *++p;
-	if (yych == 'O') goto yy34;
-	if (yych == 'o') goto yy34;
-	goto yy31;
-yy108:
-	yych = *++p;
-	if (yych == 'I') goto yy34;
-	if (yych == 'i') goto yy34;
-	goto yy31;
-yy109:
-	yych = *++p;
-	if (yych == 'W') goto yy110;
-	if (yych != 'w') goto yy31;
-yy110:
-	yych = *++p;
-	if (yych != '-') goto yy31;
-	yych = *++p;
-	if (yych == 'S') goto yy112;
-	if (yych != 's') goto yy31;
-yy112:
-	yych = *++p;
-	if (yych == 'O') goto yy113;
-	if (yych != 'o') goto yy31;
-yy113:
-	yych = *++p;
-	if (yych == 'U') goto yy114;
-	if (yych != 'u') goto yy31;
-yy114:
-	yych = *++p;
-	if (yych == 'R') goto yy115;
-	if (yych != 'r') goto yy31;
-yy115:
-	yych = *++p;
-	if (yych == 'C') goto yy116;
-	if (yych != 'c') goto yy31;
-yy116:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy117:
-	yych = *++p;
-	if (yych == '2') goto yy124;
-	goto yy31;
-yy118:
-	yych = *++p;
-	if (yych == 'R') goto yy121;
-	if (yych == 'r') goto yy121;
-	goto yy31;
-yy119:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy120:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy121:
-	yych = *++p;
-	if (yych == 'E') goto yy122;
-	if (yych != 'e') goto yy31;
-yy122:
-	yych = *++p;
-	if (yych == 'A') goto yy123;
-	if (yych != 'a') goto yy31;
-yy123:
-	yych = *++p;
-	if (yych == 'L') goto yy34;
-	if (yych == 'l') goto yy34;
-	goto yy31;
-yy124:
-	yych = *++p;
-	if (yych != '0') goto yy31;
-	yych = *++p;
-	if (yych != '0') goto yy31;
-	yych = *++p;
-	if (yych == '4') goto yy34;
-	goto yy31;
-yy127:
-	yych = *++p;
-	if (yych == 'I') goto yy146;
-	if (yych == 'i') goto yy146;
-	goto yy31;
-yy128:
-	yych = *++p;
-	if (yych <= 'L') {
-		if (yych == 'A') goto yy138;
-		if (yych <= 'K') goto yy31;
-		goto yy137;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy31;
-			goto yy138;
-		} else {
-			if (yych == 'l') goto yy137;
-			goto yy31;
-		}
-	}
-yy129:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy130:
-	yych = *++p;
-	if (yych == '3') goto yy134;
-	goto yy31;
-yy131:
-	yych = *++p;
-	if (yych == 'T') goto yy133;
-	if (yych == 't') goto yy133;
-	goto yy31;
-yy132:
-	yych = *++p;
-	if (yych == 'G') goto yy34;
-	if (yych == 'g') goto yy34;
-	goto yy31;
-yy133:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy134:
-	yych = *++p;
-	if (yych != '2') goto yy31;
-	yych = *++p;
-	if (yych != '7') goto yy31;
-	yych = *++p;
-	if (yych == '0') goto yy34;
-	goto yy31;
-yy137:
-	yych = *++p;
-	if (yych <= 'M') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'N') goto yy144;
-		if (yych == 'n') goto yy144;
-		goto yy31;
-	}
-yy138:
-	yych = *++p;
-	if (yych == 'M') goto yy139;
-	if (yych != 'm') goto yy31;
-yy139:
-	yych = *++p;
-	if (yych == 'S') goto yy140;
-	if (yych != 's') goto yy31;
-yy140:
-	yych = *++p;
-	if (yych == 'P') goto yy141;
-	if (yych != 'p') goto yy31;
-yy141:
-	yych = *++p;
-	if (yych == 'E') goto yy142;
-	if (yych != 'e') goto yy31;
-yy142:
-	yych = *++p;
-	if (yych == 'A') goto yy143;
-	if (yych != 'a') goto yy31;
-yy143:
-	yych = *++p;
-	if (yych == 'K') goto yy34;
-	if (yych == 'k') goto yy34;
-	goto yy31;
-yy144:
-	yych = *++p;
-	if (yych == 'E') goto yy145;
-	if (yych != 'e') goto yy31;
-yy145:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy146:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'N') goto yy147;
-		if (yych <= 'R') goto yy31;
-		goto yy148;
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'm') goto yy31;
-		} else {
-			if (yych == 's') goto yy148;
-			goto yy31;
-		}
-	}
-yy147:
-	yych = *++p;
-	if (yych == 'G') goto yy155;
-	if (yych == 'g') goto yy155;
-	goto yy31;
-yy148:
-	yych = *++p;
-	if (yych == 'M') goto yy149;
-	if (yych != 'm') goto yy31;
-yy149:
-	yych = *++p;
-	if (yych == 'E') goto yy150;
-	if (yych != 'e') goto yy31;
-yy150:
-	yych = *++p;
-	if (yych == 'S') goto yy151;
-	if (yych != 's') goto yy31;
-yy151:
-	yych = *++p;
-	if (yych == 'S') goto yy152;
-	if (yych != 's') goto yy31;
-yy152:
-	yych = *++p;
-	if (yych == 'A') goto yy153;
-	if (yych != 'a') goto yy31;
-yy153:
-	yych = *++p;
-	if (yych == 'G') goto yy154;
-	if (yych != 'g') goto yy31;
-yy154:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy155:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy156:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy157:
-	yych = *++p;
-	if (yych == 'E') goto yy207;
-	if (yych == 'e') goto yy207;
-	goto yy31;
-yy158:
-	yych = *++p;
-	if (yych == 'H') goto yy34;
-	if (yych == 'h') goto yy34;
-	goto yy31;
-yy159:
-	yych = *++p;
-	if (yych == 'O') goto yy203;
-	if (yych == 'o') goto yy203;
-	goto yy31;
-yy160:
-	yych = *++p;
-	if (yych <= 'L') {
-		if (yych == 'A') goto yy193;
-		if (yych <= 'K') goto yy31;
-		goto yy194;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy31;
-			goto yy193;
-		} else {
-			if (yych == 'l') goto yy194;
-			goto yy31;
-		}
-	}
-yy161:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'B') goto yy34;
-		if (yych <= 'R') goto yy31;
-		goto yy34;
-	} else {
-		if (yych <= 'b') {
-			if (yych <= 'a') goto yy31;
-			goto yy34;
-		} else {
-			if (yych == 's') goto yy34;
-			goto yy31;
-		}
-	}
-yy162:
-	yych = *++p;
-	if (yych == 'Y') goto yy191;
-	if (yych == 'y') goto yy191;
-	goto yy31;
-yy163:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy164:
-	yych = *++p;
-	if (yych == 'T') goto yy190;
-	if (yych == 't') goto yy190;
-	goto yy31;
-yy165:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych <= 'C') {
-			if (yych <= 'B') goto yy31;
-			goto yy177;
-		} else {
-			if (yych <= 'Q') goto yy31;
-			if (yych <= 'R') goto yy175;
-			goto yy176;
-		}
-	} else {
-		if (yych <= 'q') {
-			if (yych == 'c') goto yy177;
-			goto yy31;
-		} else {
-			if (yych <= 'r') goto yy175;
-			if (yych <= 's') goto yy176;
-			goto yy31;
-		}
-	}
-yy166:
-	yych = *++p;
-	if (yych == 'M') goto yy174;
-	if (yych == 'm') goto yy174;
-	goto yy31;
-yy167:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'E') goto yy171;
-		if (yych <= 'O') goto yy31;
-		goto yy172;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy31;
-			goto yy171;
-		} else {
-			if (yych == 'p') goto yy172;
-			goto yy31;
-		}
-	}
-yy168:
-	yych = *++p;
-	if (yych == 'T') goto yy169;
-	if (yych != 't') goto yy31;
-yy169:
-	yych = *++p;
-	if (yych == 'T') goto yy170;
-	if (yych != 't') goto yy31;
-yy170:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy171:
-	yych = *++p;
-	if (yych == 'V') goto yy173;
-	if (yych == 'v') goto yy173;
-	goto yy31;
-yy172:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy173:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy174:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy175:
-	yych = *++p;
-	if (yych == 'V') goto yy187;
-	if (yych == 'v') goto yy187;
-	goto yy31;
-yy176:
-	yych = *++p;
-	if (yych == 'S') goto yy184;
-	if (yych == 's') goto yy184;
-	goto yy31;
-yy177:
-	yych = *++p;
-	if (yych == 'O') goto yy178;
-	if (yych != 'o') goto yy31;
-yy178:
-	yych = *++p;
-	if (yych == 'N') goto yy179;
-	if (yych != 'n') goto yy31;
-yy179:
-	yych = *++p;
-	if (yych == 'D') goto yy180;
-	if (yych != 'd') goto yy31;
-yy180:
-	yych = *++p;
-	if (yych == 'L') goto yy181;
-	if (yych != 'l') goto yy31;
-yy181:
-	yych = *++p;
-	if (yych == 'I') goto yy182;
-	if (yych != 'i') goto yy31;
-yy182:
-	yych = *++p;
-	if (yych == 'F') goto yy183;
-	if (yych != 'f') goto yy31;
-yy183:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy184:
-	yych = *++p;
-	if (yych == 'I') goto yy185;
-	if (yych != 'i') goto yy31;
-yy185:
-	yych = *++p;
-	if (yych == 'O') goto yy186;
-	if (yych != 'o') goto yy31;
-yy186:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy187:
-	yych = *++p;
-	if (yych == 'I') goto yy188;
-	if (yych != 'i') goto yy31;
-yy188:
-	yych = *++p;
-	if (yych == 'C') goto yy189;
-	if (yych != 'c') goto yy31;
-yy189:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy190:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy191:
-	yych = *++p;
-	if (yych == 'P') goto yy192;
-	if (yych != 'p') goto yy31;
-yy192:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy193:
-	yych = *++p;
-	if (yych == 'P') goto yy197;
-	if (yych == 'p') goto yy197;
-	goto yy31;
-yy194:
-	yych = *++p;
-	if (yych == 'D') goto yy195;
-	if (yych != 'd') goto yy31;
-yy195:
-	yych = *++p;
-	if (yych == 'A') goto yy196;
-	if (yych != 'a') goto yy31;
-yy196:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy197:
-	yych = *++p;
-	if (yych != '.') goto yy31;
-	yych = *++p;
-	if (yych == 'B') goto yy199;
-	if (yych != 'b') goto yy31;
-yy199:
-	yych = *++p;
-	if (yych == 'E') goto yy200;
-	if (yych != 'e') goto yy31;
-yy200:
-	yych = *++p;
-	if (yych == 'E') goto yy201;
-	if (yych != 'e') goto yy31;
-yy201:
-	yych = *++p;
-	if (yych == 'P') goto yy202;
-	if (yych != 'p') goto yy31;
-yy202:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy203:
-	yych = *++p;
-	if (yych == 'T') goto yy204;
-	if (yych != 't') goto yy31;
-yy204:
-	yych = *++p;
-	if (yych == 'I') goto yy205;
-	if (yych != 'i') goto yy31;
-yy205:
-	yych = *++p;
-	if (yych == 'F') goto yy206;
-	if (yych != 'f') goto yy31;
-yy206:
-	yych = *++p;
-	if (yych == 'Y') goto yy34;
-	if (yych == 'y') goto yy34;
-	goto yy31;
-yy207:
-	yych = *++p;
-	if (yych == 'A') goto yy208;
-	if (yych != 'a') goto yy31;
-yy208:
-	yych = *++p;
-	if (yych == 'M') goto yy34;
-	if (yych == 'm') goto yy34;
-	goto yy31;
-yy209:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'M') goto yy221;
-		if (yych <= 'R') goto yy31;
-		goto yy220;
-	} else {
-		if (yych <= 'm') {
-			if (yych <= 'l') goto yy31;
-			goto yy221;
-		} else {
-			if (yych == 's') goto yy220;
-			goto yy31;
-		}
-	}
-yy210:
-	yych = *++p;
-	if (yych == 'Y') goto yy218;
-	if (yych == 'y') goto yy218;
-	goto yy31;
-yy211:
-	yych = *++p;
-	if (yych == 'I') goto yy34;
-	if (yych == 'i') goto yy34;
-	goto yy31;
-yy212:
-	yych = *++p;
-	if (yych == 'S') goto yy213;
-	if (yych != 's') goto yy31;
-yy213:
-	yych = *++p;
-	if (yych <= 'N') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'O') goto yy214;
-		if (yych != 'o') goto yy31;
-	}
-yy214:
-	yych = *++p;
-	if (yych == 'U') goto yy215;
-	if (yych != 'u') goto yy31;
-yy215:
-	yych = *++p;
-	if (yych == 'R') goto yy216;
-	if (yych != 'r') goto yy31;
-yy216:
-	yych = *++p;
-	if (yych == 'C') goto yy217;
-	if (yych != 'c') goto yy31;
-yy217:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy218:
-	yych = *++p;
-	if (yych == 'N') goto yy219;
-	if (yych != 'n') goto yy31;
-yy219:
-	yych = *++p;
-	if (yych == 'C') goto yy34;
-	if (yych == 'c') goto yy34;
-	goto yy31;
-yy220:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy221:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy222:
-	yych = *++p;
-	if (yych == 'Y') goto yy242;
-	if (yych == 'y') goto yy242;
-	goto yy31;
-yy223:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'E') goto yy239;
-		if (yych <= 'N') goto yy31;
-		goto yy240;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy31;
-			goto yy239;
-		} else {
-			if (yych == 'o') goto yy240;
-			goto yy31;
-		}
-	}
-yy224:
-	yych = *++p;
-	if (yych == 'A') goto yy234;
-	if (yych == 'a') goto yy234;
-	goto yy31;
-yy225:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'L') goto yy227;
-		if (yych <= 'O') goto yy31;
-		goto yy228;
-	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy31;
-			goto yy227;
-		} else {
-			if (yych == 'p') goto yy228;
-			goto yy31;
-		}
-	}
-yy226:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy227:
-	yych = *++p;
-	if (yych == 'M') goto yy34;
-	if (yych == 'm') goto yy34;
-	goto yy31;
-yy228:
-	yych = *++p;
-	if (yych == 'A') goto yy229;
-	if (yych != 'a') goto yy31;
-yy229:
-	yych = *++p;
-	if (yych == 'R') goto yy230;
-	if (yych != 'r') goto yy31;
-yy230:
-	yych = *++p;
-	if (yych == 'A') goto yy231;
-	if (yych != 'a') goto yy31;
-yy231:
-	yych = *++p;
-	if (yych == 'Z') goto yy232;
-	if (yych != 'z') goto yy31;
-yy232:
-	yych = *++p;
-	if (yych == 'Z') goto yy233;
-	if (yych != 'z') goto yy31;
-yy233:
-	yych = *++p;
-	if (yych == 'I') goto yy34;
-	if (yych == 'i') goto yy34;
-	goto yy31;
-yy234:
-	yych = *++p;
-	if (yych == 'T') goto yy235;
-	if (yych != 't') goto yy31;
-yy235:
-	yych = *++p;
-	if (yych == 'F') goto yy236;
-	if (yych != 'f') goto yy31;
-yy236:
-	yych = *++p;
-	if (yych == 'O') goto yy237;
-	if (yych != 'o') goto yy31;
-yy237:
-	yych = *++p;
-	if (yych == 'R') goto yy238;
-	if (yych != 'r') goto yy31;
-yy238:
-	yych = *++p;
-	if (yych == 'M') goto yy34;
-	if (yych == 'm') goto yy34;
-	goto yy31;
-yy239:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy240:
-	yych = *++p;
-	if (yych == 'X') goto yy241;
-	if (yych != 'x') goto yy31;
-yy241:
-	yych = *++p;
-	if (yych == 'Y') goto yy34;
-	if (yych == 'y') goto yy34;
-	goto yy31;
-yy242:
-	yych = *++p;
-	if (yych == 'C') goto yy34;
-	if (yych == 'c') goto yy34;
-	goto yy31;
-yy243:
-	yych = *++p;
-	if (yych == 'D') goto yy34;
-	if (yych == 'd') goto yy34;
-	goto yy31;
-yy244:
-	yych = *++p;
-	if (yych == 'A') goto yy245;
-	if (yych != 'a') goto yy31;
-yy245:
-	yych = *++p;
-	if (yych == 'Q') goto yy246;
-	if (yych != 'q') goto yy31;
-yy246:
-	yych = *++p;
-	if (yych == 'U') goto yy247;
-	if (yych != 'u') goto yy31;
-yy247:
-	yych = *++p;
-	if (yych == 'E') goto yy248;
-	if (yych != 'e') goto yy31;
-yy248:
-	yych = *++p;
-	if (yych == 'L') goto yy249;
-	if (yych != 'l') goto yy31;
-yy249:
-	yych = *++p;
-	if (yych == 'O') goto yy250;
-	if (yych != 'o') goto yy31;
-yy250:
-	yych = *++p;
-	if (yych == 'C') goto yy251;
-	if (yych != 'c') goto yy31;
-yy251:
-	yych = *++p;
-	if (yych == 'K') goto yy252;
-	if (yych != 'k') goto yy31;
-yy252:
-	yych = *++p;
-	if (yych == 'T') goto yy253;
-	if (yych != 't') goto yy31;
-yy253:
-	yych = *++p;
-	if (yych == 'O') goto yy254;
-	if (yych != 'o') goto yy31;
-yy254:
-	yych = *++p;
-	if (yych == 'K') goto yy255;
-	if (yych != 'k') goto yy31;
-yy255:
-	yych = *++p;
-	if (yych == 'E') goto yy256;
-	if (yych != 'e') goto yy31;
-yy256:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy257:
-	yych = *++p;
-	if (yych == 'T') goto yy264;
-	if (yych == 't') goto yy264;
-	goto yy31;
-yy258:
-	yych = *++p;
-	if (yych == 'T') goto yy263;
-	if (yych == 't') goto yy263;
-	goto yy31;
-yy259:
-	yych = *++p;
-	if (yych <= 'G') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'H') goto yy34;
-		if (yych == 'h') goto yy34;
-		goto yy31;
-	}
-yy260:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy261:
-	yych = *++p;
-	if (yych == 'W') goto yy262;
-	if (yych != 'w') goto yy31;
-yy262:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy263:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy264:
-	yych = *++p;
-	if (yych == 'E') goto yy265;
-	if (yych != 'e') goto yy31;
-yy265:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy266:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy267:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'M') goto yy298;
-		if (yych <= 'O') goto yy31;
-		goto yy297;
-	} else {
-		if (yych <= 'm') {
-			if (yych <= 'l') goto yy31;
-			goto yy298;
-		} else {
-			if (yych == 'p') goto yy297;
-			goto yy31;
-		}
-	}
-yy268:
-	yych = *++p;
-	if (yych <= 'Q') {
-		if (yych <= '-') {
-			if (yych <= ',') goto yy31;
-			goto yy290;
-		} else {
-			if (yych == 'N') goto yy291;
-			goto yy31;
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'R') goto yy289;
-			if (yych <= 'm') goto yy31;
-			goto yy291;
-		} else {
-			if (yych == 'r') goto yy289;
-			goto yy31;
-		}
-	}
-yy269:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy270:
-	yych = *++p;
-	if (yych == 'S') goto yy285;
-	if (yych == 's') goto yy285;
-	goto yy31;
-yy271:
-	yych = *++p;
-	switch (yych) {
-	case 'G':
-	case 'g':	goto yy276;
-	case 'I':
-	case 'i':	goto yy275;
-	case 'P':
-	case 'p':	goto yy277;
-	case 'R':
-	case 'r':	goto yy278;
-	default:	goto yy31;
-	}
-yy272:
-	yych = *++p;
-	if (yych == 'Q') goto yy274;
-	if (yych == 'q') goto yy274;
-	goto yy31;
-yy273:
-	yych = *++p;
-	if (yych == 'D') goto yy34;
-	if (yych == 'd') goto yy34;
-	goto yy31;
-yy274:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy275:
-	yych = *++p;
-	if (yych == 'L') goto yy283;
-	if (yych == 'l') goto yy283;
-	goto yy31;
-yy276:
-	yych = *++p;
-	if (yych == 'N') goto yy281;
-	if (yych == 'n') goto yy281;
-	goto yy31;
-yy277:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy278:
-	yych = *++p;
-	if (yych == 'K') goto yy279;
-	if (yych != 'k') goto yy31;
-yy279:
-	yych = *++p;
-	if (yych == 'E') goto yy280;
-	if (yych != 'e') goto yy31;
-yy280:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy281:
-	yych = *++p;
-	if (yych == 'E') goto yy282;
-	if (yych != 'e') goto yy31;
-yy282:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy283:
-	yych = *++p;
-	if (yych == 'T') goto yy284;
-	if (yych != 't') goto yy31;
-yy284:
-	yych = *++p;
-	if (yych == 'O') goto yy34;
-	if (yych == 'o') goto yy34;
-	goto yy31;
-yy285:
-	yych = *++p;
-	if (yych == 'S') goto yy286;
-	if (yych != 's') goto yy31;
-yy286:
-	yych = *++p;
-	if (yych == 'A') goto yy287;
-	if (yych != 'a') goto yy31;
-yy287:
-	yych = *++p;
-	if (yych == 'G') goto yy288;
-	if (yych != 'g') goto yy31;
-yy288:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy289:
-	yych = *++p;
-	if (yych == 'P') goto yy296;
-	if (yych == 'p') goto yy296;
-	goto yy31;
-yy290:
-	yych = *++p;
-	if (yych == 'H') goto yy293;
-	if (yych == 'h') goto yy293;
-	goto yy31;
-yy291:
-	yych = *++p;
-	if (yych == 'I') goto yy292;
-	if (yych != 'i') goto yy31;
-yy292:
-	yych = *++p;
-	if (yych == 'M') goto yy34;
-	if (yych == 'm') goto yy34;
-	goto yy31;
-yy293:
-	yych = *++p;
-	if (yych == 'E') goto yy294;
-	if (yych != 'e') goto yy31;
-yy294:
-	yych = *++p;
-	if (yych == 'L') goto yy295;
-	if (yych != 'l') goto yy31;
-yy295:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy296:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy297:
-	yych = *++p;
-	if (yych == 'D') goto yy301;
-	if (yych == 'd') goto yy301;
-	goto yy31;
-yy298:
-	yych = *++p;
-	if (yych == 'B') goto yy299;
-	if (yych != 'b') goto yy31;
-yy299:
-	yych = *++p;
-	if (yych == 'L') goto yy300;
-	if (yych != 'l') goto yy31;
-yy300:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy301:
-	yych = *++p;
-	if (yych == 'A') goto yy302;
-	if (yych != 'a') goto yy31;
-yy302:
-	yych = *++p;
-	if (yych == 'T') goto yy303;
-	if (yych != 't') goto yy31;
-yy303:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy304:
-	yych = *++p;
-	if (yych == 'A') goto yy309;
-	if (yych == 'a') goto yy309;
-	goto yy31;
-yy305:
-	yych = *++p;
-	if (yych == 'S') goto yy306;
-	if (yych != 's') goto yy31;
-yy306:
-	yych = *++p;
-	if (yych == 'T') goto yy307;
-	if (yych != 't') goto yy31;
-yy307:
-	yych = *++p;
-	if (yych == 'F') goto yy308;
-	if (yych != 'f') goto yy31;
-yy308:
-	yych = *++p;
-	if (yych == 'M') goto yy34;
-	if (yych == 'm') goto yy34;
-	goto yy31;
-yy309:
-	yych = *++p;
-	if (yych == 'P') goto yy310;
-	if (yych != 'p') goto yy31;
-yy310:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy311:
-	yych = *++p;
-	if (yych == 'M') goto yy334;
-	if (yych == 'm') goto yy334;
-	goto yy31;
-yy312:
-	yych = *++p;
-	if (yych <= 'I') {
-		if (yych == 'C') goto yy323;
-		if (yych <= 'H') goto yy31;
-		goto yy322;
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'b') goto yy31;
-			goto yy323;
-		} else {
-			if (yych == 'i') goto yy322;
-			goto yy31;
-		}
-	}
-yy313:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'N') goto yy34;
-		if (yych <= 'O') goto yy31;
-		goto yy34;
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'm') goto yy31;
-			goto yy34;
-		} else {
-			if (yych == 'p') goto yy34;
-			goto yy31;
-		}
-	}
-yy314:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'A') goto yy320;
-		if (yych <= 'N') goto yy31;
-		goto yy321;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy31;
-			goto yy320;
-		} else {
-			if (yych == 'o') goto yy321;
-			goto yy31;
-		}
-	}
-yy315:
-	yych = *++p;
-	if (yych == 'F') goto yy319;
-	if (yych == 'f') goto yy319;
-	goto yy31;
-yy316:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'A') goto yy318;
-		if (yych == 'a') goto yy318;
-		goto yy31;
-	}
-yy317:
-	yych = *++p;
-	if (yych == 'X') goto yy34;
-	if (yych == 'x') goto yy34;
-	goto yy31;
-yy318:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy319:
-	yych = *++p;
-	if (yych == 'O') goto yy34;
-	if (yych == 'o') goto yy34;
-	goto yy31;
-yy320:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy321:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy322:
-	yych = *++p;
-	if (yych == 'S') goto yy324;
-	if (yych == 's') goto yy324;
-	goto yy31;
-yy323:
-	yych = *++p;
-	if (yych <= ':') {
-		if (yych == '6') goto yy34;
-		if (yych <= '9') goto yy31;
-		goto yy35;
-	} else {
-		if (yych <= 'S') {
-			if (yych <= 'R') goto yy31;
-			goto yy34;
-		} else {
-			if (yych == 's') goto yy34;
-			goto yy31;
-		}
-	}
-yy324:
-	yych = *++p;
-	if (yych == '.') goto yy325;
-	if (yych == ':') goto yy35;
-	goto yy31;
-yy325:
-	yych = *++p;
-	if (yych <= 'X') {
-		if (yych <= 'K') {
-			if (yych == 'B') goto yy328;
-			goto yy31;
-		} else {
-			if (yych <= 'L') goto yy326;
-			if (yych <= 'W') goto yy31;
-			goto yy327;
-		}
-	} else {
-		if (yych <= 'k') {
-			if (yych == 'b') goto yy328;
-			goto yy31;
-		} else {
-			if (yych <= 'l') goto yy326;
-			if (yych == 'x') goto yy327;
-			goto yy31;
-		}
-	}
-yy326:
-	yych = *++p;
-	if (yych == 'W') goto yy333;
-	if (yych == 'w') goto yy333;
-	goto yy31;
-yy327:
-	yych = *++p;
-	if (yych == 'P') goto yy331;
-	if (yych == 'p') goto yy331;
-	goto yy31;
-yy328:
-	yych = *++p;
-	if (yych == 'E') goto yy329;
-	if (yych != 'e') goto yy31;
-yy329:
-	yych = *++p;
-	if (yych == 'E') goto yy330;
-	if (yych != 'e') goto yy31;
-yy330:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy331:
-	yych = *++p;
-	if (yych == 'C') goto yy332;
-	if (yych != 'c') goto yy31;
-yy332:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy333:
-	yych = *++p;
-	if (yych == 'Z') goto yy34;
-	if (yych == 'z') goto yy34;
-	goto yy31;
-yy334:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy335:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy336:
-	yych = *++p;
-	if (yych == 'T') goto yy339;
-	if (yych == 't') goto yy339;
-	goto yy31;
-yy337:
-	yych = *++p;
-	if (yych != '2') goto yy31;
-	yych = *++p;
-	if (yych == '3') goto yy34;
-	goto yy31;
-yy339:
-	yych = *++p;
-	if (yych == 'P') goto yy340;
-	if (yych != 'p') goto yy31;
-yy340:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy341:
-	yych = *++p;
-	if (yych == 'A') goto yy357;
-	if (yych == 'a') goto yy357;
-	goto yy31;
-yy342:
-	yych = *++p;
-	if (yych <= 'Z') {
-		if (yych == 'T') goto yy34;
-		if (yych <= 'Y') goto yy31;
-		goto yy348;
-	} else {
-		if (yych <= 't') {
-			if (yych <= 's') goto yy31;
-			goto yy34;
-		} else {
-			if (yych == 'z') goto yy348;
-			goto yy31;
-		}
-	}
-yy343:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'P') goto yy345;
-		if (yych == 'p') goto yy345;
-		goto yy31;
-	}
-yy344:
-	yych = *++p;
-	if (yych == 'O') goto yy34;
-	if (yych == 'o') goto yy34;
-	goto yy31;
-yy345:
-	yych = *++p;
-	if (yych == 'H') goto yy346;
-	if (yych != 'h') goto yy31;
-yy346:
-	yych = *++p;
-	if (yych == 'E') goto yy347;
-	if (yych != 'e') goto yy31;
-yy347:
-	yych = *++p;
-	if (yych == 'R') goto yy34;
-	if (yych == 'r') goto yy34;
-	goto yy31;
-yy348:
-	yych = *++p;
-	if (yych == 'M') goto yy349;
-	if (yych != 'm') goto yy31;
-yy349:
-	yych = *++p;
-	if (yych == 'O') goto yy350;
-	if (yych != 'o') goto yy31;
-yy350:
-	yych = *++p;
-	if (yych == 'P') goto yy351;
-	if (yych != 'p') goto yy31;
-yy351:
-	yych = *++p;
-	if (yych == 'R') goto yy352;
-	if (yych != 'r') goto yy31;
-yy352:
-	yych = *++p;
-	if (yych == 'O') goto yy353;
-	if (yych != 'o') goto yy31;
-yy353:
-	yych = *++p;
-	if (yych == 'J') goto yy354;
-	if (yych != 'j') goto yy31;
-yy354:
-	yych = *++p;
-	if (yych == 'E') goto yy355;
-	if (yych != 'e') goto yy31;
-yy355:
-	yych = *++p;
-	if (yych == 'C') goto yy356;
-	if (yych != 'c') goto yy31;
-yy356:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy357:
-	yych = *++p;
-	if (yych == 'L') goto yy358;
-	if (yych != 'l') goto yy31;
-yy358:
-	yych = *++p;
-	if (yych == 'K') goto yy34;
-	if (yych == 'k') goto yy34;
-	goto yy31;
-yy359:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych <= 'M') {
-			if (yych == 'L') goto yy369;
-			goto yy31;
-		} else {
-			if (yych <= 'N') goto yy370;
-			if (yych <= 'R') goto yy31;
-			goto yy371;
-		}
-	} else {
-		if (yych <= 'm') {
-			if (yych == 'l') goto yy369;
-			goto yy31;
-		} else {
-			if (yych <= 'n') goto yy370;
-			if (yych == 's') goto yy371;
-			goto yy31;
-		}
-	}
-yy360:
-	yych = *++p;
-	if (yych == 'E') goto yy368;
-	if (yych == 'e') goto yy368;
-	goto yy31;
-yy361:
-	yych = *++p;
-	if (yych == 'C') goto yy363;
-	if (yych == 'c') goto yy363;
-	goto yy31;
-yy362:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy363:
-	yych = *++p;
-	if (yych == 'E') goto yy364;
-	if (yych != 'e') goto yy31;
-yy364:
-	yych = *++p;
-	if (yych == 'T') goto yy365;
-	if (yych != 't') goto yy31;
-yy365:
-	yych = *++p;
-	if (yych == 'I') goto yy366;
-	if (yych != 'i') goto yy31;
-yy366:
-	yych = *++p;
-	if (yych == 'M') goto yy367;
-	if (yych != 'm') goto yy31;
-yy367:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy368:
-	yych = *++p;
-	if (yych == 'D') goto yy34;
-	if (yych == 'd') goto yy34;
-	goto yy31;
-yy369:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy370:
-	yych = *++p;
-	if (yych == 'G') goto yy372;
-	if (yych == 'g') goto yy372;
-	goto yy31;
-yy371:
-	yych = *++p;
-	if (yych == 'H') goto yy34;
-	if (yych == 'h') goto yy34;
-	goto yy31;
-yy372:
-	yych = *++p;
-	if (yych == 'E') goto yy373;
-	if (yych != 'e') goto yy31;
-yy373:
-	yych = *++p;
-	if (yych == 'R') goto yy34;
-	if (yych == 'r') goto yy34;
-	goto yy31;
-yy374:
-	yych = *++p;
-	if (yych == 'T') goto yy392;
-	if (yych == 't') goto yy392;
-	goto yy31;
-yy375:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy376:
-	yych = *++p;
-	if (yych == 'M') goto yy34;
-	if (yych == 'm') goto yy34;
-	goto yy31;
-yy377:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'P') goto yy34;
-		if (yych <= 'R') goto yy31;
-		goto yy34;
-	} else {
-		if (yych <= 'p') {
-			if (yych <= 'o') goto yy31;
-			goto yy34;
-		} else {
-			if (yych == 's') goto yy34;
-			goto yy31;
-		}
-	}
-yy378:
-	yych = *++p;
-	if (yych == 'I') goto yy386;
-	if (yych == 'i') goto yy386;
-	goto yy31;
-yy379:
-	yych = *++p;
-	if (yych == 'A') goto yy385;
-	if (yych == 'a') goto yy385;
-	goto yy31;
-yy380:
-	yych = *++p;
-	if (yych == 'O') goto yy383;
-	if (yych == 'o') goto yy383;
-	goto yy31;
-yy381:
-	yych = *++p;
-	if (yych == 'A') goto yy382;
-	if (yych != 'a') goto yy31;
-yy382:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy35;
-		goto yy31;
-	} else {
-		if (yych <= 'S') goto yy34;
-		if (yych == 's') goto yy34;
-		goto yy31;
-	}
-yy383:
-	yych = *++p;
-	if (yych == 'U') goto yy384;
-	if (yych != 'u') goto yy31;
-yy384:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy385:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy386:
-	yych = *++p;
-	if (yych == 'U') goto yy387;
-	if (yych != 'u') goto yy31;
-yy387:
-	yych = *++p;
-	if (yych == 'M') goto yy388;
-	if (yych != 'm') goto yy31;
-yy388:
-	yych = *++p;
-	if (yych == 'X') goto yy389;
-	if (yych != 'x') goto yy31;
-yy389:
-	yych = *++p;
-	if (yych == 'T') goto yy390;
-	if (yych != 't') goto yy31;
-yy390:
-	yych = *++p;
-	if (yych == 'R') goto yy391;
-	if (yych != 'r') goto yy31;
-yy391:
-	yych = *++p;
-	if (yych == 'A') goto yy34;
-	if (yych == 'a') goto yy34;
-	goto yy31;
-yy392:
-	yych = *++p;
-	if (yych == 'A') goto yy393;
-	if (yych != 'a') goto yy31;
-yy393:
-	yych = *++p;
-	if (yych == 'C') goto yy394;
-	if (yych != 'c') goto yy31;
-yy394:
-	yych = *++p;
-	if (yych == 'H') goto yy395;
-	if (yych != 'h') goto yy31;
-yy395:
-	yych = *++p;
-	if (yych == 'M') goto yy396;
-	if (yych != 'm') goto yy31;
-yy396:
-	yych = *++p;
-	if (yych == 'E') goto yy397;
-	if (yych != 'e') goto yy31;
-yy397:
-	yych = *++p;
-	if (yych == 'N') goto yy398;
-	if (yych != 'n') goto yy31;
-yy398:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy399:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy400:
-	yych = *++p;
-	if (yych <= 'V') {
-		if (yych == 'R') goto yy34;
-		if (yych <= 'U') goto yy31;
-	} else {
-		if (yych <= 'r') {
-			if (yych <= 'q') goto yy31;
-			goto yy34;
-		} else {
-			if (yych != 'v') goto yy31;
-		}
-	}
-	yych = *++p;
-	if (yych == 'A') goto yy402;
-	if (yych != 'a') goto yy31;
-yy402:
-	yych = *++p;
-	if (yych == 'S') goto yy403;
-	if (yych != 's') goto yy31;
-yy403:
-	yych = *++p;
-	if (yych == 'C') goto yy404;
-	if (yych != 'c') goto yy31;
-yy404:
-	yych = *++p;
-	if (yych == 'R') goto yy405;
-	if (yych != 'r') goto yy31;
-yy405:
-	yych = *++p;
-	if (yych == 'I') goto yy406;
-	if (yych != 'i') goto yy31;
-yy406:
-	yych = *++p;
-	if (yych == 'P') goto yy407;
-	if (yych != 'p') goto yy31;
-yy407:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy408:
-	yych = *++p;
-	if (yych == 'B') goto yy34;
-	if (yych == 'b') goto yy34;
-	goto yy31;
-yy409:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy410:
-	yych = *++p;
-	if (yych == 'N') goto yy417;
-	if (yych == 'n') goto yy417;
-	goto yy31;
-yy411:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy412:
-	yych = *++p;
-	if (yych == 'C') goto yy416;
-	if (yych == 'c') goto yy416;
-	goto yy31;
-yy413:
-	yych = *++p;
-	if (yych <= 'V') {
-		if (yych == 'T') goto yy415;
-		if (yych <= 'U') goto yy31;
-		goto yy34;
-	} else {
-		if (yych <= 't') {
-			if (yych <= 's') goto yy31;
-			goto yy415;
-		} else {
-			if (yych == 'v') goto yy34;
-			goto yy31;
-		}
-	}
-yy414:
-	yych = *++p;
-	if (yych == 'I') goto yy34;
-	if (yych == 'i') goto yy34;
-	goto yy31;
-yy415:
-	yych = *++p;
-	if (yych == 'A') goto yy34;
-	if (yych == 'a') goto yy34;
-	goto yy31;
-yy416:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy417:
-	yych = *++p;
-	if (yych == 'A') goto yy418;
-	if (yych != 'a') goto yy31;
-yy418:
-	yych = *++p;
-	if (yych != '-') goto yy31;
-	yych = *++p;
-	if (yych == 'P') goto yy420;
-	if (yych != 'p') goto yy31;
-yy420:
-	yych = *++p;
-	if (yych == 'L') goto yy421;
-	if (yych != 'l') goto yy31;
-yy421:
-	yych = *++p;
-	if (yych == 'A') goto yy422;
-	if (yych != 'a') goto yy31;
-yy422:
-	yych = *++p;
-	if (yych == 'Y') goto yy423;
-	if (yych != 'y') goto yy31;
-yy423:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'C') goto yy424;
-		if (yych <= 'R') goto yy31;
-		goto yy425;
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'b') goto yy31;
-		} else {
-			if (yych == 's') goto yy425;
-			goto yy31;
-		}
-	}
-yy424:
-	yych = *++p;
-	if (yych == 'O') goto yy430;
-	if (yych == 'o') goto yy430;
-	goto yy31;
-yy425:
-	yych = *++p;
-	if (yych == 'I') goto yy426;
-	if (yych != 'i') goto yy31;
-yy426:
-	yych = *++p;
-	if (yych == 'N') goto yy427;
-	if (yych != 'n') goto yy31;
-yy427:
-	yych = *++p;
-	if (yych == 'G') goto yy428;
-	if (yych != 'g') goto yy31;
-yy428:
-	yych = *++p;
-	if (yych == 'L') goto yy429;
-	if (yych != 'l') goto yy31;
-yy429:
-	yych = *++p;
-	if (yych == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-yy430:
-	yych = *++p;
-	if (yych == 'N') goto yy431;
-	if (yych != 'n') goto yy31;
-yy431:
-	yych = *++p;
-	if (yych == 'T') goto yy432;
-	if (yych != 't') goto yy31;
-yy432:
-	yych = *++p;
-	if (yych == 'A') goto yy433;
-	if (yych != 'a') goto yy31;
-yy433:
-	yych = *++p;
-	if (yych == 'I') goto yy434;
-	if (yych != 'i') goto yy31;
-yy434:
-	yych = *++p;
-	if (yych == 'N') goto yy435;
-	if (yych != 'n') goto yy31;
-yy435:
-	yych = *++p;
-	if (yych == 'E') goto yy436;
-	if (yych != 'e') goto yy31;
-yy436:
-	yych = *++p;
-	if (yych == 'R') goto yy34;
-	if (yych == 'r') goto yy34;
-	goto yy31;
-yy437:
-	yych = *++p;
-	if (yych == 'S') goto yy34;
-	if (yych == 's') goto yy34;
-	goto yy31;
-yy438:
-	yych = *++p;
-	if (yych <= 'N') {
-		if (yych <= 'A') {
-			if (yych <= '@') goto yy31;
-			goto yy460;
-		} else {
-			if (yych <= 'L') goto yy31;
-			if (yych <= 'M') goto yy461;
-			goto yy462;
-		}
-	} else {
-		if (yych <= 'l') {
-			if (yych == 'a') goto yy460;
-			goto yy31;
-		} else {
-			if (yych <= 'm') goto yy461;
-			if (yych <= 'n') goto yy462;
-			goto yy31;
-		}
-	}
-yy439:
-	yych = *++p;
-	if (yych == 'R') goto yy447;
-	if (yych == 'r') goto yy447;
-	goto yy31;
-yy440:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'L') goto yy444;
-		if (yych <= 'O') goto yy31;
-		goto yy34;
-	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy31;
-			goto yy444;
-		} else {
-			if (yych == 'p') goto yy34;
-			goto yy31;
-		}
-	}
-yy441:
-	yych = *++p;
-	if (yych == 'I') goto yy443;
-	if (yych == 'i') goto yy443;
-	goto yy31;
-yy442:
-	yych = *++p;
-	if (yych == 'D') goto yy34;
-	if (yych == 'd') goto yy34;
-	goto yy31;
-yy443:
-	yych = *++p;
-	if (yych == 'D') goto yy34;
-	if (yych == 'd') goto yy34;
-	goto yy31;
-yy444:
-	yych = *++p;
-	if (yych == 'L') goto yy445;
-	if (yych != 'l') goto yy31;
-yy445:
-	yych = *++p;
-	if (yych == 'T') goto yy446;
-	if (yych != 't') goto yy31;
-yy446:
-	yych = *++p;
-	if (yych == 'O') goto yy34;
-	if (yych == 'o') goto yy34;
-	goto yy31;
-yy447:
-	yych = *++p;
-	if (yych == 'O') goto yy448;
-	if (yych != 'o') goto yy31;
-yy448:
-	yych = *++p;
-	if (yych == 'M') goto yy449;
-	if (yych != 'm') goto yy31;
-yy449:
-	yych = *++p;
-	if (yych == 'E') goto yy450;
-	if (yych != 'e') goto yy31;
-yy450:
-	yych = *++p;
-	if (yych == '-') goto yy451;
-	if (yych == ':') goto yy35;
-	goto yy31;
-yy451:
-	yych = *++p;
-	if (yych == 'E') goto yy452;
-	if (yych != 'e') goto yy31;
-yy452:
-	yych = *++p;
-	if (yych == 'X') goto yy453;
-	if (yych != 'x') goto yy31;
-yy453:
-	yych = *++p;
-	if (yych == 'T') goto yy454;
-	if (yych != 't') goto yy31;
-yy454:
-	yych = *++p;
-	if (yych == 'E') goto yy455;
-	if (yych != 'e') goto yy31;
-yy455:
-	yych = *++p;
-	if (yych == 'N') goto yy456;
-	if (yych != 'n') goto yy31;
-yy456:
-	yych = *++p;
-	if (yych == 'S') goto yy457;
-	if (yych != 's') goto yy31;
-yy457:
-	yych = *++p;
-	if (yych == 'I') goto yy458;
-	if (yych != 'i') goto yy31;
-yy458:
-	yych = *++p;
-	if (yych == 'O') goto yy459;
-	if (yych != 'o') goto yy31;
-yy459:
-	yych = *++p;
-	if (yych == 'N') goto yy34;
-	if (yych == 'n') goto yy34;
-	goto yy31;
-yy460:
-	yych = *++p;
-	if (yych == 'P') goto yy34;
-	if (yych == 'p') goto yy34;
-	goto yy31;
-yy461:
-	yych = *++p;
-	if (yych == '-') goto yy466;
-	goto yy31;
-yy462:
-	yych = *++p;
-	if (yych == 'T') goto yy463;
-	if (yych != 't') goto yy31;
-yy463:
-	yych = *++p;
-	if (yych == 'E') goto yy464;
-	if (yych != 'e') goto yy31;
-yy464:
-	yych = *++p;
-	if (yych == 'N') goto yy465;
-	if (yych != 'n') goto yy31;
-yy465:
-	yych = *++p;
-	if (yych == 'T') goto yy34;
-	if (yych == 't') goto yy34;
-	goto yy31;
-yy466:
-	yych = *++p;
-	if (yych == 'E') goto yy467;
-	if (yych != 'e') goto yy31;
-yy467:
-	yych = *++p;
-	if (yych == 'V') goto yy468;
-	if (yych != 'v') goto yy31;
-yy468:
-	yych = *++p;
-	if (yych == 'E') goto yy469;
-	if (yych != 'e') goto yy31;
-yy469:
-	yych = *++p;
-	if (yych == 'N') goto yy470;
-	if (yych != 'n') goto yy31;
-yy470:
-	yych = *++p;
-	if (yych == 'T') goto yy471;
-	if (yych != 't') goto yy31;
-yy471:
-	yych = *++p;
-	if (yych == 'B') goto yy472;
-	if (yych != 'b') goto yy31;
-yy472:
-	yych = *++p;
-	if (yych == 'R') goto yy473;
-	if (yych != 'r') goto yy31;
-yy473:
-	yych = *++p;
-	if (yych == 'I') goto yy474;
-	if (yych != 'i') goto yy31;
-yy474:
-	yych = *++p;
-	if (yych == 'T') goto yy475;
-	if (yych != 't') goto yy31;
-yy475:
-	yych = *++p;
-	if (yych == 'E') goto yy476;
-	if (yych != 'e') goto yy31;
-yy476:
-	yych = *++p;
-	if (yych != '-') goto yy31;
-	yych = *++p;
-	if (yych == 'A') goto yy478;
-	if (yych != 'a') goto yy31;
-yy478:
-	yych = *++p;
-	if (yych == 'T') goto yy479;
-	if (yych != 't') goto yy31;
-yy479:
-	yych = *++p;
-	if (yych == 'T') goto yy480;
-	if (yych != 't') goto yy31;
-yy480:
-	yych = *++p;
-	if (yych == 'E') goto yy481;
-	if (yych != 'e') goto yy31;
-yy481:
-	yych = *++p;
-	if (yych == 'N') goto yy482;
-	if (yych != 'n') goto yy31;
-yy482:
-	yych = *++p;
-	if (yych == 'D') goto yy483;
-	if (yych != 'd') goto yy31;
-yy483:
-	yych = *++p;
-	if (yych == 'E') goto yy484;
-	if (yych != 'e') goto yy31;
-yy484:
-	++p;
-	if ((yych = *p) == 'E') goto yy34;
-	if (yych == 'e') goto yy34;
-	goto yy31;
-}
-
-}
-
-// Try to match URI autolink after first <, returning number of chars matched.
-bufsize_t _scan_autolink_uri(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128,   0, 128,   0, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-	};
-	yych = *p;
-	switch (yych) {
-	case '\n':	goto yy487;
-	case 'A':
-	case 'a':	goto yy491;
-	case 'B':
-	case 'b':	goto yy509;
-	case 'C':
-	case 'c':	goto yy488;
-	case 'D':
-	case 'd':	goto yy489;
-	case 'E':
-	case 'e':	goto yy510;
-	case 'F':
-	case 'f':	goto yy492;
-	case 'G':
-	case 'g':	goto yy493;
-	case 'H':
-	case 'h':	goto yy494;
-	case 'I':
-	case 'i':	goto yy495;
-	case 'J':
-	case 'j':	goto yy490;
-	case 'K':
-	case 'k':	goto yy511;
-	case 'L':
-	case 'l':	goto yy496;
-	case 'M':
-	case 'm':	goto yy497;
-	case 'N':
-	case 'n':	goto yy498;
-	case 'O':
-	case 'o':	goto yy499;
-	case 'P':
-	case 'p':	goto yy500;
-	case 'Q':
-	case 'q':	goto yy512;
-	case 'R':
-	case 'r':	goto yy501;
-	case 'S':
-	case 's':	goto yy502;
-	case 'T':
-	case 't':	goto yy503;
-	case 'U':
-	case 'u':	goto yy504;
-	case 'V':
-	case 'v':	goto yy505;
-	case 'W':
-	case 'w':	goto yy506;
-	case 'X':
-	case 'x':	goto yy507;
-	case 'Y':
-	case 'y':	goto yy513;
-	case 'Z':
-	case 'z':	goto yy508;
-	default:	goto yy514;
-	}
-yy487:
-	{ return 0; }
-yy488:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy927;
-	case 'H':
-	case 'h':	goto yy926;
-	case 'I':
-	case 'i':	goto yy929;
-	case 'O':
-	case 'o':	goto yy925;
-	case 'R':
-	case 'r':	goto yy928;
-	case 'V':
-	case 'v':	goto yy924;
-	default:	goto yy487;
-	}
-yy489:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy900;
-	case 'I':
-	case 'i':	goto yy899;
-	case 'L':
-	case 'l':	goto yy897;
-	case 'N':
-	case 'n':	goto yy898;
-	case 'O':
-	case 'o':	goto yy901;
-	case 'T':
-	case 't':	goto yy896;
-	case 'V':
-	case 'v':	goto yy895;
-	default:	goto yy487;
-	}
-yy490:
-	yych = *(marker = ++p);
-	if (yych <= 'M') {
-		if (yych == 'A') goto yy887;
-		if (yych <= 'L') goto yy487;
-		goto yy886;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy487;
-			goto yy887;
-		} else {
-			if (yych == 'm') goto yy886;
-			goto yy487;
-		}
-	}
-yy491:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy868;
-	case 'B':
-	case 'b':	goto yy867;
-	case 'C':
-	case 'c':	goto yy866;
-	case 'D':
-	case 'd':	goto yy865;
-	case 'F':
-	case 'f':	goto yy864;
-	case 'I':
-	case 'i':	goto yy863;
-	case 'P':
-	case 'p':	goto yy862;
-	case 'T':
-	case 't':	goto yy861;
-	case 'W':
-	case 'w':	goto yy519;
-	default:	goto yy487;
-	}
-yy492:
-	yych = *(marker = ++p);
-	if (yych <= 'T') {
-		if (yych <= 'E') {
-			if (yych == 'A') goto yy848;
-			if (yych <= 'D') goto yy487;
-			goto yy847;
-		} else {
-			if (yych == 'I') goto yy846;
-			if (yych <= 'S') goto yy487;
-			goto yy849;
-		}
-	} else {
-		if (yych <= 'e') {
-			if (yych == 'a') goto yy848;
-			if (yych <= 'd') goto yy487;
-			goto yy847;
-		} else {
-			if (yych <= 'i') {
-				if (yych <= 'h') goto yy487;
-				goto yy846;
-			} else {
-				if (yych == 't') goto yy849;
-				goto yy487;
-			}
-		}
-	}
-yy493:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'E':
-	case 'e':	goto yy831;
-	case 'G':
-	case 'g':	goto yy519;
-	case 'I':
-	case 'i':	goto yy829;
-	case 'O':
-	case 'o':	goto yy830;
-	case 'T':
-	case 't':	goto yy828;
-	default:	goto yy487;
-	}
-yy494:
-	yych = *(marker = ++p);
-	if (yych <= 'S') {
-		if (yych <= '3') {
-			if (yych <= '2') goto yy487;
-			goto yy824;
-		} else {
-			if (yych == 'C') goto yy822;
-			goto yy487;
-		}
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'T') goto yy823;
-			if (yych <= 'b') goto yy487;
-			goto yy822;
-		} else {
-			if (yych == 't') goto yy823;
-			goto yy487;
-		}
-	}
-yy495:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy804;
-	case 'C':
-	case 'c':	goto yy801;
-	case 'M':
-	case 'm':	goto yy803;
-	case 'N':
-	case 'n':	goto yy802;
-	case 'P':
-	case 'p':	goto yy800;
-	case 'R':
-	case 'r':	goto yy799;
-	case 'T':
-	case 't':	goto yy798;
-	default:	goto yy487;
-	}
-yy496:
-	yych = *(marker = ++p);
-	if (yych <= 'D') {
-		if (yych == 'A') goto yy792;
-		if (yych <= 'C') goto yy487;
-		goto yy791;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy487;
-			goto yy792;
-		} else {
-			if (yych == 'd') goto yy791;
-			goto yy487;
-		}
-	}
-yy497:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy758;
-	case 'E':
-	case 'e':	goto yy757;
-	case 'I':
-	case 'i':	goto yy760;
-	case 'M':
-	case 'm':	goto yy756;
-	case 'S':
-	case 's':	goto yy755;
-	case 'T':
-	case 't':	goto yy759;
-	case 'U':
-	case 'u':	goto yy754;
-	case 'V':
-	case 'v':	goto yy753;
-	default:	goto yy487;
-	}
-yy498:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'E':
-	case 'e':	goto yy748;
-	case 'F':
-	case 'f':	goto yy747;
-	case 'I':
-	case 'i':	goto yy746;
-	case 'N':
-	case 'n':	goto yy745;
-	case 'O':
-	case 'o':	goto yy744;
-	default:	goto yy487;
-	}
-yy499:
-	yych = *(marker = ++p);
-	if (yych <= 'P') {
-		if (yych == 'I') goto yy730;
-		if (yych <= 'O') goto yy487;
-		goto yy731;
-	} else {
-		if (yych <= 'i') {
-			if (yych <= 'h') goto yy487;
-			goto yy730;
-		} else {
-			if (yych == 'p') goto yy731;
-			goto yy487;
-		}
-	}
-yy500:
-	yych = *(marker = ++p);
-	if (yych <= 'S') {
-		if (yych <= 'L') {
-			if (yych == 'A') goto yy712;
-			if (yych <= 'K') goto yy487;
-			goto yy711;
-		} else {
-			if (yych <= 'O') {
-				if (yych <= 'N') goto yy487;
-				goto yy713;
-			} else {
-				if (yych <= 'Q') goto yy487;
-				if (yych <= 'R') goto yy710;
-				goto yy709;
-			}
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'a') {
-				if (yych <= '`') goto yy487;
-				goto yy712;
-			} else {
-				if (yych == 'l') goto yy711;
-				goto yy487;
-			}
-		} else {
-			if (yych <= 'q') {
-				if (yych <= 'o') goto yy713;
-				goto yy487;
-			} else {
-				if (yych <= 'r') goto yy710;
-				if (yych <= 's') goto yy709;
-				goto yy487;
-			}
-		}
-	}
-yy501:
-	yych = *(marker = ++p);
-	if (yych <= 'T') {
-		if (yych <= 'L') {
-			if (yych == 'E') goto yy699;
-			goto yy487;
-		} else {
-			if (yych <= 'M') goto yy698;
-			if (yych <= 'R') goto yy487;
-			if (yych <= 'S') goto yy697;
-			goto yy696;
-		}
-	} else {
-		if (yych <= 'm') {
-			if (yych == 'e') goto yy699;
-			if (yych <= 'l') goto yy487;
-			goto yy698;
-		} else {
-			if (yych <= 'r') goto yy487;
-			if (yych <= 's') goto yy697;
-			if (yych <= 't') goto yy696;
-			goto yy487;
-		}
-	}
-yy502:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'E':
-	case 'e':	goto yy652;
-	case 'F':
-	case 'f':	goto yy651;
-	case 'G':
-	case 'g':	goto yy650;
-	case 'H':
-	case 'h':	goto yy655;
-	case 'I':
-	case 'i':	goto yy654;
-	case 'K':
-	case 'k':	goto yy649;
-	case 'M':
-	case 'm':	goto yy648;
-	case 'N':
-	case 'n':	goto yy653;
-	case 'O':
-	case 'o':	goto yy647;
-	case 'P':
-	case 'p':	goto yy646;
-	case 'S':
-	case 's':	goto yy645;
-	case 'T':
-	case 't':	goto yy644;
-	case 'V':
-	case 'v':	goto yy643;
-	default:	goto yy487;
-	}
-yy503:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy619;
-	case 'E':
-	case 'e':	goto yy615;
-	case 'F':
-	case 'f':	goto yy618;
-	case 'H':
-	case 'h':	goto yy614;
-	case 'I':
-	case 'i':	goto yy616;
-	case 'N':
-	case 'n':	goto yy617;
-	case 'V':
-	case 'v':	goto yy519;
-	default:	goto yy487;
-	}
-yy504:
-	yych = *(marker = ++p);
-	if (yych <= 'T') {
-		if (yych <= 'N') {
-			if (yych == 'D') goto yy606;
-			if (yych <= 'M') goto yy487;
-			goto yy605;
-		} else {
-			if (yych == 'R') goto yy607;
-			if (yych <= 'S') goto yy487;
-			goto yy604;
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych == 'd') goto yy606;
-			if (yych <= 'm') goto yy487;
-			goto yy605;
-		} else {
-			if (yych <= 'r') {
-				if (yych <= 'q') goto yy487;
-				goto yy607;
-			} else {
-				if (yych == 't') goto yy604;
-				goto yy487;
-			}
-		}
-	}
-yy505:
-	yych = *(marker = ++p);
-	if (yych <= 'I') {
-		if (yych == 'E') goto yy588;
-		if (yych <= 'H') goto yy487;
-		goto yy587;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy487;
-			goto yy588;
-		} else {
-			if (yych == 'i') goto yy587;
-			goto yy487;
-		}
-	}
-yy506:
-	yych = *(marker = ++p);
-	if (yych <= 'Y') {
-		if (yych <= 'R') {
-			if (yych == 'E') goto yy577;
-			goto yy487;
-		} else {
-			if (yych <= 'S') goto yy578;
-			if (yych <= 'T') goto yy576;
-			if (yych <= 'X') goto yy487;
-			goto yy575;
-		}
-	} else {
-		if (yych <= 's') {
-			if (yych == 'e') goto yy577;
-			if (yych <= 'r') goto yy487;
-			goto yy578;
-		} else {
-			if (yych <= 't') goto yy576;
-			if (yych == 'y') goto yy575;
-			goto yy487;
-		}
-	}
-yy507:
-	yych = *(marker = ++p);
-	if (yych <= 'R') {
-		if (yych <= 'F') {
-			if (yych == 'C') goto yy554;
-			if (yych <= 'E') goto yy487;
-			goto yy552;
-		} else {
-			if (yych == 'M') goto yy553;
-			if (yych <= 'Q') goto yy487;
-			goto yy551;
-		}
-	} else {
-		if (yych <= 'f') {
-			if (yych == 'c') goto yy554;
-			if (yych <= 'e') goto yy487;
-			goto yy552;
-		} else {
-			if (yych <= 'm') {
-				if (yych <= 'l') goto yy487;
-				goto yy553;
-			} else {
-				if (yych == 'r') goto yy551;
-				goto yy487;
-			}
-		}
-	}
-yy508:
-	yych = *(marker = ++p);
-	if (yych == '3') goto yy546;
-	goto yy487;
-yy509:
-	yych = *(marker = ++p);
-	if (yych <= 'O') {
-		if (yych <= 'H') {
-			if (yych == 'E') goto yy536;
-			goto yy487;
-		} else {
-			if (yych <= 'I') goto yy535;
-			if (yych <= 'N') goto yy487;
-			goto yy534;
-		}
-	} else {
-		if (yych <= 'h') {
-			if (yych == 'e') goto yy536;
-			goto yy487;
-		} else {
-			if (yych <= 'i') goto yy535;
-			if (yych == 'o') goto yy534;
-			goto yy487;
-		}
-	}
-yy510:
-	yych = *(marker = ++p);
-	if (yych == 'D') goto yy532;
-	if (yych == 'd') goto yy532;
-	goto yy487;
-yy511:
-	yych = *(marker = ++p);
-	if (yych == 'E') goto yy527;
-	if (yych == 'e') goto yy527;
-	goto yy487;
-yy512:
-	yych = *(marker = ++p);
-	if (yych == 'U') goto yy524;
-	if (yych == 'u') goto yy524;
-	goto yy487;
-yy513:
-	yych = *(marker = ++p);
-	if (yych == 'M') goto yy515;
-	if (yych == 'm') goto yy515;
-	goto yy487;
-yy514:
-	yych = *++p;
-	goto yy487;
-yy515:
-	yych = *++p;
-	if (yych == 'S') goto yy517;
-	if (yych == 's') goto yy517;
-yy516:
-	p = marker;
-	goto yy487;
-yy517:
-	yych = *++p;
-	if (yych == 'G') goto yy518;
-	if (yych != 'g') goto yy516;
-yy518:
-	yych = *++p;
-	if (yych == 'R') goto yy519;
-	if (yych != 'r') goto yy516;
-yy519:
-	yych = *++p;
-	if (yych != ':') goto yy516;
-yy520:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy520;
-	}
-	if (yych <= '=') goto yy516;
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy524:
-	yych = *++p;
-	if (yych == 'E') goto yy525;
-	if (yych != 'e') goto yy516;
-yy525:
-	yych = *++p;
-	if (yych == 'R') goto yy526;
-	if (yych != 'r') goto yy516;
-yy526:
-	yych = *++p;
-	if (yych == 'Y') goto yy519;
-	if (yych == 'y') goto yy519;
-	goto yy516;
-yy527:
-	yych = *++p;
-	if (yych == 'Y') goto yy528;
-	if (yych != 'y') goto yy516;
-yy528:
-	yych = *++p;
-	if (yych == 'P') goto yy529;
-	if (yych != 'p') goto yy516;
-yy529:
-	yych = *++p;
-	if (yych == 'A') goto yy530;
-	if (yych != 'a') goto yy516;
-yy530:
-	yych = *++p;
-	if (yych == 'R') goto yy531;
-	if (yych != 'r') goto yy516;
-yy531:
-	yych = *++p;
-	if (yych == 'C') goto yy519;
-	if (yych == 'c') goto yy519;
-	goto yy516;
-yy532:
-	yych = *++p;
-	if (yych != '2') goto yy516;
-	yych = *++p;
-	if (yych == 'K') goto yy519;
-	if (yych == 'k') goto yy519;
-	goto yy516;
-yy534:
-	yych = *++p;
-	if (yych == 'L') goto yy545;
-	if (yych == 'l') goto yy545;
-	goto yy516;
-yy535:
-	yych = *++p;
-	if (yych == 'T') goto yy541;
-	if (yych == 't') goto yy541;
-	goto yy516;
-yy536:
-	yych = *++p;
-	if (yych == 'S') goto yy537;
-	if (yych != 's') goto yy516;
-yy537:
-	yych = *++p;
-	if (yych == 'H') goto yy538;
-	if (yych != 'h') goto yy516;
-yy538:
-	yych = *++p;
-	if (yych == 'A') goto yy539;
-	if (yych != 'a') goto yy516;
-yy539:
-	yych = *++p;
-	if (yych == 'R') goto yy540;
-	if (yych != 'r') goto yy516;
-yy540:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy541:
-	yych = *++p;
-	if (yych == 'C') goto yy542;
-	if (yych != 'c') goto yy516;
-yy542:
-	yych = *++p;
-	if (yych == 'O') goto yy543;
-	if (yych != 'o') goto yy516;
-yy543:
-	yych = *++p;
-	if (yych == 'I') goto yy544;
-	if (yych != 'i') goto yy516;
-yy544:
-	yych = *++p;
-	if (yych == 'N') goto yy519;
-	if (yych == 'n') goto yy519;
-	goto yy516;
-yy545:
-	yych = *++p;
-	if (yych == 'O') goto yy519;
-	if (yych == 'o') goto yy519;
-	goto yy516;
-yy546:
-	yych = *++p;
-	if (yych != '9') goto yy516;
-	yych = *++p;
-	if (yych != '.') goto yy516;
-	yych = *++p;
-	if (yych != '5') goto yy516;
-	yych = *++p;
-	if (yych != '0') goto yy516;
-	yych = *++p;
-	if (yych <= 'Q') goto yy516;
-	if (yych <= 'S') goto yy519;
-	if (yych <= 'q') goto yy516;
-	if (yych <= 's') goto yy519;
-	goto yy516;
-yy551:
-	yych = *++p;
-	if (yych == 'I') goto yy519;
-	if (yych == 'i') goto yy519;
-	goto yy516;
-yy552:
-	yych = *++p;
-	if (yych == 'I') goto yy573;
-	if (yych == 'i') goto yy573;
-	goto yy516;
-yy553:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'L') goto yy563;
-		if (yych <= 'O') goto yy516;
-		goto yy564;
-	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy516;
-			goto yy563;
-		} else {
-			if (yych == 'p') goto yy564;
-			goto yy516;
-		}
-	}
-yy554:
-	yych = *++p;
-	if (yych == 'O') goto yy555;
-	if (yych != 'o') goto yy516;
-yy555:
-	yych = *++p;
-	if (yych == 'N') goto yy556;
-	if (yych != 'n') goto yy516;
-yy556:
-	yych = *++p;
-	if (yych == '-') goto yy557;
-	if (yych == ':') goto yy520;
-	goto yy516;
-yy557:
-	yych = *++p;
-	if (yych == 'U') goto yy558;
-	if (yych != 'u') goto yy516;
-yy558:
-	yych = *++p;
-	if (yych == 'S') goto yy559;
-	if (yych != 's') goto yy516;
-yy559:
-	yych = *++p;
-	if (yych == 'E') goto yy560;
-	if (yych != 'e') goto yy516;
-yy560:
-	yych = *++p;
-	if (yych == 'R') goto yy561;
-	if (yych != 'r') goto yy516;
-yy561:
-	yych = *++p;
-	if (yych == 'I') goto yy562;
-	if (yych != 'i') goto yy516;
-yy562:
-	yych = *++p;
-	if (yych == 'D') goto yy519;
-	if (yych == 'd') goto yy519;
-	goto yy516;
-yy563:
-	yych = *++p;
-	if (yych == 'R') goto yy565;
-	if (yych == 'r') goto yy565;
-	goto yy516;
-yy564:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy565:
-	yych = *++p;
-	if (yych == 'P') goto yy566;
-	if (yych != 'p') goto yy516;
-yy566:
-	yych = *++p;
-	if (yych == 'C') goto yy567;
-	if (yych != 'c') goto yy516;
-yy567:
-	yych = *++p;
-	if (yych != '.') goto yy516;
-	yych = *++p;
-	if (yych == 'B') goto yy569;
-	if (yych != 'b') goto yy516;
-yy569:
-	yych = *++p;
-	if (yych == 'E') goto yy570;
-	if (yych != 'e') goto yy516;
-yy570:
-	yych = *++p;
-	if (yych == 'E') goto yy571;
-	if (yych != 'e') goto yy516;
-yy571:
-	yych = *++p;
-	if (yych == 'P') goto yy572;
-	if (yych != 'p') goto yy516;
-yy572:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'S') goto yy519;
-		if (yych == 's') goto yy519;
-		goto yy516;
-	}
-yy573:
-	yych = *++p;
-	if (yych == 'R') goto yy574;
-	if (yych != 'r') goto yy516;
-yy574:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy575:
-	yych = *++p;
-	if (yych == 'C') goto yy583;
-	if (yych == 'c') goto yy583;
-	goto yy516;
-yy576:
-	yych = *++p;
-	if (yych == 'A') goto yy582;
-	if (yych == 'a') goto yy582;
-	goto yy516;
-yy577:
-	yych = *++p;
-	if (yych == 'B') goto yy579;
-	if (yych == 'b') goto yy579;
-	goto yy516;
-yy578:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'S') goto yy519;
-		if (yych == 's') goto yy519;
-		goto yy516;
-	}
-yy579:
-	yych = *++p;
-	if (yych == 'C') goto yy580;
-	if (yych != 'c') goto yy516;
-yy580:
-	yych = *++p;
-	if (yych == 'A') goto yy581;
-	if (yych != 'a') goto yy516;
-yy581:
-	yych = *++p;
-	if (yych == 'L') goto yy519;
-	if (yych == 'l') goto yy519;
-	goto yy516;
-yy582:
-	yych = *++p;
-	if (yych == 'I') goto yy519;
-	if (yych == 'i') goto yy519;
-	goto yy516;
-yy583:
-	yych = *++p;
-	if (yych == 'I') goto yy584;
-	if (yych != 'i') goto yy516;
-yy584:
-	yych = *++p;
-	if (yych == 'W') goto yy585;
-	if (yych != 'w') goto yy516;
-yy585:
-	yych = *++p;
-	if (yych == 'Y') goto yy586;
-	if (yych != 'y') goto yy516;
-yy586:
-	yych = *++p;
-	if (yych == 'G') goto yy519;
-	if (yych == 'g') goto yy519;
-	goto yy516;
-yy587:
-	yych = *++p;
-	if (yych == 'E') goto yy596;
-	if (yych == 'e') goto yy596;
-	goto yy516;
-yy588:
-	yych = *++p;
-	if (yych <= 'N') {
-		if (yych <= 'L') goto yy516;
-		if (yych >= 'N') goto yy590;
-	} else {
-		if (yych <= 'l') goto yy516;
-		if (yych <= 'm') goto yy589;
-		if (yych <= 'n') goto yy590;
-		goto yy516;
-	}
-yy589:
-	yych = *++p;
-	if (yych == 'M') goto yy595;
-	if (yych == 'm') goto yy595;
-	goto yy516;
-yy590:
-	yych = *++p;
-	if (yych == 'T') goto yy591;
-	if (yych != 't') goto yy516;
-yy591:
-	yych = *++p;
-	if (yych == 'R') goto yy592;
-	if (yych != 'r') goto yy516;
-yy592:
-	yych = *++p;
-	if (yych == 'I') goto yy593;
-	if (yych != 'i') goto yy516;
-yy593:
-	yych = *++p;
-	if (yych == 'L') goto yy594;
-	if (yych != 'l') goto yy516;
-yy594:
-	yych = *++p;
-	if (yych == 'O') goto yy519;
-	if (yych == 'o') goto yy519;
-	goto yy516;
-yy595:
-	yych = *++p;
-	if (yych == 'I') goto yy519;
-	if (yych == 'i') goto yy519;
-	goto yy516;
-yy596:
-	yych = *++p;
-	if (yych == 'W') goto yy597;
-	if (yych != 'w') goto yy516;
-yy597:
-	yych = *++p;
-	if (yych != '-') goto yy516;
-	yych = *++p;
-	if (yych == 'S') goto yy599;
-	if (yych != 's') goto yy516;
-yy599:
-	yych = *++p;
-	if (yych == 'O') goto yy600;
-	if (yych != 'o') goto yy516;
-yy600:
-	yych = *++p;
-	if (yych == 'U') goto yy601;
-	if (yych != 'u') goto yy516;
-yy601:
-	yych = *++p;
-	if (yych == 'R') goto yy602;
-	if (yych != 'r') goto yy516;
-yy602:
-	yych = *++p;
-	if (yych == 'C') goto yy603;
-	if (yych != 'c') goto yy516;
-yy603:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy604:
-	yych = *++p;
-	if (yych == '2') goto yy611;
-	goto yy516;
-yy605:
-	yych = *++p;
-	if (yych == 'R') goto yy608;
-	if (yych == 'r') goto yy608;
-	goto yy516;
-yy606:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy607:
-	yych = *++p;
-	if (yych == 'N') goto yy519;
-	if (yych == 'n') goto yy519;
-	goto yy516;
-yy608:
-	yych = *++p;
-	if (yych == 'E') goto yy609;
-	if (yych != 'e') goto yy516;
-yy609:
-	yych = *++p;
-	if (yych == 'A') goto yy610;
-	if (yych != 'a') goto yy516;
-yy610:
-	yych = *++p;
-	if (yych == 'L') goto yy519;
-	if (yych == 'l') goto yy519;
-	goto yy516;
-yy611:
-	yych = *++p;
-	if (yych != '0') goto yy516;
-	yych = *++p;
-	if (yych != '0') goto yy516;
-	yych = *++p;
-	if (yych == '4') goto yy519;
-	goto yy516;
-yy614:
-	yych = *++p;
-	if (yych == 'I') goto yy633;
-	if (yych == 'i') goto yy633;
-	goto yy516;
-yy615:
-	yych = *++p;
-	if (yych <= 'L') {
-		if (yych == 'A') goto yy625;
-		if (yych <= 'K') goto yy516;
-		goto yy624;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy516;
-			goto yy625;
-		} else {
-			if (yych == 'l') goto yy624;
-			goto yy516;
-		}
-	}
-yy616:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy617:
-	yych = *++p;
-	if (yych == '3') goto yy621;
-	goto yy516;
-yy618:
-	yych = *++p;
-	if (yych == 'T') goto yy620;
-	if (yych == 't') goto yy620;
-	goto yy516;
-yy619:
-	yych = *++p;
-	if (yych == 'G') goto yy519;
-	if (yych == 'g') goto yy519;
-	goto yy516;
-yy620:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy621:
-	yych = *++p;
-	if (yych != '2') goto yy516;
-	yych = *++p;
-	if (yych != '7') goto yy516;
-	yych = *++p;
-	if (yych == '0') goto yy519;
-	goto yy516;
-yy624:
-	yych = *++p;
-	if (yych <= 'M') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'N') goto yy631;
-		if (yych == 'n') goto yy631;
-		goto yy516;
-	}
-yy625:
-	yych = *++p;
-	if (yych == 'M') goto yy626;
-	if (yych != 'm') goto yy516;
-yy626:
-	yych = *++p;
-	if (yych == 'S') goto yy627;
-	if (yych != 's') goto yy516;
-yy627:
-	yych = *++p;
-	if (yych == 'P') goto yy628;
-	if (yych != 'p') goto yy516;
-yy628:
-	yych = *++p;
-	if (yych == 'E') goto yy629;
-	if (yych != 'e') goto yy516;
-yy629:
-	yych = *++p;
-	if (yych == 'A') goto yy630;
-	if (yych != 'a') goto yy516;
-yy630:
-	yych = *++p;
-	if (yych == 'K') goto yy519;
-	if (yych == 'k') goto yy519;
-	goto yy516;
-yy631:
-	yych = *++p;
-	if (yych == 'E') goto yy632;
-	if (yych != 'e') goto yy516;
-yy632:
-	yych = *++p;
-	if (yych == 'T') goto yy519;
-	if (yych == 't') goto yy519;
-	goto yy516;
-yy633:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'N') goto yy634;
-		if (yych <= 'R') goto yy516;
-		goto yy635;
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'm') goto yy516;
-		} else {
-			if (yych == 's') goto yy635;
-			goto yy516;
-		}
-	}
-yy634:
-	yych = *++p;
-	if (yych == 'G') goto yy642;
-	if (yych == 'g') goto yy642;
-	goto yy516;
-yy635:
-	yych = *++p;
-	if (yych == 'M') goto yy636;
-	if (yych != 'm') goto yy516;
-yy636:
-	yych = *++p;
-	if (yych == 'E') goto yy637;
-	if (yych != 'e') goto yy516;
-yy637:
-	yych = *++p;
-	if (yych == 'S') goto yy638;
-	if (yych != 's') goto yy516;
-yy638:
-	yych = *++p;
-	if (yych == 'S') goto yy639;
-	if (yych != 's') goto yy516;
-yy639:
-	yych = *++p;
-	if (yych == 'A') goto yy640;
-	if (yych != 'a') goto yy516;
-yy640:
-	yych = *++p;
-	if (yych == 'G') goto yy641;
-	if (yych != 'g') goto yy516;
-yy641:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy642:
-	yych = *++p;
-	if (yych == 'S') goto yy519;
-	if (yych == 's') goto yy519;
-	goto yy516;
-yy643:
-	yych = *++p;
-	if (yych == 'N') goto yy519;
-	if (yych == 'n') goto yy519;
-	goto yy516;
-yy644:
-	yych = *++p;
-	if (yych == 'E') goto yy694;
-	if (yych == 'e') goto yy694;
-	goto yy516;
-yy645:
-	yych = *++p;
-	if (yych == 'H') goto yy519;
-	if (yych == 'h') goto yy519;
-	goto yy516;
-yy646:
-	yych = *++p;
-	if (yych == 'O') goto yy690;
-	if (yych == 'o') goto yy690;
-	goto yy516;
-yy647:
-	yych = *++p;
-	if (yych <= 'L') {
-		if (yych == 'A') goto yy680;
-		if (yych <= 'K') goto yy516;
-		goto yy681;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy516;
-			goto yy680;
-		} else {
-			if (yych == 'l') goto yy681;
-			goto yy516;
-		}
-	}
-yy648:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'B') goto yy519;
-		if (yych <= 'R') goto yy516;
-		goto yy519;
-	} else {
-		if (yych <= 'b') {
-			if (yych <= 'a') goto yy516;
-			goto yy519;
-		} else {
-			if (yych == 's') goto yy519;
-			goto yy516;
-		}
-	}
-yy649:
-	yych = *++p;
-	if (yych == 'Y') goto yy678;
-	if (yych == 'y') goto yy678;
-	goto yy516;
-yy650:
-	yych = *++p;
-	if (yych == 'N') goto yy519;
-	if (yych == 'n') goto yy519;
-	goto yy516;
-yy651:
-	yych = *++p;
-	if (yych == 'T') goto yy677;
-	if (yych == 't') goto yy677;
-	goto yy516;
-yy652:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych <= 'C') {
-			if (yych <= 'B') goto yy516;
-			goto yy664;
-		} else {
-			if (yych <= 'Q') goto yy516;
-			if (yych <= 'R') goto yy662;
-			goto yy663;
-		}
-	} else {
-		if (yych <= 'q') {
-			if (yych == 'c') goto yy664;
-			goto yy516;
-		} else {
-			if (yych <= 'r') goto yy662;
-			if (yych <= 's') goto yy663;
-			goto yy516;
-		}
-	}
-yy653:
-	yych = *++p;
-	if (yych == 'M') goto yy661;
-	if (yych == 'm') goto yy661;
-	goto yy516;
-yy654:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'E') goto yy658;
-		if (yych <= 'O') goto yy516;
-		goto yy659;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy516;
-			goto yy658;
-		} else {
-			if (yych == 'p') goto yy659;
-			goto yy516;
-		}
-	}
-yy655:
-	yych = *++p;
-	if (yych == 'T') goto yy656;
-	if (yych != 't') goto yy516;
-yy656:
-	yych = *++p;
-	if (yych == 'T') goto yy657;
-	if (yych != 't') goto yy516;
-yy657:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy658:
-	yych = *++p;
-	if (yych == 'V') goto yy660;
-	if (yych == 'v') goto yy660;
-	goto yy516;
-yy659:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'S') goto yy519;
-		if (yych == 's') goto yy519;
-		goto yy516;
-	}
-yy660:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy661:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy662:
-	yych = *++p;
-	if (yych == 'V') goto yy674;
-	if (yych == 'v') goto yy674;
-	goto yy516;
-yy663:
-	yych = *++p;
-	if (yych == 'S') goto yy671;
-	if (yych == 's') goto yy671;
-	goto yy516;
-yy664:
-	yych = *++p;
-	if (yych == 'O') goto yy665;
-	if (yych != 'o') goto yy516;
-yy665:
-	yych = *++p;
-	if (yych == 'N') goto yy666;
-	if (yych != 'n') goto yy516;
-yy666:
-	yych = *++p;
-	if (yych == 'D') goto yy667;
-	if (yych != 'd') goto yy516;
-yy667:
-	yych = *++p;
-	if (yych == 'L') goto yy668;
-	if (yych != 'l') goto yy516;
-yy668:
-	yych = *++p;
-	if (yych == 'I') goto yy669;
-	if (yych != 'i') goto yy516;
-yy669:
-	yych = *++p;
-	if (yych == 'F') goto yy670;
-	if (yych != 'f') goto yy516;
-yy670:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy671:
-	yych = *++p;
-	if (yych == 'I') goto yy672;
-	if (yych != 'i') goto yy516;
-yy672:
-	yych = *++p;
-	if (yych == 'O') goto yy673;
-	if (yych != 'o') goto yy516;
-yy673:
-	yych = *++p;
-	if (yych == 'N') goto yy519;
-	if (yych == 'n') goto yy519;
-	goto yy516;
-yy674:
-	yych = *++p;
-	if (yych == 'I') goto yy675;
-	if (yych != 'i') goto yy516;
-yy675:
-	yych = *++p;
-	if (yych == 'C') goto yy676;
-	if (yych != 'c') goto yy516;
-yy676:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy677:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy678:
-	yych = *++p;
-	if (yych == 'P') goto yy679;
-	if (yych != 'p') goto yy516;
-yy679:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy680:
-	yych = *++p;
-	if (yych == 'P') goto yy684;
-	if (yych == 'p') goto yy684;
-	goto yy516;
-yy681:
-	yych = *++p;
-	if (yych == 'D') goto yy682;
-	if (yych != 'd') goto yy516;
-yy682:
-	yych = *++p;
-	if (yych == 'A') goto yy683;
-	if (yych != 'a') goto yy516;
-yy683:
-	yych = *++p;
-	if (yych == 'T') goto yy519;
-	if (yych == 't') goto yy519;
-	goto yy516;
-yy684:
-	yych = *++p;
-	if (yych != '.') goto yy516;
-	yych = *++p;
-	if (yych == 'B') goto yy686;
-	if (yych != 'b') goto yy516;
-yy686:
-	yych = *++p;
-	if (yych == 'E') goto yy687;
-	if (yych != 'e') goto yy516;
-yy687:
-	yych = *++p;
-	if (yych == 'E') goto yy688;
-	if (yych != 'e') goto yy516;
-yy688:
-	yych = *++p;
-	if (yych == 'P') goto yy689;
-	if (yych != 'p') goto yy516;
-yy689:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'S') goto yy519;
-		if (yych == 's') goto yy519;
-		goto yy516;
-	}
-yy690:
-	yych = *++p;
-	if (yych == 'T') goto yy691;
-	if (yych != 't') goto yy516;
-yy691:
-	yych = *++p;
-	if (yych == 'I') goto yy692;
-	if (yych != 'i') goto yy516;
-yy692:
-	yych = *++p;
-	if (yych == 'F') goto yy693;
-	if (yych != 'f') goto yy516;
-yy693:
-	yych = *++p;
-	if (yych == 'Y') goto yy519;
-	if (yych == 'y') goto yy519;
-	goto yy516;
-yy694:
-	yych = *++p;
-	if (yych == 'A') goto yy695;
-	if (yych != 'a') goto yy516;
-yy695:
-	yych = *++p;
-	if (yych == 'M') goto yy519;
-	if (yych == 'm') goto yy519;
-	goto yy516;
-yy696:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'M') goto yy708;
-		if (yych <= 'R') goto yy516;
-		goto yy707;
-	} else {
-		if (yych <= 'm') {
-			if (yych <= 'l') goto yy516;
-			goto yy708;
-		} else {
-			if (yych == 's') goto yy707;
-			goto yy516;
-		}
-	}
-yy697:
-	yych = *++p;
-	if (yych == 'Y') goto yy705;
-	if (yych == 'y') goto yy705;
-	goto yy516;
-yy698:
-	yych = *++p;
-	if (yych == 'I') goto yy519;
-	if (yych == 'i') goto yy519;
-	goto yy516;
-yy699:
-	yych = *++p;
-	if (yych == 'S') goto yy700;
-	if (yych != 's') goto yy516;
-yy700:
-	yych = *++p;
-	if (yych <= 'N') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'O') goto yy701;
-		if (yych != 'o') goto yy516;
-	}
-yy701:
-	yych = *++p;
-	if (yych == 'U') goto yy702;
-	if (yych != 'u') goto yy516;
-yy702:
-	yych = *++p;
-	if (yych == 'R') goto yy703;
-	if (yych != 'r') goto yy516;
-yy703:
-	yych = *++p;
-	if (yych == 'C') goto yy704;
-	if (yych != 'c') goto yy516;
-yy704:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy705:
-	yych = *++p;
-	if (yych == 'N') goto yy706;
-	if (yych != 'n') goto yy516;
-yy706:
-	yych = *++p;
-	if (yych == 'C') goto yy519;
-	if (yych == 'c') goto yy519;
-	goto yy516;
-yy707:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy708:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy709:
-	yych = *++p;
-	if (yych == 'Y') goto yy729;
-	if (yych == 'y') goto yy729;
-	goto yy516;
-yy710:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'E') goto yy726;
-		if (yych <= 'N') goto yy516;
-		goto yy727;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy516;
-			goto yy726;
-		} else {
-			if (yych == 'o') goto yy727;
-			goto yy516;
-		}
-	}
-yy711:
-	yych = *++p;
-	if (yych == 'A') goto yy721;
-	if (yych == 'a') goto yy721;
-	goto yy516;
-yy712:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'L') goto yy714;
-		if (yych <= 'O') goto yy516;
-		goto yy715;
-	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy516;
-			goto yy714;
-		} else {
-			if (yych == 'p') goto yy715;
-			goto yy516;
-		}
-	}
-yy713:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy714:
-	yych = *++p;
-	if (yych == 'M') goto yy519;
-	if (yych == 'm') goto yy519;
-	goto yy516;
-yy715:
-	yych = *++p;
-	if (yych == 'A') goto yy716;
-	if (yych != 'a') goto yy516;
-yy716:
-	yych = *++p;
-	if (yych == 'R') goto yy717;
-	if (yych != 'r') goto yy516;
-yy717:
-	yych = *++p;
-	if (yych == 'A') goto yy718;
-	if (yych != 'a') goto yy516;
-yy718:
-	yych = *++p;
-	if (yych == 'Z') goto yy719;
-	if (yych != 'z') goto yy516;
-yy719:
-	yych = *++p;
-	if (yych == 'Z') goto yy720;
-	if (yych != 'z') goto yy516;
-yy720:
-	yych = *++p;
-	if (yych == 'I') goto yy519;
-	if (yych == 'i') goto yy519;
-	goto yy516;
-yy721:
-	yych = *++p;
-	if (yych == 'T') goto yy722;
-	if (yych != 't') goto yy516;
-yy722:
-	yych = *++p;
-	if (yych == 'F') goto yy723;
-	if (yych != 'f') goto yy516;
-yy723:
-	yych = *++p;
-	if (yych == 'O') goto yy724;
-	if (yych != 'o') goto yy516;
-yy724:
-	yych = *++p;
-	if (yych == 'R') goto yy725;
-	if (yych != 'r') goto yy516;
-yy725:
-	yych = *++p;
-	if (yych == 'M') goto yy519;
-	if (yych == 'm') goto yy519;
-	goto yy516;
-yy726:
-	yych = *++p;
-	if (yych == 'S') goto yy519;
-	if (yych == 's') goto yy519;
-	goto yy516;
-yy727:
-	yych = *++p;
-	if (yych == 'X') goto yy728;
-	if (yych != 'x') goto yy516;
-yy728:
-	yych = *++p;
-	if (yych == 'Y') goto yy519;
-	if (yych == 'y') goto yy519;
-	goto yy516;
-yy729:
-	yych = *++p;
-	if (yych == 'C') goto yy519;
-	if (yych == 'c') goto yy519;
-	goto yy516;
-yy730:
-	yych = *++p;
-	if (yych == 'D') goto yy519;
-	if (yych == 'd') goto yy519;
-	goto yy516;
-yy731:
-	yych = *++p;
-	if (yych == 'A') goto yy732;
-	if (yych != 'a') goto yy516;
-yy732:
-	yych = *++p;
-	if (yych == 'Q') goto yy733;
-	if (yych != 'q') goto yy516;
-yy733:
-	yych = *++p;
-	if (yych == 'U') goto yy734;
-	if (yych != 'u') goto yy516;
-yy734:
-	yych = *++p;
-	if (yych == 'E') goto yy735;
-	if (yych != 'e') goto yy516;
-yy735:
-	yych = *++p;
-	if (yych == 'L') goto yy736;
-	if (yych != 'l') goto yy516;
-yy736:
-	yych = *++p;
-	if (yych == 'O') goto yy737;
-	if (yych != 'o') goto yy516;
-yy737:
-	yych = *++p;
-	if (yych == 'C') goto yy738;
-	if (yych != 'c') goto yy516;
-yy738:
-	yych = *++p;
-	if (yych == 'K') goto yy739;
-	if (yych != 'k') goto yy516;
-yy739:
-	yych = *++p;
-	if (yych == 'T') goto yy740;
-	if (yych != 't') goto yy516;
-yy740:
-	yych = *++p;
-	if (yych == 'O') goto yy741;
-	if (yych != 'o') goto yy516;
-yy741:
-	yych = *++p;
-	if (yych == 'K') goto yy742;
-	if (yych != 'k') goto yy516;
-yy742:
-	yych = *++p;
-	if (yych == 'E') goto yy743;
-	if (yych != 'e') goto yy516;
-yy743:
-	yych = *++p;
-	if (yych == 'N') goto yy519;
-	if (yych == 'n') goto yy519;
-	goto yy516;
-yy744:
-	yych = *++p;
-	if (yych == 'T') goto yy751;
-	if (yych == 't') goto yy751;
-	goto yy516;
-yy745:
-	yych = *++p;
-	if (yych == 'T') goto yy750;
-	if (yych == 't') goto yy750;
-	goto yy516;
-yy746:
-	yych = *++p;
-	if (yych <= 'G') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'H') goto yy519;
-		if (yych == 'h') goto yy519;
-		goto yy516;
-	}
-yy747:
-	yych = *++p;
-	if (yych == 'S') goto yy519;
-	if (yych == 's') goto yy519;
-	goto yy516;
-yy748:
-	yych = *++p;
-	if (yych == 'W') goto yy749;
-	if (yych != 'w') goto yy516;
-yy749:
-	yych = *++p;
-	if (yych == 'S') goto yy519;
-	if (yych == 's') goto yy519;
-	goto yy516;
-yy750:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy751:
-	yych = *++p;
-	if (yych == 'E') goto yy752;
-	if (yych != 'e') goto yy516;
-yy752:
-	yych = *++p;
-	if (yych == 'S') goto yy519;
-	if (yych == 's') goto yy519;
-	goto yy516;
-yy753:
-	yych = *++p;
-	if (yych == 'N') goto yy519;
-	if (yych == 'n') goto yy519;
-	goto yy516;
-yy754:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'M') goto yy785;
-		if (yych <= 'O') goto yy516;
-		goto yy784;
-	} else {
-		if (yych <= 'm') {
-			if (yych <= 'l') goto yy516;
-			goto yy785;
-		} else {
-			if (yych == 'p') goto yy784;
-			goto yy516;
-		}
-	}
-yy755:
-	yych = *++p;
-	if (yych <= 'Q') {
-		if (yych <= '-') {
-			if (yych <= ',') goto yy516;
-			goto yy777;
-		} else {
-			if (yych == 'N') goto yy778;
-			goto yy516;
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'R') goto yy776;
-			if (yych <= 'm') goto yy516;
-			goto yy778;
-		} else {
-			if (yych == 'r') goto yy776;
-			goto yy516;
-		}
-	}
-yy756:
-	yych = *++p;
-	if (yych == 'S') goto yy519;
-	if (yych == 's') goto yy519;
-	goto yy516;
-yy757:
-	yych = *++p;
-	if (yych == 'S') goto yy772;
-	if (yych == 's') goto yy772;
-	goto yy516;
-yy758:
-	yych = *++p;
-	switch (yych) {
-	case 'G':
-	case 'g':	goto yy763;
-	case 'I':
-	case 'i':	goto yy762;
-	case 'P':
-	case 'p':	goto yy764;
-	case 'R':
-	case 'r':	goto yy765;
-	default:	goto yy516;
-	}
-yy759:
-	yych = *++p;
-	if (yych == 'Q') goto yy761;
-	if (yych == 'q') goto yy761;
-	goto yy516;
-yy760:
-	yych = *++p;
-	if (yych == 'D') goto yy519;
-	if (yych == 'd') goto yy519;
-	goto yy516;
-yy761:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy762:
-	yych = *++p;
-	if (yych == 'L') goto yy770;
-	if (yych == 'l') goto yy770;
-	goto yy516;
-yy763:
-	yych = *++p;
-	if (yych == 'N') goto yy768;
-	if (yych == 'n') goto yy768;
-	goto yy516;
-yy764:
-	yych = *++p;
-	if (yych == 'S') goto yy519;
-	if (yych == 's') goto yy519;
-	goto yy516;
-yy765:
-	yych = *++p;
-	if (yych == 'K') goto yy766;
-	if (yych != 'k') goto yy516;
-yy766:
-	yych = *++p;
-	if (yych == 'E') goto yy767;
-	if (yych != 'e') goto yy516;
-yy767:
-	yych = *++p;
-	if (yych == 'T') goto yy519;
-	if (yych == 't') goto yy519;
-	goto yy516;
-yy768:
-	yych = *++p;
-	if (yych == 'E') goto yy769;
-	if (yych != 'e') goto yy516;
-yy769:
-	yych = *++p;
-	if (yych == 'T') goto yy519;
-	if (yych == 't') goto yy519;
-	goto yy516;
-yy770:
-	yych = *++p;
-	if (yych == 'T') goto yy771;
-	if (yych != 't') goto yy516;
-yy771:
-	yych = *++p;
-	if (yych == 'O') goto yy519;
-	if (yych == 'o') goto yy519;
-	goto yy516;
-yy772:
-	yych = *++p;
-	if (yych == 'S') goto yy773;
-	if (yych != 's') goto yy516;
-yy773:
-	yych = *++p;
-	if (yych == 'A') goto yy774;
-	if (yych != 'a') goto yy516;
-yy774:
-	yych = *++p;
-	if (yych == 'G') goto yy775;
-	if (yych != 'g') goto yy516;
-yy775:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy776:
-	yych = *++p;
-	if (yych == 'P') goto yy783;
-	if (yych == 'p') goto yy783;
-	goto yy516;
-yy777:
-	yych = *++p;
-	if (yych == 'H') goto yy780;
-	if (yych == 'h') goto yy780;
-	goto yy516;
-yy778:
-	yych = *++p;
-	if (yych == 'I') goto yy779;
-	if (yych != 'i') goto yy516;
-yy779:
-	yych = *++p;
-	if (yych == 'M') goto yy519;
-	if (yych == 'm') goto yy519;
-	goto yy516;
-yy780:
-	yych = *++p;
-	if (yych == 'E') goto yy781;
-	if (yych != 'e') goto yy516;
-yy781:
-	yych = *++p;
-	if (yych == 'L') goto yy782;
-	if (yych != 'l') goto yy516;
-yy782:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy783:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'S') goto yy519;
-		if (yych == 's') goto yy519;
-		goto yy516;
-	}
-yy784:
-	yych = *++p;
-	if (yych == 'D') goto yy788;
-	if (yych == 'd') goto yy788;
-	goto yy516;
-yy785:
-	yych = *++p;
-	if (yych == 'B') goto yy786;
-	if (yych != 'b') goto yy516;
-yy786:
-	yych = *++p;
-	if (yych == 'L') goto yy787;
-	if (yych != 'l') goto yy516;
-yy787:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy788:
-	yych = *++p;
-	if (yych == 'A') goto yy789;
-	if (yych != 'a') goto yy516;
-yy789:
-	yych = *++p;
-	if (yych == 'T') goto yy790;
-	if (yych != 't') goto yy516;
-yy790:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy791:
-	yych = *++p;
-	if (yych == 'A') goto yy796;
-	if (yych == 'a') goto yy796;
-	goto yy516;
-yy792:
-	yych = *++p;
-	if (yych == 'S') goto yy793;
-	if (yych != 's') goto yy516;
-yy793:
-	yych = *++p;
-	if (yych == 'T') goto yy794;
-	if (yych != 't') goto yy516;
-yy794:
-	yych = *++p;
-	if (yych == 'F') goto yy795;
-	if (yych != 'f') goto yy516;
-yy795:
-	yych = *++p;
-	if (yych == 'M') goto yy519;
-	if (yych == 'm') goto yy519;
-	goto yy516;
-yy796:
-	yych = *++p;
-	if (yych == 'P') goto yy797;
-	if (yych != 'p') goto yy516;
-yy797:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'S') goto yy519;
-		if (yych == 's') goto yy519;
-		goto yy516;
-	}
-yy798:
-	yych = *++p;
-	if (yych == 'M') goto yy821;
-	if (yych == 'm') goto yy821;
-	goto yy516;
-yy799:
-	yych = *++p;
-	if (yych <= 'I') {
-		if (yych == 'C') goto yy810;
-		if (yych <= 'H') goto yy516;
-		goto yy809;
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'b') goto yy516;
-			goto yy810;
-		} else {
-			if (yych == 'i') goto yy809;
-			goto yy516;
-		}
-	}
-yy800:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'N') goto yy519;
-		if (yych <= 'O') goto yy516;
-		goto yy519;
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'm') goto yy516;
-			goto yy519;
-		} else {
-			if (yych == 'p') goto yy519;
-			goto yy516;
-		}
-	}
-yy801:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'A') goto yy807;
-		if (yych <= 'N') goto yy516;
-		goto yy808;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy516;
-			goto yy807;
-		} else {
-			if (yych == 'o') goto yy808;
-			goto yy516;
-		}
-	}
-yy802:
-	yych = *++p;
-	if (yych == 'F') goto yy806;
-	if (yych == 'f') goto yy806;
-	goto yy516;
-yy803:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'A') goto yy805;
-		if (yych == 'a') goto yy805;
-		goto yy516;
-	}
-yy804:
-	yych = *++p;
-	if (yych == 'X') goto yy519;
-	if (yych == 'x') goto yy519;
-	goto yy516;
-yy805:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy806:
-	yych = *++p;
-	if (yych == 'O') goto yy519;
-	if (yych == 'o') goto yy519;
-	goto yy516;
-yy807:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy808:
-	yych = *++p;
-	if (yych == 'N') goto yy519;
-	if (yych == 'n') goto yy519;
-	goto yy516;
-yy809:
-	yych = *++p;
-	if (yych == 'S') goto yy811;
-	if (yych == 's') goto yy811;
-	goto yy516;
-yy810:
-	yych = *++p;
-	if (yych <= ':') {
-		if (yych == '6') goto yy519;
-		if (yych <= '9') goto yy516;
-		goto yy520;
-	} else {
-		if (yych <= 'S') {
-			if (yych <= 'R') goto yy516;
-			goto yy519;
-		} else {
-			if (yych == 's') goto yy519;
-			goto yy516;
-		}
-	}
-yy811:
-	yych = *++p;
-	if (yych == '.') goto yy812;
-	if (yych == ':') goto yy520;
-	goto yy516;
-yy812:
-	yych = *++p;
-	if (yych <= 'X') {
-		if (yych <= 'K') {
-			if (yych == 'B') goto yy815;
-			goto yy516;
-		} else {
-			if (yych <= 'L') goto yy813;
-			if (yych <= 'W') goto yy516;
-			goto yy814;
-		}
-	} else {
-		if (yych <= 'k') {
-			if (yych == 'b') goto yy815;
-			goto yy516;
-		} else {
-			if (yych <= 'l') goto yy813;
-			if (yych == 'x') goto yy814;
-			goto yy516;
-		}
-	}
-yy813:
-	yych = *++p;
-	if (yych == 'W') goto yy820;
-	if (yych == 'w') goto yy820;
-	goto yy516;
-yy814:
-	yych = *++p;
-	if (yych == 'P') goto yy818;
-	if (yych == 'p') goto yy818;
-	goto yy516;
-yy815:
-	yych = *++p;
-	if (yych == 'E') goto yy816;
-	if (yych != 'e') goto yy516;
-yy816:
-	yych = *++p;
-	if (yych == 'E') goto yy817;
-	if (yych != 'e') goto yy516;
-yy817:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy818:
-	yych = *++p;
-	if (yych == 'C') goto yy819;
-	if (yych != 'c') goto yy516;
-yy819:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'S') goto yy519;
-		if (yych == 's') goto yy519;
-		goto yy516;
-	}
-yy820:
-	yych = *++p;
-	if (yych == 'Z') goto yy519;
-	if (yych == 'z') goto yy519;
-	goto yy516;
-yy821:
-	yych = *++p;
-	if (yych == 'S') goto yy519;
-	if (yych == 's') goto yy519;
-	goto yy516;
-yy822:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy823:
-	yych = *++p;
-	if (yych == 'T') goto yy826;
-	if (yych == 't') goto yy826;
-	goto yy516;
-yy824:
-	yych = *++p;
-	if (yych != '2') goto yy516;
-	yych = *++p;
-	if (yych == '3') goto yy519;
-	goto yy516;
-yy826:
-	yych = *++p;
-	if (yych == 'P') goto yy827;
-	if (yych != 'p') goto yy516;
-yy827:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'S') goto yy519;
-		if (yych == 's') goto yy519;
-		goto yy516;
-	}
-yy828:
-	yych = *++p;
-	if (yych == 'A') goto yy844;
-	if (yych == 'a') goto yy844;
-	goto yy516;
-yy829:
-	yych = *++p;
-	if (yych <= 'Z') {
-		if (yych == 'T') goto yy519;
-		if (yych <= 'Y') goto yy516;
-		goto yy835;
-	} else {
-		if (yych <= 't') {
-			if (yych <= 's') goto yy516;
-			goto yy519;
-		} else {
-			if (yych == 'z') goto yy835;
-			goto yy516;
-		}
-	}
-yy830:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'P') goto yy832;
-		if (yych == 'p') goto yy832;
-		goto yy516;
-	}
-yy831:
-	yych = *++p;
-	if (yych == 'O') goto yy519;
-	if (yych == 'o') goto yy519;
-	goto yy516;
-yy832:
-	yych = *++p;
-	if (yych == 'H') goto yy833;
-	if (yych != 'h') goto yy516;
-yy833:
-	yych = *++p;
-	if (yych == 'E') goto yy834;
-	if (yych != 'e') goto yy516;
-yy834:
-	yych = *++p;
-	if (yych == 'R') goto yy519;
-	if (yych == 'r') goto yy519;
-	goto yy516;
-yy835:
-	yych = *++p;
-	if (yych == 'M') goto yy836;
-	if (yych != 'm') goto yy516;
-yy836:
-	yych = *++p;
-	if (yych == 'O') goto yy837;
-	if (yych != 'o') goto yy516;
-yy837:
-	yych = *++p;
-	if (yych == 'P') goto yy838;
-	if (yych != 'p') goto yy516;
-yy838:
-	yych = *++p;
-	if (yych == 'R') goto yy839;
-	if (yych != 'r') goto yy516;
-yy839:
-	yych = *++p;
-	if (yych == 'O') goto yy840;
-	if (yych != 'o') goto yy516;
-yy840:
-	yych = *++p;
-	if (yych == 'J') goto yy841;
-	if (yych != 'j') goto yy516;
-yy841:
-	yych = *++p;
-	if (yych == 'E') goto yy842;
-	if (yych != 'e') goto yy516;
-yy842:
-	yych = *++p;
-	if (yych == 'C') goto yy843;
-	if (yych != 'c') goto yy516;
-yy843:
-	yych = *++p;
-	if (yych == 'T') goto yy519;
-	if (yych == 't') goto yy519;
-	goto yy516;
-yy844:
-	yych = *++p;
-	if (yych == 'L') goto yy845;
-	if (yych != 'l') goto yy516;
-yy845:
-	yych = *++p;
-	if (yych == 'K') goto yy519;
-	if (yych == 'k') goto yy519;
-	goto yy516;
-yy846:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych <= 'M') {
-			if (yych == 'L') goto yy856;
-			goto yy516;
-		} else {
-			if (yych <= 'N') goto yy857;
-			if (yych <= 'R') goto yy516;
-			goto yy858;
-		}
-	} else {
-		if (yych <= 'm') {
-			if (yych == 'l') goto yy856;
-			goto yy516;
-		} else {
-			if (yych <= 'n') goto yy857;
-			if (yych == 's') goto yy858;
-			goto yy516;
-		}
-	}
-yy847:
-	yych = *++p;
-	if (yych == 'E') goto yy855;
-	if (yych == 'e') goto yy855;
-	goto yy516;
-yy848:
-	yych = *++p;
-	if (yych == 'C') goto yy850;
-	if (yych == 'c') goto yy850;
-	goto yy516;
-yy849:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy850:
-	yych = *++p;
-	if (yych == 'E') goto yy851;
-	if (yych != 'e') goto yy516;
-yy851:
-	yych = *++p;
-	if (yych == 'T') goto yy852;
-	if (yych != 't') goto yy516;
-yy852:
-	yych = *++p;
-	if (yych == 'I') goto yy853;
-	if (yych != 'i') goto yy516;
-yy853:
-	yych = *++p;
-	if (yych == 'M') goto yy854;
-	if (yych != 'm') goto yy516;
-yy854:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy855:
-	yych = *++p;
-	if (yych == 'D') goto yy519;
-	if (yych == 'd') goto yy519;
-	goto yy516;
-yy856:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy857:
-	yych = *++p;
-	if (yych == 'G') goto yy859;
-	if (yych == 'g') goto yy859;
-	goto yy516;
-yy858:
-	yych = *++p;
-	if (yych == 'H') goto yy519;
-	if (yych == 'h') goto yy519;
-	goto yy516;
-yy859:
-	yych = *++p;
-	if (yych == 'E') goto yy860;
-	if (yych != 'e') goto yy516;
-yy860:
-	yych = *++p;
-	if (yych == 'R') goto yy519;
-	if (yych == 'r') goto yy519;
-	goto yy516;
-yy861:
-	yych = *++p;
-	if (yych == 'T') goto yy879;
-	if (yych == 't') goto yy879;
-	goto yy516;
-yy862:
-	yych = *++p;
-	if (yych == 'T') goto yy519;
-	if (yych == 't') goto yy519;
-	goto yy516;
-yy863:
-	yych = *++p;
-	if (yych == 'M') goto yy519;
-	if (yych == 'm') goto yy519;
-	goto yy516;
-yy864:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'P') goto yy519;
-		if (yych <= 'R') goto yy516;
-		goto yy519;
-	} else {
-		if (yych <= 'p') {
-			if (yych <= 'o') goto yy516;
-			goto yy519;
-		} else {
-			if (yych == 's') goto yy519;
-			goto yy516;
-		}
-	}
-yy865:
-	yych = *++p;
-	if (yych == 'I') goto yy873;
-	if (yych == 'i') goto yy873;
-	goto yy516;
-yy866:
-	yych = *++p;
-	if (yych == 'A') goto yy872;
-	if (yych == 'a') goto yy872;
-	goto yy516;
-yy867:
-	yych = *++p;
-	if (yych == 'O') goto yy870;
-	if (yych == 'o') goto yy870;
-	goto yy516;
-yy868:
-	yych = *++p;
-	if (yych == 'A') goto yy869;
-	if (yych != 'a') goto yy516;
-yy869:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == ':') goto yy520;
-		goto yy516;
-	} else {
-		if (yych <= 'S') goto yy519;
-		if (yych == 's') goto yy519;
-		goto yy516;
-	}
-yy870:
-	yych = *++p;
-	if (yych == 'U') goto yy871;
-	if (yych != 'u') goto yy516;
-yy871:
-	yych = *++p;
-	if (yych == 'T') goto yy519;
-	if (yych == 't') goto yy519;
-	goto yy516;
-yy872:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy873:
-	yych = *++p;
-	if (yych == 'U') goto yy874;
-	if (yych != 'u') goto yy516;
-yy874:
-	yych = *++p;
-	if (yych == 'M') goto yy875;
-	if (yych != 'm') goto yy516;
-yy875:
-	yych = *++p;
-	if (yych == 'X') goto yy876;
-	if (yych != 'x') goto yy516;
-yy876:
-	yych = *++p;
-	if (yych == 'T') goto yy877;
-	if (yych != 't') goto yy516;
-yy877:
-	yych = *++p;
-	if (yych == 'R') goto yy878;
-	if (yych != 'r') goto yy516;
-yy878:
-	yych = *++p;
-	if (yych == 'A') goto yy519;
-	if (yych == 'a') goto yy519;
-	goto yy516;
-yy879:
-	yych = *++p;
-	if (yych == 'A') goto yy880;
-	if (yych != 'a') goto yy516;
-yy880:
-	yych = *++p;
-	if (yych == 'C') goto yy881;
-	if (yych != 'c') goto yy516;
-yy881:
-	yych = *++p;
-	if (yych == 'H') goto yy882;
-	if (yych != 'h') goto yy516;
-yy882:
-	yych = *++p;
-	if (yych == 'M') goto yy883;
-	if (yych != 'm') goto yy516;
-yy883:
-	yych = *++p;
-	if (yych == 'E') goto yy884;
-	if (yych != 'e') goto yy516;
-yy884:
-	yych = *++p;
-	if (yych == 'N') goto yy885;
-	if (yych != 'n') goto yy516;
-yy885:
-	yych = *++p;
-	if (yych == 'T') goto yy519;
-	if (yych == 't') goto yy519;
-	goto yy516;
-yy886:
-	yych = *++p;
-	if (yych == 'S') goto yy519;
-	if (yych == 's') goto yy519;
-	goto yy516;
-yy887:
-	yych = *++p;
-	if (yych <= 'V') {
-		if (yych == 'R') goto yy519;
-		if (yych <= 'U') goto yy516;
-	} else {
-		if (yych <= 'r') {
-			if (yych <= 'q') goto yy516;
-			goto yy519;
-		} else {
-			if (yych != 'v') goto yy516;
-		}
-	}
-	yych = *++p;
-	if (yych == 'A') goto yy889;
-	if (yych != 'a') goto yy516;
-yy889:
-	yych = *++p;
-	if (yych == 'S') goto yy890;
-	if (yych != 's') goto yy516;
-yy890:
-	yych = *++p;
-	if (yych == 'C') goto yy891;
-	if (yych != 'c') goto yy516;
-yy891:
-	yych = *++p;
-	if (yych == 'R') goto yy892;
-	if (yych != 'r') goto yy516;
-yy892:
-	yych = *++p;
-	if (yych == 'I') goto yy893;
-	if (yych != 'i') goto yy516;
-yy893:
-	yych = *++p;
-	if (yych == 'P') goto yy894;
-	if (yych != 'p') goto yy516;
-yy894:
-	yych = *++p;
-	if (yych == 'T') goto yy519;
-	if (yych == 't') goto yy519;
-	goto yy516;
-yy895:
-	yych = *++p;
-	if (yych == 'B') goto yy519;
-	if (yych == 'b') goto yy519;
-	goto yy516;
-yy896:
-	yych = *++p;
-	if (yych == 'N') goto yy519;
-	if (yych == 'n') goto yy519;
-	goto yy516;
-yy897:
-	yych = *++p;
-	if (yych == 'N') goto yy904;
-	if (yych == 'n') goto yy904;
-	goto yy516;
-yy898:
-	yych = *++p;
-	if (yych == 'S') goto yy519;
-	if (yych == 's') goto yy519;
-	goto yy516;
-yy899:
-	yych = *++p;
-	if (yych == 'C') goto yy903;
-	if (yych == 'c') goto yy903;
-	goto yy516;
-yy900:
-	yych = *++p;
-	if (yych <= 'V') {
-		if (yych == 'T') goto yy902;
-		if (yych <= 'U') goto yy516;
-		goto yy519;
-	} else {
-		if (yych <= 't') {
-			if (yych <= 's') goto yy516;
-			goto yy902;
-		} else {
-			if (yych == 'v') goto yy519;
-			goto yy516;
-		}
-	}
-yy901:
-	yych = *++p;
-	if (yych == 'I') goto yy519;
-	if (yych == 'i') goto yy519;
-	goto yy516;
-yy902:
-	yych = *++p;
-	if (yych == 'A') goto yy519;
-	if (yych == 'a') goto yy519;
-	goto yy516;
-yy903:
-	yych = *++p;
-	if (yych == 'T') goto yy519;
-	if (yych == 't') goto yy519;
-	goto yy516;
-yy904:
-	yych = *++p;
-	if (yych == 'A') goto yy905;
-	if (yych != 'a') goto yy516;
-yy905:
-	yych = *++p;
-	if (yych != '-') goto yy516;
-	yych = *++p;
-	if (yych == 'P') goto yy907;
-	if (yych != 'p') goto yy516;
-yy907:
-	yych = *++p;
-	if (yych == 'L') goto yy908;
-	if (yych != 'l') goto yy516;
-yy908:
-	yych = *++p;
-	if (yych == 'A') goto yy909;
-	if (yych != 'a') goto yy516;
-yy909:
-	yych = *++p;
-	if (yych == 'Y') goto yy910;
-	if (yych != 'y') goto yy516;
-yy910:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych == 'C') goto yy911;
-		if (yych <= 'R') goto yy516;
-		goto yy912;
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'b') goto yy516;
-		} else {
-			if (yych == 's') goto yy912;
-			goto yy516;
-		}
-	}
-yy911:
-	yych = *++p;
-	if (yych == 'O') goto yy917;
-	if (yych == 'o') goto yy917;
-	goto yy516;
-yy912:
-	yych = *++p;
-	if (yych == 'I') goto yy913;
-	if (yych != 'i') goto yy516;
-yy913:
-	yych = *++p;
-	if (yych == 'N') goto yy914;
-	if (yych != 'n') goto yy516;
-yy914:
-	yych = *++p;
-	if (yych == 'G') goto yy915;
-	if (yych != 'g') goto yy516;
-yy915:
-	yych = *++p;
-	if (yych == 'L') goto yy916;
-	if (yych != 'l') goto yy516;
-yy916:
-	yych = *++p;
-	if (yych == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-yy917:
-	yych = *++p;
-	if (yych == 'N') goto yy918;
-	if (yych != 'n') goto yy516;
-yy918:
-	yych = *++p;
-	if (yych == 'T') goto yy919;
-	if (yych != 't') goto yy516;
-yy919:
-	yych = *++p;
-	if (yych == 'A') goto yy920;
-	if (yych != 'a') goto yy516;
-yy920:
-	yych = *++p;
-	if (yych == 'I') goto yy921;
-	if (yych != 'i') goto yy516;
-yy921:
-	yych = *++p;
-	if (yych == 'N') goto yy922;
-	if (yych != 'n') goto yy516;
-yy922:
-	yych = *++p;
-	if (yych == 'E') goto yy923;
-	if (yych != 'e') goto yy516;
-yy923:
-	yych = *++p;
-	if (yych == 'R') goto yy519;
-	if (yych == 'r') goto yy519;
-	goto yy516;
-yy924:
-	yych = *++p;
-	if (yych == 'S') goto yy519;
-	if (yych == 's') goto yy519;
-	goto yy516;
-yy925:
-	yych = *++p;
-	if (yych <= 'N') {
-		if (yych <= 'A') {
-			if (yych <= '@') goto yy516;
-			goto yy947;
-		} else {
-			if (yych <= 'L') goto yy516;
-			if (yych <= 'M') goto yy948;
-			goto yy949;
-		}
-	} else {
-		if (yych <= 'l') {
-			if (yych == 'a') goto yy947;
-			goto yy516;
-		} else {
-			if (yych <= 'm') goto yy948;
-			if (yych <= 'n') goto yy949;
-			goto yy516;
-		}
-	}
-yy926:
-	yych = *++p;
-	if (yych == 'R') goto yy934;
-	if (yych == 'r') goto yy934;
-	goto yy516;
-yy927:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'L') goto yy931;
-		if (yych <= 'O') goto yy516;
-		goto yy519;
-	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy516;
-			goto yy931;
-		} else {
-			if (yych == 'p') goto yy519;
-			goto yy516;
-		}
-	}
-yy928:
-	yych = *++p;
-	if (yych == 'I') goto yy930;
-	if (yych == 'i') goto yy930;
-	goto yy516;
-yy929:
-	yych = *++p;
-	if (yych == 'D') goto yy519;
-	if (yych == 'd') goto yy519;
-	goto yy516;
-yy930:
-	yych = *++p;
-	if (yych == 'D') goto yy519;
-	if (yych == 'd') goto yy519;
-	goto yy516;
-yy931:
-	yych = *++p;
-	if (yych == 'L') goto yy932;
-	if (yych != 'l') goto yy516;
-yy932:
-	yych = *++p;
-	if (yych == 'T') goto yy933;
-	if (yych != 't') goto yy516;
-yy933:
-	yych = *++p;
-	if (yych == 'O') goto yy519;
-	if (yych == 'o') goto yy519;
-	goto yy516;
-yy934:
-	yych = *++p;
-	if (yych == 'O') goto yy935;
-	if (yych != 'o') goto yy516;
-yy935:
-	yych = *++p;
-	if (yych == 'M') goto yy936;
-	if (yych != 'm') goto yy516;
-yy936:
-	yych = *++p;
-	if (yych == 'E') goto yy937;
-	if (yych != 'e') goto yy516;
-yy937:
-	yych = *++p;
-	if (yych == '-') goto yy938;
-	if (yych == ':') goto yy520;
-	goto yy516;
-yy938:
-	yych = *++p;
-	if (yych == 'E') goto yy939;
-	if (yych != 'e') goto yy516;
-yy939:
-	yych = *++p;
-	if (yych == 'X') goto yy940;
-	if (yych != 'x') goto yy516;
-yy940:
-	yych = *++p;
-	if (yych == 'T') goto yy941;
-	if (yych != 't') goto yy516;
-yy941:
-	yych = *++p;
-	if (yych == 'E') goto yy942;
-	if (yych != 'e') goto yy516;
-yy942:
-	yych = *++p;
-	if (yych == 'N') goto yy943;
-	if (yych != 'n') goto yy516;
-yy943:
-	yych = *++p;
-	if (yych == 'S') goto yy944;
-	if (yych != 's') goto yy516;
-yy944:
-	yych = *++p;
-	if (yych == 'I') goto yy945;
-	if (yych != 'i') goto yy516;
-yy945:
-	yych = *++p;
-	if (yych == 'O') goto yy946;
-	if (yych != 'o') goto yy516;
-yy946:
-	yych = *++p;
-	if (yych == 'N') goto yy519;
-	if (yych == 'n') goto yy519;
-	goto yy516;
-yy947:
-	yych = *++p;
-	if (yych == 'P') goto yy519;
-	if (yych == 'p') goto yy519;
-	goto yy516;
-yy948:
-	yych = *++p;
-	if (yych == '-') goto yy953;
-	goto yy516;
-yy949:
-	yych = *++p;
-	if (yych == 'T') goto yy950;
-	if (yych != 't') goto yy516;
-yy950:
-	yych = *++p;
-	if (yych == 'E') goto yy951;
-	if (yych != 'e') goto yy516;
-yy951:
-	yych = *++p;
-	if (yych == 'N') goto yy952;
-	if (yych != 'n') goto yy516;
-yy952:
-	yych = *++p;
-	if (yych == 'T') goto yy519;
-	if (yych == 't') goto yy519;
-	goto yy516;
-yy953:
-	yych = *++p;
-	if (yych == 'E') goto yy954;
-	if (yych != 'e') goto yy516;
-yy954:
-	yych = *++p;
-	if (yych == 'V') goto yy955;
-	if (yych != 'v') goto yy516;
-yy955:
-	yych = *++p;
-	if (yych == 'E') goto yy956;
-	if (yych != 'e') goto yy516;
-yy956:
-	yych = *++p;
-	if (yych == 'N') goto yy957;
-	if (yych != 'n') goto yy516;
-yy957:
-	yych = *++p;
-	if (yych == 'T') goto yy958;
-	if (yych != 't') goto yy516;
-yy958:
-	yych = *++p;
-	if (yych == 'B') goto yy959;
-	if (yych != 'b') goto yy516;
-yy959:
-	yych = *++p;
-	if (yych == 'R') goto yy960;
-	if (yych != 'r') goto yy516;
-yy960:
-	yych = *++p;
-	if (yych == 'I') goto yy961;
-	if (yych != 'i') goto yy516;
-yy961:
-	yych = *++p;
-	if (yych == 'T') goto yy962;
-	if (yych != 't') goto yy516;
-yy962:
-	yych = *++p;
-	if (yych == 'E') goto yy963;
-	if (yych != 'e') goto yy516;
-yy963:
-	yych = *++p;
-	if (yych != '-') goto yy516;
-	yych = *++p;
-	if (yych == 'A') goto yy965;
-	if (yych != 'a') goto yy516;
-yy965:
-	yych = *++p;
-	if (yych == 'T') goto yy966;
-	if (yych != 't') goto yy516;
-yy966:
-	yych = *++p;
-	if (yych == 'T') goto yy967;
-	if (yych != 't') goto yy516;
-yy967:
-	yych = *++p;
-	if (yych == 'E') goto yy968;
-	if (yych != 'e') goto yy516;
-yy968:
-	yych = *++p;
-	if (yych == 'N') goto yy969;
-	if (yych != 'n') goto yy516;
-yy969:
-	yych = *++p;
-	if (yych == 'D') goto yy970;
-	if (yych != 'd') goto yy516;
-yy970:
-	yych = *++p;
-	if (yych == 'E') goto yy971;
-	if (yych != 'e') goto yy516;
-yy971:
-	++p;
-	if ((yych = *p) == 'E') goto yy519;
-	if (yych == 'e') goto yy519;
-	goto yy516;
-}
-
-}
-
-// Try to match email autolink after first <, returning num of chars matched.
-bufsize_t _scan_autolink_email(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0, 128,   0, 128, 128, 128, 128, 128, 
-		  0,   0, 128, 128,   0, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128,   0,   0,   0, 128,   0, 128, 
-		  0, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128,   0,   0,   0, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych <= ',') {
-		if (yych <= '!') {
-			if (yych == '\n') goto yy974;
-			if (yych <= ' ') goto yy976;
-			goto yy975;
-		} else {
-			if (yych <= '\'') {
-				if (yych <= '"') goto yy976;
-				goto yy975;
-			} else {
-				if (yych <= ')') goto yy976;
-				if (yych <= '+') goto yy975;
-				goto yy976;
-			}
-		}
-	} else {
-		if (yych <= '?') {
-			if (yych <= '<') {
-				if (yych <= '9') goto yy975;
-				goto yy976;
-			} else {
-				if (yych == '>') goto yy976;
-				goto yy975;
-			}
-		} else {
-			if (yych <= 'Z') {
-				if (yych <= '@') goto yy976;
-				goto yy975;
-			} else {
-				if (yych <= ']') goto yy976;
-				if (yych <= '~') goto yy975;
-				goto yy976;
-			}
-		}
-	}
-yy974:
-	{ return 0; }
-yy975:
-	yych = *(marker = ++p);
-	if (yych <= ',') {
-		if (yych <= '"') {
-			if (yych == '!') goto yy980;
-			goto yy974;
-		} else {
-			if (yych <= '\'') goto yy980;
-			if (yych <= ')') goto yy974;
-			if (yych <= '+') goto yy980;
-			goto yy974;
-		}
-	} else {
-		if (yych <= '>') {
-			if (yych <= '9') goto yy980;
-			if (yych == '=') goto yy980;
-			goto yy974;
-		} else {
-			if (yych <= 'Z') goto yy980;
-			if (yych <= ']') goto yy974;
-			if (yych <= '~') goto yy980;
-			goto yy974;
-		}
-	}
-yy976:
-	yych = *++p;
-	goto yy974;
-yy977:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy978;
-		if (yych <= '9') goto yy981;
-	} else {
-		if (yych <= 'Z') goto yy981;
-		if (yych <= '`') goto yy978;
-		if (yych <= 'z') goto yy981;
-	}
-yy978:
-	p = marker;
-	goto yy974;
-yy979:
-	++p;
-	yych = *p;
-yy980:
-	if (yybm[0+yych] & 128) {
-		goto yy979;
-	}
-	if (yych == '@') goto yy977;
-	goto yy978;
-yy981:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy983;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy983;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy983;
-			goto yy978;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1111;
-		if (yych <= '/') goto yy978;
-		goto yy1112;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1112;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1112;
-			goto yy978;
-		}
-	}
-yy983:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych <= '-') goto yy1111;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1112;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1112;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1112;
-			goto yy978;
-		}
-	}
-yy984:
-	++p;
-	yych = *p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy978;
-		if (yych <= '9') goto yy987;
-		goto yy978;
-	} else {
-		if (yych <= 'Z') goto yy987;
-		if (yych <= '`') goto yy978;
-		if (yych <= 'z') goto yy987;
-		goto yy978;
-	}
-yy985:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy987:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy989;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy989;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy989;
-			goto yy978;
-		}
-	}
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy990;
-		if (yych <= '/') goto yy978;
-		goto yy991;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy991;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy991;
-			goto yy978;
-		}
-	}
-yy989:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy991;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy991;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy991;
-			goto yy978;
-		}
-	}
-yy990:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy992;
-		if (yych <= '/') goto yy978;
-		goto yy993;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy993;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy993;
-			goto yy978;
-		}
-	}
-yy991:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy993;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy993;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy993;
-			goto yy978;
-		}
-	}
-yy992:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy994;
-		if (yych <= '/') goto yy978;
-		goto yy995;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy995;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy995;
-			goto yy978;
-		}
-	}
-yy993:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy995;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy995;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy995;
-			goto yy978;
-		}
-	}
-yy994:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy996;
-		if (yych <= '/') goto yy978;
-		goto yy997;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy997;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy997;
-			goto yy978;
-		}
-	}
-yy995:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy997;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy997;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy997;
-			goto yy978;
-		}
-	}
-yy996:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy998;
-		if (yych <= '/') goto yy978;
-		goto yy999;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy999;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy999;
-			goto yy978;
-		}
-	}
-yy997:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy999;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy999;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy999;
-			goto yy978;
-		}
-	}
-yy998:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1000;
-		if (yych <= '/') goto yy978;
-		goto yy1001;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1001;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1001;
-			goto yy978;
-		}
-	}
-yy999:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1001;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1001;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1001;
-			goto yy978;
-		}
-	}
-yy1000:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1002;
-		if (yych <= '/') goto yy978;
-		goto yy1003;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1003;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1003;
-			goto yy978;
-		}
-	}
-yy1001:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1003;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1003;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1003;
-			goto yy978;
-		}
-	}
-yy1002:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1004;
-		if (yych <= '/') goto yy978;
-		goto yy1005;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1005;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1005;
-			goto yy978;
-		}
-	}
-yy1003:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1005;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1005;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1005;
-			goto yy978;
-		}
-	}
-yy1004:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1006;
-		if (yych <= '/') goto yy978;
-		goto yy1007;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1007;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1007;
-			goto yy978;
-		}
-	}
-yy1005:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1007;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1007;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1007;
-			goto yy978;
-		}
-	}
-yy1006:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1008;
-		if (yych <= '/') goto yy978;
-		goto yy1009;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1009;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1009;
-			goto yy978;
-		}
-	}
-yy1007:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1009;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1009;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1009;
-			goto yy978;
-		}
-	}
-yy1008:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1010;
-		if (yych <= '/') goto yy978;
-		goto yy1011;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1011;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1011;
-			goto yy978;
-		}
-	}
-yy1009:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1011;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1011;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1011;
-			goto yy978;
-		}
-	}
-yy1010:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1012;
-		if (yych <= '/') goto yy978;
-		goto yy1013;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1013;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1013;
-			goto yy978;
-		}
-	}
-yy1011:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1013;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1013;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1013;
-			goto yy978;
-		}
-	}
-yy1012:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1014;
-		if (yych <= '/') goto yy978;
-		goto yy1015;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1015;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1015;
-			goto yy978;
-		}
-	}
-yy1013:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1015;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1015;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1015;
-			goto yy978;
-		}
-	}
-yy1014:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1016;
-		if (yych <= '/') goto yy978;
-		goto yy1017;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1017;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1017;
-			goto yy978;
-		}
-	}
-yy1015:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1017;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1017;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1017;
-			goto yy978;
-		}
-	}
-yy1016:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1018;
-		if (yych <= '/') goto yy978;
-		goto yy1019;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1019;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1019;
-			goto yy978;
-		}
-	}
-yy1017:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1019;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1019;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1019;
-			goto yy978;
-		}
-	}
-yy1018:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1020;
-		if (yych <= '/') goto yy978;
-		goto yy1021;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1021;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1021;
-			goto yy978;
-		}
-	}
-yy1019:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1021;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1021;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1021;
-			goto yy978;
-		}
-	}
-yy1020:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1022;
-		if (yych <= '/') goto yy978;
-		goto yy1023;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1023;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1023;
-			goto yy978;
-		}
-	}
-yy1021:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1023;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1023;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1023;
-			goto yy978;
-		}
-	}
-yy1022:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1024;
-		if (yych <= '/') goto yy978;
-		goto yy1025;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1025;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1025;
-			goto yy978;
-		}
-	}
-yy1023:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1025;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1025;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1025;
-			goto yy978;
-		}
-	}
-yy1024:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1026;
-		if (yych <= '/') goto yy978;
-		goto yy1027;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1027;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1027;
-			goto yy978;
-		}
-	}
-yy1025:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1027;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1027;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1027;
-			goto yy978;
-		}
-	}
-yy1026:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1028;
-		if (yych <= '/') goto yy978;
-		goto yy1029;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1029;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1029;
-			goto yy978;
-		}
-	}
-yy1027:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1029;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1029;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1029;
-			goto yy978;
-		}
-	}
-yy1028:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1030;
-		if (yych <= '/') goto yy978;
-		goto yy1031;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1031;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1031;
-			goto yy978;
-		}
-	}
-yy1029:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1031;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1031;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1031;
-			goto yy978;
-		}
-	}
-yy1030:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1032;
-		if (yych <= '/') goto yy978;
-		goto yy1033;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1033;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1033;
-			goto yy978;
-		}
-	}
-yy1031:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1033;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1033;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1033;
-			goto yy978;
-		}
-	}
-yy1032:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1034;
-		if (yych <= '/') goto yy978;
-		goto yy1035;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1035;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1035;
-			goto yy978;
-		}
-	}
-yy1033:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1035;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1035;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1035;
-			goto yy978;
-		}
-	}
-yy1034:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1036;
-		if (yych <= '/') goto yy978;
-		goto yy1037;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1037;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1037;
-			goto yy978;
-		}
-	}
-yy1035:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1037;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1037;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1037;
-			goto yy978;
-		}
-	}
-yy1036:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1038;
-		if (yych <= '/') goto yy978;
-		goto yy1039;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1039;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1039;
-			goto yy978;
-		}
-	}
-yy1037:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1039;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1039;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1039;
-			goto yy978;
-		}
-	}
-yy1038:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1040;
-		if (yych <= '/') goto yy978;
-		goto yy1041;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1041;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1041;
-			goto yy978;
-		}
-	}
-yy1039:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1041;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1041;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1041;
-			goto yy978;
-		}
-	}
-yy1040:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1042;
-		if (yych <= '/') goto yy978;
-		goto yy1043;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1043;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1043;
-			goto yy978;
-		}
-	}
-yy1041:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1043;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1043;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1043;
-			goto yy978;
-		}
-	}
-yy1042:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1044;
-		if (yych <= '/') goto yy978;
-		goto yy1045;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1045;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1045;
-			goto yy978;
-		}
-	}
-yy1043:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1045;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1045;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1045;
-			goto yy978;
-		}
-	}
-yy1044:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1046;
-		if (yych <= '/') goto yy978;
-		goto yy1047;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1047;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1047;
-			goto yy978;
-		}
-	}
-yy1045:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1047;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1047;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1047;
-			goto yy978;
-		}
-	}
-yy1046:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1048;
-		if (yych <= '/') goto yy978;
-		goto yy1049;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1049;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1049;
-			goto yy978;
-		}
-	}
-yy1047:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1049;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1049;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1049;
-			goto yy978;
-		}
-	}
-yy1048:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1050;
-		if (yych <= '/') goto yy978;
-		goto yy1051;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1051;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1051;
-			goto yy978;
-		}
-	}
-yy1049:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1051;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1051;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1051;
-			goto yy978;
-		}
-	}
-yy1050:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1052;
-		if (yych <= '/') goto yy978;
-		goto yy1053;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1053;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1053;
-			goto yy978;
-		}
-	}
-yy1051:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1053;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1053;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1053;
-			goto yy978;
-		}
-	}
-yy1052:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1054;
-		if (yych <= '/') goto yy978;
-		goto yy1055;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1055;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1055;
-			goto yy978;
-		}
-	}
-yy1053:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1055;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1055;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1055;
-			goto yy978;
-		}
-	}
-yy1054:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1056;
-		if (yych <= '/') goto yy978;
-		goto yy1057;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1057;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1057;
-			goto yy978;
-		}
-	}
-yy1055:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1057;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1057;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1057;
-			goto yy978;
-		}
-	}
-yy1056:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1058;
-		if (yych <= '/') goto yy978;
-		goto yy1059;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1059;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1059;
-			goto yy978;
-		}
-	}
-yy1057:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1059;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1059;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1059;
-			goto yy978;
-		}
-	}
-yy1058:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1060;
-		if (yych <= '/') goto yy978;
-		goto yy1061;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1061;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1061;
-			goto yy978;
-		}
-	}
-yy1059:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1061;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1061;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1061;
-			goto yy978;
-		}
-	}
-yy1060:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1062;
-		if (yych <= '/') goto yy978;
-		goto yy1063;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1063;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1063;
-			goto yy978;
-		}
-	}
-yy1061:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1063;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1063;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1063;
-			goto yy978;
-		}
-	}
-yy1062:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1064;
-		if (yych <= '/') goto yy978;
-		goto yy1065;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1065;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1065;
-			goto yy978;
-		}
-	}
-yy1063:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1065;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1065;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1065;
-			goto yy978;
-		}
-	}
-yy1064:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1066;
-		if (yych <= '/') goto yy978;
-		goto yy1067;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1067;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1067;
-			goto yy978;
-		}
-	}
-yy1065:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1067;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1067;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1067;
-			goto yy978;
-		}
-	}
-yy1066:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1068;
-		if (yych <= '/') goto yy978;
-		goto yy1069;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1069;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1069;
-			goto yy978;
-		}
-	}
-yy1067:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1069;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1069;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1069;
-			goto yy978;
-		}
-	}
-yy1068:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1070;
-		if (yych <= '/') goto yy978;
-		goto yy1071;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1071;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1071;
-			goto yy978;
-		}
-	}
-yy1069:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1071;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1071;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1071;
-			goto yy978;
-		}
-	}
-yy1070:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1072;
-		if (yych <= '/') goto yy978;
-		goto yy1073;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1073;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1073;
-			goto yy978;
-		}
-	}
-yy1071:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1073;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1073;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1073;
-			goto yy978;
-		}
-	}
-yy1072:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1074;
-		if (yych <= '/') goto yy978;
-		goto yy1075;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1075;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1075;
-			goto yy978;
-		}
-	}
-yy1073:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1075;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1075;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1075;
-			goto yy978;
-		}
-	}
-yy1074:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1076;
-		if (yych <= '/') goto yy978;
-		goto yy1077;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1077;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1077;
-			goto yy978;
-		}
-	}
-yy1075:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1077;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1077;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1077;
-			goto yy978;
-		}
-	}
-yy1076:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1078;
-		if (yych <= '/') goto yy978;
-		goto yy1079;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1079;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1079;
-			goto yy978;
-		}
-	}
-yy1077:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1079;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1079;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1079;
-			goto yy978;
-		}
-	}
-yy1078:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1080;
-		if (yych <= '/') goto yy978;
-		goto yy1081;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1081;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1081;
-			goto yy978;
-		}
-	}
-yy1079:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1081;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1081;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1081;
-			goto yy978;
-		}
-	}
-yy1080:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1082;
-		if (yych <= '/') goto yy978;
-		goto yy1083;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1083;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1083;
-			goto yy978;
-		}
-	}
-yy1081:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1083;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1083;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1083;
-			goto yy978;
-		}
-	}
-yy1082:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1084;
-		if (yych <= '/') goto yy978;
-		goto yy1085;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1085;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1085;
-			goto yy978;
-		}
-	}
-yy1083:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1085;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1085;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1085;
-			goto yy978;
-		}
-	}
-yy1084:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1086;
-		if (yych <= '/') goto yy978;
-		goto yy1087;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1087;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1087;
-			goto yy978;
-		}
-	}
-yy1085:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1087;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1087;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1087;
-			goto yy978;
-		}
-	}
-yy1086:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1088;
-		if (yych <= '/') goto yy978;
-		goto yy1089;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1089;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1089;
-			goto yy978;
-		}
-	}
-yy1087:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1089;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1089;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1089;
-			goto yy978;
-		}
-	}
-yy1088:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1090;
-		if (yych <= '/') goto yy978;
-		goto yy1091;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1091;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1091;
-			goto yy978;
-		}
-	}
-yy1089:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1091;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1091;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1091;
-			goto yy978;
-		}
-	}
-yy1090:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1092;
-		if (yych <= '/') goto yy978;
-		goto yy1093;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1093;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1093;
-			goto yy978;
-		}
-	}
-yy1091:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1093;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1093;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1093;
-			goto yy978;
-		}
-	}
-yy1092:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1094;
-		if (yych <= '/') goto yy978;
-		goto yy1095;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1095;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1095;
-			goto yy978;
-		}
-	}
-yy1093:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1095;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1095;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1095;
-			goto yy978;
-		}
-	}
-yy1094:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1096;
-		if (yych <= '/') goto yy978;
-		goto yy1097;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1097;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1097;
-			goto yy978;
-		}
-	}
-yy1095:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1097;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1097;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1097;
-			goto yy978;
-		}
-	}
-yy1096:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1098;
-		if (yych <= '/') goto yy978;
-		goto yy1099;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1099;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1099;
-			goto yy978;
-		}
-	}
-yy1097:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1099;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1099;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1099;
-			goto yy978;
-		}
-	}
-yy1098:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1100;
-		if (yych <= '/') goto yy978;
-		goto yy1101;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1101;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1101;
-			goto yy978;
-		}
-	}
-yy1099:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1101;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1101;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1101;
-			goto yy978;
-		}
-	}
-yy1100:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1102;
-		if (yych <= '/') goto yy978;
-		goto yy1103;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1103;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1103;
-			goto yy978;
-		}
-	}
-yy1101:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1103;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1103;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1103;
-			goto yy978;
-		}
-	}
-yy1102:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1104;
-		if (yych <= '/') goto yy978;
-		goto yy1105;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1105;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1105;
-			goto yy978;
-		}
-	}
-yy1103:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1105;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1105;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1105;
-			goto yy978;
-		}
-	}
-yy1104:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1106;
-		if (yych <= '/') goto yy978;
-		goto yy1107;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1107;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1107;
-			goto yy978;
-		}
-	}
-yy1105:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1107;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1107;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1107;
-			goto yy978;
-		}
-	}
-yy1106:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1108;
-		if (yych <= '/') goto yy978;
-		goto yy1109;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1109;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1109;
-			goto yy978;
-		}
-	}
-yy1107:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1109;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1109;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1109;
-			goto yy978;
-		}
-	}
-yy1108:
-	++p;
-	yych = *p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy978;
-		if (yych <= '9') goto yy1110;
-		goto yy978;
-	} else {
-		if (yych <= 'Z') goto yy1110;
-		if (yych <= '`') goto yy978;
-		if (yych <= 'z') goto yy1110;
-		goto yy978;
-	}
-yy1109:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= '-') goto yy978;
-			goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych >= ':') goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych >= '{') goto yy978;
-		}
-	}
-yy1110:
-	++p;
-	yych = *p;
-	if (yych == '.') goto yy984;
-	if (yych == '>') goto yy985;
-	goto yy978;
-yy1111:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1113;
-		if (yych <= '/') goto yy978;
-		goto yy1114;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1114;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1114;
-			goto yy978;
-		}
-	}
-yy1112:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1114;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1114;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1114;
-			goto yy978;
-		}
-	}
-yy1113:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1115;
-		if (yych <= '/') goto yy978;
-		goto yy1116;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1116;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1116;
-			goto yy978;
-		}
-	}
-yy1114:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1116;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1116;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1116;
-			goto yy978;
-		}
-	}
-yy1115:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1117;
-		if (yych <= '/') goto yy978;
-		goto yy1118;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1118;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1118;
-			goto yy978;
-		}
-	}
-yy1116:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1118;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1118;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1118;
-			goto yy978;
-		}
-	}
-yy1117:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1119;
-		if (yych <= '/') goto yy978;
-		goto yy1120;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1120;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1120;
-			goto yy978;
-		}
-	}
-yy1118:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1120;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1120;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1120;
-			goto yy978;
-		}
-	}
-yy1119:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1121;
-		if (yych <= '/') goto yy978;
-		goto yy1122;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1122;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1122;
-			goto yy978;
-		}
-	}
-yy1120:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1122;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1122;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1122;
-			goto yy978;
-		}
-	}
-yy1121:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1123;
-		if (yych <= '/') goto yy978;
-		goto yy1124;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1124;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1124;
-			goto yy978;
-		}
-	}
-yy1122:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1124;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1124;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1124;
-			goto yy978;
-		}
-	}
-yy1123:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1125;
-		if (yych <= '/') goto yy978;
-		goto yy1126;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1126;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1126;
-			goto yy978;
-		}
-	}
-yy1124:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1126;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1126;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1126;
-			goto yy978;
-		}
-	}
-yy1125:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1127;
-		if (yych <= '/') goto yy978;
-		goto yy1128;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1128;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1128;
-			goto yy978;
-		}
-	}
-yy1126:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1128;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1128;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1128;
-			goto yy978;
-		}
-	}
-yy1127:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1129;
-		if (yych <= '/') goto yy978;
-		goto yy1130;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1130;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1130;
-			goto yy978;
-		}
-	}
-yy1128:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1130;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1130;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1130;
-			goto yy978;
-		}
-	}
-yy1129:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1131;
-		if (yych <= '/') goto yy978;
-		goto yy1132;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1132;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1132;
-			goto yy978;
-		}
-	}
-yy1130:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1132;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1132;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1132;
-			goto yy978;
-		}
-	}
-yy1131:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1133;
-		if (yych <= '/') goto yy978;
-		goto yy1134;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1134;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1134;
-			goto yy978;
-		}
-	}
-yy1132:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1134;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1134;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1134;
-			goto yy978;
-		}
-	}
-yy1133:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1135;
-		if (yych <= '/') goto yy978;
-		goto yy1136;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1136;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1136;
-			goto yy978;
-		}
-	}
-yy1134:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1136;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1136;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1136;
-			goto yy978;
-		}
-	}
-yy1135:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1137;
-		if (yych <= '/') goto yy978;
-		goto yy1138;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1138;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1138;
-			goto yy978;
-		}
-	}
-yy1136:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1138;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1138;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1138;
-			goto yy978;
-		}
-	}
-yy1137:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1139;
-		if (yych <= '/') goto yy978;
-		goto yy1140;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1140;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1140;
-			goto yy978;
-		}
-	}
-yy1138:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1140;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1140;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1140;
-			goto yy978;
-		}
-	}
-yy1139:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1141;
-		if (yych <= '/') goto yy978;
-		goto yy1142;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1142;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1142;
-			goto yy978;
-		}
-	}
-yy1140:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1142;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1142;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1142;
-			goto yy978;
-		}
-	}
-yy1141:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1143;
-		if (yych <= '/') goto yy978;
-		goto yy1144;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1144;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1144;
-			goto yy978;
-		}
-	}
-yy1142:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1144;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1144;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1144;
-			goto yy978;
-		}
-	}
-yy1143:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1145;
-		if (yych <= '/') goto yy978;
-		goto yy1146;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1146;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1146;
-			goto yy978;
-		}
-	}
-yy1144:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1146;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1146;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1146;
-			goto yy978;
-		}
-	}
-yy1145:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1147;
-		if (yych <= '/') goto yy978;
-		goto yy1148;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1148;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1148;
-			goto yy978;
-		}
-	}
-yy1146:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1148;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1148;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1148;
-			goto yy978;
-		}
-	}
-yy1147:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1149;
-		if (yych <= '/') goto yy978;
-		goto yy1150;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1150;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1150;
-			goto yy978;
-		}
-	}
-yy1148:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1150;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1150;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1150;
-			goto yy978;
-		}
-	}
-yy1149:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1151;
-		if (yych <= '/') goto yy978;
-		goto yy1152;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1152;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1152;
-			goto yy978;
-		}
-	}
-yy1150:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1152;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1152;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1152;
-			goto yy978;
-		}
-	}
-yy1151:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1153;
-		if (yych <= '/') goto yy978;
-		goto yy1154;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1154;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1154;
-			goto yy978;
-		}
-	}
-yy1152:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1154;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1154;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1154;
-			goto yy978;
-		}
-	}
-yy1153:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1155;
-		if (yych <= '/') goto yy978;
-		goto yy1156;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1156;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1156;
-			goto yy978;
-		}
-	}
-yy1154:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1156;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1156;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1156;
-			goto yy978;
-		}
-	}
-yy1155:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1157;
-		if (yych <= '/') goto yy978;
-		goto yy1158;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1158;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1158;
-			goto yy978;
-		}
-	}
-yy1156:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1158;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1158;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1158;
-			goto yy978;
-		}
-	}
-yy1157:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1159;
-		if (yych <= '/') goto yy978;
-		goto yy1160;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1160;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1160;
-			goto yy978;
-		}
-	}
-yy1158:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1160;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1160;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1160;
-			goto yy978;
-		}
-	}
-yy1159:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1161;
-		if (yych <= '/') goto yy978;
-		goto yy1162;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1162;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1162;
-			goto yy978;
-		}
-	}
-yy1160:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1162;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1162;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1162;
-			goto yy978;
-		}
-	}
-yy1161:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1163;
-		if (yych <= '/') goto yy978;
-		goto yy1164;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1164;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1164;
-			goto yy978;
-		}
-	}
-yy1162:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1164;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1164;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1164;
-			goto yy978;
-		}
-	}
-yy1163:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1165;
-		if (yych <= '/') goto yy978;
-		goto yy1166;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1166;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1166;
-			goto yy978;
-		}
-	}
-yy1164:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1166;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1166;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1166;
-			goto yy978;
-		}
-	}
-yy1165:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1167;
-		if (yych <= '/') goto yy978;
-		goto yy1168;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1168;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1168;
-			goto yy978;
-		}
-	}
-yy1166:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1168;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1168;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1168;
-			goto yy978;
-		}
-	}
-yy1167:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1169;
-		if (yych <= '/') goto yy978;
-		goto yy1170;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1170;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1170;
-			goto yy978;
-		}
-	}
-yy1168:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1170;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1170;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1170;
-			goto yy978;
-		}
-	}
-yy1169:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1171;
-		if (yych <= '/') goto yy978;
-		goto yy1172;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1172;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1172;
-			goto yy978;
-		}
-	}
-yy1170:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1172;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1172;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1172;
-			goto yy978;
-		}
-	}
-yy1171:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1173;
-		if (yych <= '/') goto yy978;
-		goto yy1174;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1174;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1174;
-			goto yy978;
-		}
-	}
-yy1172:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1174;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1174;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1174;
-			goto yy978;
-		}
-	}
-yy1173:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1175;
-		if (yych <= '/') goto yy978;
-		goto yy1176;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1176;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1176;
-			goto yy978;
-		}
-	}
-yy1174:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1176;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1176;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1176;
-			goto yy978;
-		}
-	}
-yy1175:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1177;
-		if (yych <= '/') goto yy978;
-		goto yy1178;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1178;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1178;
-			goto yy978;
-		}
-	}
-yy1176:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1178;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1178;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1178;
-			goto yy978;
-		}
-	}
-yy1177:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1179;
-		if (yych <= '/') goto yy978;
-		goto yy1180;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1180;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1180;
-			goto yy978;
-		}
-	}
-yy1178:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1180;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1180;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1180;
-			goto yy978;
-		}
-	}
-yy1179:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1181;
-		if (yych <= '/') goto yy978;
-		goto yy1182;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1182;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1182;
-			goto yy978;
-		}
-	}
-yy1180:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1182;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1182;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1182;
-			goto yy978;
-		}
-	}
-yy1181:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1183;
-		if (yych <= '/') goto yy978;
-		goto yy1184;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1184;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1184;
-			goto yy978;
-		}
-	}
-yy1182:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1184;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1184;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1184;
-			goto yy978;
-		}
-	}
-yy1183:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1185;
-		if (yych <= '/') goto yy978;
-		goto yy1186;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1186;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1186;
-			goto yy978;
-		}
-	}
-yy1184:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1186;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1186;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1186;
-			goto yy978;
-		}
-	}
-yy1185:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1187;
-		if (yych <= '/') goto yy978;
-		goto yy1188;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1188;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1188;
-			goto yy978;
-		}
-	}
-yy1186:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1188;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1188;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1188;
-			goto yy978;
-		}
-	}
-yy1187:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1189;
-		if (yych <= '/') goto yy978;
-		goto yy1190;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1190;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1190;
-			goto yy978;
-		}
-	}
-yy1188:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1190;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1190;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1190;
-			goto yy978;
-		}
-	}
-yy1189:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1191;
-		if (yych <= '/') goto yy978;
-		goto yy1192;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1192;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1192;
-			goto yy978;
-		}
-	}
-yy1190:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1192;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1192;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1192;
-			goto yy978;
-		}
-	}
-yy1191:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1193;
-		if (yych <= '/') goto yy978;
-		goto yy1194;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1194;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1194;
-			goto yy978;
-		}
-	}
-yy1192:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1194;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1194;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1194;
-			goto yy978;
-		}
-	}
-yy1193:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1195;
-		if (yych <= '/') goto yy978;
-		goto yy1196;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1196;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1196;
-			goto yy978;
-		}
-	}
-yy1194:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1196;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1196;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1196;
-			goto yy978;
-		}
-	}
-yy1195:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1197;
-		if (yych <= '/') goto yy978;
-		goto yy1198;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1198;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1198;
-			goto yy978;
-		}
-	}
-yy1196:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1198;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1198;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1198;
-			goto yy978;
-		}
-	}
-yy1197:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1199;
-		if (yych <= '/') goto yy978;
-		goto yy1200;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1200;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1200;
-			goto yy978;
-		}
-	}
-yy1198:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1200;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1200;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1200;
-			goto yy978;
-		}
-	}
-yy1199:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1201;
-		if (yych <= '/') goto yy978;
-		goto yy1202;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1202;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1202;
-			goto yy978;
-		}
-	}
-yy1200:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1202;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1202;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1202;
-			goto yy978;
-		}
-	}
-yy1201:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1203;
-		if (yych <= '/') goto yy978;
-		goto yy1204;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1204;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1204;
-			goto yy978;
-		}
-	}
-yy1202:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1204;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1204;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1204;
-			goto yy978;
-		}
-	}
-yy1203:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1205;
-		if (yych <= '/') goto yy978;
-		goto yy1206;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1206;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1206;
-			goto yy978;
-		}
-	}
-yy1204:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1206;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1206;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1206;
-			goto yy978;
-		}
-	}
-yy1205:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1207;
-		if (yych <= '/') goto yy978;
-		goto yy1208;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1208;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1208;
-			goto yy978;
-		}
-	}
-yy1206:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1208;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1208;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1208;
-			goto yy978;
-		}
-	}
-yy1207:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1209;
-		if (yych <= '/') goto yy978;
-		goto yy1210;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1210;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1210;
-			goto yy978;
-		}
-	}
-yy1208:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1210;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1210;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1210;
-			goto yy978;
-		}
-	}
-yy1209:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1211;
-		if (yych <= '/') goto yy978;
-		goto yy1212;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1212;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1212;
-			goto yy978;
-		}
-	}
-yy1210:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1212;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1212;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1212;
-			goto yy978;
-		}
-	}
-yy1211:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1213;
-		if (yych <= '/') goto yy978;
-		goto yy1214;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1214;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1214;
-			goto yy978;
-		}
-	}
-yy1212:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1214;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1214;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1214;
-			goto yy978;
-		}
-	}
-yy1213:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1215;
-		if (yych <= '/') goto yy978;
-		goto yy1216;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1216;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1216;
-			goto yy978;
-		}
-	}
-yy1214:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1216;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1216;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1216;
-			goto yy978;
-		}
-	}
-yy1215:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1217;
-		if (yych <= '/') goto yy978;
-		goto yy1218;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1218;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1218;
-			goto yy978;
-		}
-	}
-yy1216:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1218;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1218;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1218;
-			goto yy978;
-		}
-	}
-yy1217:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1219;
-		if (yych <= '/') goto yy978;
-		goto yy1220;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1220;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1220;
-			goto yy978;
-		}
-	}
-yy1218:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1220;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1220;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1220;
-			goto yy978;
-		}
-	}
-yy1219:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1221;
-		if (yych <= '/') goto yy978;
-		goto yy1222;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1222;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1222;
-			goto yy978;
-		}
-	}
-yy1220:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1222;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1222;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1222;
-			goto yy978;
-		}
-	}
-yy1221:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1223;
-		if (yych <= '/') goto yy978;
-		goto yy1224;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1224;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1224;
-			goto yy978;
-		}
-	}
-yy1222:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1224;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1224;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1224;
-			goto yy978;
-		}
-	}
-yy1223:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1225;
-		if (yych <= '/') goto yy978;
-		goto yy1226;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1226;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1226;
-			goto yy978;
-		}
-	}
-yy1224:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1226;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1226;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1226;
-			goto yy978;
-		}
-	}
-yy1225:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1227;
-		if (yych <= '/') goto yy978;
-		goto yy1228;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1228;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1228;
-			goto yy978;
-		}
-	}
-yy1226:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1228;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1228;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1228;
-			goto yy978;
-		}
-	}
-yy1227:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy1229;
-		if (yych <= '/') goto yy978;
-		goto yy1230;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy978;
-			goto yy1230;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1230;
-			goto yy978;
-		}
-	}
-yy1228:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy978;
-			if (yych >= '.') goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1230;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1230;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1230;
-			goto yy978;
-		}
-	}
-yy1229:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy978;
-		if (yych <= '9') goto yy1110;
-		goto yy978;
-	} else {
-		if (yych <= 'Z') goto yy1110;
-		if (yych <= '`') goto yy978;
-		if (yych <= 'z') goto yy1110;
-		goto yy978;
-	}
-yy1230:
-	++p;
-	if ((yych = *p) <= '=') {
-		if (yych <= '.') {
-			if (yych <= '-') goto yy978;
-			goto yy984;
-		} else {
-			if (yych <= '/') goto yy978;
-			if (yych <= '9') goto yy1110;
-			goto yy978;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy985;
-			if (yych <= '@') goto yy978;
-			goto yy1110;
-		} else {
-			if (yych <= '`') goto yy978;
-			if (yych <= 'z') goto yy1110;
-			goto yy978;
-		}
-	}
-}
-
-}
-
-// Try to match an HTML tag after first <, returning num of chars matched.
-bufsize_t _scan_html_tag(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		/* table 1 .. 8: 0 */
-		  0, 230, 230, 230, 230, 230, 230, 230, 
-		230, 199, 199, 199, 199, 199, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		199, 230,  70, 230, 230, 230, 230, 134, 
-		230, 230, 230, 230, 230, 246, 246, 230, 
-		254, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 246, 230, 198, 198, 196, 230, 
-		230, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 230, 230, 226, 230, 246, 
-		198, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		230, 230, 230, 230, 230, 230, 230, 230, 
-		/* table 9 .. 11: 256 */
-		  0, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160,  32, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 128, 
-		160, 224, 224, 224, 224, 224, 224, 224, 
-		224, 224, 224, 224, 224, 224, 224, 224, 
-		224, 224, 224, 224, 224, 224, 224, 224, 
-		224, 224, 224, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-	};
-	yych = *p;
-	if (yych <= '/') {
-		if (yych <= ' ') {
-			if (yych != '\n') goto yy1238;
-		} else {
-			if (yych <= '!') goto yy1236;
-			if (yych <= '.') goto yy1238;
-			goto yy1235;
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych == '?') goto yy1237;
-			goto yy1238;
-		} else {
-			if (yych <= 'Z') goto yy1234;
-			if (yych <= '`') goto yy1238;
-			if (yych <= 'z') goto yy1234;
-			goto yy1238;
-		}
-	}
-yy1233:
-	{ return 0; }
-yy1234:
-	yych = *(marker = ++p);
-	if (yych <= '9') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy1233;
-			if (yych <= '\r') goto yy1275;
-			goto yy1233;
-		} else {
-			if (yych <= ' ') goto yy1275;
-			if (yych <= '.') goto yy1233;
-			if (yych <= '/') goto yy1277;
-			goto yy1273;
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych == '>') goto yy1243;
-			goto yy1233;
-		} else {
-			if (yych <= 'Z') goto yy1273;
-			if (yych <= '`') goto yy1233;
-			if (yych <= 'z') goto yy1273;
-			goto yy1233;
-		}
-	}
-yy1235:
-	yych = *(marker = ++p);
-	if (yych <= '@') goto yy1233;
-	if (yych <= 'Z') goto yy1269;
-	if (yych <= '`') goto yy1233;
-	if (yych <= 'z') goto yy1269;
-	goto yy1233;
-yy1236:
-	yych = *(marker = ++p);
-	if (yybm[256+yych] & 64) {
-		goto yy1246;
-	}
-	if (yych == '-') goto yy1248;
-	if (yych == '[') goto yy1245;
-	goto yy1233;
-yy1237:
-	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy1233;
-	goto yy1240;
-yy1238:
-	yych = *++p;
-	goto yy1233;
-yy1239:
-	++p;
-	yych = *p;
-yy1240:
-	if (yybm[256+yych] & 32) {
-		goto yy1239;
-	}
-	if (yych >= 0x01) goto yy1242;
-yy1241:
-	p = marker;
-	goto yy1233;
-yy1242:
-	++p;
-	yych = *p;
-	if (yych <= 0x00) goto yy1241;
-	if (yych != '>') goto yy1239;
-yy1243:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy1245:
-	yych = *++p;
-	if (yych == 'C') goto yy1260;
-	if (yych == 'c') goto yy1260;
-	goto yy1241;
-yy1246:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 1) {
-		goto yy1256;
-	}
-	if (yych <= '@') goto yy1241;
-	if (yych <= 'Z') goto yy1246;
-	goto yy1241;
-yy1248:
-	yych = *++p;
-	if (yych != '-') goto yy1241;
-	yych = *++p;
-	if (yych == '-') goto yy1250;
-	if (yych == '>') goto yy1241;
-	goto yy1252;
-yy1250:
-	yych = *++p;
-	if (yych == '-') goto yy1255;
-	if (yych == '>') goto yy1241;
-	goto yy1252;
-yy1251:
-	++p;
-	yych = *p;
-yy1252:
-	if (yybm[256+yych] & 128) {
-		goto yy1251;
-	}
-	if (yych <= 0x00) goto yy1241;
-	++p;
-	yych = *p;
-	if (yybm[256+yych] & 128) {
-		goto yy1251;
-	}
-	if (yych <= 0x00) goto yy1241;
-	yych = *++p;
-	if (yych == '>') goto yy1243;
-	goto yy1241;
-yy1255:
-	yych = *++p;
-	if (yych == '>') goto yy1243;
-	goto yy1241;
-yy1256:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 1) {
-		goto yy1256;
-	}
-	if (yych <= 0x00) goto yy1241;
-	if (yych == '>') goto yy1243;
-yy1258:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 2) {
-		goto yy1258;
-	}
-	if (yych <= 0x00) goto yy1241;
-	goto yy1243;
-yy1260:
-	yych = *++p;
-	if (yych == 'D') goto yy1261;
-	if (yych != 'd') goto yy1241;
-yy1261:
-	yych = *++p;
-	if (yych == 'A') goto yy1262;
-	if (yych != 'a') goto yy1241;
-yy1262:
-	yych = *++p;
-	if (yych == 'T') goto yy1263;
-	if (yych != 't') goto yy1241;
-yy1263:
-	yych = *++p;
-	if (yych == 'A') goto yy1264;
-	if (yych != 'a') goto yy1241;
-yy1264:
-	yych = *++p;
-	if (yych != '[') goto yy1241;
-yy1265:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 4) {
-		goto yy1265;
-	}
-	if (yych <= 0x00) goto yy1241;
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 4) {
-		goto yy1265;
-	}
-	if (yych <= 0x00) goto yy1241;
-	++p;
-	yych = *p;
-	if (yych <= 0x00) goto yy1241;
-	if (yych == '>') goto yy1243;
-	goto yy1265;
-yy1269:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 8) {
-		goto yy1269;
-	}
-	if (yych <= 0x1F) {
-		if (yych <= 0x08) goto yy1241;
-		if (yych >= 0x0E) goto yy1241;
-	} else {
-		if (yych <= ' ') goto yy1271;
-		if (yych == '>') goto yy1243;
-		goto yy1241;
-	}
-yy1271:
-	++p;
-	yych = *p;
-	if (yych <= 0x1F) {
-		if (yych <= 0x08) goto yy1241;
-		if (yych <= '\r') goto yy1271;
-		goto yy1241;
-	} else {
-		if (yych <= ' ') goto yy1271;
-		if (yych == '>') goto yy1243;
-		goto yy1241;
-	}
-yy1273:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy1241;
-			if (yych >= 0x0E) goto yy1241;
-		} else {
-			if (yych <= ' ') goto yy1275;
-			if (yych <= '.') goto yy1241;
-			if (yych <= '/') goto yy1277;
-			goto yy1273;
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych == '>') goto yy1243;
-			goto yy1241;
-		} else {
-			if (yych <= 'Z') goto yy1273;
-			if (yych <= '`') goto yy1241;
-			if (yych <= 'z') goto yy1273;
-			goto yy1241;
-		}
-	}
-yy1275:
-	++p;
-	yych = *p;
-	if (yych <= ':') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) goto yy1241;
-			if (yych <= '\r') goto yy1275;
-			if (yych <= 0x1F) goto yy1241;
-			goto yy1275;
-		} else {
-			if (yych == '/') goto yy1277;
-			if (yych <= '9') goto yy1241;
-			goto yy1278;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych == '>') goto yy1243;
-			if (yych <= '@') goto yy1241;
-			goto yy1278;
-		} else {
-			if (yych <= '_') {
-				if (yych <= '^') goto yy1241;
-				goto yy1278;
-			} else {
-				if (yych <= '`') goto yy1241;
-				if (yych <= 'z') goto yy1278;
-				goto yy1241;
-			}
-		}
-	}
-yy1277:
-	yych = *++p;
-	if (yych == '>') goto yy1243;
-	goto yy1241;
-yy1278:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 16) {
-		goto yy1278;
-	}
-	if (yych <= '.') {
-		if (yych <= '\r') {
-			if (yych <= 0x08) goto yy1241;
-		} else {
-			if (yych != ' ') goto yy1241;
-		}
-	} else {
-		if (yych <= '<') {
-			if (yych <= '/') goto yy1277;
-			goto yy1241;
-		} else {
-			if (yych <= '=') goto yy1282;
-			if (yych <= '>') goto yy1243;
-			goto yy1241;
-		}
-	}
-yy1280:
-	++p;
-	yych = *p;
-	if (yych <= '<') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) goto yy1241;
-			if (yych <= '\r') goto yy1280;
-			if (yych <= 0x1F) goto yy1241;
-			goto yy1280;
-		} else {
-			if (yych <= '/') {
-				if (yych <= '.') goto yy1241;
-				goto yy1277;
-			} else {
-				if (yych == ':') goto yy1278;
-				goto yy1241;
-			}
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '=') goto yy1282;
-			if (yych <= '>') goto yy1243;
-			if (yych <= '@') goto yy1241;
-			goto yy1278;
-		} else {
-			if (yych <= '_') {
-				if (yych <= '^') goto yy1241;
-				goto yy1278;
-			} else {
-				if (yych <= '`') goto yy1241;
-				if (yych <= 'z') goto yy1278;
-				goto yy1241;
-			}
-		}
-	}
-yy1282:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1284;
-	}
-	if (yych <= 0x00) goto yy1241;
-	if (yych <= '!') goto yy1283;
-	if (yych <= '"') goto yy1288;
-	if (yych <= ';') goto yy1286;
-	goto yy1241;
-yy1283:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1284;
-	}
-	if (yych <= '"') {
-		if (yych <= 0x00) goto yy1241;
-		if (yych <= '!') goto yy1297;
-		goto yy1288;
-	} else {
-		if (yych <= ';') goto yy1286;
-		if (yych == '>') goto yy1243;
-		goto yy1241;
-	}
-yy1284:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1284;
-	}
-	if (yych <= 0x00) goto yy1241;
-	if (yych <= '!') goto yy1291;
-	if (yych == '>') goto yy1243;
-	goto yy1241;
-yy1286:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1286;
-	}
-	if (yych <= 0x00) goto yy1241;
-	goto yy1290;
-yy1288:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1288;
-	}
-	if (yych <= 0x00) goto yy1241;
-yy1290:
-	++p;
-	yych = *p;
-	if (yych <= ' ') {
-		if (yych <= 0x08) goto yy1241;
-		if (yych <= '\r') goto yy1275;
-		if (yych <= 0x1F) goto yy1241;
-		goto yy1275;
-	} else {
-		if (yych <= '/') {
-			if (yych <= '.') goto yy1241;
-			goto yy1277;
-		} else {
-			if (yych == '>') goto yy1243;
-			goto yy1241;
-		}
-	}
-yy1291:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) {
-				if (yych <= 0x00) goto yy1241;
-				goto yy1284;
-			} else {
-				if (yych <= '\r') goto yy1291;
-				if (yych <= 0x1F) goto yy1284;
-				goto yy1291;
-			}
-		} else {
-			if (yych <= '"') {
-				if (yych <= '!') goto yy1284;
-				goto yy1241;
-			} else {
-				if (yych == '\'') goto yy1241;
-				goto yy1284;
-			}
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych <= ';') {
-				if (yych >= ';') goto yy1284;
-			} else {
-				if (yych <= '=') goto yy1241;
-				if (yych <= '>') goto yy1243;
-				goto yy1284;
-			}
-		} else {
-			if (yych <= '_') {
-				if (yych <= 'Z') goto yy1293;
-				if (yych <= '^') goto yy1284;
-			} else {
-				if (yych <= '`') goto yy1241;
-				if (yych >= '{') goto yy1284;
-			}
-		}
-	}
-yy1293:
-	++p;
-	yych = *p;
-	if (yych <= '/') {
-		if (yych <= '!') {
-			if (yych <= '\r') {
-				if (yych <= 0x00) goto yy1241;
-				if (yych <= 0x08) goto yy1284;
-			} else {
-				if (yych != ' ') goto yy1284;
-			}
-		} else {
-			if (yych <= '\'') {
-				if (yych <= '"') goto yy1241;
-				if (yych <= '&') goto yy1284;
-				goto yy1241;
-			} else {
-				if (yych <= ',') goto yy1284;
-				if (yych <= '.') goto yy1293;
-				goto yy1284;
-			}
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych <= '<') {
-				if (yych <= ':') goto yy1293;
-				if (yych <= ';') goto yy1284;
-				goto yy1241;
-			} else {
-				if (yych <= '=') goto yy1282;
-				if (yych <= '>') goto yy1243;
-				goto yy1284;
-			}
-		} else {
-			if (yych <= '_') {
-				if (yych <= 'Z') goto yy1293;
-				if (yych <= '^') goto yy1284;
-				goto yy1293;
-			} else {
-				if (yych <= '`') goto yy1241;
-				if (yych <= 'z') goto yy1293;
-				goto yy1284;
-			}
-		}
-	}
-yy1295:
-	++p;
-	yych = *p;
-	if (yych <= ':') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) {
-				if (yych <= 0x00) goto yy1241;
-				goto yy1284;
-			} else {
-				if (yych <= '\r') goto yy1295;
-				if (yych <= 0x1F) goto yy1284;
-				goto yy1295;
-			}
-		} else {
-			if (yych <= '&') {
-				if (yych == '"') goto yy1241;
-				goto yy1284;
-			} else {
-				if (yych <= '\'') goto yy1241;
-				if (yych <= '9') goto yy1284;
-				goto yy1293;
-			}
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych <= '<') {
-				if (yych <= ';') goto yy1284;
-				goto yy1241;
-			} else {
-				if (yych <= '=') goto yy1282;
-				if (yych <= '>') goto yy1243;
-				goto yy1284;
-			}
-		} else {
-			if (yych <= '_') {
-				if (yych <= 'Z') goto yy1293;
-				if (yych <= '^') goto yy1284;
-				goto yy1293;
-			} else {
-				if (yych <= '`') goto yy1241;
-				if (yych <= 'z') goto yy1293;
-				goto yy1284;
-			}
-		}
-	}
-yy1297:
-	++p;
-	yych = *p;
-	if (yych <= '9') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) {
-				if (yych <= 0x00) goto yy1241;
-				goto yy1284;
-			} else {
-				if (yych <= '\r') goto yy1297;
-				if (yych <= 0x1F) goto yy1284;
-				goto yy1297;
-			}
-		} else {
-			if (yych <= '"') {
-				if (yych <= '!') goto yy1284;
-				goto yy1288;
-			} else {
-				if (yych == '\'') goto yy1286;
-				goto yy1284;
-			}
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych <= ';') {
-				if (yych <= ':') goto yy1293;
-				goto yy1284;
-			} else {
-				if (yych <= '=') goto yy1241;
-				if (yych <= '>') goto yy1243;
-				goto yy1284;
-			}
-		} else {
-			if (yych <= '_') {
-				if (yych <= 'Z') goto yy1293;
-				if (yych <= '^') goto yy1284;
-				goto yy1293;
-			} else {
-				if (yych <= '`') goto yy1241;
-				if (yych <= 'z') goto yy1293;
-				goto yy1284;
-			}
-		}
-	}
-}
-
-}
-
-// Try to match an HTML block tag including first <,
-// returning num of chars matched.
-bufsize_t _scan_html_block_tag(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	yych = *p;
-	if (yych == '\n') goto yy1301;
-	if (yych == '<') goto yy1302;
-	goto yy1303;
-yy1301:
-	{ return 0; }
-yy1302:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case '!':
-	case '?':	goto yy1304;
-	case '/':	goto yy1323;
-	case 'A':
-	case 'a':	goto yy1308;
-	case 'B':
-	case 'b':	goto yy1311;
-	case 'C':
-	case 'c':	goto yy1315;
-	case 'D':
-	case 'd':	goto yy1316;
-	case 'E':
-	case 'e':	goto yy1319;
-	case 'F':
-	case 'f':	goto yy1320;
-	case 'H':
-	case 'h':	goto yy1309;
-	case 'I':
-	case 'i':	goto yy1310;
-	case 'L':
-	case 'l':	goto yy1312;
-	case 'M':
-	case 'm':	goto yy1313;
-	case 'O':
-	case 'o':	goto yy1314;
-	case 'P':
-	case 'p':	goto yy1306;
-	case 'S':
-	case 's':	goto yy1317;
-	case 'T':
-	case 't':	goto yy1318;
-	case 'U':
-	case 'u':	goto yy1321;
-	case 'V':
-	case 'v':	goto yy1322;
-	default:	goto yy1301;
-	}
-yy1303:
-	yych = *++p;
-	goto yy1301;
-yy1304:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy1306:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy1307;
-			if (yych <= '\r') goto yy1467;
-		} else {
-			if (yych <= ' ') goto yy1467;
-			if (yych >= '/') goto yy1467;
-		}
-	} else {
-		if (yych <= 'Q') {
-			if (yych == '>') goto yy1467;
-		} else {
-			if (yych <= 'R') goto yy1580;
-			if (yych == 'r') goto yy1580;
-		}
-	}
-yy1307:
-	p = marker;
-	goto yy1301;
-yy1308:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych <= 'Q') goto yy1307;
-		if (yych <= 'R') goto yy1573;
-		goto yy1572;
-	} else {
-		if (yych <= 'q') goto yy1307;
-		if (yych <= 'r') goto yy1573;
-		if (yych <= 's') goto yy1572;
-		goto yy1307;
-	}
-yy1309:
-	yych = *++p;
-	if (yych <= 'Q') {
-		if (yych <= 'D') {
-			if (yych <= '0') goto yy1307;
-			if (yych <= '6') goto yy1466;
-			goto yy1307;
-		} else {
-			if (yych <= 'E') goto yy1565;
-			if (yych == 'G') goto yy1564;
-			goto yy1307;
-		}
-	} else {
-		if (yych <= 'f') {
-			if (yych <= 'R') goto yy1466;
-			if (yych == 'e') goto yy1565;
-			goto yy1307;
-		} else {
-			if (yych <= 'g') goto yy1564;
-			if (yych == 'r') goto yy1466;
-			goto yy1307;
-		}
-	}
-yy1310:
-	yych = *++p;
-	if (yych == 'F') goto yy1560;
-	if (yych == 'f') goto yy1560;
-	goto yy1307;
-yy1311:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych <= 'N') {
-			if (yych == 'L') goto yy1548;
-			goto yy1307;
-		} else {
-			if (yych <= 'O') goto yy1547;
-			if (yych <= 'T') goto yy1307;
-			goto yy1546;
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych == 'l') goto yy1548;
-			goto yy1307;
-		} else {
-			if (yych <= 'o') goto yy1547;
-			if (yych == 'u') goto yy1546;
-			goto yy1307;
-		}
-	}
-yy1312:
-	yych = *++p;
-	if (yych == 'I') goto yy1466;
-	if (yych == 'i') goto yy1466;
-	goto yy1307;
-yy1313:
-	yych = *++p;
-	if (yych == 'A') goto yy1545;
-	if (yych == 'a') goto yy1545;
-	goto yy1307;
-yy1314:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych <= 'K') {
-			if (yych == 'B') goto yy1538;
-			goto yy1307;
-		} else {
-			if (yych <= 'L') goto yy1466;
-			if (yych <= 'T') goto yy1307;
-			goto yy1537;
-		}
-	} else {
-		if (yych <= 'k') {
-			if (yych == 'b') goto yy1538;
-			goto yy1307;
-		} else {
-			if (yych <= 'l') goto yy1466;
-			if (yych == 'u') goto yy1537;
-			goto yy1307;
-		}
-	}
-yy1315:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'A') goto yy1524;
-		if (yych <= 'N') goto yy1307;
-		goto yy1523;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy1307;
-			goto yy1524;
-		} else {
-			if (yych == 'o') goto yy1523;
-			goto yy1307;
-		}
-	}
-yy1316:
-	yych = *++p;
-	if (yych <= 'T') {
-		if (yych <= 'I') {
-			if (yych == 'D') goto yy1466;
-			if (yych <= 'H') goto yy1307;
-			goto yy1522;
-		} else {
-			if (yych == 'L') goto yy1466;
-			if (yych <= 'S') goto yy1307;
-			goto yy1466;
-		}
-	} else {
-		if (yych <= 'i') {
-			if (yych == 'd') goto yy1466;
-			if (yych <= 'h') goto yy1307;
-			goto yy1522;
-		} else {
-			if (yych <= 'l') {
-				if (yych <= 'k') goto yy1307;
-				goto yy1466;
-			} else {
-				if (yych == 't') goto yy1466;
-				goto yy1307;
-			}
-		}
-	}
-yy1317:
-	yych = *++p;
-	if (yych <= 'T') {
-		if (yych <= 'D') {
-			if (yych == 'C') goto yy1511;
-			goto yy1307;
-		} else {
-			if (yych <= 'E') goto yy1512;
-			if (yych <= 'S') goto yy1307;
-			goto yy1510;
-		}
-	} else {
-		if (yych <= 'd') {
-			if (yych == 'c') goto yy1511;
-			goto yy1307;
-		} else {
-			if (yych <= 'e') goto yy1512;
-			if (yych == 't') goto yy1510;
-			goto yy1307;
-		}
-	}
-yy1318:
-	yych = *++p;
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy1496;
-	case 'B':
-	case 'b':	goto yy1495;
-	case 'D':
-	case 'R':
-	case 'd':
-	case 'r':	goto yy1466;
-	case 'E':
-	case 'e':	goto yy1494;
-	case 'F':
-	case 'f':	goto yy1493;
-	case 'H':
-	case 'h':	goto yy1492;
-	default:	goto yy1307;
-	}
-yy1319:
-	yych = *++p;
-	if (yych == 'M') goto yy1489;
-	if (yych == 'm') goto yy1489;
-	goto yy1307;
-yy1320:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'I') goto yy1470;
-		if (yych <= 'N') goto yy1307;
-		goto yy1469;
-	} else {
-		if (yych <= 'i') {
-			if (yych <= 'h') goto yy1307;
-			goto yy1470;
-		} else {
-			if (yych == 'o') goto yy1469;
-			goto yy1307;
-		}
-	}
-yy1321:
-	yych = *++p;
-	if (yych == 'L') goto yy1466;
-	if (yych == 'l') goto yy1466;
-	goto yy1307;
-yy1322:
-	yych = *++p;
-	if (yych == 'I') goto yy1463;
-	if (yych == 'i') goto yy1463;
-	goto yy1307;
-yy1323:
-	yych = *++p;
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy1325;
-	case 'B':
-	case 'b':	goto yy1328;
-	case 'C':
-	case 'c':	goto yy1332;
-	case 'D':
-	case 'd':	goto yy1333;
-	case 'E':
-	case 'e':	goto yy1336;
-	case 'F':
-	case 'f':	goto yy1337;
-	case 'H':
-	case 'h':	goto yy1326;
-	case 'I':
-	case 'i':	goto yy1327;
-	case 'L':
-	case 'l':	goto yy1329;
-	case 'M':
-	case 'm':	goto yy1330;
-	case 'O':
-	case 'o':	goto yy1331;
-	case 'P':
-	case 'p':	goto yy1324;
-	case 'S':
-	case 's':	goto yy1334;
-	case 'T':
-	case 't':	goto yy1335;
-	case 'U':
-	case 'u':	goto yy1338;
-	case 'V':
-	case 'v':	goto yy1339;
-	default:	goto yy1307;
-	}
-yy1324:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '\r') {
-			if (yych <= 0x08) goto yy1307;
-			goto yy1344;
-		} else {
-			if (yych == ' ') goto yy1344;
-			goto yy1307;
-		}
-	} else {
-		if (yych <= 'R') {
-			if (yych <= '>') goto yy1344;
-			if (yych <= 'Q') goto yy1307;
-			goto yy1457;
-		} else {
-			if (yych == 'r') goto yy1457;
-			goto yy1307;
-		}
-	}
-yy1325:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych <= 'Q') goto yy1307;
-		if (yych <= 'R') goto yy1450;
-		goto yy1449;
-	} else {
-		if (yych <= 'q') goto yy1307;
-		if (yych <= 'r') goto yy1450;
-		if (yych <= 's') goto yy1449;
-		goto yy1307;
-	}
-yy1326:
-	yych = *++p;
-	if (yych <= 'Q') {
-		if (yych <= 'D') {
-			if (yych <= '0') goto yy1307;
-			if (yych <= '6') goto yy1343;
-			goto yy1307;
-		} else {
-			if (yych <= 'E') goto yy1442;
-			if (yych == 'G') goto yy1441;
-			goto yy1307;
-		}
-	} else {
-		if (yych <= 'f') {
-			if (yych <= 'R') goto yy1343;
-			if (yych == 'e') goto yy1442;
-			goto yy1307;
-		} else {
-			if (yych <= 'g') goto yy1441;
-			if (yych == 'r') goto yy1343;
-			goto yy1307;
-		}
-	}
-yy1327:
-	yych = *++p;
-	if (yych == 'F') goto yy1437;
-	if (yych == 'f') goto yy1437;
-	goto yy1307;
-yy1328:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych <= 'N') {
-			if (yych == 'L') goto yy1425;
-			goto yy1307;
-		} else {
-			if (yych <= 'O') goto yy1424;
-			if (yych <= 'T') goto yy1307;
-			goto yy1423;
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych == 'l') goto yy1425;
-			goto yy1307;
-		} else {
-			if (yych <= 'o') goto yy1424;
-			if (yych == 'u') goto yy1423;
-			goto yy1307;
-		}
-	}
-yy1329:
-	yych = *++p;
-	if (yych == 'I') goto yy1343;
-	if (yych == 'i') goto yy1343;
-	goto yy1307;
-yy1330:
-	yych = *++p;
-	if (yych == 'A') goto yy1422;
-	if (yych == 'a') goto yy1422;
-	goto yy1307;
-yy1331:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych <= 'K') {
-			if (yych == 'B') goto yy1415;
-			goto yy1307;
-		} else {
-			if (yych <= 'L') goto yy1343;
-			if (yych <= 'T') goto yy1307;
-			goto yy1414;
-		}
-	} else {
-		if (yych <= 'k') {
-			if (yych == 'b') goto yy1415;
-			goto yy1307;
-		} else {
-			if (yych <= 'l') goto yy1343;
-			if (yych == 'u') goto yy1414;
-			goto yy1307;
-		}
-	}
-yy1332:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'A') goto yy1401;
-		if (yych <= 'N') goto yy1307;
-		goto yy1400;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy1307;
-			goto yy1401;
-		} else {
-			if (yych == 'o') goto yy1400;
-			goto yy1307;
-		}
-	}
-yy1333:
-	yych = *++p;
-	if (yych <= 'T') {
-		if (yych <= 'I') {
-			if (yych == 'D') goto yy1343;
-			if (yych <= 'H') goto yy1307;
-			goto yy1399;
-		} else {
-			if (yych == 'L') goto yy1343;
-			if (yych <= 'S') goto yy1307;
-			goto yy1343;
-		}
-	} else {
-		if (yych <= 'i') {
-			if (yych == 'd') goto yy1343;
-			if (yych <= 'h') goto yy1307;
-			goto yy1399;
-		} else {
-			if (yych <= 'l') {
-				if (yych <= 'k') goto yy1307;
-				goto yy1343;
-			} else {
-				if (yych == 't') goto yy1343;
-				goto yy1307;
-			}
-		}
-	}
-yy1334:
-	yych = *++p;
-	if (yych <= 'T') {
-		if (yych <= 'D') {
-			if (yych == 'C') goto yy1388;
-			goto yy1307;
-		} else {
-			if (yych <= 'E') goto yy1389;
-			if (yych <= 'S') goto yy1307;
-			goto yy1387;
-		}
-	} else {
-		if (yych <= 'd') {
-			if (yych == 'c') goto yy1388;
-			goto yy1307;
-		} else {
-			if (yych <= 'e') goto yy1389;
-			if (yych == 't') goto yy1387;
-			goto yy1307;
-		}
-	}
-yy1335:
-	yych = *++p;
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy1373;
-	case 'B':
-	case 'b':	goto yy1372;
-	case 'D':
-	case 'R':
-	case 'd':
-	case 'r':	goto yy1343;
-	case 'E':
-	case 'e':	goto yy1371;
-	case 'F':
-	case 'f':	goto yy1370;
-	case 'H':
-	case 'h':	goto yy1369;
-	default:	goto yy1307;
-	}
-yy1336:
-	yych = *++p;
-	if (yych == 'M') goto yy1366;
-	if (yych == 'm') goto yy1366;
-	goto yy1307;
-yy1337:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'I') goto yy1347;
-		if (yych <= 'N') goto yy1307;
-		goto yy1346;
-	} else {
-		if (yych <= 'i') {
-			if (yych <= 'h') goto yy1307;
-			goto yy1347;
-		} else {
-			if (yych == 'o') goto yy1346;
-			goto yy1307;
-		}
-	}
-yy1338:
-	yych = *++p;
-	if (yych == 'L') goto yy1343;
-	if (yych == 'l') goto yy1343;
-	goto yy1307;
-yy1339:
-	yych = *++p;
-	if (yych == 'I') goto yy1340;
-	if (yych != 'i') goto yy1307;
-yy1340:
-	yych = *++p;
-	if (yych == 'D') goto yy1341;
-	if (yych != 'd') goto yy1307;
-yy1341:
-	yych = *++p;
-	if (yych == 'E') goto yy1342;
-	if (yych != 'e') goto yy1307;
-yy1342:
-	yych = *++p;
-	if (yych == 'O') goto yy1343;
-	if (yych != 'o') goto yy1307;
-yy1343:
-	yych = *++p;
-	if (yych <= 0x1F) {
-		if (yych <= 0x08) goto yy1307;
-		if (yych >= 0x0E) goto yy1307;
-	} else {
-		if (yych <= ' ') goto yy1344;
-		if (yych != '>') goto yy1307;
-	}
-yy1344:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy1346:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == 'O') goto yy1362;
-		if (yych <= 'Q') goto yy1307;
-		goto yy1363;
-	} else {
-		if (yych <= 'o') {
-			if (yych <= 'n') goto yy1307;
-			goto yy1362;
-		} else {
-			if (yych == 'r') goto yy1363;
-			goto yy1307;
-		}
-	}
-yy1347:
-	yych = *++p;
-	if (yych <= 'G') {
-		if (yych == 'E') goto yy1348;
-		if (yych <= 'F') goto yy1307;
-		goto yy1349;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy1307;
-		} else {
-			if (yych == 'g') goto yy1349;
-			goto yy1307;
-		}
-	}
-yy1348:
-	yych = *++p;
-	if (yych == 'L') goto yy1358;
-	if (yych == 'l') goto yy1358;
-	goto yy1307;
-yy1349:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych == 'C') goto yy1351;
-		if (yych <= 'T') goto yy1307;
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'b') goto yy1307;
-			goto yy1351;
-		} else {
-			if (yych != 'u') goto yy1307;
-		}
-	}
-	yych = *++p;
-	if (yych == 'R') goto yy1357;
-	if (yych == 'r') goto yy1357;
-	goto yy1307;
-yy1351:
-	yych = *++p;
-	if (yych == 'A') goto yy1352;
-	if (yych != 'a') goto yy1307;
-yy1352:
-	yych = *++p;
-	if (yych == 'P') goto yy1353;
-	if (yych != 'p') goto yy1307;
-yy1353:
-	yych = *++p;
-	if (yych == 'T') goto yy1354;
-	if (yych != 't') goto yy1307;
-yy1354:
-	yych = *++p;
-	if (yych == 'I') goto yy1355;
-	if (yych != 'i') goto yy1307;
-yy1355:
-	yych = *++p;
-	if (yych == 'O') goto yy1356;
-	if (yych != 'o') goto yy1307;
-yy1356:
-	yych = *++p;
-	if (yych == 'N') goto yy1343;
-	if (yych == 'n') goto yy1343;
-	goto yy1307;
-yy1357:
-	yych = *++p;
-	if (yych == 'E') goto yy1343;
-	if (yych == 'e') goto yy1343;
-	goto yy1307;
-yy1358:
-	yych = *++p;
-	if (yych == 'D') goto yy1359;
-	if (yych != 'd') goto yy1307;
-yy1359:
-	yych = *++p;
-	if (yych == 'S') goto yy1360;
-	if (yych != 's') goto yy1307;
-yy1360:
-	yych = *++p;
-	if (yych == 'E') goto yy1361;
-	if (yych != 'e') goto yy1307;
-yy1361:
-	yych = *++p;
-	if (yych == 'T') goto yy1343;
-	if (yych == 't') goto yy1343;
-	goto yy1307;
-yy1362:
-	yych = *++p;
-	if (yych == 'T') goto yy1364;
-	if (yych == 't') goto yy1364;
-	goto yy1307;
-yy1363:
-	yych = *++p;
-	if (yych == 'M') goto yy1343;
-	if (yych == 'm') goto yy1343;
-	goto yy1307;
-yy1364:
-	yych = *++p;
-	if (yych == 'E') goto yy1365;
-	if (yych != 'e') goto yy1307;
-yy1365:
-	yych = *++p;
-	if (yych == 'R') goto yy1343;
-	if (yych == 'r') goto yy1343;
-	goto yy1307;
-yy1366:
-	yych = *++p;
-	if (yych == 'B') goto yy1367;
-	if (yych != 'b') goto yy1307;
-yy1367:
-	yych = *++p;
-	if (yych == 'E') goto yy1368;
-	if (yych != 'e') goto yy1307;
-yy1368:
-	yych = *++p;
-	if (yych == 'D') goto yy1343;
-	if (yych == 'd') goto yy1343;
-	goto yy1307;
-yy1369:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '\r') {
-			if (yych <= 0x08) goto yy1307;
-			goto yy1344;
-		} else {
-			if (yych == ' ') goto yy1344;
-			goto yy1307;
-		}
-	} else {
-		if (yych <= 'E') {
-			if (yych <= '>') goto yy1344;
-			if (yych <= 'D') goto yy1307;
-			goto yy1385;
-		} else {
-			if (yych == 'e') goto yy1385;
-			goto yy1307;
-		}
-	}
-yy1370:
-	yych = *++p;
-	if (yych == 'O') goto yy1383;
-	if (yych == 'o') goto yy1383;
-	goto yy1307;
-yy1371:
-	yych = *++p;
-	if (yych == 'X') goto yy1378;
-	if (yych == 'x') goto yy1378;
-	goto yy1307;
-yy1372:
-	yych = *++p;
-	if (yych == 'O') goto yy1376;
-	if (yych == 'o') goto yy1376;
-	goto yy1307;
-yy1373:
-	yych = *++p;
-	if (yych == 'B') goto yy1374;
-	if (yych != 'b') goto yy1307;
-yy1374:
-	yych = *++p;
-	if (yych == 'L') goto yy1375;
-	if (yych != 'l') goto yy1307;
-yy1375:
-	yych = *++p;
-	if (yych == 'E') goto yy1343;
-	if (yych == 'e') goto yy1343;
-	goto yy1307;
-yy1376:
-	yych = *++p;
-	if (yych == 'D') goto yy1377;
-	if (yych != 'd') goto yy1307;
-yy1377:
-	yych = *++p;
-	if (yych == 'Y') goto yy1343;
-	if (yych == 'y') goto yy1343;
-	goto yy1307;
-yy1378:
-	yych = *++p;
-	if (yych == 'T') goto yy1379;
-	if (yych != 't') goto yy1307;
-yy1379:
-	yych = *++p;
-	if (yych == 'A') goto yy1380;
-	if (yych != 'a') goto yy1307;
-yy1380:
-	yych = *++p;
-	if (yych == 'R') goto yy1381;
-	if (yych != 'r') goto yy1307;
-yy1381:
-	yych = *++p;
-	if (yych == 'E') goto yy1382;
-	if (yych != 'e') goto yy1307;
-yy1382:
-	yych = *++p;
-	if (yych == 'A') goto yy1343;
-	if (yych == 'a') goto yy1343;
-	goto yy1307;
-yy1383:
-	yych = *++p;
-	if (yych == 'O') goto yy1384;
-	if (yych != 'o') goto yy1307;
-yy1384:
-	yych = *++p;
-	if (yych == 'T') goto yy1343;
-	if (yych == 't') goto yy1343;
-	goto yy1307;
-yy1385:
-	yych = *++p;
-	if (yych == 'A') goto yy1386;
-	if (yych != 'a') goto yy1307;
-yy1386:
-	yych = *++p;
-	if (yych == 'D') goto yy1343;
-	if (yych == 'd') goto yy1343;
-	goto yy1307;
-yy1387:
-	yych = *++p;
-	if (yych == 'Y') goto yy1397;
-	if (yych == 'y') goto yy1397;
-	goto yy1307;
-yy1388:
-	yych = *++p;
-	if (yych == 'R') goto yy1394;
-	if (yych == 'r') goto yy1394;
-	goto yy1307;
-yy1389:
-	yych = *++p;
-	if (yych == 'C') goto yy1390;
-	if (yych != 'c') goto yy1307;
-yy1390:
-	yych = *++p;
-	if (yych == 'T') goto yy1391;
-	if (yych != 't') goto yy1307;
-yy1391:
-	yych = *++p;
-	if (yych == 'I') goto yy1392;
-	if (yych != 'i') goto yy1307;
-yy1392:
-	yych = *++p;
-	if (yych == 'O') goto yy1393;
-	if (yych != 'o') goto yy1307;
-yy1393:
-	yych = *++p;
-	if (yych == 'N') goto yy1343;
-	if (yych == 'n') goto yy1343;
-	goto yy1307;
-yy1394:
-	yych = *++p;
-	if (yych == 'I') goto yy1395;
-	if (yych != 'i') goto yy1307;
-yy1395:
-	yych = *++p;
-	if (yych == 'P') goto yy1396;
-	if (yych != 'p') goto yy1307;
-yy1396:
-	yych = *++p;
-	if (yych == 'T') goto yy1343;
-	if (yych == 't') goto yy1343;
-	goto yy1307;
-yy1397:
-	yych = *++p;
-	if (yych == 'L') goto yy1398;
-	if (yych != 'l') goto yy1307;
-yy1398:
-	yych = *++p;
-	if (yych == 'E') goto yy1343;
-	if (yych == 'e') goto yy1343;
-	goto yy1307;
-yy1399:
-	yych = *++p;
-	if (yych == 'V') goto yy1343;
-	if (yych == 'v') goto yy1343;
-	goto yy1307;
-yy1400:
-	yych = *++p;
-	if (yych == 'L') goto yy1409;
-	if (yych == 'l') goto yy1409;
-	goto yy1307;
-yy1401:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'N') goto yy1402;
-		if (yych <= 'O') goto yy1307;
-		goto yy1403;
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'm') goto yy1307;
-		} else {
-			if (yych == 'p') goto yy1403;
-			goto yy1307;
-		}
-	}
-yy1402:
-	yych = *++p;
-	if (yych == 'V') goto yy1407;
-	if (yych == 'v') goto yy1407;
-	goto yy1307;
-yy1403:
-	yych = *++p;
-	if (yych == 'T') goto yy1404;
-	if (yych != 't') goto yy1307;
-yy1404:
-	yych = *++p;
-	if (yych == 'I') goto yy1405;
-	if (yych != 'i') goto yy1307;
-yy1405:
-	yych = *++p;
-	if (yych == 'O') goto yy1406;
-	if (yych != 'o') goto yy1307;
-yy1406:
-	yych = *++p;
-	if (yych == 'N') goto yy1343;
-	if (yych == 'n') goto yy1343;
-	goto yy1307;
-yy1407:
-	yych = *++p;
-	if (yych == 'A') goto yy1408;
-	if (yych != 'a') goto yy1307;
-yy1408:
-	yych = *++p;
-	if (yych == 'S') goto yy1343;
-	if (yych == 's') goto yy1343;
-	goto yy1307;
-yy1409:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '\r') {
-			if (yych <= 0x08) goto yy1307;
-			goto yy1344;
-		} else {
-			if (yych == ' ') goto yy1344;
-			goto yy1307;
-		}
-	} else {
-		if (yych <= 'G') {
-			if (yych <= '>') goto yy1344;
-			if (yych <= 'F') goto yy1307;
-		} else {
-			if (yych != 'g') goto yy1307;
-		}
-	}
-	yych = *++p;
-	if (yych == 'R') goto yy1411;
-	if (yych != 'r') goto yy1307;
-yy1411:
-	yych = *++p;
-	if (yych == 'O') goto yy1412;
-	if (yych != 'o') goto yy1307;
-yy1412:
-	yych = *++p;
-	if (yych == 'U') goto yy1413;
-	if (yych != 'u') goto yy1307;
-yy1413:
-	yych = *++p;
-	if (yych == 'P') goto yy1343;
-	if (yych == 'p') goto yy1343;
-	goto yy1307;
-yy1414:
-	yych = *++p;
-	if (yych == 'T') goto yy1419;
-	if (yych == 't') goto yy1419;
-	goto yy1307;
-yy1415:
-	yych = *++p;
-	if (yych == 'J') goto yy1416;
-	if (yych != 'j') goto yy1307;
-yy1416:
-	yych = *++p;
-	if (yych == 'E') goto yy1417;
-	if (yych != 'e') goto yy1307;
-yy1417:
-	yych = *++p;
-	if (yych == 'C') goto yy1418;
-	if (yych != 'c') goto yy1307;
-yy1418:
-	yych = *++p;
-	if (yych == 'T') goto yy1343;
-	if (yych == 't') goto yy1343;
-	goto yy1307;
-yy1419:
-	yych = *++p;
-	if (yych == 'P') goto yy1420;
-	if (yych != 'p') goto yy1307;
-yy1420:
-	yych = *++p;
-	if (yych == 'U') goto yy1421;
-	if (yych != 'u') goto yy1307;
-yy1421:
-	yych = *++p;
-	if (yych == 'T') goto yy1343;
-	if (yych == 't') goto yy1343;
-	goto yy1307;
-yy1422:
-	yych = *++p;
-	if (yych == 'P') goto yy1343;
-	if (yych == 'p') goto yy1343;
-	goto yy1307;
-yy1423:
-	yych = *++p;
-	if (yych == 'T') goto yy1434;
-	if (yych == 't') goto yy1434;
-	goto yy1307;
-yy1424:
-	yych = *++p;
-	if (yych == 'D') goto yy1433;
-	if (yych == 'd') goto yy1433;
-	goto yy1307;
-yy1425:
-	yych = *++p;
-	if (yych == 'O') goto yy1426;
-	if (yych != 'o') goto yy1307;
-yy1426:
-	yych = *++p;
-	if (yych == 'C') goto yy1427;
-	if (yych != 'c') goto yy1307;
-yy1427:
-	yych = *++p;
-	if (yych == 'K') goto yy1428;
-	if (yych != 'k') goto yy1307;
-yy1428:
-	yych = *++p;
-	if (yych == 'Q') goto yy1429;
-	if (yych != 'q') goto yy1307;
-yy1429:
-	yych = *++p;
-	if (yych == 'U') goto yy1430;
-	if (yych != 'u') goto yy1307;
-yy1430:
-	yych = *++p;
-	if (yych == 'O') goto yy1431;
-	if (yych != 'o') goto yy1307;
-yy1431:
-	yych = *++p;
-	if (yych == 'T') goto yy1432;
-	if (yych != 't') goto yy1307;
-yy1432:
-	yych = *++p;
-	if (yych == 'E') goto yy1343;
-	if (yych == 'e') goto yy1343;
-	goto yy1307;
-yy1433:
-	yych = *++p;
-	if (yych == 'Y') goto yy1343;
-	if (yych == 'y') goto yy1343;
-	goto yy1307;
-yy1434:
-	yych = *++p;
-	if (yych == 'T') goto yy1435;
-	if (yych != 't') goto yy1307;
-yy1435:
-	yych = *++p;
-	if (yych == 'O') goto yy1436;
-	if (yych != 'o') goto yy1307;
-yy1436:
-	yych = *++p;
-	if (yych == 'N') goto yy1343;
-	if (yych == 'n') goto yy1343;
-	goto yy1307;
-yy1437:
-	yych = *++p;
-	if (yych == 'R') goto yy1438;
-	if (yych != 'r') goto yy1307;
-yy1438:
-	yych = *++p;
-	if (yych == 'A') goto yy1439;
-	if (yych != 'a') goto yy1307;
-yy1439:
-	yych = *++p;
-	if (yych == 'M') goto yy1440;
-	if (yych != 'm') goto yy1307;
-yy1440:
-	yych = *++p;
-	if (yych == 'E') goto yy1343;
-	if (yych == 'e') goto yy1343;
-	goto yy1307;
-yy1441:
-	yych = *++p;
-	if (yych == 'R') goto yy1446;
-	if (yych == 'r') goto yy1446;
-	goto yy1307;
-yy1442:
-	yych = *++p;
-	if (yych == 'A') goto yy1443;
-	if (yych != 'a') goto yy1307;
-yy1443:
-	yych = *++p;
-	if (yych == 'D') goto yy1444;
-	if (yych != 'd') goto yy1307;
-yy1444:
-	yych = *++p;
-	if (yych == 'E') goto yy1445;
-	if (yych != 'e') goto yy1307;
-yy1445:
-	yych = *++p;
-	if (yych == 'R') goto yy1343;
-	if (yych == 'r') goto yy1343;
-	goto yy1307;
-yy1446:
-	yych = *++p;
-	if (yych == 'O') goto yy1447;
-	if (yych != 'o') goto yy1307;
-yy1447:
-	yych = *++p;
-	if (yych == 'U') goto yy1448;
-	if (yych != 'u') goto yy1307;
-yy1448:
-	yych = *++p;
-	if (yych == 'P') goto yy1343;
-	if (yych == 'p') goto yy1343;
-	goto yy1307;
-yy1449:
-	yych = *++p;
-	if (yych == 'I') goto yy1455;
-	if (yych == 'i') goto yy1455;
-	goto yy1307;
-yy1450:
-	yych = *++p;
-	if (yych == 'T') goto yy1451;
-	if (yych != 't') goto yy1307;
-yy1451:
-	yych = *++p;
-	if (yych == 'I') goto yy1452;
-	if (yych != 'i') goto yy1307;
-yy1452:
-	yych = *++p;
-	if (yych == 'C') goto yy1453;
-	if (yych != 'c') goto yy1307;
-yy1453:
-	yych = *++p;
-	if (yych == 'L') goto yy1454;
-	if (yych != 'l') goto yy1307;
-yy1454:
-	yych = *++p;
-	if (yych == 'E') goto yy1343;
-	if (yych == 'e') goto yy1343;
-	goto yy1307;
-yy1455:
-	yych = *++p;
-	if (yych == 'D') goto yy1456;
-	if (yych != 'd') goto yy1307;
-yy1456:
-	yych = *++p;
-	if (yych == 'E') goto yy1343;
-	if (yych == 'e') goto yy1343;
-	goto yy1307;
-yy1457:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'E') goto yy1343;
-		if (yych <= 'N') goto yy1307;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy1307;
-			goto yy1343;
-		} else {
-			if (yych != 'o') goto yy1307;
-		}
-	}
-	yych = *++p;
-	if (yych == 'G') goto yy1459;
-	if (yych != 'g') goto yy1307;
-yy1459:
-	yych = *++p;
-	if (yych == 'R') goto yy1460;
-	if (yych != 'r') goto yy1307;
-yy1460:
-	yych = *++p;
-	if (yych == 'E') goto yy1461;
-	if (yych != 'e') goto yy1307;
-yy1461:
-	yych = *++p;
-	if (yych == 'S') goto yy1462;
-	if (yych != 's') goto yy1307;
-yy1462:
-	yych = *++p;
-	if (yych == 'S') goto yy1343;
-	if (yych == 's') goto yy1343;
-	goto yy1307;
-yy1463:
-	yych = *++p;
-	if (yych == 'D') goto yy1464;
-	if (yych != 'd') goto yy1307;
-yy1464:
-	yych = *++p;
-	if (yych == 'E') goto yy1465;
-	if (yych != 'e') goto yy1307;
-yy1465:
-	yych = *++p;
-	if (yych == 'O') goto yy1466;
-	if (yych != 'o') goto yy1307;
-yy1466:
-	yych = *++p;
-	if (yych <= ' ') {
-		if (yych <= 0x08) goto yy1307;
-		if (yych <= '\r') goto yy1467;
-		if (yych <= 0x1F) goto yy1307;
-	} else {
-		if (yych <= '/') {
-			if (yych <= '.') goto yy1307;
-		} else {
-			if (yych != '>') goto yy1307;
-		}
-	}
-yy1467:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy1469:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == 'O') goto yy1485;
-		if (yych <= 'Q') goto yy1307;
-		goto yy1486;
-	} else {
-		if (yych <= 'o') {
-			if (yych <= 'n') goto yy1307;
-			goto yy1485;
-		} else {
-			if (yych == 'r') goto yy1486;
-			goto yy1307;
-		}
-	}
-yy1470:
-	yych = *++p;
-	if (yych <= 'G') {
-		if (yych == 'E') goto yy1471;
-		if (yych <= 'F') goto yy1307;
-		goto yy1472;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy1307;
-		} else {
-			if (yych == 'g') goto yy1472;
-			goto yy1307;
-		}
-	}
-yy1471:
-	yych = *++p;
-	if (yych == 'L') goto yy1481;
-	if (yych == 'l') goto yy1481;
-	goto yy1307;
-yy1472:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych == 'C') goto yy1474;
-		if (yych <= 'T') goto yy1307;
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'b') goto yy1307;
-			goto yy1474;
-		} else {
-			if (yych != 'u') goto yy1307;
-		}
-	}
-	yych = *++p;
-	if (yych == 'R') goto yy1480;
-	if (yych == 'r') goto yy1480;
-	goto yy1307;
-yy1474:
-	yych = *++p;
-	if (yych == 'A') goto yy1475;
-	if (yych != 'a') goto yy1307;
-yy1475:
-	yych = *++p;
-	if (yych == 'P') goto yy1476;
-	if (yych != 'p') goto yy1307;
-yy1476:
-	yych = *++p;
-	if (yych == 'T') goto yy1477;
-	if (yych != 't') goto yy1307;
-yy1477:
-	yych = *++p;
-	if (yych == 'I') goto yy1478;
-	if (yych != 'i') goto yy1307;
-yy1478:
-	yych = *++p;
-	if (yych == 'O') goto yy1479;
-	if (yych != 'o') goto yy1307;
-yy1479:
-	yych = *++p;
-	if (yych == 'N') goto yy1466;
-	if (yych == 'n') goto yy1466;
-	goto yy1307;
-yy1480:
-	yych = *++p;
-	if (yych == 'E') goto yy1466;
-	if (yych == 'e') goto yy1466;
-	goto yy1307;
-yy1481:
-	yych = *++p;
-	if (yych == 'D') goto yy1482;
-	if (yych != 'd') goto yy1307;
-yy1482:
-	yych = *++p;
-	if (yych == 'S') goto yy1483;
-	if (yych != 's') goto yy1307;
-yy1483:
-	yych = *++p;
-	if (yych == 'E') goto yy1484;
-	if (yych != 'e') goto yy1307;
-yy1484:
-	yych = *++p;
-	if (yych == 'T') goto yy1466;
-	if (yych == 't') goto yy1466;
-	goto yy1307;
-yy1485:
-	yych = *++p;
-	if (yych == 'T') goto yy1487;
-	if (yych == 't') goto yy1487;
-	goto yy1307;
-yy1486:
-	yych = *++p;
-	if (yych == 'M') goto yy1466;
-	if (yych == 'm') goto yy1466;
-	goto yy1307;
-yy1487:
-	yych = *++p;
-	if (yych == 'E') goto yy1488;
-	if (yych != 'e') goto yy1307;
-yy1488:
-	yych = *++p;
-	if (yych == 'R') goto yy1466;
-	if (yych == 'r') goto yy1466;
-	goto yy1307;
-yy1489:
-	yych = *++p;
-	if (yych == 'B') goto yy1490;
-	if (yych != 'b') goto yy1307;
-yy1490:
-	yych = *++p;
-	if (yych == 'E') goto yy1491;
-	if (yych != 'e') goto yy1307;
-yy1491:
-	yych = *++p;
-	if (yych == 'D') goto yy1466;
-	if (yych == 'd') goto yy1466;
-	goto yy1307;
-yy1492:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy1307;
-			if (yych <= '\r') goto yy1467;
-			goto yy1307;
-		} else {
-			if (yych <= ' ') goto yy1467;
-			if (yych <= '.') goto yy1307;
-			goto yy1467;
-		}
-	} else {
-		if (yych <= 'D') {
-			if (yych == '>') goto yy1467;
-			goto yy1307;
-		} else {
-			if (yych <= 'E') goto yy1508;
-			if (yych == 'e') goto yy1508;
-			goto yy1307;
-		}
-	}
-yy1493:
-	yych = *++p;
-	if (yych == 'O') goto yy1506;
-	if (yych == 'o') goto yy1506;
-	goto yy1307;
-yy1494:
-	yych = *++p;
-	if (yych == 'X') goto yy1501;
-	if (yych == 'x') goto yy1501;
-	goto yy1307;
-yy1495:
-	yych = *++p;
-	if (yych == 'O') goto yy1499;
-	if (yych == 'o') goto yy1499;
-	goto yy1307;
-yy1496:
-	yych = *++p;
-	if (yych == 'B') goto yy1497;
-	if (yych != 'b') goto yy1307;
-yy1497:
-	yych = *++p;
-	if (yych == 'L') goto yy1498;
-	if (yych != 'l') goto yy1307;
-yy1498:
-	yych = *++p;
-	if (yych == 'E') goto yy1466;
-	if (yych == 'e') goto yy1466;
-	goto yy1307;
-yy1499:
-	yych = *++p;
-	if (yych == 'D') goto yy1500;
-	if (yych != 'd') goto yy1307;
-yy1500:
-	yych = *++p;
-	if (yych == 'Y') goto yy1466;
-	if (yych == 'y') goto yy1466;
-	goto yy1307;
-yy1501:
-	yych = *++p;
-	if (yych == 'T') goto yy1502;
-	if (yych != 't') goto yy1307;
-yy1502:
-	yych = *++p;
-	if (yych == 'A') goto yy1503;
-	if (yych != 'a') goto yy1307;
-yy1503:
-	yych = *++p;
-	if (yych == 'R') goto yy1504;
-	if (yych != 'r') goto yy1307;
-yy1504:
-	yych = *++p;
-	if (yych == 'E') goto yy1505;
-	if (yych != 'e') goto yy1307;
-yy1505:
-	yych = *++p;
-	if (yych == 'A') goto yy1466;
-	if (yych == 'a') goto yy1466;
-	goto yy1307;
-yy1506:
-	yych = *++p;
-	if (yych == 'O') goto yy1507;
-	if (yych != 'o') goto yy1307;
-yy1507:
-	yych = *++p;
-	if (yych == 'T') goto yy1466;
-	if (yych == 't') goto yy1466;
-	goto yy1307;
-yy1508:
-	yych = *++p;
-	if (yych == 'A') goto yy1509;
-	if (yych != 'a') goto yy1307;
-yy1509:
-	yych = *++p;
-	if (yych == 'D') goto yy1466;
-	if (yych == 'd') goto yy1466;
-	goto yy1307;
-yy1510:
-	yych = *++p;
-	if (yych == 'Y') goto yy1520;
-	if (yych == 'y') goto yy1520;
-	goto yy1307;
-yy1511:
-	yych = *++p;
-	if (yych == 'R') goto yy1517;
-	if (yych == 'r') goto yy1517;
-	goto yy1307;
-yy1512:
-	yych = *++p;
-	if (yych == 'C') goto yy1513;
-	if (yych != 'c') goto yy1307;
-yy1513:
-	yych = *++p;
-	if (yych == 'T') goto yy1514;
-	if (yych != 't') goto yy1307;
-yy1514:
-	yych = *++p;
-	if (yych == 'I') goto yy1515;
-	if (yych != 'i') goto yy1307;
-yy1515:
-	yych = *++p;
-	if (yych == 'O') goto yy1516;
-	if (yych != 'o') goto yy1307;
-yy1516:
-	yych = *++p;
-	if (yych == 'N') goto yy1466;
-	if (yych == 'n') goto yy1466;
-	goto yy1307;
-yy1517:
-	yych = *++p;
-	if (yych == 'I') goto yy1518;
-	if (yych != 'i') goto yy1307;
-yy1518:
-	yych = *++p;
-	if (yych == 'P') goto yy1519;
-	if (yych != 'p') goto yy1307;
-yy1519:
-	yych = *++p;
-	if (yych == 'T') goto yy1466;
-	if (yych == 't') goto yy1466;
-	goto yy1307;
-yy1520:
-	yych = *++p;
-	if (yych == 'L') goto yy1521;
-	if (yych != 'l') goto yy1307;
-yy1521:
-	yych = *++p;
-	if (yych == 'E') goto yy1466;
-	if (yych == 'e') goto yy1466;
-	goto yy1307;
-yy1522:
-	yych = *++p;
-	if (yych == 'V') goto yy1466;
-	if (yych == 'v') goto yy1466;
-	goto yy1307;
-yy1523:
-	yych = *++p;
-	if (yych == 'L') goto yy1532;
-	if (yych == 'l') goto yy1532;
-	goto yy1307;
-yy1524:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'N') goto yy1525;
-		if (yych <= 'O') goto yy1307;
-		goto yy1526;
-	} else {
-		if (yych <= 'n') {
-			if (yych <= 'm') goto yy1307;
-		} else {
-			if (yych == 'p') goto yy1526;
-			goto yy1307;
-		}
-	}
-yy1525:
-	yych = *++p;
-	if (yych == 'V') goto yy1530;
-	if (yych == 'v') goto yy1530;
-	goto yy1307;
-yy1526:
-	yych = *++p;
-	if (yych == 'T') goto yy1527;
-	if (yych != 't') goto yy1307;
-yy1527:
-	yych = *++p;
-	if (yych == 'I') goto yy1528;
-	if (yych != 'i') goto yy1307;
-yy1528:
-	yych = *++p;
-	if (yych == 'O') goto yy1529;
-	if (yych != 'o') goto yy1307;
-yy1529:
-	yych = *++p;
-	if (yych == 'N') goto yy1466;
-	if (yych == 'n') goto yy1466;
-	goto yy1307;
-yy1530:
-	yych = *++p;
-	if (yych == 'A') goto yy1531;
-	if (yych != 'a') goto yy1307;
-yy1531:
-	yych = *++p;
-	if (yych == 'S') goto yy1466;
-	if (yych == 's') goto yy1466;
-	goto yy1307;
-yy1532:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy1307;
-			if (yych <= '\r') goto yy1467;
-			goto yy1307;
-		} else {
-			if (yych <= ' ') goto yy1467;
-			if (yych <= '.') goto yy1307;
-			goto yy1467;
-		}
-	} else {
-		if (yych <= 'F') {
-			if (yych == '>') goto yy1467;
-			goto yy1307;
-		} else {
-			if (yych <= 'G') goto yy1533;
-			if (yych != 'g') goto yy1307;
-		}
-	}
-yy1533:
-	yych = *++p;
-	if (yych == 'R') goto yy1534;
-	if (yych != 'r') goto yy1307;
-yy1534:
-	yych = *++p;
-	if (yych == 'O') goto yy1535;
-	if (yych != 'o') goto yy1307;
-yy1535:
-	yych = *++p;
-	if (yych == 'U') goto yy1536;
-	if (yych != 'u') goto yy1307;
-yy1536:
-	yych = *++p;
-	if (yych == 'P') goto yy1466;
-	if (yych == 'p') goto yy1466;
-	goto yy1307;
-yy1537:
-	yych = *++p;
-	if (yych == 'T') goto yy1542;
-	if (yych == 't') goto yy1542;
-	goto yy1307;
-yy1538:
-	yych = *++p;
-	if (yych == 'J') goto yy1539;
-	if (yych != 'j') goto yy1307;
-yy1539:
-	yych = *++p;
-	if (yych == 'E') goto yy1540;
-	if (yych != 'e') goto yy1307;
-yy1540:
-	yych = *++p;
-	if (yych == 'C') goto yy1541;
-	if (yych != 'c') goto yy1307;
-yy1541:
-	yych = *++p;
-	if (yych == 'T') goto yy1466;
-	if (yych == 't') goto yy1466;
-	goto yy1307;
-yy1542:
-	yych = *++p;
-	if (yych == 'P') goto yy1543;
-	if (yych != 'p') goto yy1307;
-yy1543:
-	yych = *++p;
-	if (yych == 'U') goto yy1544;
-	if (yych != 'u') goto yy1307;
-yy1544:
-	yych = *++p;
-	if (yych == 'T') goto yy1466;
-	if (yych == 't') goto yy1466;
-	goto yy1307;
-yy1545:
-	yych = *++p;
-	if (yych == 'P') goto yy1466;
-	if (yych == 'p') goto yy1466;
-	goto yy1307;
-yy1546:
-	yych = *++p;
-	if (yych == 'T') goto yy1557;
-	if (yych == 't') goto yy1557;
-	goto yy1307;
-yy1547:
-	yych = *++p;
-	if (yych == 'D') goto yy1556;
-	if (yych == 'd') goto yy1556;
-	goto yy1307;
-yy1548:
-	yych = *++p;
-	if (yych == 'O') goto yy1549;
-	if (yych != 'o') goto yy1307;
-yy1549:
-	yych = *++p;
-	if (yych == 'C') goto yy1550;
-	if (yych != 'c') goto yy1307;
-yy1550:
-	yych = *++p;
-	if (yych == 'K') goto yy1551;
-	if (yych != 'k') goto yy1307;
-yy1551:
-	yych = *++p;
-	if (yych == 'Q') goto yy1552;
-	if (yych != 'q') goto yy1307;
-yy1552:
-	yych = *++p;
-	if (yych == 'U') goto yy1553;
-	if (yych != 'u') goto yy1307;
-yy1553:
-	yych = *++p;
-	if (yych == 'O') goto yy1554;
-	if (yych != 'o') goto yy1307;
-yy1554:
-	yych = *++p;
-	if (yych == 'T') goto yy1555;
-	if (yych != 't') goto yy1307;
-yy1555:
-	yych = *++p;
-	if (yych == 'E') goto yy1466;
-	if (yych == 'e') goto yy1466;
-	goto yy1307;
-yy1556:
-	yych = *++p;
-	if (yych == 'Y') goto yy1466;
-	if (yych == 'y') goto yy1466;
-	goto yy1307;
-yy1557:
-	yych = *++p;
-	if (yych == 'T') goto yy1558;
-	if (yych != 't') goto yy1307;
-yy1558:
-	yych = *++p;
-	if (yych == 'O') goto yy1559;
-	if (yych != 'o') goto yy1307;
-yy1559:
-	yych = *++p;
-	if (yych == 'N') goto yy1466;
-	if (yych == 'n') goto yy1466;
-	goto yy1307;
-yy1560:
-	yych = *++p;
-	if (yych == 'R') goto yy1561;
-	if (yych != 'r') goto yy1307;
-yy1561:
-	yych = *++p;
-	if (yych == 'A') goto yy1562;
-	if (yych != 'a') goto yy1307;
-yy1562:
-	yych = *++p;
-	if (yych == 'M') goto yy1563;
-	if (yych != 'm') goto yy1307;
-yy1563:
-	yych = *++p;
-	if (yych == 'E') goto yy1466;
-	if (yych == 'e') goto yy1466;
-	goto yy1307;
-yy1564:
-	yych = *++p;
-	if (yych == 'R') goto yy1569;
-	if (yych == 'r') goto yy1569;
-	goto yy1307;
-yy1565:
-	yych = *++p;
-	if (yych == 'A') goto yy1566;
-	if (yych != 'a') goto yy1307;
-yy1566:
-	yych = *++p;
-	if (yych == 'D') goto yy1567;
-	if (yych != 'd') goto yy1307;
-yy1567:
-	yych = *++p;
-	if (yych == 'E') goto yy1568;
-	if (yych != 'e') goto yy1307;
-yy1568:
-	yych = *++p;
-	if (yych == 'R') goto yy1466;
-	if (yych == 'r') goto yy1466;
-	goto yy1307;
-yy1569:
-	yych = *++p;
-	if (yych == 'O') goto yy1570;
-	if (yych != 'o') goto yy1307;
-yy1570:
-	yych = *++p;
-	if (yych == 'U') goto yy1571;
-	if (yych != 'u') goto yy1307;
-yy1571:
-	yych = *++p;
-	if (yych == 'P') goto yy1466;
-	if (yych == 'p') goto yy1466;
-	goto yy1307;
-yy1572:
-	yych = *++p;
-	if (yych == 'I') goto yy1578;
-	if (yych == 'i') goto yy1578;
-	goto yy1307;
-yy1573:
-	yych = *++p;
-	if (yych == 'T') goto yy1574;
-	if (yych != 't') goto yy1307;
-yy1574:
-	yych = *++p;
-	if (yych == 'I') goto yy1575;
-	if (yych != 'i') goto yy1307;
-yy1575:
-	yych = *++p;
-	if (yych == 'C') goto yy1576;
-	if (yych != 'c') goto yy1307;
-yy1576:
-	yych = *++p;
-	if (yych == 'L') goto yy1577;
-	if (yych != 'l') goto yy1307;
-yy1577:
-	yych = *++p;
-	if (yych == 'E') goto yy1466;
-	if (yych == 'e') goto yy1466;
-	goto yy1307;
-yy1578:
-	yych = *++p;
-	if (yych == 'D') goto yy1579;
-	if (yych != 'd') goto yy1307;
-yy1579:
-	yych = *++p;
-	if (yych == 'E') goto yy1466;
-	if (yych == 'e') goto yy1466;
-	goto yy1307;
-yy1580:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'E') goto yy1466;
-		if (yych <= 'N') goto yy1307;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy1307;
-			goto yy1466;
-		} else {
-			if (yych != 'o') goto yy1307;
-		}
-	}
-	yych = *++p;
-	if (yych == 'G') goto yy1582;
-	if (yych != 'g') goto yy1307;
-yy1582:
-	yych = *++p;
-	if (yych == 'R') goto yy1583;
-	if (yych != 'r') goto yy1307;
-yy1583:
-	yych = *++p;
-	if (yych == 'E') goto yy1584;
-	if (yych != 'e') goto yy1307;
-yy1584:
-	yych = *++p;
-	if (yych == 'S') goto yy1585;
-	if (yych != 's') goto yy1307;
-yy1585:
-	++p;
-	if ((yych = *p) == 'S') goto yy1466;
-	if (yych == 's') goto yy1466;
-	goto yy1307;
-}
-
-}
-
-// Try to match a URL in a link or reference, return number of chars matched.
-// This may optionally be contained in <..>; otherwise
-// whitespace and unbalanced right parentheses aren't allowed.
-// Newlines aren't ever allowed.
-bufsize_t _scan_link_url(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	unsigned int yyaccept = 0;
-	static const unsigned char yybm[] = {
-		  0,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,   8,  64,  64,   8,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 72, 112, 112, 112, 112, 112, 112, 112, 
-		 64,  64, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112,  16, 112,  16, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 128, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-		112, 112, 112, 112, 112, 112, 112, 112, 
-	};
-	yych = *p;
-	if (yych <= '\'') {
-		if (yych <= '\f') {
-			if (yych == '\n') goto yy1589;
-			goto yy1597;
-		} else {
-			if (yych <= '\r') goto yy1591;
-			if (yych <= 0x1F) goto yy1597;
-			if (yych <= ' ') goto yy1591;
-			goto yy1593;
-		}
-	} else {
-		if (yych <= ';') {
-			if (yych <= '(') goto yy1596;
-			if (yych <= ')') goto yy1597;
-			goto yy1593;
-		} else {
-			if (yych <= '<') goto yy1592;
-			if (yych == '\\') goto yy1594;
-			goto yy1593;
-		}
-	}
-yy1588:
-	{ return (bufsize_t)(p - start); }
-yy1589:
-	yyaccept = 0;
-	marker = ++p;
-	yych = *p;
-yy1590:
-	if (yybm[0+yych] & 8) {
-		goto yy1589;
-	}
-	if (yych <= ')') {
-		if (yych <= ' ') goto yy1588;
-		if (yych <= '\'') goto yy1602;
-		if (yych <= '(') goto yy1598;
-		goto yy1588;
-	} else {
-		if (yych <= '<') {
-			if (yych <= ';') goto yy1602;
-			goto yy1605;
-		} else {
-			if (yych == '\\') goto yy1604;
-			goto yy1602;
-		}
-	}
-yy1591:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	goto yy1590;
-yy1592:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 32) {
-		goto yy1605;
-	}
-	if (yych <= '\r') {
-		if (yych <= '\t') {
-			if (yych <= 0x00) goto yy1588;
-			goto yy1612;
-		} else {
-			if (yych <= '\n') goto yy1588;
-			if (yych <= '\f') goto yy1612;
-			goto yy1588;
-		}
-	} else {
-		if (yych <= ')') {
-			if (yych == '(') goto yy1610;
-			goto yy1612;
-		} else {
-			if (yych <= '=') goto yy1602;
-			if (yych <= '>') goto yy1607;
-			goto yy1609;
-		}
-	}
-yy1593:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	goto yy1603;
-yy1594:
-	++p;
-	if ((yych = *p) <= '@') {
-		if (yych <= ' ') goto yy1595;
-		if (yych <= '/') goto yy1602;
-		if (yych >= ':') goto yy1602;
-	} else {
-		if (yych <= '`') {
-			if (yych >= '[') goto yy1602;
-		} else {
-			if (yych <= 'z') goto yy1595;
-			if (yych <= '~') goto yy1602;
-		}
-	}
-yy1595:
-	{ return 0; }
-yy1596:
-	yyaccept = 1;
-	yych = *(marker = ++p);
-	if (yych <= ' ') goto yy1595;
-	if (yych == '(') goto yy1595;
-	goto yy1599;
-yy1597:
-	yych = *++p;
-	goto yy1595;
-yy1598:
-	++p;
-	yych = *p;
-yy1599:
-	if (yybm[0+yych] & 16) {
-		goto yy1598;
-	}
-	if (yych <= '(') goto yy1600;
-	if (yych <= ')') goto yy1602;
-	goto yy1601;
-yy1600:
-	p = marker;
-	if (yyaccept <= 1) {
-		if (yyaccept <= 0) {
-			goto yy1588;
-		} else {
-			goto yy1595;
-		}
-	} else {
-		goto yy1608;
-	}
-yy1601:
-	++p;
-	yych = *p;
-	if (yych <= '@') {
-		if (yych <= ' ') goto yy1600;
-		if (yych <= '/') goto yy1598;
-		if (yych <= '9') goto yy1600;
-		goto yy1598;
-	} else {
-		if (yych <= '`') {
-			if (yych <= 'Z') goto yy1600;
-			goto yy1598;
-		} else {
-			if (yych <= 'z') goto yy1600;
-			if (yych <= '~') goto yy1598;
-			goto yy1600;
-		}
-	}
-yy1602:
-	yyaccept = 0;
-	marker = ++p;
-	yych = *p;
-yy1603:
-	if (yych <= '(') {
-		if (yych <= ' ') goto yy1588;
-		if (yych <= '\'') goto yy1602;
-		goto yy1598;
-	} else {
-		if (yych <= ')') goto yy1588;
-		if (yych != '\\') goto yy1602;
-	}
-yy1604:
-	++p;
-	yych = *p;
-	if (yych <= '@') {
-		if (yych <= ' ') goto yy1600;
-		if (yych <= '/') goto yy1602;
-		if (yych <= '9') goto yy1600;
-		goto yy1602;
-	} else {
-		if (yych <= '`') {
-			if (yych <= 'Z') goto yy1600;
-			goto yy1602;
-		} else {
-			if (yych <= 'z') goto yy1600;
-			if (yych <= '~') goto yy1602;
-			goto yy1600;
-		}
-	}
-yy1605:
-	yyaccept = 0;
-	marker = ++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1605;
-	}
-	if (yych <= '\r') {
-		if (yych <= '\t') {
-			if (yych <= 0x00) goto yy1588;
-			goto yy1612;
-		} else {
-			if (yych <= '\n') goto yy1588;
-			if (yych <= '\f') goto yy1612;
-			goto yy1588;
-		}
-	} else {
-		if (yych <= ')') {
-			if (yych == '(') goto yy1610;
-			goto yy1612;
-		} else {
-			if (yych <= '=') goto yy1602;
-			if (yych >= '?') goto yy1609;
-		}
-	}
-yy1607:
-	yyaccept = 2;
-	yych = *(marker = ++p);
-	if (yych <= ' ') goto yy1608;
-	if (yych != ')') goto yy1603;
-yy1608:
-	{ return (bufsize_t)(p - start); }
-yy1609:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '\f') {
-			if (yych <= 0x00) goto yy1600;
-			if (yych == '\n') goto yy1600;
-			goto yy1612;
-		} else {
-			if (yych <= ' ') {
-				if (yych <= '\r') goto yy1600;
-				goto yy1612;
-			} else {
-				if (yych <= '/') goto yy1605;
-				if (yych <= '9') goto yy1612;
-				goto yy1605;
-			}
-		}
-	} else {
-		if (yych <= '[') {
-			if (yych <= '>') goto yy1622;
-			if (yych <= '@') goto yy1605;
-			if (yych <= 'Z') goto yy1612;
-			goto yy1605;
-		} else {
-			if (yych <= '`') {
-				if (yych <= '\\') goto yy1623;
-				goto yy1605;
-			} else {
-				if (yych <= 'z') goto yy1612;
-				if (yych <= '~') goto yy1605;
-				goto yy1612;
-			}
-		}
-	}
-yy1610:
-	++p;
-	yych = *p;
-	if (yych <= '(') {
-		if (yych <= '\f') {
-			if (yych <= 0x00) goto yy1600;
-			if (yych == '\n') goto yy1600;
-		} else {
-			if (yych <= '\r') goto yy1600;
-			if (yych <= ' ') goto yy1612;
-			if (yych <= '\'') goto yy1610;
-		}
-	} else {
-		if (yych <= '=') {
-			if (yych <= ')') goto yy1605;
-			if (yych == '<') goto yy1598;
-			goto yy1610;
-		} else {
-			if (yych <= '>') goto yy1618;
-			if (yych == '\\') goto yy1619;
-			goto yy1610;
-		}
-	}
-yy1612:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1612;
-	}
-	if (yych <= '=') goto yy1600;
-	if (yych >= '?') goto yy1615;
-yy1614:
-	yych = *++p;
-	goto yy1608;
-yy1615:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1615;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x00) goto yy1600;
-		if (yych == '\n') goto yy1600;
-		goto yy1612;
-	} else {
-		if (yych <= '\r') goto yy1600;
-		if (yych != '>') goto yy1612;
-	}
-	yyaccept = 2;
-	marker = ++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1612;
-	}
-	if (yych <= '=') goto yy1608;
-	if (yych <= '>') goto yy1614;
-	goto yy1615;
-yy1618:
-	yyaccept = 2;
-	yych = *(marker = ++p);
-	if (yych <= ' ') goto yy1608;
-	if (yych == '(') goto yy1608;
-	goto yy1599;
-yy1619:
-	++p;
-	yych = *p;
-	if (yych <= '=') {
-		if (yych <= '\f') {
-			if (yych <= 0x00) goto yy1600;
-			if (yych == '\n') goto yy1600;
-			goto yy1612;
-		} else {
-			if (yych <= ' ') {
-				if (yych <= '\r') goto yy1600;
-				goto yy1612;
-			} else {
-				if (yych <= '/') goto yy1610;
-				if (yych <= '9') goto yy1612;
-				goto yy1610;
-			}
-		}
-	} else {
-		if (yych <= '[') {
-			if (yych <= '>') goto yy1620;
-			if (yych <= '@') goto yy1610;
-			if (yych <= 'Z') goto yy1612;
-			goto yy1610;
-		} else {
-			if (yych <= '`') {
-				if (yych <= '\\') goto yy1621;
-				goto yy1610;
-			} else {
-				if (yych <= 'z') goto yy1612;
-				if (yych <= '~') goto yy1610;
-				goto yy1612;
-			}
-		}
-	}
-yy1620:
-	yyaccept = 2;
-	marker = ++p;
-	yych = *p;
-	if (yych <= '(') {
-		if (yych <= '\f') {
-			if (yych <= 0x00) goto yy1608;
-			if (yych == '\n') goto yy1608;
-			goto yy1612;
-		} else {
-			if (yych <= '\r') goto yy1608;
-			if (yych <= ' ') goto yy1612;
-			if (yych <= '\'') goto yy1610;
-			goto yy1612;
-		}
-	} else {
-		if (yych <= '=') {
-			if (yych <= ')') goto yy1605;
-			if (yych == '<') goto yy1598;
-			goto yy1610;
-		} else {
-			if (yych <= '>') goto yy1618;
-			if (yych == '\\') goto yy1619;
-			goto yy1610;
-		}
-	}
-yy1621:
-	++p;
-	yych = *p;
-	if (yych <= '\'') {
-		if (yych <= '\n') {
-			if (yych <= 0x00) goto yy1600;
-			if (yych <= '\t') goto yy1612;
-			goto yy1600;
-		} else {
-			if (yych == '\r') goto yy1600;
-			if (yych <= ' ') goto yy1612;
-			goto yy1610;
-		}
-	} else {
-		if (yych <= '=') {
-			if (yych <= '(') goto yy1612;
-			if (yych <= ')') goto yy1605;
-			goto yy1610;
-		} else {
-			if (yych <= '>') goto yy1620;
-			if (yych == '\\') goto yy1619;
-			goto yy1610;
-		}
-	}
-yy1622:
-	yyaccept = 2;
-	marker = ++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1605;
-	}
-	if (yych <= '\r') {
-		if (yych <= '\t') {
-			if (yych <= 0x00) goto yy1608;
-			goto yy1612;
-		} else {
-			if (yych <= '\n') goto yy1608;
-			if (yych <= '\f') goto yy1612;
-			goto yy1608;
-		}
-	} else {
-		if (yych <= ')') {
-			if (yych == '(') goto yy1610;
-			goto yy1612;
-		} else {
-			if (yych <= '=') goto yy1602;
-			if (yych <= '>') goto yy1607;
-			goto yy1609;
-		}
-	}
-yy1623:
-	yyaccept = 0;
-	marker = ++p;
-	yych = *p;
-	if (yych <= '\'') {
-		if (yych <= '\n') {
-			if (yych <= 0x00) goto yy1588;
-			if (yych <= '\t') goto yy1612;
-			goto yy1588;
-		} else {
-			if (yych == '\r') goto yy1588;
-			if (yych <= ' ') goto yy1612;
-			goto yy1605;
-		}
-	} else {
-		if (yych <= '=') {
-			if (yych <= '(') goto yy1610;
-			if (yych <= ')') goto yy1612;
-			goto yy1605;
-		} else {
-			if (yych <= '>') goto yy1622;
-			if (yych == '\\') goto yy1609;
-			goto yy1605;
-		}
-	}
-}
-
-}
-
-// Try to match a link title (in single quotes, in double quotes, or
-// in parentheses), returning number of chars matched.  Allow one
-// level of internal nesting (quotes within quotes).
-bufsize_t _scan_link_title(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	unsigned int yyaccept = 0;
-	static const unsigned char yybm[] = {
-		  0, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208,  80, 208, 208, 208, 208, 144, 
-		208, 192, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208,  32, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-	};
-	yych = *p;
-	if (yych <= '"') {
-		if (yych == '\n') goto yy1626;
-		if (yych <= '!') goto yy1630;
-		goto yy1627;
-	} else {
-		if (yych <= '&') goto yy1630;
-		if (yych <= '\'') goto yy1628;
-		if (yych <= '(') goto yy1629;
-		goto yy1630;
-	}
-yy1626:
-	{ return 0; }
-yy1627:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy1626;
-	goto yy1647;
-yy1628:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy1626;
-	goto yy1640;
-yy1629:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy1626;
-	goto yy1632;
-yy1630:
-	yych = *++p;
-	goto yy1626;
-yy1631:
-	++p;
-	yych = *p;
-yy1632:
-	if (yybm[0+yych] & 16) {
-		goto yy1631;
-	}
-	if (yych <= 0x00) goto yy1633;
-	if (yych <= '[') goto yy1636;
-	goto yy1634;
-yy1633:
-	p = marker;
-	if (yyaccept <= 1) {
-		if (yyaccept <= 0) {
-			goto yy1626;
-		} else {
-			goto yy1637;
-		}
-	} else {
-		if (yyaccept <= 2) {
-			goto yy1644;
-		} else {
-			goto yy1651;
-		}
-	}
-yy1634:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 16) {
-		goto yy1631;
-	}
-	if (yych <= 0x00) goto yy1633;
-	if (yych <= '[') goto yy1638;
-	goto yy1634;
-yy1636:
-	++p;
-yy1637:
-	{ return (bufsize_t)(p - start); }
-yy1638:
-	yyaccept = 1;
-	marker = ++p;
-	yych = *p;
-	if (yybm[0+yych] & 16) {
-		goto yy1631;
-	}
-	if (yych <= 0x00) goto yy1637;
-	if (yych <= '[') goto yy1636;
-	goto yy1634;
-yy1639:
-	++p;
-	yych = *p;
-yy1640:
-	if (yybm[0+yych] & 64) {
-		goto yy1639;
-	}
-	if (yych <= 0x00) goto yy1633;
-	if (yych <= '[') goto yy1643;
-yy1641:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1639;
-	}
-	if (yych <= 0x00) goto yy1633;
-	if (yych <= '[') goto yy1645;
-	goto yy1641;
-yy1643:
-	++p;
-yy1644:
-	{ return (bufsize_t)(p - start); }
-yy1645:
-	yyaccept = 2;
-	marker = ++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1639;
-	}
-	if (yych <= 0x00) goto yy1644;
-	if (yych <= '[') goto yy1643;
-	goto yy1641;
-yy1646:
-	++p;
-	yych = *p;
-yy1647:
-	if (yybm[0+yych] & 128) {
-		goto yy1646;
-	}
-	if (yych <= 0x00) goto yy1633;
-	if (yych <= '[') goto yy1650;
-yy1648:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1646;
-	}
-	if (yych <= 0x00) goto yy1633;
-	if (yych <= '[') goto yy1652;
-	goto yy1648;
-yy1650:
-	++p;
-yy1651:
-	{ return (bufsize_t)(p - start); }
-yy1652:
-	yyaccept = 3;
-	marker = ++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1646;
-	}
-	if (yych <= 0x00) goto yy1651;
-	if (yych <= '[') goto yy1650;
-	goto yy1648;
-}
-
-}
-
-// Match space characters, including newlines.
-bufsize_t _scan_spacechars(const unsigned char *p)
-{
-  const unsigned char *start = p; \
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0, 128, 128, 128, 128, 128,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		128,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1659;
-		if (yych <= '\t') goto yy1656;
-		goto yy1657;
-	} else {
-		if (yych <= '\r') goto yy1656;
-		if (yych == ' ') goto yy1656;
-		goto yy1659;
-	}
-yy1655:
-	{ return (bufsize_t)(p - start); }
-yy1656:
-	yych = *++p;
-	goto yy1658;
-yy1657:
-	++p;
-	yych = *p;
-yy1658:
-	if (yybm[0+yych] & 128) {
-		goto yy1657;
-	}
-	goto yy1655;
-yy1659:
-	++p;
-	{ return 0; }
-}
-
-}
-
-// Match ATX header start.
-bufsize_t _scan_atx_header_start(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		128,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych == '\n') goto yy1663;
-	if (yych == '#') goto yy1664;
-	goto yy1665;
-yy1663:
-	{ return 0; }
-yy1664:
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 128) {
-		goto yy1668;
-	}
-	if (yych <= '\f') {
-		if (yych == '\n') goto yy1666;
-		goto yy1663;
-	} else {
-		if (yych <= '\r') goto yy1666;
-		if (yych == '#') goto yy1670;
-		goto yy1663;
-	}
-yy1665:
-	yych = *++p;
-	goto yy1663;
-yy1666:
-	++p;
-yy1667:
-	{ return (bufsize_t)(p - start); }
-yy1668:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1668;
-	}
-	goto yy1667;
-yy1670:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy1668;
-	}
-	if (yych <= '\f') {
-		if (yych == '\n') goto yy1666;
-	} else {
-		if (yych <= '\r') goto yy1666;
-		if (yych == '#') goto yy1672;
-	}
-yy1671:
-	p = marker;
-	goto yy1663;
-yy1672:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy1668;
-	}
-	if (yych <= '\f') {
-		if (yych == '\n') goto yy1666;
-		goto yy1671;
-	} else {
-		if (yych <= '\r') goto yy1666;
-		if (yych != '#') goto yy1671;
-	}
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy1668;
-	}
-	if (yych <= '\f') {
-		if (yych == '\n') goto yy1666;
-		goto yy1671;
-	} else {
-		if (yych <= '\r') goto yy1666;
-		if (yych != '#') goto yy1671;
-	}
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy1668;
-	}
-	if (yych <= '\f') {
-		if (yych == '\n') goto yy1666;
-		goto yy1671;
-	} else {
-		if (yych <= '\r') goto yy1666;
-		if (yych != '#') goto yy1671;
-	}
-	++p;
-	if (yybm[0+(yych = *p)] & 128) {
-		goto yy1668;
-	}
-	if (yych == '\n') goto yy1666;
-	if (yych == '\r') goto yy1666;
-	goto yy1671;
-}
-
-}
-
-// Match setext header line.  Return 1 for level-1 header,
-// 2 for level-2, 0 for no match.
-bufsize_t _scan_setext_header_line(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		 32,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,  64,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0, 128,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych <= ',') {
-		if (yych != '\n') goto yy1681;
-	} else {
-		if (yych <= '-') goto yy1680;
-		if (yych == '=') goto yy1679;
-		goto yy1681;
-	}
-yy1678:
-	{ return 0; }
-yy1679:
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 128) {
-		goto yy1693;
-	}
-	if (yych <= '\f') {
-		if (yych == '\n') goto yy1691;
-		goto yy1678;
-	} else {
-		if (yych <= '\r') goto yy1691;
-		if (yych == ' ') goto yy1689;
-		goto yy1678;
-	}
-yy1680:
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 32) {
-		goto yy1682;
-	}
-	if (yych <= '\f') {
-		if (yych == '\n') goto yy1685;
-		goto yy1678;
-	} else {
-		if (yych <= '\r') goto yy1685;
-		if (yych == '-') goto yy1687;
-		goto yy1678;
-	}
-yy1681:
-	yych = *++p;
-	goto yy1678;
-yy1682:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1682;
-	}
-	if (yych == '\n') goto yy1685;
-	if (yych == '\r') goto yy1685;
-yy1684:
-	p = marker;
-	goto yy1678;
-yy1685:
-	++p;
-	{ return 2; }
-yy1687:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1682;
-	}
-	if (yych <= '\f') {
-		if (yych == '\n') goto yy1685;
-		goto yy1684;
-	} else {
-		if (yych <= '\r') goto yy1685;
-		if (yych == '-') goto yy1687;
-		goto yy1684;
-	}
-yy1689:
-	++p;
-	yych = *p;
-	if (yych <= '\f') {
-		if (yych != '\n') goto yy1684;
-	} else {
-		if (yych <= '\r') goto yy1691;
-		if (yych == ' ') goto yy1689;
-		goto yy1684;
-	}
-yy1691:
-	++p;
-	{ return 1; }
-yy1693:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1693;
-	}
-	if (yych <= '\f') {
-		if (yych == '\n') goto yy1691;
-		goto yy1684;
-	} else {
-		if (yych <= '\r') goto yy1691;
-		if (yych == ' ') goto yy1689;
-		goto yy1684;
-	}
-}
-
-}
-
-// Scan a horizontal rule line: "...three or more hyphens, asterisks,
-// or underscores on a line by themselves. If you wish, you may use
-// spaces between the hyphens or asterisks."
-bufsize_t _scan_hrule(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,  32,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		248,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0, 128,   0,   0,  16,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,  64, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych <= '*') {
-		if (yych == '\n') goto yy1697;
-		if (yych <= ')') goto yy1701;
-		goto yy1698;
-	} else {
-		if (yych <= '-') {
-			if (yych <= ',') goto yy1701;
-			goto yy1700;
-		} else {
-			if (yych == '_') goto yy1699;
-			goto yy1701;
-		}
-	}
-yy1697:
-	{ return 0; }
-yy1698:
-	yych = *(marker = ++p);
-	if (yych == ' ') goto yy1723;
-	if (yych == '*') goto yy1725;
-	goto yy1697;
-yy1699:
-	yych = *(marker = ++p);
-	if (yych == ' ') goto yy1713;
-	if (yych == '_') goto yy1715;
-	goto yy1697;
-yy1700:
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 8) {
-		goto yy1702;
-	}
-	if (yych == '-') goto yy1705;
-	goto yy1697;
-yy1701:
-	yych = *++p;
-	goto yy1697;
-yy1702:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 8) {
-		goto yy1702;
-	}
-	if (yych == '-') goto yy1705;
-yy1704:
-	p = marker;
-	goto yy1697;
-yy1705:
-	++p;
-	yych = *p;
-	if (yych == ' ') goto yy1705;
-	if (yych != '-') goto yy1704;
-yy1707:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 16) {
-		goto yy1707;
-	}
-	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1704;
-		if (yych >= '\n') goto yy1711;
-	} else {
-		if (yych == '\r') goto yy1711;
-		goto yy1704;
-	}
-yy1709:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1709;
-	}
-	if (yych == '\n') goto yy1711;
-	if (yych != '\r') goto yy1704;
-yy1711:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy1713:
-	++p;
-	yych = *p;
-	if (yych == ' ') goto yy1713;
-	if (yych != '_') goto yy1704;
-yy1715:
-	++p;
-	yych = *p;
-	if (yych == ' ') goto yy1715;
-	if (yych != '_') goto yy1704;
-yy1717:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1717;
-	}
-	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1704;
-		if (yych >= '\n') goto yy1721;
-	} else {
-		if (yych == '\r') goto yy1721;
-		goto yy1704;
-	}
-yy1719:
-	++p;
-	yych = *p;
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy1704;
-		if (yych <= '\t') goto yy1719;
-		if (yych >= '\v') goto yy1704;
-	} else {
-		if (yych <= '\r') goto yy1721;
-		if (yych == ' ') goto yy1719;
-		goto yy1704;
-	}
-yy1721:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy1723:
-	++p;
-	yych = *p;
-	if (yych == ' ') goto yy1723;
-	if (yych != '*') goto yy1704;
-yy1725:
-	++p;
-	yych = *p;
-	if (yych == ' ') goto yy1725;
-	if (yych != '*') goto yy1704;
-yy1727:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1727;
-	}
-	if (yych <= '\n') {
-		if (yych <= 0x08) goto yy1704;
-		if (yych >= '\n') goto yy1731;
-	} else {
-		if (yych == '\r') goto yy1731;
-		goto yy1704;
-	}
-yy1729:
-	++p;
-	yych = *p;
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy1704;
-		if (yych <= '\t') goto yy1729;
-		if (yych >= '\v') goto yy1704;
-	} else {
-		if (yych <= '\r') goto yy1731;
-		if (yych == ' ') goto yy1729;
-		goto yy1704;
-	}
-yy1731:
-	++p;
-	{ return (bufsize_t)(p - start); }
-}
-
-}
-
-// Scan an opening code fence.
-bufsize_t _scan_open_code_fence(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160,   0, 160, 160,   0, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		 96, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 144, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-		160, 160, 160, 160, 160, 160, 160, 160, 
-	};
-	yych = *p;
-	if (yych <= '_') {
-		if (yych != '\n') goto yy1738;
-	} else {
-		if (yych <= '`') goto yy1736;
-		if (yych == '~') goto yy1737;
-		goto yy1738;
-	}
-yy1735:
-	{ return 0; }
-yy1736:
-	yych = *(marker = ++p);
-	if (yych == '`') goto yy1747;
-	goto yy1735;
-yy1737:
-	yych = *(marker = ++p);
-	if (yych == '~') goto yy1739;
-	goto yy1735;
-yy1738:
-	yych = *++p;
-	goto yy1735;
-yy1739:
-	yych = *++p;
-	if (yybm[0+yych] & 16) {
-		goto yy1741;
-	}
-yy1740:
-	p = marker;
-	goto yy1735;
-yy1741:
-	marker = p + 1;
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1743;
-	}
-	if (yych <= 0x00) goto yy1740;
-	if (yych <= '}') goto yy1745;
-	goto yy1741;
-yy1743:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 32) {
-		goto yy1743;
-	}
-	if (yych <= 0x00) goto yy1740;
-	if (yych >= '~') goto yy1740;
-yy1745:
-	++p;
-	p = marker;
-	{ return (bufsize_t)(p - start); }
-yy1747:
-	yych = *++p;
-	if (yybm[0+yych] & 64) {
-		goto yy1748;
-	}
-	goto yy1740;
-yy1748:
-	marker = p + 1;
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1750;
-	}
-	if (yych <= 0x00) goto yy1740;
-	if (yych <= '_') goto yy1752;
-	goto yy1748;
-yy1750:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1750;
-	}
-	if (yych <= 0x00) goto yy1740;
-	if (yych >= '`') goto yy1740;
-yy1752:
-	++p;
-	p = marker;
-	{ return (bufsize_t)(p - start); }
-}
-
-}
-
-// Scan a closing code fence with length at least len.
-bufsize_t _scan_close_code_fence(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,  64,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		 64,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		128,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,  32,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych <= '_') {
-		if (yych != '\n') goto yy1759;
-	} else {
-		if (yych <= '`') goto yy1757;
-		if (yych == '~') goto yy1758;
-		goto yy1759;
-	}
-yy1756:
-	{ return 0; }
-yy1757:
-	yych = *(marker = ++p);
-	if (yych == '`') goto yy1768;
-	goto yy1756;
-yy1758:
-	yych = *(marker = ++p);
-	if (yych == '~') goto yy1760;
-	goto yy1756;
-yy1759:
-	yych = *++p;
-	goto yy1756;
-yy1760:
-	yych = *++p;
-	if (yybm[0+yych] & 32) {
-		goto yy1762;
-	}
-yy1761:
-	p = marker;
-	goto yy1756;
-yy1762:
-	marker = p + 1;
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1764;
-	}
-	if (yych <= '\f') {
-		if (yych == '\n') goto yy1766;
-		goto yy1761;
-	} else {
-		if (yych <= '\r') goto yy1766;
-		if (yych == '~') goto yy1762;
-		goto yy1761;
-	}
-yy1764:
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy1764;
-	}
-	if (yych == '\n') goto yy1766;
-	if (yych != '\r') goto yy1761;
-yy1766:
-	++p;
-	p = marker;
-	{ return (bufsize_t)(p - start); }
-yy1768:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy1769;
-	}
-	goto yy1761;
-yy1769:
-	marker = p + 1;
-	++p;
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy1769;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy1761;
-		if (yych <= '\t') goto yy1771;
-		if (yych <= '\n') goto yy1773;
-		goto yy1761;
-	} else {
-		if (yych <= '\r') goto yy1773;
-		if (yych != ' ') goto yy1761;
-	}
-yy1771:
-	++p;
-	yych = *p;
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy1761;
-		if (yych <= '\t') goto yy1771;
-		if (yych >= '\v') goto yy1761;
-	} else {
-		if (yych <= '\r') goto yy1773;
-		if (yych == ' ') goto yy1771;
-		goto yy1761;
-	}
-yy1773:
-	++p;
-	p = marker;
-	{ return (bufsize_t)(p - start); }
-}
-
-}
-
-// Scans an entity.
-// Returns number of chars matched.
-bufsize_t _scan_entity(const unsigned char *p)
-{
-  const unsigned char *marker = NULL;
-  const unsigned char *start = p;
-
-{
-	unsigned char yych;
-	yych = *p;
-	if (yych == '\n') goto yy1777;
-	if (yych == '&') goto yy1778;
-	goto yy1779;
-yy1777:
-	{ return 0; }
-yy1778:
-	yych = *(marker = ++p);
-	if (yych <= '@') {
-		if (yych == '#') goto yy1780;
-		goto yy1777;
-	} else {
-		if (yych <= 'Z') goto yy1782;
-		if (yych <= '`') goto yy1777;
-		if (yych <= 'z') goto yy1782;
-		goto yy1777;
-	}
-yy1779:
-	yych = *++p;
-	goto yy1777;
-yy1780:
-	yych = *++p;
-	if (yych <= 'W') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1817;
-	} else {
-		if (yych <= 'X') goto yy1816;
-		if (yych == 'x') goto yy1816;
-	}
-yy1781:
-	p = marker;
-	goto yy1777;
-yy1782:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy1781;
-		if (yych >= ':') goto yy1781;
-	} else {
-		if (yych <= 'Z') goto yy1783;
-		if (yych <= '`') goto yy1781;
-		if (yych >= '{') goto yy1781;
-	}
-yy1783:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1786;
-		if (yych <= ':') goto yy1781;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-			goto yy1786;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych <= 'z') goto yy1786;
-			goto yy1781;
-		}
-	}
-yy1784:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy1786:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1787;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1787:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1788;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1788:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1789;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1789:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1790;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1790:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1791;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1791:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1792;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1792:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1793;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1793:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1794;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1794:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1795;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1795:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1796;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1796:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1797;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1797:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1798;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1798:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1799;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1799:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1800;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1800:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1801;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1801:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1802;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1802:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1803;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1803:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1804;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1804:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1805;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1805:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1806;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1806:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1807;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1807:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1808;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1808:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1809;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1809:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1810;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1810:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1811;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1811:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1812;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1812:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1813;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1813:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1814;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1814:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1815;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= '{') goto yy1781;
-		}
-	}
-yy1815:
-	yych = *++p;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1816:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1824;
-		goto yy1781;
-	} else {
-		if (yych <= 'F') goto yy1824;
-		if (yych <= '`') goto yy1781;
-		if (yych <= 'f') goto yy1824;
-		goto yy1781;
-	}
-yy1817:
-	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1818;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1818:
-	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1819;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1819:
-	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1820;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1820:
-	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1821;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1821:
-	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1822;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1822:
-	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1823;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1823:
-	yych = *++p;
-	if (yych <= '/') goto yy1781;
-	if (yych <= '9') goto yy1815;
-	if (yych == ';') goto yy1784;
-	goto yy1781;
-yy1824:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1825;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= 'g') goto yy1781;
-		}
-	}
-yy1825:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1826;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= 'g') goto yy1781;
-		}
-	}
-yy1826:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1827;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= 'g') goto yy1781;
-		}
-	}
-yy1827:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1828;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= 'g') goto yy1781;
-		}
-	}
-yy1828:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1829;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= 'g') goto yy1781;
-		}
-	}
-yy1829:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1830;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych >= 'g') goto yy1781;
-		}
-	}
-yy1830:
-	++p;
-	if ((yych = *p) <= ';') {
-		if (yych <= '/') goto yy1781;
-		if (yych <= '9') goto yy1815;
-		if (yych <= ':') goto yy1781;
-		goto yy1784;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy1781;
-			goto yy1815;
-		} else {
-			if (yych <= '`') goto yy1781;
-			if (yych <= 'f') goto yy1815;
-			goto yy1781;
-		}
-	}
-}
-
-}
+/* Generated by re2c 0.14.3 */
+#include <stdlib.h>
+#include "chunk.h"
+#include "scanners.h"
+
+bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c, bufsize_t offset)
+{
+	bufsize_t res;
+	unsigned char *ptr = (unsigned char *)c->data;
+	unsigned char lim = ptr[c->len];
+
+	ptr[c->len] = '\0';
+	res = scanner(ptr + offset);
+	ptr[c->len] = lim;
+
+	return res;
+}
+
+
+
+// Try to match a scheme including colon.
+bufsize_t _scan_scheme(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+
+	yych = *(marker = p);
+	if (yych <= 'c') {
+		if (yych <= 'M') {
+			if (yych <= 'E') {
+				if (yych <= 'A') {
+					if (yych == '\n') goto yy2;
+					if (yych <= '@') goto yy29;
+					goto yy6;
+				} else {
+					if (yych <= 'B') goto yy24;
+					if (yych <= 'C') goto yy3;
+					if (yych <= 'D') goto yy4;
+					goto yy25;
+				}
+			} else {
+				if (yych <= 'I') {
+					if (yych <= 'F') goto yy7;
+					if (yych <= 'G') goto yy8;
+					if (yych <= 'H') goto yy9;
+					goto yy10;
+				} else {
+					if (yych <= 'J') goto yy5;
+					if (yych <= 'K') goto yy26;
+					if (yych <= 'L') goto yy11;
+					goto yy12;
+				}
+			}
+		} else {
+			if (yych <= 'U') {
+				if (yych <= 'Q') {
+					if (yych <= 'N') goto yy13;
+					if (yych <= 'O') goto yy14;
+					if (yych <= 'P') goto yy15;
+					goto yy27;
+				} else {
+					if (yych <= 'R') goto yy16;
+					if (yych <= 'S') goto yy17;
+					if (yych <= 'T') goto yy18;
+					goto yy19;
+				}
+			} else {
+				if (yych <= 'Y') {
+					if (yych <= 'V') goto yy20;
+					if (yych <= 'W') goto yy21;
+					if (yych <= 'X') goto yy22;
+					goto yy28;
+				} else {
+					if (yych <= '`') {
+						if (yych <= 'Z') goto yy23;
+						goto yy29;
+					} else {
+						if (yych <= 'a') goto yy6;
+						if (yych <= 'b') goto yy24;
+						goto yy3;
+					}
+				}
+			}
+		}
+	} else {
+		if (yych <= 't') {
+			if (yych <= 'k') {
+				if (yych <= 'g') {
+					if (yych <= 'd') goto yy4;
+					if (yych <= 'e') goto yy25;
+					if (yych <= 'f') goto yy7;
+					goto yy8;
+				} else {
+					if (yych <= 'h') goto yy9;
+					if (yych <= 'i') goto yy10;
+					if (yych <= 'j') goto yy5;
+					goto yy26;
+				}
+			} else {
+				if (yych <= 'o') {
+					if (yych <= 'l') goto yy11;
+					if (yych <= 'm') goto yy12;
+					if (yych <= 'n') goto yy13;
+					goto yy14;
+				} else {
+					if (yych <= 'q') {
+						if (yych <= 'p') goto yy15;
+						goto yy27;
+					} else {
+						if (yych <= 'r') goto yy16;
+						if (yych <= 's') goto yy17;
+						goto yy18;
+					}
+				}
+			}
+		} else {
+			if (yych <= 0xC1) {
+				if (yych <= 'x') {
+					if (yych <= 'u') goto yy19;
+					if (yych <= 'v') goto yy20;
+					if (yych <= 'w') goto yy21;
+					goto yy22;
+				} else {
+					if (yych <= 'y') goto yy28;
+					if (yych <= 'z') goto yy23;
+					if (yych <= 0x7F) goto yy29;
+				}
+			} else {
+				if (yych <= 0xED) {
+					if (yych <= 0xDF) goto yy30;
+					if (yych <= 0xE0) goto yy32;
+					if (yych <= 0xEC) goto yy33;
+					goto yy37;
+				} else {
+					if (yych <= 0xF0) {
+						if (yych <= 0xEF) goto yy33;
+						goto yy34;
+					} else {
+						if (yych <= 0xF3) goto yy35;
+						if (yych <= 0xF4) goto yy36;
+					}
+				}
+			}
+		}
+	}
+yy2:
+	{ return 0; }
+yy3:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy447;
+	case 'H':
+	case 'h':	goto yy446;
+	case 'I':
+	case 'i':	goto yy449;
+	case 'O':
+	case 'o':	goto yy445;
+	case 'R':
+	case 'r':	goto yy448;
+	case 'V':
+	case 'v':	goto yy444;
+	default:	goto yy2;
+	}
+yy4:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy420;
+	case 'I':
+	case 'i':	goto yy419;
+	case 'L':
+	case 'l':	goto yy417;
+	case 'N':
+	case 'n':	goto yy418;
+	case 'O':
+	case 'o':	goto yy421;
+	case 'T':
+	case 't':	goto yy416;
+	case 'V':
+	case 'v':	goto yy415;
+	default:	goto yy2;
+	}
+yy5:
+	yych = *(marker = ++p);
+	if (yych <= 'M') {
+		if (yych == 'A') goto yy407;
+		if (yych <= 'L') goto yy2;
+		goto yy406;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy2;
+			goto yy407;
+		} else {
+			if (yych == 'm') goto yy406;
+			goto yy2;
+		}
+	}
+yy6:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy388;
+	case 'B':
+	case 'b':	goto yy387;
+	case 'C':
+	case 'c':	goto yy386;
+	case 'D':
+	case 'd':	goto yy385;
+	case 'F':
+	case 'f':	goto yy384;
+	case 'I':
+	case 'i':	goto yy383;
+	case 'P':
+	case 'p':	goto yy382;
+	case 'T':
+	case 't':	goto yy381;
+	case 'W':
+	case 'w':	goto yy41;
+	default:	goto yy2;
+	}
+yy7:
+	yych = *(marker = ++p);
+	if (yych <= 'T') {
+		if (yych <= 'E') {
+			if (yych == 'A') goto yy368;
+			if (yych <= 'D') goto yy2;
+			goto yy367;
+		} else {
+			if (yych == 'I') goto yy366;
+			if (yych <= 'S') goto yy2;
+			goto yy369;
+		}
+	} else {
+		if (yych <= 'e') {
+			if (yych == 'a') goto yy368;
+			if (yych <= 'd') goto yy2;
+			goto yy367;
+		} else {
+			if (yych <= 'i') {
+				if (yych <= 'h') goto yy2;
+				goto yy366;
+			} else {
+				if (yych == 't') goto yy369;
+				goto yy2;
+			}
+		}
+	}
+yy8:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'E':
+	case 'e':	goto yy351;
+	case 'G':
+	case 'g':	goto yy41;
+	case 'I':
+	case 'i':	goto yy349;
+	case 'O':
+	case 'o':	goto yy350;
+	case 'T':
+	case 't':	goto yy348;
+	default:	goto yy2;
+	}
+yy9:
+	yych = *(marker = ++p);
+	if (yych <= 'S') {
+		if (yych <= '3') {
+			if (yych <= '2') goto yy2;
+			goto yy344;
+		} else {
+			if (yych == 'C') goto yy342;
+			goto yy2;
+		}
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'T') goto yy343;
+			if (yych <= 'b') goto yy2;
+			goto yy342;
+		} else {
+			if (yych == 't') goto yy343;
+			goto yy2;
+		}
+	}
+yy10:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy324;
+	case 'C':
+	case 'c':	goto yy321;
+	case 'M':
+	case 'm':	goto yy323;
+	case 'N':
+	case 'n':	goto yy322;
+	case 'P':
+	case 'p':	goto yy320;
+	case 'R':
+	case 'r':	goto yy319;
+	case 'T':
+	case 't':	goto yy318;
+	default:	goto yy2;
+	}
+yy11:
+	yych = *(marker = ++p);
+	if (yych <= 'D') {
+		if (yych == 'A') goto yy312;
+		if (yych <= 'C') goto yy2;
+		goto yy311;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy2;
+			goto yy312;
+		} else {
+			if (yych == 'd') goto yy311;
+			goto yy2;
+		}
+	}
+yy12:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy278;
+	case 'E':
+	case 'e':	goto yy277;
+	case 'I':
+	case 'i':	goto yy280;
+	case 'M':
+	case 'm':	goto yy276;
+	case 'S':
+	case 's':	goto yy275;
+	case 'T':
+	case 't':	goto yy279;
+	case 'U':
+	case 'u':	goto yy274;
+	case 'V':
+	case 'v':	goto yy273;
+	default:	goto yy2;
+	}
+yy13:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'E':
+	case 'e':	goto yy268;
+	case 'F':
+	case 'f':	goto yy267;
+	case 'I':
+	case 'i':	goto yy266;
+	case 'N':
+	case 'n':	goto yy265;
+	case 'O':
+	case 'o':	goto yy264;
+	default:	goto yy2;
+	}
+yy14:
+	yych = *(marker = ++p);
+	if (yych <= 'P') {
+		if (yych == 'I') goto yy250;
+		if (yych <= 'O') goto yy2;
+		goto yy251;
+	} else {
+		if (yych <= 'i') {
+			if (yych <= 'h') goto yy2;
+			goto yy250;
+		} else {
+			if (yych == 'p') goto yy251;
+			goto yy2;
+		}
+	}
+yy15:
+	yych = *(marker = ++p);
+	if (yych <= 'S') {
+		if (yych <= 'L') {
+			if (yych == 'A') goto yy232;
+			if (yych <= 'K') goto yy2;
+			goto yy231;
+		} else {
+			if (yych <= 'O') {
+				if (yych <= 'N') goto yy2;
+				goto yy233;
+			} else {
+				if (yych <= 'Q') goto yy2;
+				if (yych <= 'R') goto yy230;
+				goto yy229;
+			}
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'a') {
+				if (yych <= '`') goto yy2;
+				goto yy232;
+			} else {
+				if (yych == 'l') goto yy231;
+				goto yy2;
+			}
+		} else {
+			if (yych <= 'q') {
+				if (yych <= 'o') goto yy233;
+				goto yy2;
+			} else {
+				if (yych <= 'r') goto yy230;
+				if (yych <= 's') goto yy229;
+				goto yy2;
+			}
+		}
+	}
+yy16:
+	yych = *(marker = ++p);
+	if (yych <= 'T') {
+		if (yych <= 'L') {
+			if (yych == 'E') goto yy219;
+			goto yy2;
+		} else {
+			if (yych <= 'M') goto yy218;
+			if (yych <= 'R') goto yy2;
+			if (yych <= 'S') goto yy217;
+			goto yy216;
+		}
+	} else {
+		if (yych <= 'm') {
+			if (yych == 'e') goto yy219;
+			if (yych <= 'l') goto yy2;
+			goto yy218;
+		} else {
+			if (yych <= 'r') goto yy2;
+			if (yych <= 's') goto yy217;
+			if (yych <= 't') goto yy216;
+			goto yy2;
+		}
+	}
+yy17:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'E':
+	case 'e':	goto yy172;
+	case 'F':
+	case 'f':	goto yy171;
+	case 'G':
+	case 'g':	goto yy170;
+	case 'H':
+	case 'h':	goto yy175;
+	case 'I':
+	case 'i':	goto yy174;
+	case 'K':
+	case 'k':	goto yy169;
+	case 'M':
+	case 'm':	goto yy168;
+	case 'N':
+	case 'n':	goto yy173;
+	case 'O':
+	case 'o':	goto yy167;
+	case 'P':
+	case 'p':	goto yy166;
+	case 'S':
+	case 's':	goto yy165;
+	case 'T':
+	case 't':	goto yy164;
+	case 'V':
+	case 'v':	goto yy163;
+	default:	goto yy2;
+	}
+yy18:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy139;
+	case 'E':
+	case 'e':	goto yy135;
+	case 'F':
+	case 'f':	goto yy138;
+	case 'H':
+	case 'h':	goto yy134;
+	case 'I':
+	case 'i':	goto yy136;
+	case 'N':
+	case 'n':	goto yy137;
+	case 'V':
+	case 'v':	goto yy41;
+	default:	goto yy2;
+	}
+yy19:
+	yych = *(marker = ++p);
+	if (yych <= 'T') {
+		if (yych <= 'N') {
+			if (yych == 'D') goto yy126;
+			if (yych <= 'M') goto yy2;
+			goto yy125;
+		} else {
+			if (yych == 'R') goto yy127;
+			if (yych <= 'S') goto yy2;
+			goto yy124;
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych == 'd') goto yy126;
+			if (yych <= 'm') goto yy2;
+			goto yy125;
+		} else {
+			if (yych <= 'r') {
+				if (yych <= 'q') goto yy2;
+				goto yy127;
+			} else {
+				if (yych == 't') goto yy124;
+				goto yy2;
+			}
+		}
+	}
+yy20:
+	yych = *(marker = ++p);
+	if (yych <= 'I') {
+		if (yych == 'E') goto yy108;
+		if (yych <= 'H') goto yy2;
+		goto yy107;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy2;
+			goto yy108;
+		} else {
+			if (yych == 'i') goto yy107;
+			goto yy2;
+		}
+	}
+yy21:
+	yych = *(marker = ++p);
+	if (yych <= 'Y') {
+		if (yych <= 'R') {
+			if (yych == 'E') goto yy97;
+			goto yy2;
+		} else {
+			if (yych <= 'S') goto yy98;
+			if (yych <= 'T') goto yy96;
+			if (yych <= 'X') goto yy2;
+			goto yy95;
+		}
+	} else {
+		if (yych <= 's') {
+			if (yych == 'e') goto yy97;
+			if (yych <= 'r') goto yy2;
+			goto yy98;
+		} else {
+			if (yych <= 't') goto yy96;
+			if (yych == 'y') goto yy95;
+			goto yy2;
+		}
+	}
+yy22:
+	yych = *(marker = ++p);
+	if (yych <= 'R') {
+		if (yych <= 'F') {
+			if (yych == 'C') goto yy74;
+			if (yych <= 'E') goto yy2;
+			goto yy72;
+		} else {
+			if (yych == 'M') goto yy73;
+			if (yych <= 'Q') goto yy2;
+			goto yy71;
+		}
+	} else {
+		if (yych <= 'f') {
+			if (yych == 'c') goto yy74;
+			if (yych <= 'e') goto yy2;
+			goto yy72;
+		} else {
+			if (yych <= 'm') {
+				if (yych <= 'l') goto yy2;
+				goto yy73;
+			} else {
+				if (yych == 'r') goto yy71;
+				goto yy2;
+			}
+		}
+	}
+yy23:
+	yych = *(marker = ++p);
+	if (yych == '3') goto yy66;
+	goto yy2;
+yy24:
+	yych = *(marker = ++p);
+	if (yych <= 'O') {
+		if (yych <= 'H') {
+			if (yych == 'E') goto yy56;
+			goto yy2;
+		} else {
+			if (yych <= 'I') goto yy55;
+			if (yych <= 'N') goto yy2;
+			goto yy54;
+		}
+	} else {
+		if (yych <= 'h') {
+			if (yych == 'e') goto yy56;
+			goto yy2;
+		} else {
+			if (yych <= 'i') goto yy55;
+			if (yych == 'o') goto yy54;
+			goto yy2;
+		}
+	}
+yy25:
+	yych = *(marker = ++p);
+	if (yych == 'D') goto yy52;
+	if (yych == 'd') goto yy52;
+	goto yy2;
+yy26:
+	yych = *(marker = ++p);
+	if (yych == 'E') goto yy47;
+	if (yych == 'e') goto yy47;
+	goto yy2;
+yy27:
+	yych = *(marker = ++p);
+	if (yych == 'U') goto yy44;
+	if (yych == 'u') goto yy44;
+	goto yy2;
+yy28:
+	yych = *(marker = ++p);
+	if (yych == 'M') goto yy38;
+	if (yych == 'm') goto yy38;
+	goto yy2;
+yy29:
+	yych = *++p;
+	goto yy2;
+yy30:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy31;
+	if (yych <= 0xBF) goto yy29;
+yy31:
+	p = marker;
+	goto yy2;
+yy32:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy31;
+	if (yych <= 0xBF) goto yy30;
+	goto yy31;
+yy33:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy31;
+	if (yych <= 0xBF) goto yy30;
+	goto yy31;
+yy34:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy31;
+	if (yych <= 0xBF) goto yy33;
+	goto yy31;
+yy35:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy31;
+	if (yych <= 0xBF) goto yy33;
+	goto yy31;
+yy36:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy31;
+	if (yych <= 0x8F) goto yy33;
+	goto yy31;
+yy37:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy31;
+	if (yych <= 0x9F) goto yy30;
+	goto yy31;
+yy38:
+	yych = *++p;
+	if (yych == 'S') goto yy39;
+	if (yych != 's') goto yy31;
+yy39:
+	yych = *++p;
+	if (yych == 'G') goto yy40;
+	if (yych != 'g') goto yy31;
+yy40:
+	yych = *++p;
+	if (yych == 'R') goto yy41;
+	if (yych != 'r') goto yy31;
+yy41:
+	yych = *++p;
+	if (yych != ':') goto yy31;
+yy42:
+	++p;
+	{ return (bufsize_t)(p - start); }
+yy44:
+	yych = *++p;
+	if (yych == 'E') goto yy45;
+	if (yych != 'e') goto yy31;
+yy45:
+	yych = *++p;
+	if (yych == 'R') goto yy46;
+	if (yych != 'r') goto yy31;
+yy46:
+	yych = *++p;
+	if (yych == 'Y') goto yy41;
+	if (yych == 'y') goto yy41;
+	goto yy31;
+yy47:
+	yych = *++p;
+	if (yych == 'Y') goto yy48;
+	if (yych != 'y') goto yy31;
+yy48:
+	yych = *++p;
+	if (yych == 'P') goto yy49;
+	if (yych != 'p') goto yy31;
+yy49:
+	yych = *++p;
+	if (yych == 'A') goto yy50;
+	if (yych != 'a') goto yy31;
+yy50:
+	yych = *++p;
+	if (yych == 'R') goto yy51;
+	if (yych != 'r') goto yy31;
+yy51:
+	yych = *++p;
+	if (yych == 'C') goto yy41;
+	if (yych == 'c') goto yy41;
+	goto yy31;
+yy52:
+	yych = *++p;
+	if (yych != '2') goto yy31;
+	yych = *++p;
+	if (yych == 'K') goto yy41;
+	if (yych == 'k') goto yy41;
+	goto yy31;
+yy54:
+	yych = *++p;
+	if (yych == 'L') goto yy65;
+	if (yych == 'l') goto yy65;
+	goto yy31;
+yy55:
+	yych = *++p;
+	if (yych == 'T') goto yy61;
+	if (yych == 't') goto yy61;
+	goto yy31;
+yy56:
+	yych = *++p;
+	if (yych == 'S') goto yy57;
+	if (yych != 's') goto yy31;
+yy57:
+	yych = *++p;
+	if (yych == 'H') goto yy58;
+	if (yych != 'h') goto yy31;
+yy58:
+	yych = *++p;
+	if (yych == 'A') goto yy59;
+	if (yych != 'a') goto yy31;
+yy59:
+	yych = *++p;
+	if (yych == 'R') goto yy60;
+	if (yych != 'r') goto yy31;
+yy60:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy61:
+	yych = *++p;
+	if (yych == 'C') goto yy62;
+	if (yych != 'c') goto yy31;
+yy62:
+	yych = *++p;
+	if (yych == 'O') goto yy63;
+	if (yych != 'o') goto yy31;
+yy63:
+	yych = *++p;
+	if (yych == 'I') goto yy64;
+	if (yych != 'i') goto yy31;
+yy64:
+	yych = *++p;
+	if (yych == 'N') goto yy41;
+	if (yych == 'n') goto yy41;
+	goto yy31;
+yy65:
+	yych = *++p;
+	if (yych == 'O') goto yy41;
+	if (yych == 'o') goto yy41;
+	goto yy31;
+yy66:
+	yych = *++p;
+	if (yych != '9') goto yy31;
+	yych = *++p;
+	if (yych != '.') goto yy31;
+	yych = *++p;
+	if (yych != '5') goto yy31;
+	yych = *++p;
+	if (yych != '0') goto yy31;
+	yych = *++p;
+	if (yych <= 'Q') goto yy31;
+	if (yych <= 'S') goto yy41;
+	if (yych <= 'q') goto yy31;
+	if (yych <= 's') goto yy41;
+	goto yy31;
+yy71:
+	yych = *++p;
+	if (yych == 'I') goto yy41;
+	if (yych == 'i') goto yy41;
+	goto yy31;
+yy72:
+	yych = *++p;
+	if (yych == 'I') goto yy93;
+	if (yych == 'i') goto yy93;
+	goto yy31;
+yy73:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy83;
+		if (yych <= 'O') goto yy31;
+		goto yy84;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy31;
+			goto yy83;
+		} else {
+			if (yych == 'p') goto yy84;
+			goto yy31;
+		}
+	}
+yy74:
+	yych = *++p;
+	if (yych == 'O') goto yy75;
+	if (yych != 'o') goto yy31;
+yy75:
+	yych = *++p;
+	if (yych == 'N') goto yy76;
+	if (yych != 'n') goto yy31;
+yy76:
+	yych = *++p;
+	if (yych == '-') goto yy77;
+	if (yych == ':') goto yy42;
+	goto yy31;
+yy77:
+	yych = *++p;
+	if (yych == 'U') goto yy78;
+	if (yych != 'u') goto yy31;
+yy78:
+	yych = *++p;
+	if (yych == 'S') goto yy79;
+	if (yych != 's') goto yy31;
+yy79:
+	yych = *++p;
+	if (yych == 'E') goto yy80;
+	if (yych != 'e') goto yy31;
+yy80:
+	yych = *++p;
+	if (yych == 'R') goto yy81;
+	if (yych != 'r') goto yy31;
+yy81:
+	yych = *++p;
+	if (yych == 'I') goto yy82;
+	if (yych != 'i') goto yy31;
+yy82:
+	yych = *++p;
+	if (yych == 'D') goto yy41;
+	if (yych == 'd') goto yy41;
+	goto yy31;
+yy83:
+	yych = *++p;
+	if (yych == 'R') goto yy85;
+	if (yych == 'r') goto yy85;
+	goto yy31;
+yy84:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy85:
+	yych = *++p;
+	if (yych == 'P') goto yy86;
+	if (yych != 'p') goto yy31;
+yy86:
+	yych = *++p;
+	if (yych == 'C') goto yy87;
+	if (yych != 'c') goto yy31;
+yy87:
+	yych = *++p;
+	if (yych != '.') goto yy31;
+	yych = *++p;
+	if (yych == 'B') goto yy89;
+	if (yych != 'b') goto yy31;
+yy89:
+	yych = *++p;
+	if (yych == 'E') goto yy90;
+	if (yych != 'e') goto yy31;
+yy90:
+	yych = *++p;
+	if (yych == 'E') goto yy91;
+	if (yych != 'e') goto yy31;
+yy91:
+	yych = *++p;
+	if (yych == 'P') goto yy92;
+	if (yych != 'p') goto yy31;
+yy92:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy41;
+		if (yych == 's') goto yy41;
+		goto yy31;
+	}
+yy93:
+	yych = *++p;
+	if (yych == 'R') goto yy94;
+	if (yych != 'r') goto yy31;
+yy94:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy95:
+	yych = *++p;
+	if (yych == 'C') goto yy103;
+	if (yych == 'c') goto yy103;
+	goto yy31;
+yy96:
+	yych = *++p;
+	if (yych == 'A') goto yy102;
+	if (yych == 'a') goto yy102;
+	goto yy31;
+yy97:
+	yych = *++p;
+	if (yych == 'B') goto yy99;
+	if (yych == 'b') goto yy99;
+	goto yy31;
+yy98:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy41;
+		if (yych == 's') goto yy41;
+		goto yy31;
+	}
+yy99:
+	yych = *++p;
+	if (yych == 'C') goto yy100;
+	if (yych != 'c') goto yy31;
+yy100:
+	yych = *++p;
+	if (yych == 'A') goto yy101;
+	if (yych != 'a') goto yy31;
+yy101:
+	yych = *++p;
+	if (yych == 'L') goto yy41;
+	if (yych == 'l') goto yy41;
+	goto yy31;
+yy102:
+	yych = *++p;
+	if (yych == 'I') goto yy41;
+	if (yych == 'i') goto yy41;
+	goto yy31;
+yy103:
+	yych = *++p;
+	if (yych == 'I') goto yy104;
+	if (yych != 'i') goto yy31;
+yy104:
+	yych = *++p;
+	if (yych == 'W') goto yy105;
+	if (yych != 'w') goto yy31;
+yy105:
+	yych = *++p;
+	if (yych == 'Y') goto yy106;
+	if (yych != 'y') goto yy31;
+yy106:
+	yych = *++p;
+	if (yych == 'G') goto yy41;
+	if (yych == 'g') goto yy41;
+	goto yy31;
+yy107:
+	yych = *++p;
+	if (yych == 'E') goto yy116;
+	if (yych == 'e') goto yy116;
+	goto yy31;
+yy108:
+	yych = *++p;
+	if (yych <= 'N') {
+		if (yych <= 'L') goto yy31;
+		if (yych >= 'N') goto yy110;
+	} else {
+		if (yych <= 'l') goto yy31;
+		if (yych <= 'm') goto yy109;
+		if (yych <= 'n') goto yy110;
+		goto yy31;
+	}
+yy109:
+	yych = *++p;
+	if (yych == 'M') goto yy115;
+	if (yych == 'm') goto yy115;
+	goto yy31;
+yy110:
+	yych = *++p;
+	if (yych == 'T') goto yy111;
+	if (yych != 't') goto yy31;
+yy111:
+	yych = *++p;
+	if (yych == 'R') goto yy112;
+	if (yych != 'r') goto yy31;
+yy112:
+	yych = *++p;
+	if (yych == 'I') goto yy113;
+	if (yych != 'i') goto yy31;
+yy113:
+	yych = *++p;
+	if (yych == 'L') goto yy114;
+	if (yych != 'l') goto yy31;
+yy114:
+	yych = *++p;
+	if (yych == 'O') goto yy41;
+	if (yych == 'o') goto yy41;
+	goto yy31;
+yy115:
+	yych = *++p;
+	if (yych == 'I') goto yy41;
+	if (yych == 'i') goto yy41;
+	goto yy31;
+yy116:
+	yych = *++p;
+	if (yych == 'W') goto yy117;
+	if (yych != 'w') goto yy31;
+yy117:
+	yych = *++p;
+	if (yych != '-') goto yy31;
+	yych = *++p;
+	if (yych == 'S') goto yy119;
+	if (yych != 's') goto yy31;
+yy119:
+	yych = *++p;
+	if (yych == 'O') goto yy120;
+	if (yych != 'o') goto yy31;
+yy120:
+	yych = *++p;
+	if (yych == 'U') goto yy121;
+	if (yych != 'u') goto yy31;
+yy121:
+	yych = *++p;
+	if (yych == 'R') goto yy122;
+	if (yych != 'r') goto yy31;
+yy122:
+	yych = *++p;
+	if (yych == 'C') goto yy123;
+	if (yych != 'c') goto yy31;
+yy123:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy124:
+	yych = *++p;
+	if (yych == '2') goto yy131;
+	goto yy31;
+yy125:
+	yych = *++p;
+	if (yych == 'R') goto yy128;
+	if (yych == 'r') goto yy128;
+	goto yy31;
+yy126:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy127:
+	yych = *++p;
+	if (yych == 'N') goto yy41;
+	if (yych == 'n') goto yy41;
+	goto yy31;
+yy128:
+	yych = *++p;
+	if (yych == 'E') goto yy129;
+	if (yych != 'e') goto yy31;
+yy129:
+	yych = *++p;
+	if (yych == 'A') goto yy130;
+	if (yych != 'a') goto yy31;
+yy130:
+	yych = *++p;
+	if (yych == 'L') goto yy41;
+	if (yych == 'l') goto yy41;
+	goto yy31;
+yy131:
+	yych = *++p;
+	if (yych != '0') goto yy31;
+	yych = *++p;
+	if (yych != '0') goto yy31;
+	yych = *++p;
+	if (yych == '4') goto yy41;
+	goto yy31;
+yy134:
+	yych = *++p;
+	if (yych == 'I') goto yy153;
+	if (yych == 'i') goto yy153;
+	goto yy31;
+yy135:
+	yych = *++p;
+	if (yych <= 'L') {
+		if (yych == 'A') goto yy145;
+		if (yych <= 'K') goto yy31;
+		goto yy144;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy31;
+			goto yy145;
+		} else {
+			if (yych == 'l') goto yy144;
+			goto yy31;
+		}
+	}
+yy136:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy137:
+	yych = *++p;
+	if (yych == '3') goto yy141;
+	goto yy31;
+yy138:
+	yych = *++p;
+	if (yych == 'T') goto yy140;
+	if (yych == 't') goto yy140;
+	goto yy31;
+yy139:
+	yych = *++p;
+	if (yych == 'G') goto yy41;
+	if (yych == 'g') goto yy41;
+	goto yy31;
+yy140:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy141:
+	yych = *++p;
+	if (yych != '2') goto yy31;
+	yych = *++p;
+	if (yych != '7') goto yy31;
+	yych = *++p;
+	if (yych == '0') goto yy41;
+	goto yy31;
+yy144:
+	yych = *++p;
+	if (yych <= 'M') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'N') goto yy151;
+		if (yych == 'n') goto yy151;
+		goto yy31;
+	}
+yy145:
+	yych = *++p;
+	if (yych == 'M') goto yy146;
+	if (yych != 'm') goto yy31;
+yy146:
+	yych = *++p;
+	if (yych == 'S') goto yy147;
+	if (yych != 's') goto yy31;
+yy147:
+	yych = *++p;
+	if (yych == 'P') goto yy148;
+	if (yych != 'p') goto yy31;
+yy148:
+	yych = *++p;
+	if (yych == 'E') goto yy149;
+	if (yych != 'e') goto yy31;
+yy149:
+	yych = *++p;
+	if (yych == 'A') goto yy150;
+	if (yych != 'a') goto yy31;
+yy150:
+	yych = *++p;
+	if (yych == 'K') goto yy41;
+	if (yych == 'k') goto yy41;
+	goto yy31;
+yy151:
+	yych = *++p;
+	if (yych == 'E') goto yy152;
+	if (yych != 'e') goto yy31;
+yy152:
+	yych = *++p;
+	if (yych == 'T') goto yy41;
+	if (yych == 't') goto yy41;
+	goto yy31;
+yy153:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'N') goto yy154;
+		if (yych <= 'R') goto yy31;
+		goto yy155;
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'm') goto yy31;
+		} else {
+			if (yych == 's') goto yy155;
+			goto yy31;
+		}
+	}
+yy154:
+	yych = *++p;
+	if (yych == 'G') goto yy162;
+	if (yych == 'g') goto yy162;
+	goto yy31;
+yy155:
+	yych = *++p;
+	if (yych == 'M') goto yy156;
+	if (yych != 'm') goto yy31;
+yy156:
+	yych = *++p;
+	if (yych == 'E') goto yy157;
+	if (yych != 'e') goto yy31;
+yy157:
+	yych = *++p;
+	if (yych == 'S') goto yy158;
+	if (yych != 's') goto yy31;
+yy158:
+	yych = *++p;
+	if (yych == 'S') goto yy159;
+	if (yych != 's') goto yy31;
+yy159:
+	yych = *++p;
+	if (yych == 'A') goto yy160;
+	if (yych != 'a') goto yy31;
+yy160:
+	yych = *++p;
+	if (yych == 'G') goto yy161;
+	if (yych != 'g') goto yy31;
+yy161:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy162:
+	yych = *++p;
+	if (yych == 'S') goto yy41;
+	if (yych == 's') goto yy41;
+	goto yy31;
+yy163:
+	yych = *++p;
+	if (yych == 'N') goto yy41;
+	if (yych == 'n') goto yy41;
+	goto yy31;
+yy164:
+	yych = *++p;
+	if (yych == 'E') goto yy214;
+	if (yych == 'e') goto yy214;
+	goto yy31;
+yy165:
+	yych = *++p;
+	if (yych == 'H') goto yy41;
+	if (yych == 'h') goto yy41;
+	goto yy31;
+yy166:
+	yych = *++p;
+	if (yych == 'O') goto yy210;
+	if (yych == 'o') goto yy210;
+	goto yy31;
+yy167:
+	yych = *++p;
+	if (yych <= 'L') {
+		if (yych == 'A') goto yy200;
+		if (yych <= 'K') goto yy31;
+		goto yy201;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy31;
+			goto yy200;
+		} else {
+			if (yych == 'l') goto yy201;
+			goto yy31;
+		}
+	}
+yy168:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'B') goto yy41;
+		if (yych <= 'R') goto yy31;
+		goto yy41;
+	} else {
+		if (yych <= 'b') {
+			if (yych <= 'a') goto yy31;
+			goto yy41;
+		} else {
+			if (yych == 's') goto yy41;
+			goto yy31;
+		}
+	}
+yy169:
+	yych = *++p;
+	if (yych == 'Y') goto yy198;
+	if (yych == 'y') goto yy198;
+	goto yy31;
+yy170:
+	yych = *++p;
+	if (yych == 'N') goto yy41;
+	if (yych == 'n') goto yy41;
+	goto yy31;
+yy171:
+	yych = *++p;
+	if (yych == 'T') goto yy197;
+	if (yych == 't') goto yy197;
+	goto yy31;
+yy172:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych <= 'C') {
+			if (yych <= 'B') goto yy31;
+			goto yy184;
+		} else {
+			if (yych <= 'Q') goto yy31;
+			if (yych <= 'R') goto yy182;
+			goto yy183;
+		}
+	} else {
+		if (yych <= 'q') {
+			if (yych == 'c') goto yy184;
+			goto yy31;
+		} else {
+			if (yych <= 'r') goto yy182;
+			if (yych <= 's') goto yy183;
+			goto yy31;
+		}
+	}
+yy173:
+	yych = *++p;
+	if (yych == 'M') goto yy181;
+	if (yych == 'm') goto yy181;
+	goto yy31;
+yy174:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'E') goto yy178;
+		if (yych <= 'O') goto yy31;
+		goto yy179;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy31;
+			goto yy178;
+		} else {
+			if (yych == 'p') goto yy179;
+			goto yy31;
+		}
+	}
+yy175:
+	yych = *++p;
+	if (yych == 'T') goto yy176;
+	if (yych != 't') goto yy31;
+yy176:
+	yych = *++p;
+	if (yych == 'T') goto yy177;
+	if (yych != 't') goto yy31;
+yy177:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy178:
+	yych = *++p;
+	if (yych == 'V') goto yy180;
+	if (yych == 'v') goto yy180;
+	goto yy31;
+yy179:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy41;
+		if (yych == 's') goto yy41;
+		goto yy31;
+	}
+yy180:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy181:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy182:
+	yych = *++p;
+	if (yych == 'V') goto yy194;
+	if (yych == 'v') goto yy194;
+	goto yy31;
+yy183:
+	yych = *++p;
+	if (yych == 'S') goto yy191;
+	if (yych == 's') goto yy191;
+	goto yy31;
+yy184:
+	yych = *++p;
+	if (yych == 'O') goto yy185;
+	if (yych != 'o') goto yy31;
+yy185:
+	yych = *++p;
+	if (yych == 'N') goto yy186;
+	if (yych != 'n') goto yy31;
+yy186:
+	yych = *++p;
+	if (yych == 'D') goto yy187;
+	if (yych != 'd') goto yy31;
+yy187:
+	yych = *++p;
+	if (yych == 'L') goto yy188;
+	if (yych != 'l') goto yy31;
+yy188:
+	yych = *++p;
+	if (yych == 'I') goto yy189;
+	if (yych != 'i') goto yy31;
+yy189:
+	yych = *++p;
+	if (yych == 'F') goto yy190;
+	if (yych != 'f') goto yy31;
+yy190:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy191:
+	yych = *++p;
+	if (yych == 'I') goto yy192;
+	if (yych != 'i') goto yy31;
+yy192:
+	yych = *++p;
+	if (yych == 'O') goto yy193;
+	if (yych != 'o') goto yy31;
+yy193:
+	yych = *++p;
+	if (yych == 'N') goto yy41;
+	if (yych == 'n') goto yy41;
+	goto yy31;
+yy194:
+	yych = *++p;
+	if (yych == 'I') goto yy195;
+	if (yych != 'i') goto yy31;
+yy195:
+	yych = *++p;
+	if (yych == 'C') goto yy196;
+	if (yych != 'c') goto yy31;
+yy196:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy197:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy198:
+	yych = *++p;
+	if (yych == 'P') goto yy199;
+	if (yych != 'p') goto yy31;
+yy199:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy200:
+	yych = *++p;
+	if (yych == 'P') goto yy204;
+	if (yych == 'p') goto yy204;
+	goto yy31;
+yy201:
+	yych = *++p;
+	if (yych == 'D') goto yy202;
+	if (yych != 'd') goto yy31;
+yy202:
+	yych = *++p;
+	if (yych == 'A') goto yy203;
+	if (yych != 'a') goto yy31;
+yy203:
+	yych = *++p;
+	if (yych == 'T') goto yy41;
+	if (yych == 't') goto yy41;
+	goto yy31;
+yy204:
+	yych = *++p;
+	if (yych != '.') goto yy31;
+	yych = *++p;
+	if (yych == 'B') goto yy206;
+	if (yych != 'b') goto yy31;
+yy206:
+	yych = *++p;
+	if (yych == 'E') goto yy207;
+	if (yych != 'e') goto yy31;
+yy207:
+	yych = *++p;
+	if (yych == 'E') goto yy208;
+	if (yych != 'e') goto yy31;
+yy208:
+	yych = *++p;
+	if (yych == 'P') goto yy209;
+	if (yych != 'p') goto yy31;
+yy209:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy41;
+		if (yych == 's') goto yy41;
+		goto yy31;
+	}
+yy210:
+	yych = *++p;
+	if (yych == 'T') goto yy211;
+	if (yych != 't') goto yy31;
+yy211:
+	yych = *++p;
+	if (yych == 'I') goto yy212;
+	if (yych != 'i') goto yy31;
+yy212:
+	yych = *++p;
+	if (yych == 'F') goto yy213;
+	if (yych != 'f') goto yy31;
+yy213:
+	yych = *++p;
+	if (yych == 'Y') goto yy41;
+	if (yych == 'y') goto yy41;
+	goto yy31;
+yy214:
+	yych = *++p;
+	if (yych == 'A') goto yy215;
+	if (yych != 'a') goto yy31;
+yy215:
+	yych = *++p;
+	if (yych == 'M') goto yy41;
+	if (yych == 'm') goto yy41;
+	goto yy31;
+yy216:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'M') goto yy228;
+		if (yych <= 'R') goto yy31;
+		goto yy227;
+	} else {
+		if (yych <= 'm') {
+			if (yych <= 'l') goto yy31;
+			goto yy228;
+		} else {
+			if (yych == 's') goto yy227;
+			goto yy31;
+		}
+	}
+yy217:
+	yych = *++p;
+	if (yych == 'Y') goto yy225;
+	if (yych == 'y') goto yy225;
+	goto yy31;
+yy218:
+	yych = *++p;
+	if (yych == 'I') goto yy41;
+	if (yych == 'i') goto yy41;
+	goto yy31;
+yy219:
+	yych = *++p;
+	if (yych == 'S') goto yy220;
+	if (yych != 's') goto yy31;
+yy220:
+	yych = *++p;
+	if (yych <= 'N') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'O') goto yy221;
+		if (yych != 'o') goto yy31;
+	}
+yy221:
+	yych = *++p;
+	if (yych == 'U') goto yy222;
+	if (yych != 'u') goto yy31;
+yy222:
+	yych = *++p;
+	if (yych == 'R') goto yy223;
+	if (yych != 'r') goto yy31;
+yy223:
+	yych = *++p;
+	if (yych == 'C') goto yy224;
+	if (yych != 'c') goto yy31;
+yy224:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy225:
+	yych = *++p;
+	if (yych == 'N') goto yy226;
+	if (yych != 'n') goto yy31;
+yy226:
+	yych = *++p;
+	if (yych == 'C') goto yy41;
+	if (yych == 'c') goto yy41;
+	goto yy31;
+yy227:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy228:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy229:
+	yych = *++p;
+	if (yych == 'Y') goto yy249;
+	if (yych == 'y') goto yy249;
+	goto yy31;
+yy230:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'E') goto yy246;
+		if (yych <= 'N') goto yy31;
+		goto yy247;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy31;
+			goto yy246;
+		} else {
+			if (yych == 'o') goto yy247;
+			goto yy31;
+		}
+	}
+yy231:
+	yych = *++p;
+	if (yych == 'A') goto yy241;
+	if (yych == 'a') goto yy241;
+	goto yy31;
+yy232:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy234;
+		if (yych <= 'O') goto yy31;
+		goto yy235;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy31;
+			goto yy234;
+		} else {
+			if (yych == 'p') goto yy235;
+			goto yy31;
+		}
+	}
+yy233:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy234:
+	yych = *++p;
+	if (yych == 'M') goto yy41;
+	if (yych == 'm') goto yy41;
+	goto yy31;
+yy235:
+	yych = *++p;
+	if (yych == 'A') goto yy236;
+	if (yych != 'a') goto yy31;
+yy236:
+	yych = *++p;
+	if (yych == 'R') goto yy237;
+	if (yych != 'r') goto yy31;
+yy237:
+	yych = *++p;
+	if (yych == 'A') goto yy238;
+	if (yych != 'a') goto yy31;
+yy238:
+	yych = *++p;
+	if (yych == 'Z') goto yy239;
+	if (yych != 'z') goto yy31;
+yy239:
+	yych = *++p;
+	if (yych == 'Z') goto yy240;
+	if (yych != 'z') goto yy31;
+yy240:
+	yych = *++p;
+	if (yych == 'I') goto yy41;
+	if (yych == 'i') goto yy41;
+	goto yy31;
+yy241:
+	yych = *++p;
+	if (yych == 'T') goto yy242;
+	if (yych != 't') goto yy31;
+yy242:
+	yych = *++p;
+	if (yych == 'F') goto yy243;
+	if (yych != 'f') goto yy31;
+yy243:
+	yych = *++p;
+	if (yych == 'O') goto yy244;
+	if (yych != 'o') goto yy31;
+yy244:
+	yych = *++p;
+	if (yych == 'R') goto yy245;
+	if (yych != 'r') goto yy31;
+yy245:
+	yych = *++p;
+	if (yych == 'M') goto yy41;
+	if (yych == 'm') goto yy41;
+	goto yy31;
+yy246:
+	yych = *++p;
+	if (yych == 'S') goto yy41;
+	if (yych == 's') goto yy41;
+	goto yy31;
+yy247:
+	yych = *++p;
+	if (yych == 'X') goto yy248;
+	if (yych != 'x') goto yy31;
+yy248:
+	yych = *++p;
+	if (yych == 'Y') goto yy41;
+	if (yych == 'y') goto yy41;
+	goto yy31;
+yy249:
+	yych = *++p;
+	if (yych == 'C') goto yy41;
+	if (yych == 'c') goto yy41;
+	goto yy31;
+yy250:
+	yych = *++p;
+	if (yych == 'D') goto yy41;
+	if (yych == 'd') goto yy41;
+	goto yy31;
+yy251:
+	yych = *++p;
+	if (yych == 'A') goto yy252;
+	if (yych != 'a') goto yy31;
+yy252:
+	yych = *++p;
+	if (yych == 'Q') goto yy253;
+	if (yych != 'q') goto yy31;
+yy253:
+	yych = *++p;
+	if (yych == 'U') goto yy254;
+	if (yych != 'u') goto yy31;
+yy254:
+	yych = *++p;
+	if (yych == 'E') goto yy255;
+	if (yych != 'e') goto yy31;
+yy255:
+	yych = *++p;
+	if (yych == 'L') goto yy256;
+	if (yych != 'l') goto yy31;
+yy256:
+	yych = *++p;
+	if (yych == 'O') goto yy257;
+	if (yych != 'o') goto yy31;
+yy257:
+	yych = *++p;
+	if (yych == 'C') goto yy258;
+	if (yych != 'c') goto yy31;
+yy258:
+	yych = *++p;
+	if (yych == 'K') goto yy259;
+	if (yych != 'k') goto yy31;
+yy259:
+	yych = *++p;
+	if (yych == 'T') goto yy260;
+	if (yych != 't') goto yy31;
+yy260:
+	yych = *++p;
+	if (yych == 'O') goto yy261;
+	if (yych != 'o') goto yy31;
+yy261:
+	yych = *++p;
+	if (yych == 'K') goto yy262;
+	if (yych != 'k') goto yy31;
+yy262:
+	yych = *++p;
+	if (yych == 'E') goto yy263;
+	if (yych != 'e') goto yy31;
+yy263:
+	yych = *++p;
+	if (yych == 'N') goto yy41;
+	if (yych == 'n') goto yy41;
+	goto yy31;
+yy264:
+	yych = *++p;
+	if (yych == 'T') goto yy271;
+	if (yych == 't') goto yy271;
+	goto yy31;
+yy265:
+	yych = *++p;
+	if (yych == 'T') goto yy270;
+	if (yych == 't') goto yy270;
+	goto yy31;
+yy266:
+	yych = *++p;
+	if (yych <= 'G') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'H') goto yy41;
+		if (yych == 'h') goto yy41;
+		goto yy31;
+	}
+yy267:
+	yych = *++p;
+	if (yych == 'S') goto yy41;
+	if (yych == 's') goto yy41;
+	goto yy31;
+yy268:
+	yych = *++p;
+	if (yych == 'W') goto yy269;
+	if (yych != 'w') goto yy31;
+yy269:
+	yych = *++p;
+	if (yych == 'S') goto yy41;
+	if (yych == 's') goto yy41;
+	goto yy31;
+yy270:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy271:
+	yych = *++p;
+	if (yych == 'E') goto yy272;
+	if (yych != 'e') goto yy31;
+yy272:
+	yych = *++p;
+	if (yych == 'S') goto yy41;
+	if (yych == 's') goto yy41;
+	goto yy31;
+yy273:
+	yych = *++p;
+	if (yych == 'N') goto yy41;
+	if (yych == 'n') goto yy41;
+	goto yy31;
+yy274:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'M') goto yy305;
+		if (yych <= 'O') goto yy31;
+		goto yy304;
+	} else {
+		if (yych <= 'm') {
+			if (yych <= 'l') goto yy31;
+			goto yy305;
+		} else {
+			if (yych == 'p') goto yy304;
+			goto yy31;
+		}
+	}
+yy275:
+	yych = *++p;
+	if (yych <= 'Q') {
+		if (yych <= '-') {
+			if (yych <= ',') goto yy31;
+			goto yy297;
+		} else {
+			if (yych == 'N') goto yy298;
+			goto yy31;
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'R') goto yy296;
+			if (yych <= 'm') goto yy31;
+			goto yy298;
+		} else {
+			if (yych == 'r') goto yy296;
+			goto yy31;
+		}
+	}
+yy276:
+	yych = *++p;
+	if (yych == 'S') goto yy41;
+	if (yych == 's') goto yy41;
+	goto yy31;
+yy277:
+	yych = *++p;
+	if (yych == 'S') goto yy292;
+	if (yych == 's') goto yy292;
+	goto yy31;
+yy278:
+	yych = *++p;
+	switch (yych) {
+	case 'G':
+	case 'g':	goto yy283;
+	case 'I':
+	case 'i':	goto yy282;
+	case 'P':
+	case 'p':	goto yy284;
+	case 'R':
+	case 'r':	goto yy285;
+	default:	goto yy31;
+	}
+yy279:
+	yych = *++p;
+	if (yych == 'Q') goto yy281;
+	if (yych == 'q') goto yy281;
+	goto yy31;
+yy280:
+	yych = *++p;
+	if (yych == 'D') goto yy41;
+	if (yych == 'd') goto yy41;
+	goto yy31;
+yy281:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy282:
+	yych = *++p;
+	if (yych == 'L') goto yy290;
+	if (yych == 'l') goto yy290;
+	goto yy31;
+yy283:
+	yych = *++p;
+	if (yych == 'N') goto yy288;
+	if (yych == 'n') goto yy288;
+	goto yy31;
+yy284:
+	yych = *++p;
+	if (yych == 'S') goto yy41;
+	if (yych == 's') goto yy41;
+	goto yy31;
+yy285:
+	yych = *++p;
+	if (yych == 'K') goto yy286;
+	if (yych != 'k') goto yy31;
+yy286:
+	yych = *++p;
+	if (yych == 'E') goto yy287;
+	if (yych != 'e') goto yy31;
+yy287:
+	yych = *++p;
+	if (yych == 'T') goto yy41;
+	if (yych == 't') goto yy41;
+	goto yy31;
+yy288:
+	yych = *++p;
+	if (yych == 'E') goto yy289;
+	if (yych != 'e') goto yy31;
+yy289:
+	yych = *++p;
+	if (yych == 'T') goto yy41;
+	if (yych == 't') goto yy41;
+	goto yy31;
+yy290:
+	yych = *++p;
+	if (yych == 'T') goto yy291;
+	if (yych != 't') goto yy31;
+yy291:
+	yych = *++p;
+	if (yych == 'O') goto yy41;
+	if (yych == 'o') goto yy41;
+	goto yy31;
+yy292:
+	yych = *++p;
+	if (yych == 'S') goto yy293;
+	if (yych != 's') goto yy31;
+yy293:
+	yych = *++p;
+	if (yych == 'A') goto yy294;
+	if (yych != 'a') goto yy31;
+yy294:
+	yych = *++p;
+	if (yych == 'G') goto yy295;
+	if (yych != 'g') goto yy31;
+yy295:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy296:
+	yych = *++p;
+	if (yych == 'P') goto yy303;
+	if (yych == 'p') goto yy303;
+	goto yy31;
+yy297:
+	yych = *++p;
+	if (yych == 'H') goto yy300;
+	if (yych == 'h') goto yy300;
+	goto yy31;
+yy298:
+	yych = *++p;
+	if (yych == 'I') goto yy299;
+	if (yych != 'i') goto yy31;
+yy299:
+	yych = *++p;
+	if (yych == 'M') goto yy41;
+	if (yych == 'm') goto yy41;
+	goto yy31;
+yy300:
+	yych = *++p;
+	if (yych == 'E') goto yy301;
+	if (yych != 'e') goto yy31;
+yy301:
+	yych = *++p;
+	if (yych == 'L') goto yy302;
+	if (yych != 'l') goto yy31;
+yy302:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy303:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy41;
+		if (yych == 's') goto yy41;
+		goto yy31;
+	}
+yy304:
+	yych = *++p;
+	if (yych == 'D') goto yy308;
+	if (yych == 'd') goto yy308;
+	goto yy31;
+yy305:
+	yych = *++p;
+	if (yych == 'B') goto yy306;
+	if (yych != 'b') goto yy31;
+yy306:
+	yych = *++p;
+	if (yych == 'L') goto yy307;
+	if (yych != 'l') goto yy31;
+yy307:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy308:
+	yych = *++p;
+	if (yych == 'A') goto yy309;
+	if (yych != 'a') goto yy31;
+yy309:
+	yych = *++p;
+	if (yych == 'T') goto yy310;
+	if (yych != 't') goto yy31;
+yy310:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy311:
+	yych = *++p;
+	if (yych == 'A') goto yy316;
+	if (yych == 'a') goto yy316;
+	goto yy31;
+yy312:
+	yych = *++p;
+	if (yych == 'S') goto yy313;
+	if (yych != 's') goto yy31;
+yy313:
+	yych = *++p;
+	if (yych == 'T') goto yy314;
+	if (yych != 't') goto yy31;
+yy314:
+	yych = *++p;
+	if (yych == 'F') goto yy315;
+	if (yych != 'f') goto yy31;
+yy315:
+	yych = *++p;
+	if (yych == 'M') goto yy41;
+	if (yych == 'm') goto yy41;
+	goto yy31;
+yy316:
+	yych = *++p;
+	if (yych == 'P') goto yy317;
+	if (yych != 'p') goto yy31;
+yy317:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy41;
+		if (yych == 's') goto yy41;
+		goto yy31;
+	}
+yy318:
+	yych = *++p;
+	if (yych == 'M') goto yy341;
+	if (yych == 'm') goto yy341;
+	goto yy31;
+yy319:
+	yych = *++p;
+	if (yych <= 'I') {
+		if (yych == 'C') goto yy330;
+		if (yych <= 'H') goto yy31;
+		goto yy329;
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'b') goto yy31;
+			goto yy330;
+		} else {
+			if (yych == 'i') goto yy329;
+			goto yy31;
+		}
+	}
+yy320:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'N') goto yy41;
+		if (yych <= 'O') goto yy31;
+		goto yy41;
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'm') goto yy31;
+			goto yy41;
+		} else {
+			if (yych == 'p') goto yy41;
+			goto yy31;
+		}
+	}
+yy321:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'A') goto yy327;
+		if (yych <= 'N') goto yy31;
+		goto yy328;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy31;
+			goto yy327;
+		} else {
+			if (yych == 'o') goto yy328;
+			goto yy31;
+		}
+	}
+yy322:
+	yych = *++p;
+	if (yych == 'F') goto yy326;
+	if (yych == 'f') goto yy326;
+	goto yy31;
+yy323:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'A') goto yy325;
+		if (yych == 'a') goto yy325;
+		goto yy31;
+	}
+yy324:
+	yych = *++p;
+	if (yych == 'X') goto yy41;
+	if (yych == 'x') goto yy41;
+	goto yy31;
+yy325:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy326:
+	yych = *++p;
+	if (yych == 'O') goto yy41;
+	if (yych == 'o') goto yy41;
+	goto yy31;
+yy327:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy328:
+	yych = *++p;
+	if (yych == 'N') goto yy41;
+	if (yych == 'n') goto yy41;
+	goto yy31;
+yy329:
+	yych = *++p;
+	if (yych == 'S') goto yy331;
+	if (yych == 's') goto yy331;
+	goto yy31;
+yy330:
+	yych = *++p;
+	if (yych <= ':') {
+		if (yych == '6') goto yy41;
+		if (yych <= '9') goto yy31;
+		goto yy42;
+	} else {
+		if (yych <= 'S') {
+			if (yych <= 'R') goto yy31;
+			goto yy41;
+		} else {
+			if (yych == 's') goto yy41;
+			goto yy31;
+		}
+	}
+yy331:
+	yych = *++p;
+	if (yych == '.') goto yy332;
+	if (yych == ':') goto yy42;
+	goto yy31;
+yy332:
+	yych = *++p;
+	if (yych <= 'X') {
+		if (yych <= 'K') {
+			if (yych == 'B') goto yy335;
+			goto yy31;
+		} else {
+			if (yych <= 'L') goto yy333;
+			if (yych <= 'W') goto yy31;
+			goto yy334;
+		}
+	} else {
+		if (yych <= 'k') {
+			if (yych == 'b') goto yy335;
+			goto yy31;
+		} else {
+			if (yych <= 'l') goto yy333;
+			if (yych == 'x') goto yy334;
+			goto yy31;
+		}
+	}
+yy333:
+	yych = *++p;
+	if (yych == 'W') goto yy340;
+	if (yych == 'w') goto yy340;
+	goto yy31;
+yy334:
+	yych = *++p;
+	if (yych == 'P') goto yy338;
+	if (yych == 'p') goto yy338;
+	goto yy31;
+yy335:
+	yych = *++p;
+	if (yych == 'E') goto yy336;
+	if (yych != 'e') goto yy31;
+yy336:
+	yych = *++p;
+	if (yych == 'E') goto yy337;
+	if (yych != 'e') goto yy31;
+yy337:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy338:
+	yych = *++p;
+	if (yych == 'C') goto yy339;
+	if (yych != 'c') goto yy31;
+yy339:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy41;
+		if (yych == 's') goto yy41;
+		goto yy31;
+	}
+yy340:
+	yych = *++p;
+	if (yych == 'Z') goto yy41;
+	if (yych == 'z') goto yy41;
+	goto yy31;
+yy341:
+	yych = *++p;
+	if (yych == 'S') goto yy41;
+	if (yych == 's') goto yy41;
+	goto yy31;
+yy342:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy343:
+	yych = *++p;
+	if (yych == 'T') goto yy346;
+	if (yych == 't') goto yy346;
+	goto yy31;
+yy344:
+	yych = *++p;
+	if (yych != '2') goto yy31;
+	yych = *++p;
+	if (yych == '3') goto yy41;
+	goto yy31;
+yy346:
+	yych = *++p;
+	if (yych == 'P') goto yy347;
+	if (yych != 'p') goto yy31;
+yy347:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy41;
+		if (yych == 's') goto yy41;
+		goto yy31;
+	}
+yy348:
+	yych = *++p;
+	if (yych == 'A') goto yy364;
+	if (yych == 'a') goto yy364;
+	goto yy31;
+yy349:
+	yych = *++p;
+	if (yych <= 'Z') {
+		if (yych == 'T') goto yy41;
+		if (yych <= 'Y') goto yy31;
+		goto yy355;
+	} else {
+		if (yych <= 't') {
+			if (yych <= 's') goto yy31;
+			goto yy41;
+		} else {
+			if (yych == 'z') goto yy355;
+			goto yy31;
+		}
+	}
+yy350:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'P') goto yy352;
+		if (yych == 'p') goto yy352;
+		goto yy31;
+	}
+yy351:
+	yych = *++p;
+	if (yych == 'O') goto yy41;
+	if (yych == 'o') goto yy41;
+	goto yy31;
+yy352:
+	yych = *++p;
+	if (yych == 'H') goto yy353;
+	if (yych != 'h') goto yy31;
+yy353:
+	yych = *++p;
+	if (yych == 'E') goto yy354;
+	if (yych != 'e') goto yy31;
+yy354:
+	yych = *++p;
+	if (yych == 'R') goto yy41;
+	if (yych == 'r') goto yy41;
+	goto yy31;
+yy355:
+	yych = *++p;
+	if (yych == 'M') goto yy356;
+	if (yych != 'm') goto yy31;
+yy356:
+	yych = *++p;
+	if (yych == 'O') goto yy357;
+	if (yych != 'o') goto yy31;
+yy357:
+	yych = *++p;
+	if (yych == 'P') goto yy358;
+	if (yych != 'p') goto yy31;
+yy358:
+	yych = *++p;
+	if (yych == 'R') goto yy359;
+	if (yych != 'r') goto yy31;
+yy359:
+	yych = *++p;
+	if (yych == 'O') goto yy360;
+	if (yych != 'o') goto yy31;
+yy360:
+	yych = *++p;
+	if (yych == 'J') goto yy361;
+	if (yych != 'j') goto yy31;
+yy361:
+	yych = *++p;
+	if (yych == 'E') goto yy362;
+	if (yych != 'e') goto yy31;
+yy362:
+	yych = *++p;
+	if (yych == 'C') goto yy363;
+	if (yych != 'c') goto yy31;
+yy363:
+	yych = *++p;
+	if (yych == 'T') goto yy41;
+	if (yych == 't') goto yy41;
+	goto yy31;
+yy364:
+	yych = *++p;
+	if (yych == 'L') goto yy365;
+	if (yych != 'l') goto yy31;
+yy365:
+	yych = *++p;
+	if (yych == 'K') goto yy41;
+	if (yych == 'k') goto yy41;
+	goto yy31;
+yy366:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych <= 'M') {
+			if (yych == 'L') goto yy376;
+			goto yy31;
+		} else {
+			if (yych <= 'N') goto yy377;
+			if (yych <= 'R') goto yy31;
+			goto yy378;
+		}
+	} else {
+		if (yych <= 'm') {
+			if (yych == 'l') goto yy376;
+			goto yy31;
+		} else {
+			if (yych <= 'n') goto yy377;
+			if (yych == 's') goto yy378;
+			goto yy31;
+		}
+	}
+yy367:
+	yych = *++p;
+	if (yych == 'E') goto yy375;
+	if (yych == 'e') goto yy375;
+	goto yy31;
+yy368:
+	yych = *++p;
+	if (yych == 'C') goto yy370;
+	if (yych == 'c') goto yy370;
+	goto yy31;
+yy369:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy370:
+	yych = *++p;
+	if (yych == 'E') goto yy371;
+	if (yych != 'e') goto yy31;
+yy371:
+	yych = *++p;
+	if (yych == 'T') goto yy372;
+	if (yych != 't') goto yy31;
+yy372:
+	yych = *++p;
+	if (yych == 'I') goto yy373;
+	if (yych != 'i') goto yy31;
+yy373:
+	yych = *++p;
+	if (yych == 'M') goto yy374;
+	if (yych != 'm') goto yy31;
+yy374:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy375:
+	yych = *++p;
+	if (yych == 'D') goto yy41;
+	if (yych == 'd') goto yy41;
+	goto yy31;
+yy376:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy377:
+	yych = *++p;
+	if (yych == 'G') goto yy379;
+	if (yych == 'g') goto yy379;
+	goto yy31;
+yy378:
+	yych = *++p;
+	if (yych == 'H') goto yy41;
+	if (yych == 'h') goto yy41;
+	goto yy31;
+yy379:
+	yych = *++p;
+	if (yych == 'E') goto yy380;
+	if (yych != 'e') goto yy31;
+yy380:
+	yych = *++p;
+	if (yych == 'R') goto yy41;
+	if (yych == 'r') goto yy41;
+	goto yy31;
+yy381:
+	yych = *++p;
+	if (yych == 'T') goto yy399;
+	if (yych == 't') goto yy399;
+	goto yy31;
+yy382:
+	yych = *++p;
+	if (yych == 'T') goto yy41;
+	if (yych == 't') goto yy41;
+	goto yy31;
+yy383:
+	yych = *++p;
+	if (yych == 'M') goto yy41;
+	if (yych == 'm') goto yy41;
+	goto yy31;
+yy384:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'P') goto yy41;
+		if (yych <= 'R') goto yy31;
+		goto yy41;
+	} else {
+		if (yych <= 'p') {
+			if (yych <= 'o') goto yy31;
+			goto yy41;
+		} else {
+			if (yych == 's') goto yy41;
+			goto yy31;
+		}
+	}
+yy385:
+	yych = *++p;
+	if (yych == 'I') goto yy393;
+	if (yych == 'i') goto yy393;
+	goto yy31;
+yy386:
+	yych = *++p;
+	if (yych == 'A') goto yy392;
+	if (yych == 'a') goto yy392;
+	goto yy31;
+yy387:
+	yych = *++p;
+	if (yych == 'O') goto yy390;
+	if (yych == 'o') goto yy390;
+	goto yy31;
+yy388:
+	yych = *++p;
+	if (yych == 'A') goto yy389;
+	if (yych != 'a') goto yy31;
+yy389:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy42;
+		goto yy31;
+	} else {
+		if (yych <= 'S') goto yy41;
+		if (yych == 's') goto yy41;
+		goto yy31;
+	}
+yy390:
+	yych = *++p;
+	if (yych == 'U') goto yy391;
+	if (yych != 'u') goto yy31;
+yy391:
+	yych = *++p;
+	if (yych == 'T') goto yy41;
+	if (yych == 't') goto yy41;
+	goto yy31;
+yy392:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy393:
+	yych = *++p;
+	if (yych == 'U') goto yy394;
+	if (yych != 'u') goto yy31;
+yy394:
+	yych = *++p;
+	if (yych == 'M') goto yy395;
+	if (yych != 'm') goto yy31;
+yy395:
+	yych = *++p;
+	if (yych == 'X') goto yy396;
+	if (yych != 'x') goto yy31;
+yy396:
+	yych = *++p;
+	if (yych == 'T') goto yy397;
+	if (yych != 't') goto yy31;
+yy397:
+	yych = *++p;
+	if (yych == 'R') goto yy398;
+	if (yych != 'r') goto yy31;
+yy398:
+	yych = *++p;
+	if (yych == 'A') goto yy41;
+	if (yych == 'a') goto yy41;
+	goto yy31;
+yy399:
+	yych = *++p;
+	if (yych == 'A') goto yy400;
+	if (yych != 'a') goto yy31;
+yy400:
+	yych = *++p;
+	if (yych == 'C') goto yy401;
+	if (yych != 'c') goto yy31;
+yy401:
+	yych = *++p;
+	if (yych == 'H') goto yy402;
+	if (yych != 'h') goto yy31;
+yy402:
+	yych = *++p;
+	if (yych == 'M') goto yy403;
+	if (yych != 'm') goto yy31;
+yy403:
+	yych = *++p;
+	if (yych == 'E') goto yy404;
+	if (yych != 'e') goto yy31;
+yy404:
+	yych = *++p;
+	if (yych == 'N') goto yy405;
+	if (yych != 'n') goto yy31;
+yy405:
+	yych = *++p;
+	if (yych == 'T') goto yy41;
+	if (yych == 't') goto yy41;
+	goto yy31;
+yy406:
+	yych = *++p;
+	if (yych == 'S') goto yy41;
+	if (yych == 's') goto yy41;
+	goto yy31;
+yy407:
+	yych = *++p;
+	if (yych <= 'V') {
+		if (yych == 'R') goto yy41;
+		if (yych <= 'U') goto yy31;
+	} else {
+		if (yych <= 'r') {
+			if (yych <= 'q') goto yy31;
+			goto yy41;
+		} else {
+			if (yych != 'v') goto yy31;
+		}
+	}
+	yych = *++p;
+	if (yych == 'A') goto yy409;
+	if (yych != 'a') goto yy31;
+yy409:
+	yych = *++p;
+	if (yych == 'S') goto yy410;
+	if (yych != 's') goto yy31;
+yy410:
+	yych = *++p;
+	if (yych == 'C') goto yy411;
+	if (yych != 'c') goto yy31;
+yy411:
+	yych = *++p;
+	if (yych == 'R') goto yy412;
+	if (yych != 'r') goto yy31;
+yy412:
+	yych = *++p;
+	if (yych == 'I') goto yy413;
+	if (yych != 'i') goto yy31;
+yy413:
+	yych = *++p;
+	if (yych == 'P') goto yy414;
+	if (yych != 'p') goto yy31;
+yy414:
+	yych = *++p;
+	if (yych == 'T') goto yy41;
+	if (yych == 't') goto yy41;
+	goto yy31;
+yy415:
+	yych = *++p;
+	if (yych == 'B') goto yy41;
+	if (yych == 'b') goto yy41;
+	goto yy31;
+yy416:
+	yych = *++p;
+	if (yych == 'N') goto yy41;
+	if (yych == 'n') goto yy41;
+	goto yy31;
+yy417:
+	yych = *++p;
+	if (yych == 'N') goto yy424;
+	if (yych == 'n') goto yy424;
+	goto yy31;
+yy418:
+	yych = *++p;
+	if (yych == 'S') goto yy41;
+	if (yych == 's') goto yy41;
+	goto yy31;
+yy419:
+	yych = *++p;
+	if (yych == 'C') goto yy423;
+	if (yych == 'c') goto yy423;
+	goto yy31;
+yy420:
+	yych = *++p;
+	if (yych <= 'V') {
+		if (yych == 'T') goto yy422;
+		if (yych <= 'U') goto yy31;
+		goto yy41;
+	} else {
+		if (yych <= 't') {
+			if (yych <= 's') goto yy31;
+			goto yy422;
+		} else {
+			if (yych == 'v') goto yy41;
+			goto yy31;
+		}
+	}
+yy421:
+	yych = *++p;
+	if (yych == 'I') goto yy41;
+	if (yych == 'i') goto yy41;
+	goto yy31;
+yy422:
+	yych = *++p;
+	if (yych == 'A') goto yy41;
+	if (yych == 'a') goto yy41;
+	goto yy31;
+yy423:
+	yych = *++p;
+	if (yych == 'T') goto yy41;
+	if (yych == 't') goto yy41;
+	goto yy31;
+yy424:
+	yych = *++p;
+	if (yych == 'A') goto yy425;
+	if (yych != 'a') goto yy31;
+yy425:
+	yych = *++p;
+	if (yych != '-') goto yy31;
+	yych = *++p;
+	if (yych == 'P') goto yy427;
+	if (yych != 'p') goto yy31;
+yy427:
+	yych = *++p;
+	if (yych == 'L') goto yy428;
+	if (yych != 'l') goto yy31;
+yy428:
+	yych = *++p;
+	if (yych == 'A') goto yy429;
+	if (yych != 'a') goto yy31;
+yy429:
+	yych = *++p;
+	if (yych == 'Y') goto yy430;
+	if (yych != 'y') goto yy31;
+yy430:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'C') goto yy431;
+		if (yych <= 'R') goto yy31;
+		goto yy432;
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'b') goto yy31;
+		} else {
+			if (yych == 's') goto yy432;
+			goto yy31;
+		}
+	}
+yy431:
+	yych = *++p;
+	if (yych == 'O') goto yy437;
+	if (yych == 'o') goto yy437;
+	goto yy31;
+yy432:
+	yych = *++p;
+	if (yych == 'I') goto yy433;
+	if (yych != 'i') goto yy31;
+yy433:
+	yych = *++p;
+	if (yych == 'N') goto yy434;
+	if (yych != 'n') goto yy31;
+yy434:
+	yych = *++p;
+	if (yych == 'G') goto yy435;
+	if (yych != 'g') goto yy31;
+yy435:
+	yych = *++p;
+	if (yych == 'L') goto yy436;
+	if (yych != 'l') goto yy31;
+yy436:
+	yych = *++p;
+	if (yych == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+yy437:
+	yych = *++p;
+	if (yych == 'N') goto yy438;
+	if (yych != 'n') goto yy31;
+yy438:
+	yych = *++p;
+	if (yych == 'T') goto yy439;
+	if (yych != 't') goto yy31;
+yy439:
+	yych = *++p;
+	if (yych == 'A') goto yy440;
+	if (yych != 'a') goto yy31;
+yy440:
+	yych = *++p;
+	if (yych == 'I') goto yy441;
+	if (yych != 'i') goto yy31;
+yy441:
+	yych = *++p;
+	if (yych == 'N') goto yy442;
+	if (yych != 'n') goto yy31;
+yy442:
+	yych = *++p;
+	if (yych == 'E') goto yy443;
+	if (yych != 'e') goto yy31;
+yy443:
+	yych = *++p;
+	if (yych == 'R') goto yy41;
+	if (yych == 'r') goto yy41;
+	goto yy31;
+yy444:
+	yych = *++p;
+	if (yych == 'S') goto yy41;
+	if (yych == 's') goto yy41;
+	goto yy31;
+yy445:
+	yych = *++p;
+	if (yych <= 'N') {
+		if (yych <= 'A') {
+			if (yych <= '@') goto yy31;
+			goto yy467;
+		} else {
+			if (yych <= 'L') goto yy31;
+			if (yych <= 'M') goto yy468;
+			goto yy469;
+		}
+	} else {
+		if (yych <= 'l') {
+			if (yych == 'a') goto yy467;
+			goto yy31;
+		} else {
+			if (yych <= 'm') goto yy468;
+			if (yych <= 'n') goto yy469;
+			goto yy31;
+		}
+	}
+yy446:
+	yych = *++p;
+	if (yych == 'R') goto yy454;
+	if (yych == 'r') goto yy454;
+	goto yy31;
+yy447:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy451;
+		if (yych <= 'O') goto yy31;
+		goto yy41;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy31;
+			goto yy451;
+		} else {
+			if (yych == 'p') goto yy41;
+			goto yy31;
+		}
+	}
+yy448:
+	yych = *++p;
+	if (yych == 'I') goto yy450;
+	if (yych == 'i') goto yy450;
+	goto yy31;
+yy449:
+	yych = *++p;
+	if (yych == 'D') goto yy41;
+	if (yych == 'd') goto yy41;
+	goto yy31;
+yy450:
+	yych = *++p;
+	if (yych == 'D') goto yy41;
+	if (yych == 'd') goto yy41;
+	goto yy31;
+yy451:
+	yych = *++p;
+	if (yych == 'L') goto yy452;
+	if (yych != 'l') goto yy31;
+yy452:
+	yych = *++p;
+	if (yych == 'T') goto yy453;
+	if (yych != 't') goto yy31;
+yy453:
+	yych = *++p;
+	if (yych == 'O') goto yy41;
+	if (yych == 'o') goto yy41;
+	goto yy31;
+yy454:
+	yych = *++p;
+	if (yych == 'O') goto yy455;
+	if (yych != 'o') goto yy31;
+yy455:
+	yych = *++p;
+	if (yych == 'M') goto yy456;
+	if (yych != 'm') goto yy31;
+yy456:
+	yych = *++p;
+	if (yych == 'E') goto yy457;
+	if (yych != 'e') goto yy31;
+yy457:
+	yych = *++p;
+	if (yych == '-') goto yy458;
+	if (yych == ':') goto yy42;
+	goto yy31;
+yy458:
+	yych = *++p;
+	if (yych == 'E') goto yy459;
+	if (yych != 'e') goto yy31;
+yy459:
+	yych = *++p;
+	if (yych == 'X') goto yy460;
+	if (yych != 'x') goto yy31;
+yy460:
+	yych = *++p;
+	if (yych == 'T') goto yy461;
+	if (yych != 't') goto yy31;
+yy461:
+	yych = *++p;
+	if (yych == 'E') goto yy462;
+	if (yych != 'e') goto yy31;
+yy462:
+	yych = *++p;
+	if (yych == 'N') goto yy463;
+	if (yych != 'n') goto yy31;
+yy463:
+	yych = *++p;
+	if (yych == 'S') goto yy464;
+	if (yych != 's') goto yy31;
+yy464:
+	yych = *++p;
+	if (yych == 'I') goto yy465;
+	if (yych != 'i') goto yy31;
+yy465:
+	yych = *++p;
+	if (yych == 'O') goto yy466;
+	if (yych != 'o') goto yy31;
+yy466:
+	yych = *++p;
+	if (yych == 'N') goto yy41;
+	if (yych == 'n') goto yy41;
+	goto yy31;
+yy467:
+	yych = *++p;
+	if (yych == 'P') goto yy41;
+	if (yych == 'p') goto yy41;
+	goto yy31;
+yy468:
+	yych = *++p;
+	if (yych == '-') goto yy473;
+	goto yy31;
+yy469:
+	yych = *++p;
+	if (yych == 'T') goto yy470;
+	if (yych != 't') goto yy31;
+yy470:
+	yych = *++p;
+	if (yych == 'E') goto yy471;
+	if (yych != 'e') goto yy31;
+yy471:
+	yych = *++p;
+	if (yych == 'N') goto yy472;
+	if (yych != 'n') goto yy31;
+yy472:
+	yych = *++p;
+	if (yych == 'T') goto yy41;
+	if (yych == 't') goto yy41;
+	goto yy31;
+yy473:
+	yych = *++p;
+	if (yych == 'E') goto yy474;
+	if (yych != 'e') goto yy31;
+yy474:
+	yych = *++p;
+	if (yych == 'V') goto yy475;
+	if (yych != 'v') goto yy31;
+yy475:
+	yych = *++p;
+	if (yych == 'E') goto yy476;
+	if (yych != 'e') goto yy31;
+yy476:
+	yych = *++p;
+	if (yych == 'N') goto yy477;
+	if (yych != 'n') goto yy31;
+yy477:
+	yych = *++p;
+	if (yych == 'T') goto yy478;
+	if (yych != 't') goto yy31;
+yy478:
+	yych = *++p;
+	if (yych == 'B') goto yy479;
+	if (yych != 'b') goto yy31;
+yy479:
+	yych = *++p;
+	if (yych == 'R') goto yy480;
+	if (yych != 'r') goto yy31;
+yy480:
+	yych = *++p;
+	if (yych == 'I') goto yy481;
+	if (yych != 'i') goto yy31;
+yy481:
+	yych = *++p;
+	if (yych == 'T') goto yy482;
+	if (yych != 't') goto yy31;
+yy482:
+	yych = *++p;
+	if (yych == 'E') goto yy483;
+	if (yych != 'e') goto yy31;
+yy483:
+	yych = *++p;
+	if (yych != '-') goto yy31;
+	yych = *++p;
+	if (yych == 'A') goto yy485;
+	if (yych != 'a') goto yy31;
+yy485:
+	yych = *++p;
+	if (yych == 'T') goto yy486;
+	if (yych != 't') goto yy31;
+yy486:
+	yych = *++p;
+	if (yych == 'T') goto yy487;
+	if (yych != 't') goto yy31;
+yy487:
+	yych = *++p;
+	if (yych == 'E') goto yy488;
+	if (yych != 'e') goto yy31;
+yy488:
+	yych = *++p;
+	if (yych == 'N') goto yy489;
+	if (yych != 'n') goto yy31;
+yy489:
+	yych = *++p;
+	if (yych == 'D') goto yy490;
+	if (yych != 'd') goto yy31;
+yy490:
+	yych = *++p;
+	if (yych == 'E') goto yy491;
+	if (yych != 'e') goto yy31;
+yy491:
+	++p;
+	if ((yych = *p) == 'E') goto yy41;
+	if (yych == 'e') goto yy41;
+	goto yy31;
+}
+
+}
+
+// Try to match URI autolink after first <, returning number of chars matched.
+bufsize_t _scan_autolink_uri(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128,   0, 128,   0, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 'c') {
+		if (yych <= 'M') {
+			if (yych <= 'E') {
+				if (yych <= 'A') {
+					if (yych == '\n') goto yy494;
+					if (yych <= '@') goto yy521;
+					goto yy498;
+				} else {
+					if (yych <= 'B') goto yy516;
+					if (yych <= 'C') goto yy495;
+					if (yych <= 'D') goto yy496;
+					goto yy517;
+				}
+			} else {
+				if (yych <= 'I') {
+					if (yych <= 'F') goto yy499;
+					if (yych <= 'G') goto yy500;
+					if (yych <= 'H') goto yy501;
+					goto yy502;
+				} else {
+					if (yych <= 'J') goto yy497;
+					if (yych <= 'K') goto yy518;
+					if (yych <= 'L') goto yy503;
+					goto yy504;
+				}
+			}
+		} else {
+			if (yych <= 'U') {
+				if (yych <= 'Q') {
+					if (yych <= 'N') goto yy505;
+					if (yych <= 'O') goto yy506;
+					if (yych <= 'P') goto yy507;
+					goto yy519;
+				} else {
+					if (yych <= 'R') goto yy508;
+					if (yych <= 'S') goto yy509;
+					if (yych <= 'T') goto yy510;
+					goto yy511;
+				}
+			} else {
+				if (yych <= 'Y') {
+					if (yych <= 'V') goto yy512;
+					if (yych <= 'W') goto yy513;
+					if (yych <= 'X') goto yy514;
+					goto yy520;
+				} else {
+					if (yych <= '`') {
+						if (yych <= 'Z') goto yy515;
+						goto yy521;
+					} else {
+						if (yych <= 'a') goto yy498;
+						if (yych <= 'b') goto yy516;
+						goto yy495;
+					}
+				}
+			}
+		}
+	} else {
+		if (yych <= 't') {
+			if (yych <= 'k') {
+				if (yych <= 'g') {
+					if (yych <= 'd') goto yy496;
+					if (yych <= 'e') goto yy517;
+					if (yych <= 'f') goto yy499;
+					goto yy500;
+				} else {
+					if (yych <= 'h') goto yy501;
+					if (yych <= 'i') goto yy502;
+					if (yych <= 'j') goto yy497;
+					goto yy518;
+				}
+			} else {
+				if (yych <= 'o') {
+					if (yych <= 'l') goto yy503;
+					if (yych <= 'm') goto yy504;
+					if (yych <= 'n') goto yy505;
+					goto yy506;
+				} else {
+					if (yych <= 'q') {
+						if (yych <= 'p') goto yy507;
+						goto yy519;
+					} else {
+						if (yych <= 'r') goto yy508;
+						if (yych <= 's') goto yy509;
+						goto yy510;
+					}
+				}
+			}
+		} else {
+			if (yych <= 0xC1) {
+				if (yych <= 'x') {
+					if (yych <= 'u') goto yy511;
+					if (yych <= 'v') goto yy512;
+					if (yych <= 'w') goto yy513;
+					goto yy514;
+				} else {
+					if (yych <= 'y') goto yy520;
+					if (yych <= 'z') goto yy515;
+					if (yych <= 0x7F) goto yy521;
+				}
+			} else {
+				if (yych <= 0xED) {
+					if (yych <= 0xDF) goto yy522;
+					if (yych <= 0xE0) goto yy524;
+					if (yych <= 0xEC) goto yy525;
+					goto yy529;
+				} else {
+					if (yych <= 0xF0) {
+						if (yych <= 0xEF) goto yy525;
+						goto yy526;
+					} else {
+						if (yych <= 0xF3) goto yy527;
+						if (yych <= 0xF4) goto yy528;
+					}
+				}
+			}
+		}
+	}
+yy494:
+	{ return 0; }
+yy495:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy948;
+	case 'H':
+	case 'h':	goto yy947;
+	case 'I':
+	case 'i':	goto yy950;
+	case 'O':
+	case 'o':	goto yy946;
+	case 'R':
+	case 'r':	goto yy949;
+	case 'V':
+	case 'v':	goto yy945;
+	default:	goto yy494;
+	}
+yy496:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy921;
+	case 'I':
+	case 'i':	goto yy920;
+	case 'L':
+	case 'l':	goto yy918;
+	case 'N':
+	case 'n':	goto yy919;
+	case 'O':
+	case 'o':	goto yy922;
+	case 'T':
+	case 't':	goto yy917;
+	case 'V':
+	case 'v':	goto yy916;
+	default:	goto yy494;
+	}
+yy497:
+	yych = *(marker = ++p);
+	if (yych <= 'M') {
+		if (yych == 'A') goto yy908;
+		if (yych <= 'L') goto yy494;
+		goto yy907;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy494;
+			goto yy908;
+		} else {
+			if (yych == 'm') goto yy907;
+			goto yy494;
+		}
+	}
+yy498:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy889;
+	case 'B':
+	case 'b':	goto yy888;
+	case 'C':
+	case 'c':	goto yy887;
+	case 'D':
+	case 'd':	goto yy886;
+	case 'F':
+	case 'f':	goto yy885;
+	case 'I':
+	case 'i':	goto yy884;
+	case 'P':
+	case 'p':	goto yy883;
+	case 'T':
+	case 't':	goto yy882;
+	case 'W':
+	case 'w':	goto yy533;
+	default:	goto yy494;
+	}
+yy499:
+	yych = *(marker = ++p);
+	if (yych <= 'T') {
+		if (yych <= 'E') {
+			if (yych == 'A') goto yy869;
+			if (yych <= 'D') goto yy494;
+			goto yy868;
+		} else {
+			if (yych == 'I') goto yy867;
+			if (yych <= 'S') goto yy494;
+			goto yy870;
+		}
+	} else {
+		if (yych <= 'e') {
+			if (yych == 'a') goto yy869;
+			if (yych <= 'd') goto yy494;
+			goto yy868;
+		} else {
+			if (yych <= 'i') {
+				if (yych <= 'h') goto yy494;
+				goto yy867;
+			} else {
+				if (yych == 't') goto yy870;
+				goto yy494;
+			}
+		}
+	}
+yy500:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'E':
+	case 'e':	goto yy852;
+	case 'G':
+	case 'g':	goto yy533;
+	case 'I':
+	case 'i':	goto yy850;
+	case 'O':
+	case 'o':	goto yy851;
+	case 'T':
+	case 't':	goto yy849;
+	default:	goto yy494;
+	}
+yy501:
+	yych = *(marker = ++p);
+	if (yych <= 'S') {
+		if (yych <= '3') {
+			if (yych <= '2') goto yy494;
+			goto yy845;
+		} else {
+			if (yych == 'C') goto yy843;
+			goto yy494;
+		}
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'T') goto yy844;
+			if (yych <= 'b') goto yy494;
+			goto yy843;
+		} else {
+			if (yych == 't') goto yy844;
+			goto yy494;
+		}
+	}
+yy502:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy825;
+	case 'C':
+	case 'c':	goto yy822;
+	case 'M':
+	case 'm':	goto yy824;
+	case 'N':
+	case 'n':	goto yy823;
+	case 'P':
+	case 'p':	goto yy821;
+	case 'R':
+	case 'r':	goto yy820;
+	case 'T':
+	case 't':	goto yy819;
+	default:	goto yy494;
+	}
+yy503:
+	yych = *(marker = ++p);
+	if (yych <= 'D') {
+		if (yych == 'A') goto yy813;
+		if (yych <= 'C') goto yy494;
+		goto yy812;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy494;
+			goto yy813;
+		} else {
+			if (yych == 'd') goto yy812;
+			goto yy494;
+		}
+	}
+yy504:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy779;
+	case 'E':
+	case 'e':	goto yy778;
+	case 'I':
+	case 'i':	goto yy781;
+	case 'M':
+	case 'm':	goto yy777;
+	case 'S':
+	case 's':	goto yy776;
+	case 'T':
+	case 't':	goto yy780;
+	case 'U':
+	case 'u':	goto yy775;
+	case 'V':
+	case 'v':	goto yy774;
+	default:	goto yy494;
+	}
+yy505:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'E':
+	case 'e':	goto yy769;
+	case 'F':
+	case 'f':	goto yy768;
+	case 'I':
+	case 'i':	goto yy767;
+	case 'N':
+	case 'n':	goto yy766;
+	case 'O':
+	case 'o':	goto yy765;
+	default:	goto yy494;
+	}
+yy506:
+	yych = *(marker = ++p);
+	if (yych <= 'P') {
+		if (yych == 'I') goto yy751;
+		if (yych <= 'O') goto yy494;
+		goto yy752;
+	} else {
+		if (yych <= 'i') {
+			if (yych <= 'h') goto yy494;
+			goto yy751;
+		} else {
+			if (yych == 'p') goto yy752;
+			goto yy494;
+		}
+	}
+yy507:
+	yych = *(marker = ++p);
+	if (yych <= 'S') {
+		if (yych <= 'L') {
+			if (yych == 'A') goto yy733;
+			if (yych <= 'K') goto yy494;
+			goto yy732;
+		} else {
+			if (yych <= 'O') {
+				if (yych <= 'N') goto yy494;
+				goto yy734;
+			} else {
+				if (yych <= 'Q') goto yy494;
+				if (yych <= 'R') goto yy731;
+				goto yy730;
+			}
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'a') {
+				if (yych <= '`') goto yy494;
+				goto yy733;
+			} else {
+				if (yych == 'l') goto yy732;
+				goto yy494;
+			}
+		} else {
+			if (yych <= 'q') {
+				if (yych <= 'o') goto yy734;
+				goto yy494;
+			} else {
+				if (yych <= 'r') goto yy731;
+				if (yych <= 's') goto yy730;
+				goto yy494;
+			}
+		}
+	}
+yy508:
+	yych = *(marker = ++p);
+	if (yych <= 'T') {
+		if (yych <= 'L') {
+			if (yych == 'E') goto yy720;
+			goto yy494;
+		} else {
+			if (yych <= 'M') goto yy719;
+			if (yych <= 'R') goto yy494;
+			if (yych <= 'S') goto yy718;
+			goto yy717;
+		}
+	} else {
+		if (yych <= 'm') {
+			if (yych == 'e') goto yy720;
+			if (yych <= 'l') goto yy494;
+			goto yy719;
+		} else {
+			if (yych <= 'r') goto yy494;
+			if (yych <= 's') goto yy718;
+			if (yych <= 't') goto yy717;
+			goto yy494;
+		}
+	}
+yy509:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'E':
+	case 'e':	goto yy673;
+	case 'F':
+	case 'f':	goto yy672;
+	case 'G':
+	case 'g':	goto yy671;
+	case 'H':
+	case 'h':	goto yy676;
+	case 'I':
+	case 'i':	goto yy675;
+	case 'K':
+	case 'k':	goto yy670;
+	case 'M':
+	case 'm':	goto yy669;
+	case 'N':
+	case 'n':	goto yy674;
+	case 'O':
+	case 'o':	goto yy668;
+	case 'P':
+	case 'p':	goto yy667;
+	case 'S':
+	case 's':	goto yy666;
+	case 'T':
+	case 't':	goto yy665;
+	case 'V':
+	case 'v':	goto yy664;
+	default:	goto yy494;
+	}
+yy510:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy640;
+	case 'E':
+	case 'e':	goto yy636;
+	case 'F':
+	case 'f':	goto yy639;
+	case 'H':
+	case 'h':	goto yy635;
+	case 'I':
+	case 'i':	goto yy637;
+	case 'N':
+	case 'n':	goto yy638;
+	case 'V':
+	case 'v':	goto yy533;
+	default:	goto yy494;
+	}
+yy511:
+	yych = *(marker = ++p);
+	if (yych <= 'T') {
+		if (yych <= 'N') {
+			if (yych == 'D') goto yy627;
+			if (yych <= 'M') goto yy494;
+			goto yy626;
+		} else {
+			if (yych == 'R') goto yy628;
+			if (yych <= 'S') goto yy494;
+			goto yy625;
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych == 'd') goto yy627;
+			if (yych <= 'm') goto yy494;
+			goto yy626;
+		} else {
+			if (yych <= 'r') {
+				if (yych <= 'q') goto yy494;
+				goto yy628;
+			} else {
+				if (yych == 't') goto yy625;
+				goto yy494;
+			}
+		}
+	}
+yy512:
+	yych = *(marker = ++p);
+	if (yych <= 'I') {
+		if (yych == 'E') goto yy609;
+		if (yych <= 'H') goto yy494;
+		goto yy608;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy494;
+			goto yy609;
+		} else {
+			if (yych == 'i') goto yy608;
+			goto yy494;
+		}
+	}
+yy513:
+	yych = *(marker = ++p);
+	if (yych <= 'Y') {
+		if (yych <= 'R') {
+			if (yych == 'E') goto yy598;
+			goto yy494;
+		} else {
+			if (yych <= 'S') goto yy599;
+			if (yych <= 'T') goto yy597;
+			if (yych <= 'X') goto yy494;
+			goto yy596;
+		}
+	} else {
+		if (yych <= 's') {
+			if (yych == 'e') goto yy598;
+			if (yych <= 'r') goto yy494;
+			goto yy599;
+		} else {
+			if (yych <= 't') goto yy597;
+			if (yych == 'y') goto yy596;
+			goto yy494;
+		}
+	}
+yy514:
+	yych = *(marker = ++p);
+	if (yych <= 'R') {
+		if (yych <= 'F') {
+			if (yych == 'C') goto yy575;
+			if (yych <= 'E') goto yy494;
+			goto yy573;
+		} else {
+			if (yych == 'M') goto yy574;
+			if (yych <= 'Q') goto yy494;
+			goto yy572;
+		}
+	} else {
+		if (yych <= 'f') {
+			if (yych == 'c') goto yy575;
+			if (yych <= 'e') goto yy494;
+			goto yy573;
+		} else {
+			if (yych <= 'm') {
+				if (yych <= 'l') goto yy494;
+				goto yy574;
+			} else {
+				if (yych == 'r') goto yy572;
+				goto yy494;
+			}
+		}
+	}
+yy515:
+	yych = *(marker = ++p);
+	if (yych == '3') goto yy567;
+	goto yy494;
+yy516:
+	yych = *(marker = ++p);
+	if (yych <= 'O') {
+		if (yych <= 'H') {
+			if (yych == 'E') goto yy557;
+			goto yy494;
+		} else {
+			if (yych <= 'I') goto yy556;
+			if (yych <= 'N') goto yy494;
+			goto yy555;
+		}
+	} else {
+		if (yych <= 'h') {
+			if (yych == 'e') goto yy557;
+			goto yy494;
+		} else {
+			if (yych <= 'i') goto yy556;
+			if (yych == 'o') goto yy555;
+			goto yy494;
+		}
+	}
+yy517:
+	yych = *(marker = ++p);
+	if (yych == 'D') goto yy553;
+	if (yych == 'd') goto yy553;
+	goto yy494;
+yy518:
+	yych = *(marker = ++p);
+	if (yych == 'E') goto yy548;
+	if (yych == 'e') goto yy548;
+	goto yy494;
+yy519:
+	yych = *(marker = ++p);
+	if (yych == 'U') goto yy545;
+	if (yych == 'u') goto yy545;
+	goto yy494;
+yy520:
+	yych = *(marker = ++p);
+	if (yych == 'M') goto yy530;
+	if (yych == 'm') goto yy530;
+	goto yy494;
+yy521:
+	yych = *++p;
+	goto yy494;
+yy522:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy523;
+	if (yych <= 0xBF) goto yy521;
+yy523:
+	p = marker;
+	goto yy494;
+yy524:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy523;
+	if (yych <= 0xBF) goto yy522;
+	goto yy523;
+yy525:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy523;
+	if (yych <= 0xBF) goto yy522;
+	goto yy523;
+yy526:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy523;
+	if (yych <= 0xBF) goto yy525;
+	goto yy523;
+yy527:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy523;
+	if (yych <= 0xBF) goto yy525;
+	goto yy523;
+yy528:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy523;
+	if (yych <= 0x8F) goto yy525;
+	goto yy523;
+yy529:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy523;
+	if (yych <= 0x9F) goto yy522;
+	goto yy523;
+yy530:
+	yych = *++p;
+	if (yych == 'S') goto yy531;
+	if (yych != 's') goto yy523;
+yy531:
+	yych = *++p;
+	if (yych == 'G') goto yy532;
+	if (yych != 'g') goto yy523;
+yy532:
+	yych = *++p;
+	if (yych == 'R') goto yy533;
+	if (yych != 'r') goto yy523;
+yy533:
+	yych = *++p;
+	if (yych != ':') goto yy523;
+yy534:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy534;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '<') goto yy523;
+			if (yych <= '>') goto yy543;
+			goto yy523;
+		} else {
+			if (yych <= 0xDF) goto yy536;
+			if (yych <= 0xE0) goto yy537;
+			goto yy538;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy542;
+			if (yych <= 0xEF) goto yy538;
+			goto yy539;
+		} else {
+			if (yych <= 0xF3) goto yy540;
+			if (yych <= 0xF4) goto yy541;
+			goto yy523;
+		}
+	}
+yy536:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy523;
+	if (yych <= 0xBF) goto yy534;
+	goto yy523;
+yy537:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy523;
+	if (yych <= 0xBF) goto yy536;
+	goto yy523;
+yy538:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy523;
+	if (yych <= 0xBF) goto yy536;
+	goto yy523;
+yy539:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy523;
+	if (yych <= 0xBF) goto yy538;
+	goto yy523;
+yy540:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy523;
+	if (yych <= 0xBF) goto yy538;
+	goto yy523;
+yy541:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy523;
+	if (yych <= 0x8F) goto yy538;
+	goto yy523;
+yy542:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy523;
+	if (yych <= 0x9F) goto yy536;
+	goto yy523;
+yy543:
+	++p;
+	{ return (bufsize_t)(p - start); }
+yy545:
+	yych = *++p;
+	if (yych == 'E') goto yy546;
+	if (yych != 'e') goto yy523;
+yy546:
+	yych = *++p;
+	if (yych == 'R') goto yy547;
+	if (yych != 'r') goto yy523;
+yy547:
+	yych = *++p;
+	if (yych == 'Y') goto yy533;
+	if (yych == 'y') goto yy533;
+	goto yy523;
+yy548:
+	yych = *++p;
+	if (yych == 'Y') goto yy549;
+	if (yych != 'y') goto yy523;
+yy549:
+	yych = *++p;
+	if (yych == 'P') goto yy550;
+	if (yych != 'p') goto yy523;
+yy550:
+	yych = *++p;
+	if (yych == 'A') goto yy551;
+	if (yych != 'a') goto yy523;
+yy551:
+	yych = *++p;
+	if (yych == 'R') goto yy552;
+	if (yych != 'r') goto yy523;
+yy552:
+	yych = *++p;
+	if (yych == 'C') goto yy533;
+	if (yych == 'c') goto yy533;
+	goto yy523;
+yy553:
+	yych = *++p;
+	if (yych != '2') goto yy523;
+	yych = *++p;
+	if (yych == 'K') goto yy533;
+	if (yych == 'k') goto yy533;
+	goto yy523;
+yy555:
+	yych = *++p;
+	if (yych == 'L') goto yy566;
+	if (yych == 'l') goto yy566;
+	goto yy523;
+yy556:
+	yych = *++p;
+	if (yych == 'T') goto yy562;
+	if (yych == 't') goto yy562;
+	goto yy523;
+yy557:
+	yych = *++p;
+	if (yych == 'S') goto yy558;
+	if (yych != 's') goto yy523;
+yy558:
+	yych = *++p;
+	if (yych == 'H') goto yy559;
+	if (yych != 'h') goto yy523;
+yy559:
+	yych = *++p;
+	if (yych == 'A') goto yy560;
+	if (yych != 'a') goto yy523;
+yy560:
+	yych = *++p;
+	if (yych == 'R') goto yy561;
+	if (yych != 'r') goto yy523;
+yy561:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy562:
+	yych = *++p;
+	if (yych == 'C') goto yy563;
+	if (yych != 'c') goto yy523;
+yy563:
+	yych = *++p;
+	if (yych == 'O') goto yy564;
+	if (yych != 'o') goto yy523;
+yy564:
+	yych = *++p;
+	if (yych == 'I') goto yy565;
+	if (yych != 'i') goto yy523;
+yy565:
+	yych = *++p;
+	if (yych == 'N') goto yy533;
+	if (yych == 'n') goto yy533;
+	goto yy523;
+yy566:
+	yych = *++p;
+	if (yych == 'O') goto yy533;
+	if (yych == 'o') goto yy533;
+	goto yy523;
+yy567:
+	yych = *++p;
+	if (yych != '9') goto yy523;
+	yych = *++p;
+	if (yych != '.') goto yy523;
+	yych = *++p;
+	if (yych != '5') goto yy523;
+	yych = *++p;
+	if (yych != '0') goto yy523;
+	yych = *++p;
+	if (yych <= 'Q') goto yy523;
+	if (yych <= 'S') goto yy533;
+	if (yych <= 'q') goto yy523;
+	if (yych <= 's') goto yy533;
+	goto yy523;
+yy572:
+	yych = *++p;
+	if (yych == 'I') goto yy533;
+	if (yych == 'i') goto yy533;
+	goto yy523;
+yy573:
+	yych = *++p;
+	if (yych == 'I') goto yy594;
+	if (yych == 'i') goto yy594;
+	goto yy523;
+yy574:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy584;
+		if (yych <= 'O') goto yy523;
+		goto yy585;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy523;
+			goto yy584;
+		} else {
+			if (yych == 'p') goto yy585;
+			goto yy523;
+		}
+	}
+yy575:
+	yych = *++p;
+	if (yych == 'O') goto yy576;
+	if (yych != 'o') goto yy523;
+yy576:
+	yych = *++p;
+	if (yych == 'N') goto yy577;
+	if (yych != 'n') goto yy523;
+yy577:
+	yych = *++p;
+	if (yych == '-') goto yy578;
+	if (yych == ':') goto yy534;
+	goto yy523;
+yy578:
+	yych = *++p;
+	if (yych == 'U') goto yy579;
+	if (yych != 'u') goto yy523;
+yy579:
+	yych = *++p;
+	if (yych == 'S') goto yy580;
+	if (yych != 's') goto yy523;
+yy580:
+	yych = *++p;
+	if (yych == 'E') goto yy581;
+	if (yych != 'e') goto yy523;
+yy581:
+	yych = *++p;
+	if (yych == 'R') goto yy582;
+	if (yych != 'r') goto yy523;
+yy582:
+	yych = *++p;
+	if (yych == 'I') goto yy583;
+	if (yych != 'i') goto yy523;
+yy583:
+	yych = *++p;
+	if (yych == 'D') goto yy533;
+	if (yych == 'd') goto yy533;
+	goto yy523;
+yy584:
+	yych = *++p;
+	if (yych == 'R') goto yy586;
+	if (yych == 'r') goto yy586;
+	goto yy523;
+yy585:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy586:
+	yych = *++p;
+	if (yych == 'P') goto yy587;
+	if (yych != 'p') goto yy523;
+yy587:
+	yych = *++p;
+	if (yych == 'C') goto yy588;
+	if (yych != 'c') goto yy523;
+yy588:
+	yych = *++p;
+	if (yych != '.') goto yy523;
+	yych = *++p;
+	if (yych == 'B') goto yy590;
+	if (yych != 'b') goto yy523;
+yy590:
+	yych = *++p;
+	if (yych == 'E') goto yy591;
+	if (yych != 'e') goto yy523;
+yy591:
+	yych = *++p;
+	if (yych == 'E') goto yy592;
+	if (yych != 'e') goto yy523;
+yy592:
+	yych = *++p;
+	if (yych == 'P') goto yy593;
+	if (yych != 'p') goto yy523;
+yy593:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'S') goto yy533;
+		if (yych == 's') goto yy533;
+		goto yy523;
+	}
+yy594:
+	yych = *++p;
+	if (yych == 'R') goto yy595;
+	if (yych != 'r') goto yy523;
+yy595:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy596:
+	yych = *++p;
+	if (yych == 'C') goto yy604;
+	if (yych == 'c') goto yy604;
+	goto yy523;
+yy597:
+	yych = *++p;
+	if (yych == 'A') goto yy603;
+	if (yych == 'a') goto yy603;
+	goto yy523;
+yy598:
+	yych = *++p;
+	if (yych == 'B') goto yy600;
+	if (yych == 'b') goto yy600;
+	goto yy523;
+yy599:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'S') goto yy533;
+		if (yych == 's') goto yy533;
+		goto yy523;
+	}
+yy600:
+	yych = *++p;
+	if (yych == 'C') goto yy601;
+	if (yych != 'c') goto yy523;
+yy601:
+	yych = *++p;
+	if (yych == 'A') goto yy602;
+	if (yych != 'a') goto yy523;
+yy602:
+	yych = *++p;
+	if (yych == 'L') goto yy533;
+	if (yych == 'l') goto yy533;
+	goto yy523;
+yy603:
+	yych = *++p;
+	if (yych == 'I') goto yy533;
+	if (yych == 'i') goto yy533;
+	goto yy523;
+yy604:
+	yych = *++p;
+	if (yych == 'I') goto yy605;
+	if (yych != 'i') goto yy523;
+yy605:
+	yych = *++p;
+	if (yych == 'W') goto yy606;
+	if (yych != 'w') goto yy523;
+yy606:
+	yych = *++p;
+	if (yych == 'Y') goto yy607;
+	if (yych != 'y') goto yy523;
+yy607:
+	yych = *++p;
+	if (yych == 'G') goto yy533;
+	if (yych == 'g') goto yy533;
+	goto yy523;
+yy608:
+	yych = *++p;
+	if (yych == 'E') goto yy617;
+	if (yych == 'e') goto yy617;
+	goto yy523;
+yy609:
+	yych = *++p;
+	if (yych <= 'N') {
+		if (yych <= 'L') goto yy523;
+		if (yych >= 'N') goto yy611;
+	} else {
+		if (yych <= 'l') goto yy523;
+		if (yych <= 'm') goto yy610;
+		if (yych <= 'n') goto yy611;
+		goto yy523;
+	}
+yy610:
+	yych = *++p;
+	if (yych == 'M') goto yy616;
+	if (yych == 'm') goto yy616;
+	goto yy523;
+yy611:
+	yych = *++p;
+	if (yych == 'T') goto yy612;
+	if (yych != 't') goto yy523;
+yy612:
+	yych = *++p;
+	if (yych == 'R') goto yy613;
+	if (yych != 'r') goto yy523;
+yy613:
+	yych = *++p;
+	if (yych == 'I') goto yy614;
+	if (yych != 'i') goto yy523;
+yy614:
+	yych = *++p;
+	if (yych == 'L') goto yy615;
+	if (yych != 'l') goto yy523;
+yy615:
+	yych = *++p;
+	if (yych == 'O') goto yy533;
+	if (yych == 'o') goto yy533;
+	goto yy523;
+yy616:
+	yych = *++p;
+	if (yych == 'I') goto yy533;
+	if (yych == 'i') goto yy533;
+	goto yy523;
+yy617:
+	yych = *++p;
+	if (yych == 'W') goto yy618;
+	if (yych != 'w') goto yy523;
+yy618:
+	yych = *++p;
+	if (yych != '-') goto yy523;
+	yych = *++p;
+	if (yych == 'S') goto yy620;
+	if (yych != 's') goto yy523;
+yy620:
+	yych = *++p;
+	if (yych == 'O') goto yy621;
+	if (yych != 'o') goto yy523;
+yy621:
+	yych = *++p;
+	if (yych == 'U') goto yy622;
+	if (yych != 'u') goto yy523;
+yy622:
+	yych = *++p;
+	if (yych == 'R') goto yy623;
+	if (yych != 'r') goto yy523;
+yy623:
+	yych = *++p;
+	if (yych == 'C') goto yy624;
+	if (yych != 'c') goto yy523;
+yy624:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy625:
+	yych = *++p;
+	if (yych == '2') goto yy632;
+	goto yy523;
+yy626:
+	yych = *++p;
+	if (yych == 'R') goto yy629;
+	if (yych == 'r') goto yy629;
+	goto yy523;
+yy627:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy628:
+	yych = *++p;
+	if (yych == 'N') goto yy533;
+	if (yych == 'n') goto yy533;
+	goto yy523;
+yy629:
+	yych = *++p;
+	if (yych == 'E') goto yy630;
+	if (yych != 'e') goto yy523;
+yy630:
+	yych = *++p;
+	if (yych == 'A') goto yy631;
+	if (yych != 'a') goto yy523;
+yy631:
+	yych = *++p;
+	if (yych == 'L') goto yy533;
+	if (yych == 'l') goto yy533;
+	goto yy523;
+yy632:
+	yych = *++p;
+	if (yych != '0') goto yy523;
+	yych = *++p;
+	if (yych != '0') goto yy523;
+	yych = *++p;
+	if (yych == '4') goto yy533;
+	goto yy523;
+yy635:
+	yych = *++p;
+	if (yych == 'I') goto yy654;
+	if (yych == 'i') goto yy654;
+	goto yy523;
+yy636:
+	yych = *++p;
+	if (yych <= 'L') {
+		if (yych == 'A') goto yy646;
+		if (yych <= 'K') goto yy523;
+		goto yy645;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy523;
+			goto yy646;
+		} else {
+			if (yych == 'l') goto yy645;
+			goto yy523;
+		}
+	}
+yy637:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy638:
+	yych = *++p;
+	if (yych == '3') goto yy642;
+	goto yy523;
+yy639:
+	yych = *++p;
+	if (yych == 'T') goto yy641;
+	if (yych == 't') goto yy641;
+	goto yy523;
+yy640:
+	yych = *++p;
+	if (yych == 'G') goto yy533;
+	if (yych == 'g') goto yy533;
+	goto yy523;
+yy641:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy642:
+	yych = *++p;
+	if (yych != '2') goto yy523;
+	yych = *++p;
+	if (yych != '7') goto yy523;
+	yych = *++p;
+	if (yych == '0') goto yy533;
+	goto yy523;
+yy645:
+	yych = *++p;
+	if (yych <= 'M') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'N') goto yy652;
+		if (yych == 'n') goto yy652;
+		goto yy523;
+	}
+yy646:
+	yych = *++p;
+	if (yych == 'M') goto yy647;
+	if (yych != 'm') goto yy523;
+yy647:
+	yych = *++p;
+	if (yych == 'S') goto yy648;
+	if (yych != 's') goto yy523;
+yy648:
+	yych = *++p;
+	if (yych == 'P') goto yy649;
+	if (yych != 'p') goto yy523;
+yy649:
+	yych = *++p;
+	if (yych == 'E') goto yy650;
+	if (yych != 'e') goto yy523;
+yy650:
+	yych = *++p;
+	if (yych == 'A') goto yy651;
+	if (yych != 'a') goto yy523;
+yy651:
+	yych = *++p;
+	if (yych == 'K') goto yy533;
+	if (yych == 'k') goto yy533;
+	goto yy523;
+yy652:
+	yych = *++p;
+	if (yych == 'E') goto yy653;
+	if (yych != 'e') goto yy523;
+yy653:
+	yych = *++p;
+	if (yych == 'T') goto yy533;
+	if (yych == 't') goto yy533;
+	goto yy523;
+yy654:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'N') goto yy655;
+		if (yych <= 'R') goto yy523;
+		goto yy656;
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'm') goto yy523;
+		} else {
+			if (yych == 's') goto yy656;
+			goto yy523;
+		}
+	}
+yy655:
+	yych = *++p;
+	if (yych == 'G') goto yy663;
+	if (yych == 'g') goto yy663;
+	goto yy523;
+yy656:
+	yych = *++p;
+	if (yych == 'M') goto yy657;
+	if (yych != 'm') goto yy523;
+yy657:
+	yych = *++p;
+	if (yych == 'E') goto yy658;
+	if (yych != 'e') goto yy523;
+yy658:
+	yych = *++p;
+	if (yych == 'S') goto yy659;
+	if (yych != 's') goto yy523;
+yy659:
+	yych = *++p;
+	if (yych == 'S') goto yy660;
+	if (yych != 's') goto yy523;
+yy660:
+	yych = *++p;
+	if (yych == 'A') goto yy661;
+	if (yych != 'a') goto yy523;
+yy661:
+	yych = *++p;
+	if (yych == 'G') goto yy662;
+	if (yych != 'g') goto yy523;
+yy662:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy663:
+	yych = *++p;
+	if (yych == 'S') goto yy533;
+	if (yych == 's') goto yy533;
+	goto yy523;
+yy664:
+	yych = *++p;
+	if (yych == 'N') goto yy533;
+	if (yych == 'n') goto yy533;
+	goto yy523;
+yy665:
+	yych = *++p;
+	if (yych == 'E') goto yy715;
+	if (yych == 'e') goto yy715;
+	goto yy523;
+yy666:
+	yych = *++p;
+	if (yych == 'H') goto yy533;
+	if (yych == 'h') goto yy533;
+	goto yy523;
+yy667:
+	yych = *++p;
+	if (yych == 'O') goto yy711;
+	if (yych == 'o') goto yy711;
+	goto yy523;
+yy668:
+	yych = *++p;
+	if (yych <= 'L') {
+		if (yych == 'A') goto yy701;
+		if (yych <= 'K') goto yy523;
+		goto yy702;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy523;
+			goto yy701;
+		} else {
+			if (yych == 'l') goto yy702;
+			goto yy523;
+		}
+	}
+yy669:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'B') goto yy533;
+		if (yych <= 'R') goto yy523;
+		goto yy533;
+	} else {
+		if (yych <= 'b') {
+			if (yych <= 'a') goto yy523;
+			goto yy533;
+		} else {
+			if (yych == 's') goto yy533;
+			goto yy523;
+		}
+	}
+yy670:
+	yych = *++p;
+	if (yych == 'Y') goto yy699;
+	if (yych == 'y') goto yy699;
+	goto yy523;
+yy671:
+	yych = *++p;
+	if (yych == 'N') goto yy533;
+	if (yych == 'n') goto yy533;
+	goto yy523;
+yy672:
+	yych = *++p;
+	if (yych == 'T') goto yy698;
+	if (yych == 't') goto yy698;
+	goto yy523;
+yy673:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych <= 'C') {
+			if (yych <= 'B') goto yy523;
+			goto yy685;
+		} else {
+			if (yych <= 'Q') goto yy523;
+			if (yych <= 'R') goto yy683;
+			goto yy684;
+		}
+	} else {
+		if (yych <= 'q') {
+			if (yych == 'c') goto yy685;
+			goto yy523;
+		} else {
+			if (yych <= 'r') goto yy683;
+			if (yych <= 's') goto yy684;
+			goto yy523;
+		}
+	}
+yy674:
+	yych = *++p;
+	if (yych == 'M') goto yy682;
+	if (yych == 'm') goto yy682;
+	goto yy523;
+yy675:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'E') goto yy679;
+		if (yych <= 'O') goto yy523;
+		goto yy680;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy523;
+			goto yy679;
+		} else {
+			if (yych == 'p') goto yy680;
+			goto yy523;
+		}
+	}
+yy676:
+	yych = *++p;
+	if (yych == 'T') goto yy677;
+	if (yych != 't') goto yy523;
+yy677:
+	yych = *++p;
+	if (yych == 'T') goto yy678;
+	if (yych != 't') goto yy523;
+yy678:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy679:
+	yych = *++p;
+	if (yych == 'V') goto yy681;
+	if (yych == 'v') goto yy681;
+	goto yy523;
+yy680:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'S') goto yy533;
+		if (yych == 's') goto yy533;
+		goto yy523;
+	}
+yy681:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy682:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy683:
+	yych = *++p;
+	if (yych == 'V') goto yy695;
+	if (yych == 'v') goto yy695;
+	goto yy523;
+yy684:
+	yych = *++p;
+	if (yych == 'S') goto yy692;
+	if (yych == 's') goto yy692;
+	goto yy523;
+yy685:
+	yych = *++p;
+	if (yych == 'O') goto yy686;
+	if (yych != 'o') goto yy523;
+yy686:
+	yych = *++p;
+	if (yych == 'N') goto yy687;
+	if (yych != 'n') goto yy523;
+yy687:
+	yych = *++p;
+	if (yych == 'D') goto yy688;
+	if (yych != 'd') goto yy523;
+yy688:
+	yych = *++p;
+	if (yych == 'L') goto yy689;
+	if (yych != 'l') goto yy523;
+yy689:
+	yych = *++p;
+	if (yych == 'I') goto yy690;
+	if (yych != 'i') goto yy523;
+yy690:
+	yych = *++p;
+	if (yych == 'F') goto yy691;
+	if (yych != 'f') goto yy523;
+yy691:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy692:
+	yych = *++p;
+	if (yych == 'I') goto yy693;
+	if (yych != 'i') goto yy523;
+yy693:
+	yych = *++p;
+	if (yych == 'O') goto yy694;
+	if (yych != 'o') goto yy523;
+yy694:
+	yych = *++p;
+	if (yych == 'N') goto yy533;
+	if (yych == 'n') goto yy533;
+	goto yy523;
+yy695:
+	yych = *++p;
+	if (yych == 'I') goto yy696;
+	if (yych != 'i') goto yy523;
+yy696:
+	yych = *++p;
+	if (yych == 'C') goto yy697;
+	if (yych != 'c') goto yy523;
+yy697:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy698:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy699:
+	yych = *++p;
+	if (yych == 'P') goto yy700;
+	if (yych != 'p') goto yy523;
+yy700:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy701:
+	yych = *++p;
+	if (yych == 'P') goto yy705;
+	if (yych == 'p') goto yy705;
+	goto yy523;
+yy702:
+	yych = *++p;
+	if (yych == 'D') goto yy703;
+	if (yych != 'd') goto yy523;
+yy703:
+	yych = *++p;
+	if (yych == 'A') goto yy704;
+	if (yych != 'a') goto yy523;
+yy704:
+	yych = *++p;
+	if (yych == 'T') goto yy533;
+	if (yych == 't') goto yy533;
+	goto yy523;
+yy705:
+	yych = *++p;
+	if (yych != '.') goto yy523;
+	yych = *++p;
+	if (yych == 'B') goto yy707;
+	if (yych != 'b') goto yy523;
+yy707:
+	yych = *++p;
+	if (yych == 'E') goto yy708;
+	if (yych != 'e') goto yy523;
+yy708:
+	yych = *++p;
+	if (yych == 'E') goto yy709;
+	if (yych != 'e') goto yy523;
+yy709:
+	yych = *++p;
+	if (yych == 'P') goto yy710;
+	if (yych != 'p') goto yy523;
+yy710:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'S') goto yy533;
+		if (yych == 's') goto yy533;
+		goto yy523;
+	}
+yy711:
+	yych = *++p;
+	if (yych == 'T') goto yy712;
+	if (yych != 't') goto yy523;
+yy712:
+	yych = *++p;
+	if (yych == 'I') goto yy713;
+	if (yych != 'i') goto yy523;
+yy713:
+	yych = *++p;
+	if (yych == 'F') goto yy714;
+	if (yych != 'f') goto yy523;
+yy714:
+	yych = *++p;
+	if (yych == 'Y') goto yy533;
+	if (yych == 'y') goto yy533;
+	goto yy523;
+yy715:
+	yych = *++p;
+	if (yych == 'A') goto yy716;
+	if (yych != 'a') goto yy523;
+yy716:
+	yych = *++p;
+	if (yych == 'M') goto yy533;
+	if (yych == 'm') goto yy533;
+	goto yy523;
+yy717:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'M') goto yy729;
+		if (yych <= 'R') goto yy523;
+		goto yy728;
+	} else {
+		if (yych <= 'm') {
+			if (yych <= 'l') goto yy523;
+			goto yy729;
+		} else {
+			if (yych == 's') goto yy728;
+			goto yy523;
+		}
+	}
+yy718:
+	yych = *++p;
+	if (yych == 'Y') goto yy726;
+	if (yych == 'y') goto yy726;
+	goto yy523;
+yy719:
+	yych = *++p;
+	if (yych == 'I') goto yy533;
+	if (yych == 'i') goto yy533;
+	goto yy523;
+yy720:
+	yych = *++p;
+	if (yych == 'S') goto yy721;
+	if (yych != 's') goto yy523;
+yy721:
+	yych = *++p;
+	if (yych <= 'N') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'O') goto yy722;
+		if (yych != 'o') goto yy523;
+	}
+yy722:
+	yych = *++p;
+	if (yych == 'U') goto yy723;
+	if (yych != 'u') goto yy523;
+yy723:
+	yych = *++p;
+	if (yych == 'R') goto yy724;
+	if (yych != 'r') goto yy523;
+yy724:
+	yych = *++p;
+	if (yych == 'C') goto yy725;
+	if (yych != 'c') goto yy523;
+yy725:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy726:
+	yych = *++p;
+	if (yych == 'N') goto yy727;
+	if (yych != 'n') goto yy523;
+yy727:
+	yych = *++p;
+	if (yych == 'C') goto yy533;
+	if (yych == 'c') goto yy533;
+	goto yy523;
+yy728:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy729:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy730:
+	yych = *++p;
+	if (yych == 'Y') goto yy750;
+	if (yych == 'y') goto yy750;
+	goto yy523;
+yy731:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'E') goto yy747;
+		if (yych <= 'N') goto yy523;
+		goto yy748;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy523;
+			goto yy747;
+		} else {
+			if (yych == 'o') goto yy748;
+			goto yy523;
+		}
+	}
+yy732:
+	yych = *++p;
+	if (yych == 'A') goto yy742;
+	if (yych == 'a') goto yy742;
+	goto yy523;
+yy733:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy735;
+		if (yych <= 'O') goto yy523;
+		goto yy736;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy523;
+			goto yy735;
+		} else {
+			if (yych == 'p') goto yy736;
+			goto yy523;
+		}
+	}
+yy734:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy735:
+	yych = *++p;
+	if (yych == 'M') goto yy533;
+	if (yych == 'm') goto yy533;
+	goto yy523;
+yy736:
+	yych = *++p;
+	if (yych == 'A') goto yy737;
+	if (yych != 'a') goto yy523;
+yy737:
+	yych = *++p;
+	if (yych == 'R') goto yy738;
+	if (yych != 'r') goto yy523;
+yy738:
+	yych = *++p;
+	if (yych == 'A') goto yy739;
+	if (yych != 'a') goto yy523;
+yy739:
+	yych = *++p;
+	if (yych == 'Z') goto yy740;
+	if (yych != 'z') goto yy523;
+yy740:
+	yych = *++p;
+	if (yych == 'Z') goto yy741;
+	if (yych != 'z') goto yy523;
+yy741:
+	yych = *++p;
+	if (yych == 'I') goto yy533;
+	if (yych == 'i') goto yy533;
+	goto yy523;
+yy742:
+	yych = *++p;
+	if (yych == 'T') goto yy743;
+	if (yych != 't') goto yy523;
+yy743:
+	yych = *++p;
+	if (yych == 'F') goto yy744;
+	if (yych != 'f') goto yy523;
+yy744:
+	yych = *++p;
+	if (yych == 'O') goto yy745;
+	if (yych != 'o') goto yy523;
+yy745:
+	yych = *++p;
+	if (yych == 'R') goto yy746;
+	if (yych != 'r') goto yy523;
+yy746:
+	yych = *++p;
+	if (yych == 'M') goto yy533;
+	if (yych == 'm') goto yy533;
+	goto yy523;
+yy747:
+	yych = *++p;
+	if (yych == 'S') goto yy533;
+	if (yych == 's') goto yy533;
+	goto yy523;
+yy748:
+	yych = *++p;
+	if (yych == 'X') goto yy749;
+	if (yych != 'x') goto yy523;
+yy749:
+	yych = *++p;
+	if (yych == 'Y') goto yy533;
+	if (yych == 'y') goto yy533;
+	goto yy523;
+yy750:
+	yych = *++p;
+	if (yych == 'C') goto yy533;
+	if (yych == 'c') goto yy533;
+	goto yy523;
+yy751:
+	yych = *++p;
+	if (yych == 'D') goto yy533;
+	if (yych == 'd') goto yy533;
+	goto yy523;
+yy752:
+	yych = *++p;
+	if (yych == 'A') goto yy753;
+	if (yych != 'a') goto yy523;
+yy753:
+	yych = *++p;
+	if (yych == 'Q') goto yy754;
+	if (yych != 'q') goto yy523;
+yy754:
+	yych = *++p;
+	if (yych == 'U') goto yy755;
+	if (yych != 'u') goto yy523;
+yy755:
+	yych = *++p;
+	if (yych == 'E') goto yy756;
+	if (yych != 'e') goto yy523;
+yy756:
+	yych = *++p;
+	if (yych == 'L') goto yy757;
+	if (yych != 'l') goto yy523;
+yy757:
+	yych = *++p;
+	if (yych == 'O') goto yy758;
+	if (yych != 'o') goto yy523;
+yy758:
+	yych = *++p;
+	if (yych == 'C') goto yy759;
+	if (yych != 'c') goto yy523;
+yy759:
+	yych = *++p;
+	if (yych == 'K') goto yy760;
+	if (yych != 'k') goto yy523;
+yy760:
+	yych = *++p;
+	if (yych == 'T') goto yy761;
+	if (yych != 't') goto yy523;
+yy761:
+	yych = *++p;
+	if (yych == 'O') goto yy762;
+	if (yych != 'o') goto yy523;
+yy762:
+	yych = *++p;
+	if (yych == 'K') goto yy763;
+	if (yych != 'k') goto yy523;
+yy763:
+	yych = *++p;
+	if (yych == 'E') goto yy764;
+	if (yych != 'e') goto yy523;
+yy764:
+	yych = *++p;
+	if (yych == 'N') goto yy533;
+	if (yych == 'n') goto yy533;
+	goto yy523;
+yy765:
+	yych = *++p;
+	if (yych == 'T') goto yy772;
+	if (yych == 't') goto yy772;
+	goto yy523;
+yy766:
+	yych = *++p;
+	if (yych == 'T') goto yy771;
+	if (yych == 't') goto yy771;
+	goto yy523;
+yy767:
+	yych = *++p;
+	if (yych <= 'G') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'H') goto yy533;
+		if (yych == 'h') goto yy533;
+		goto yy523;
+	}
+yy768:
+	yych = *++p;
+	if (yych == 'S') goto yy533;
+	if (yych == 's') goto yy533;
+	goto yy523;
+yy769:
+	yych = *++p;
+	if (yych == 'W') goto yy770;
+	if (yych != 'w') goto yy523;
+yy770:
+	yych = *++p;
+	if (yych == 'S') goto yy533;
+	if (yych == 's') goto yy533;
+	goto yy523;
+yy771:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy772:
+	yych = *++p;
+	if (yych == 'E') goto yy773;
+	if (yych != 'e') goto yy523;
+yy773:
+	yych = *++p;
+	if (yych == 'S') goto yy533;
+	if (yych == 's') goto yy533;
+	goto yy523;
+yy774:
+	yych = *++p;
+	if (yych == 'N') goto yy533;
+	if (yych == 'n') goto yy533;
+	goto yy523;
+yy775:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'M') goto yy806;
+		if (yych <= 'O') goto yy523;
+		goto yy805;
+	} else {
+		if (yych <= 'm') {
+			if (yych <= 'l') goto yy523;
+			goto yy806;
+		} else {
+			if (yych == 'p') goto yy805;
+			goto yy523;
+		}
+	}
+yy776:
+	yych = *++p;
+	if (yych <= 'Q') {
+		if (yych <= '-') {
+			if (yych <= ',') goto yy523;
+			goto yy798;
+		} else {
+			if (yych == 'N') goto yy799;
+			goto yy523;
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'R') goto yy797;
+			if (yych <= 'm') goto yy523;
+			goto yy799;
+		} else {
+			if (yych == 'r') goto yy797;
+			goto yy523;
+		}
+	}
+yy777:
+	yych = *++p;
+	if (yych == 'S') goto yy533;
+	if (yych == 's') goto yy533;
+	goto yy523;
+yy778:
+	yych = *++p;
+	if (yych == 'S') goto yy793;
+	if (yych == 's') goto yy793;
+	goto yy523;
+yy779:
+	yych = *++p;
+	switch (yych) {
+	case 'G':
+	case 'g':	goto yy784;
+	case 'I':
+	case 'i':	goto yy783;
+	case 'P':
+	case 'p':	goto yy785;
+	case 'R':
+	case 'r':	goto yy786;
+	default:	goto yy523;
+	}
+yy780:
+	yych = *++p;
+	if (yych == 'Q') goto yy782;
+	if (yych == 'q') goto yy782;
+	goto yy523;
+yy781:
+	yych = *++p;
+	if (yych == 'D') goto yy533;
+	if (yych == 'd') goto yy533;
+	goto yy523;
+yy782:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy783:
+	yych = *++p;
+	if (yych == 'L') goto yy791;
+	if (yych == 'l') goto yy791;
+	goto yy523;
+yy784:
+	yych = *++p;
+	if (yych == 'N') goto yy789;
+	if (yych == 'n') goto yy789;
+	goto yy523;
+yy785:
+	yych = *++p;
+	if (yych == 'S') goto yy533;
+	if (yych == 's') goto yy533;
+	goto yy523;
+yy786:
+	yych = *++p;
+	if (yych == 'K') goto yy787;
+	if (yych != 'k') goto yy523;
+yy787:
+	yych = *++p;
+	if (yych == 'E') goto yy788;
+	if (yych != 'e') goto yy523;
+yy788:
+	yych = *++p;
+	if (yych == 'T') goto yy533;
+	if (yych == 't') goto yy533;
+	goto yy523;
+yy789:
+	yych = *++p;
+	if (yych == 'E') goto yy790;
+	if (yych != 'e') goto yy523;
+yy790:
+	yych = *++p;
+	if (yych == 'T') goto yy533;
+	if (yych == 't') goto yy533;
+	goto yy523;
+yy791:
+	yych = *++p;
+	if (yych == 'T') goto yy792;
+	if (yych != 't') goto yy523;
+yy792:
+	yych = *++p;
+	if (yych == 'O') goto yy533;
+	if (yych == 'o') goto yy533;
+	goto yy523;
+yy793:
+	yych = *++p;
+	if (yych == 'S') goto yy794;
+	if (yych != 's') goto yy523;
+yy794:
+	yych = *++p;
+	if (yych == 'A') goto yy795;
+	if (yych != 'a') goto yy523;
+yy795:
+	yych = *++p;
+	if (yych == 'G') goto yy796;
+	if (yych != 'g') goto yy523;
+yy796:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy797:
+	yych = *++p;
+	if (yych == 'P') goto yy804;
+	if (yych == 'p') goto yy804;
+	goto yy523;
+yy798:
+	yych = *++p;
+	if (yych == 'H') goto yy801;
+	if (yych == 'h') goto yy801;
+	goto yy523;
+yy799:
+	yych = *++p;
+	if (yych == 'I') goto yy800;
+	if (yych != 'i') goto yy523;
+yy800:
+	yych = *++p;
+	if (yych == 'M') goto yy533;
+	if (yych == 'm') goto yy533;
+	goto yy523;
+yy801:
+	yych = *++p;
+	if (yych == 'E') goto yy802;
+	if (yych != 'e') goto yy523;
+yy802:
+	yych = *++p;
+	if (yych == 'L') goto yy803;
+	if (yych != 'l') goto yy523;
+yy803:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy804:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'S') goto yy533;
+		if (yych == 's') goto yy533;
+		goto yy523;
+	}
+yy805:
+	yych = *++p;
+	if (yych == 'D') goto yy809;
+	if (yych == 'd') goto yy809;
+	goto yy523;
+yy806:
+	yych = *++p;
+	if (yych == 'B') goto yy807;
+	if (yych != 'b') goto yy523;
+yy807:
+	yych = *++p;
+	if (yych == 'L') goto yy808;
+	if (yych != 'l') goto yy523;
+yy808:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy809:
+	yych = *++p;
+	if (yych == 'A') goto yy810;
+	if (yych != 'a') goto yy523;
+yy810:
+	yych = *++p;
+	if (yych == 'T') goto yy811;
+	if (yych != 't') goto yy523;
+yy811:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy812:
+	yych = *++p;
+	if (yych == 'A') goto yy817;
+	if (yych == 'a') goto yy817;
+	goto yy523;
+yy813:
+	yych = *++p;
+	if (yych == 'S') goto yy814;
+	if (yych != 's') goto yy523;
+yy814:
+	yych = *++p;
+	if (yych == 'T') goto yy815;
+	if (yych != 't') goto yy523;
+yy815:
+	yych = *++p;
+	if (yych == 'F') goto yy816;
+	if (yych != 'f') goto yy523;
+yy816:
+	yych = *++p;
+	if (yych == 'M') goto yy533;
+	if (yych == 'm') goto yy533;
+	goto yy523;
+yy817:
+	yych = *++p;
+	if (yych == 'P') goto yy818;
+	if (yych != 'p') goto yy523;
+yy818:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'S') goto yy533;
+		if (yych == 's') goto yy533;
+		goto yy523;
+	}
+yy819:
+	yych = *++p;
+	if (yych == 'M') goto yy842;
+	if (yych == 'm') goto yy842;
+	goto yy523;
+yy820:
+	yych = *++p;
+	if (yych <= 'I') {
+		if (yych == 'C') goto yy831;
+		if (yych <= 'H') goto yy523;
+		goto yy830;
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'b') goto yy523;
+			goto yy831;
+		} else {
+			if (yych == 'i') goto yy830;
+			goto yy523;
+		}
+	}
+yy821:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'N') goto yy533;
+		if (yych <= 'O') goto yy523;
+		goto yy533;
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'm') goto yy523;
+			goto yy533;
+		} else {
+			if (yych == 'p') goto yy533;
+			goto yy523;
+		}
+	}
+yy822:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'A') goto yy828;
+		if (yych <= 'N') goto yy523;
+		goto yy829;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy523;
+			goto yy828;
+		} else {
+			if (yych == 'o') goto yy829;
+			goto yy523;
+		}
+	}
+yy823:
+	yych = *++p;
+	if (yych == 'F') goto yy827;
+	if (yych == 'f') goto yy827;
+	goto yy523;
+yy824:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'A') goto yy826;
+		if (yych == 'a') goto yy826;
+		goto yy523;
+	}
+yy825:
+	yych = *++p;
+	if (yych == 'X') goto yy533;
+	if (yych == 'x') goto yy533;
+	goto yy523;
+yy826:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy827:
+	yych = *++p;
+	if (yych == 'O') goto yy533;
+	if (yych == 'o') goto yy533;
+	goto yy523;
+yy828:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy829:
+	yych = *++p;
+	if (yych == 'N') goto yy533;
+	if (yych == 'n') goto yy533;
+	goto yy523;
+yy830:
+	yych = *++p;
+	if (yych == 'S') goto yy832;
+	if (yych == 's') goto yy832;
+	goto yy523;
+yy831:
+	yych = *++p;
+	if (yych <= ':') {
+		if (yych == '6') goto yy533;
+		if (yych <= '9') goto yy523;
+		goto yy534;
+	} else {
+		if (yych <= 'S') {
+			if (yych <= 'R') goto yy523;
+			goto yy533;
+		} else {
+			if (yych == 's') goto yy533;
+			goto yy523;
+		}
+	}
+yy832:
+	yych = *++p;
+	if (yych == '.') goto yy833;
+	if (yych == ':') goto yy534;
+	goto yy523;
+yy833:
+	yych = *++p;
+	if (yych <= 'X') {
+		if (yych <= 'K') {
+			if (yych == 'B') goto yy836;
+			goto yy523;
+		} else {
+			if (yych <= 'L') goto yy834;
+			if (yych <= 'W') goto yy523;
+			goto yy835;
+		}
+	} else {
+		if (yych <= 'k') {
+			if (yych == 'b') goto yy836;
+			goto yy523;
+		} else {
+			if (yych <= 'l') goto yy834;
+			if (yych == 'x') goto yy835;
+			goto yy523;
+		}
+	}
+yy834:
+	yych = *++p;
+	if (yych == 'W') goto yy841;
+	if (yych == 'w') goto yy841;
+	goto yy523;
+yy835:
+	yych = *++p;
+	if (yych == 'P') goto yy839;
+	if (yych == 'p') goto yy839;
+	goto yy523;
+yy836:
+	yych = *++p;
+	if (yych == 'E') goto yy837;
+	if (yych != 'e') goto yy523;
+yy837:
+	yych = *++p;
+	if (yych == 'E') goto yy838;
+	if (yych != 'e') goto yy523;
+yy838:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy839:
+	yych = *++p;
+	if (yych == 'C') goto yy840;
+	if (yych != 'c') goto yy523;
+yy840:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'S') goto yy533;
+		if (yych == 's') goto yy533;
+		goto yy523;
+	}
+yy841:
+	yych = *++p;
+	if (yych == 'Z') goto yy533;
+	if (yych == 'z') goto yy533;
+	goto yy523;
+yy842:
+	yych = *++p;
+	if (yych == 'S') goto yy533;
+	if (yych == 's') goto yy533;
+	goto yy523;
+yy843:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy844:
+	yych = *++p;
+	if (yych == 'T') goto yy847;
+	if (yych == 't') goto yy847;
+	goto yy523;
+yy845:
+	yych = *++p;
+	if (yych != '2') goto yy523;
+	yych = *++p;
+	if (yych == '3') goto yy533;
+	goto yy523;
+yy847:
+	yych = *++p;
+	if (yych == 'P') goto yy848;
+	if (yych != 'p') goto yy523;
+yy848:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'S') goto yy533;
+		if (yych == 's') goto yy533;
+		goto yy523;
+	}
+yy849:
+	yych = *++p;
+	if (yych == 'A') goto yy865;
+	if (yych == 'a') goto yy865;
+	goto yy523;
+yy850:
+	yych = *++p;
+	if (yych <= 'Z') {
+		if (yych == 'T') goto yy533;
+		if (yych <= 'Y') goto yy523;
+		goto yy856;
+	} else {
+		if (yych <= 't') {
+			if (yych <= 's') goto yy523;
+			goto yy533;
+		} else {
+			if (yych == 'z') goto yy856;
+			goto yy523;
+		}
+	}
+yy851:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'P') goto yy853;
+		if (yych == 'p') goto yy853;
+		goto yy523;
+	}
+yy852:
+	yych = *++p;
+	if (yych == 'O') goto yy533;
+	if (yych == 'o') goto yy533;
+	goto yy523;
+yy853:
+	yych = *++p;
+	if (yych == 'H') goto yy854;
+	if (yych != 'h') goto yy523;
+yy854:
+	yych = *++p;
+	if (yych == 'E') goto yy855;
+	if (yych != 'e') goto yy523;
+yy855:
+	yych = *++p;
+	if (yych == 'R') goto yy533;
+	if (yych == 'r') goto yy533;
+	goto yy523;
+yy856:
+	yych = *++p;
+	if (yych == 'M') goto yy857;
+	if (yych != 'm') goto yy523;
+yy857:
+	yych = *++p;
+	if (yych == 'O') goto yy858;
+	if (yych != 'o') goto yy523;
+yy858:
+	yych = *++p;
+	if (yych == 'P') goto yy859;
+	if (yych != 'p') goto yy523;
+yy859:
+	yych = *++p;
+	if (yych == 'R') goto yy860;
+	if (yych != 'r') goto yy523;
+yy860:
+	yych = *++p;
+	if (yych == 'O') goto yy861;
+	if (yych != 'o') goto yy523;
+yy861:
+	yych = *++p;
+	if (yych == 'J') goto yy862;
+	if (yych != 'j') goto yy523;
+yy862:
+	yych = *++p;
+	if (yych == 'E') goto yy863;
+	if (yych != 'e') goto yy523;
+yy863:
+	yych = *++p;
+	if (yych == 'C') goto yy864;
+	if (yych != 'c') goto yy523;
+yy864:
+	yych = *++p;
+	if (yych == 'T') goto yy533;
+	if (yych == 't') goto yy533;
+	goto yy523;
+yy865:
+	yych = *++p;
+	if (yych == 'L') goto yy866;
+	if (yych != 'l') goto yy523;
+yy866:
+	yych = *++p;
+	if (yych == 'K') goto yy533;
+	if (yych == 'k') goto yy533;
+	goto yy523;
+yy867:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych <= 'M') {
+			if (yych == 'L') goto yy877;
+			goto yy523;
+		} else {
+			if (yych <= 'N') goto yy878;
+			if (yych <= 'R') goto yy523;
+			goto yy879;
+		}
+	} else {
+		if (yych <= 'm') {
+			if (yych == 'l') goto yy877;
+			goto yy523;
+		} else {
+			if (yych <= 'n') goto yy878;
+			if (yych == 's') goto yy879;
+			goto yy523;
+		}
+	}
+yy868:
+	yych = *++p;
+	if (yych == 'E') goto yy876;
+	if (yych == 'e') goto yy876;
+	goto yy523;
+yy869:
+	yych = *++p;
+	if (yych == 'C') goto yy871;
+	if (yych == 'c') goto yy871;
+	goto yy523;
+yy870:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy871:
+	yych = *++p;
+	if (yych == 'E') goto yy872;
+	if (yych != 'e') goto yy523;
+yy872:
+	yych = *++p;
+	if (yych == 'T') goto yy873;
+	if (yych != 't') goto yy523;
+yy873:
+	yych = *++p;
+	if (yych == 'I') goto yy874;
+	if (yych != 'i') goto yy523;
+yy874:
+	yych = *++p;
+	if (yych == 'M') goto yy875;
+	if (yych != 'm') goto yy523;
+yy875:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy876:
+	yych = *++p;
+	if (yych == 'D') goto yy533;
+	if (yych == 'd') goto yy533;
+	goto yy523;
+yy877:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy878:
+	yych = *++p;
+	if (yych == 'G') goto yy880;
+	if (yych == 'g') goto yy880;
+	goto yy523;
+yy879:
+	yych = *++p;
+	if (yych == 'H') goto yy533;
+	if (yych == 'h') goto yy533;
+	goto yy523;
+yy880:
+	yych = *++p;
+	if (yych == 'E') goto yy881;
+	if (yych != 'e') goto yy523;
+yy881:
+	yych = *++p;
+	if (yych == 'R') goto yy533;
+	if (yych == 'r') goto yy533;
+	goto yy523;
+yy882:
+	yych = *++p;
+	if (yych == 'T') goto yy900;
+	if (yych == 't') goto yy900;
+	goto yy523;
+yy883:
+	yych = *++p;
+	if (yych == 'T') goto yy533;
+	if (yych == 't') goto yy533;
+	goto yy523;
+yy884:
+	yych = *++p;
+	if (yych == 'M') goto yy533;
+	if (yych == 'm') goto yy533;
+	goto yy523;
+yy885:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'P') goto yy533;
+		if (yych <= 'R') goto yy523;
+		goto yy533;
+	} else {
+		if (yych <= 'p') {
+			if (yych <= 'o') goto yy523;
+			goto yy533;
+		} else {
+			if (yych == 's') goto yy533;
+			goto yy523;
+		}
+	}
+yy886:
+	yych = *++p;
+	if (yych == 'I') goto yy894;
+	if (yych == 'i') goto yy894;
+	goto yy523;
+yy887:
+	yych = *++p;
+	if (yych == 'A') goto yy893;
+	if (yych == 'a') goto yy893;
+	goto yy523;
+yy888:
+	yych = *++p;
+	if (yych == 'O') goto yy891;
+	if (yych == 'o') goto yy891;
+	goto yy523;
+yy889:
+	yych = *++p;
+	if (yych == 'A') goto yy890;
+	if (yych != 'a') goto yy523;
+yy890:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == ':') goto yy534;
+		goto yy523;
+	} else {
+		if (yych <= 'S') goto yy533;
+		if (yych == 's') goto yy533;
+		goto yy523;
+	}
+yy891:
+	yych = *++p;
+	if (yych == 'U') goto yy892;
+	if (yych != 'u') goto yy523;
+yy892:
+	yych = *++p;
+	if (yych == 'T') goto yy533;
+	if (yych == 't') goto yy533;
+	goto yy523;
+yy893:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy894:
+	yych = *++p;
+	if (yych == 'U') goto yy895;
+	if (yych != 'u') goto yy523;
+yy895:
+	yych = *++p;
+	if (yych == 'M') goto yy896;
+	if (yych != 'm') goto yy523;
+yy896:
+	yych = *++p;
+	if (yych == 'X') goto yy897;
+	if (yych != 'x') goto yy523;
+yy897:
+	yych = *++p;
+	if (yych == 'T') goto yy898;
+	if (yych != 't') goto yy523;
+yy898:
+	yych = *++p;
+	if (yych == 'R') goto yy899;
+	if (yych != 'r') goto yy523;
+yy899:
+	yych = *++p;
+	if (yych == 'A') goto yy533;
+	if (yych == 'a') goto yy533;
+	goto yy523;
+yy900:
+	yych = *++p;
+	if (yych == 'A') goto yy901;
+	if (yych != 'a') goto yy523;
+yy901:
+	yych = *++p;
+	if (yych == 'C') goto yy902;
+	if (yych != 'c') goto yy523;
+yy902:
+	yych = *++p;
+	if (yych == 'H') goto yy903;
+	if (yych != 'h') goto yy523;
+yy903:
+	yych = *++p;
+	if (yych == 'M') goto yy904;
+	if (yych != 'm') goto yy523;
+yy904:
+	yych = *++p;
+	if (yych == 'E') goto yy905;
+	if (yych != 'e') goto yy523;
+yy905:
+	yych = *++p;
+	if (yych == 'N') goto yy906;
+	if (yych != 'n') goto yy523;
+yy906:
+	yych = *++p;
+	if (yych == 'T') goto yy533;
+	if (yych == 't') goto yy533;
+	goto yy523;
+yy907:
+	yych = *++p;
+	if (yych == 'S') goto yy533;
+	if (yych == 's') goto yy533;
+	goto yy523;
+yy908:
+	yych = *++p;
+	if (yych <= 'V') {
+		if (yych == 'R') goto yy533;
+		if (yych <= 'U') goto yy523;
+	} else {
+		if (yych <= 'r') {
+			if (yych <= 'q') goto yy523;
+			goto yy533;
+		} else {
+			if (yych != 'v') goto yy523;
+		}
+	}
+	yych = *++p;
+	if (yych == 'A') goto yy910;
+	if (yych != 'a') goto yy523;
+yy910:
+	yych = *++p;
+	if (yych == 'S') goto yy911;
+	if (yych != 's') goto yy523;
+yy911:
+	yych = *++p;
+	if (yych == 'C') goto yy912;
+	if (yych != 'c') goto yy523;
+yy912:
+	yych = *++p;
+	if (yych == 'R') goto yy913;
+	if (yych != 'r') goto yy523;
+yy913:
+	yych = *++p;
+	if (yych == 'I') goto yy914;
+	if (yych != 'i') goto yy523;
+yy914:
+	yych = *++p;
+	if (yych == 'P') goto yy915;
+	if (yych != 'p') goto yy523;
+yy915:
+	yych = *++p;
+	if (yych == 'T') goto yy533;
+	if (yych == 't') goto yy533;
+	goto yy523;
+yy916:
+	yych = *++p;
+	if (yych == 'B') goto yy533;
+	if (yych == 'b') goto yy533;
+	goto yy523;
+yy917:
+	yych = *++p;
+	if (yych == 'N') goto yy533;
+	if (yych == 'n') goto yy533;
+	goto yy523;
+yy918:
+	yych = *++p;
+	if (yych == 'N') goto yy925;
+	if (yych == 'n') goto yy925;
+	goto yy523;
+yy919:
+	yych = *++p;
+	if (yych == 'S') goto yy533;
+	if (yych == 's') goto yy533;
+	goto yy523;
+yy920:
+	yych = *++p;
+	if (yych == 'C') goto yy924;
+	if (yych == 'c') goto yy924;
+	goto yy523;
+yy921:
+	yych = *++p;
+	if (yych <= 'V') {
+		if (yych == 'T') goto yy923;
+		if (yych <= 'U') goto yy523;
+		goto yy533;
+	} else {
+		if (yych <= 't') {
+			if (yych <= 's') goto yy523;
+			goto yy923;
+		} else {
+			if (yych == 'v') goto yy533;
+			goto yy523;
+		}
+	}
+yy922:
+	yych = *++p;
+	if (yych == 'I') goto yy533;
+	if (yych == 'i') goto yy533;
+	goto yy523;
+yy923:
+	yych = *++p;
+	if (yych == 'A') goto yy533;
+	if (yych == 'a') goto yy533;
+	goto yy523;
+yy924:
+	yych = *++p;
+	if (yych == 'T') goto yy533;
+	if (yych == 't') goto yy533;
+	goto yy523;
+yy925:
+	yych = *++p;
+	if (yych == 'A') goto yy926;
+	if (yych != 'a') goto yy523;
+yy926:
+	yych = *++p;
+	if (yych != '-') goto yy523;
+	yych = *++p;
+	if (yych == 'P') goto yy928;
+	if (yych != 'p') goto yy523;
+yy928:
+	yych = *++p;
+	if (yych == 'L') goto yy929;
+	if (yych != 'l') goto yy523;
+yy929:
+	yych = *++p;
+	if (yych == 'A') goto yy930;
+	if (yych != 'a') goto yy523;
+yy930:
+	yych = *++p;
+	if (yych == 'Y') goto yy931;
+	if (yych != 'y') goto yy523;
+yy931:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych == 'C') goto yy932;
+		if (yych <= 'R') goto yy523;
+		goto yy933;
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'b') goto yy523;
+		} else {
+			if (yych == 's') goto yy933;
+			goto yy523;
+		}
+	}
+yy932:
+	yych = *++p;
+	if (yych == 'O') goto yy938;
+	if (yych == 'o') goto yy938;
+	goto yy523;
+yy933:
+	yych = *++p;
+	if (yych == 'I') goto yy934;
+	if (yych != 'i') goto yy523;
+yy934:
+	yych = *++p;
+	if (yych == 'N') goto yy935;
+	if (yych != 'n') goto yy523;
+yy935:
+	yych = *++p;
+	if (yych == 'G') goto yy936;
+	if (yych != 'g') goto yy523;
+yy936:
+	yych = *++p;
+	if (yych == 'L') goto yy937;
+	if (yych != 'l') goto yy523;
+yy937:
+	yych = *++p;
+	if (yych == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+yy938:
+	yych = *++p;
+	if (yych == 'N') goto yy939;
+	if (yych != 'n') goto yy523;
+yy939:
+	yych = *++p;
+	if (yych == 'T') goto yy940;
+	if (yych != 't') goto yy523;
+yy940:
+	yych = *++p;
+	if (yych == 'A') goto yy941;
+	if (yych != 'a') goto yy523;
+yy941:
+	yych = *++p;
+	if (yych == 'I') goto yy942;
+	if (yych != 'i') goto yy523;
+yy942:
+	yych = *++p;
+	if (yych == 'N') goto yy943;
+	if (yych != 'n') goto yy523;
+yy943:
+	yych = *++p;
+	if (yych == 'E') goto yy944;
+	if (yych != 'e') goto yy523;
+yy944:
+	yych = *++p;
+	if (yych == 'R') goto yy533;
+	if (yych == 'r') goto yy533;
+	goto yy523;
+yy945:
+	yych = *++p;
+	if (yych == 'S') goto yy533;
+	if (yych == 's') goto yy533;
+	goto yy523;
+yy946:
+	yych = *++p;
+	if (yych <= 'N') {
+		if (yych <= 'A') {
+			if (yych <= '@') goto yy523;
+			goto yy968;
+		} else {
+			if (yych <= 'L') goto yy523;
+			if (yych <= 'M') goto yy969;
+			goto yy970;
+		}
+	} else {
+		if (yych <= 'l') {
+			if (yych == 'a') goto yy968;
+			goto yy523;
+		} else {
+			if (yych <= 'm') goto yy969;
+			if (yych <= 'n') goto yy970;
+			goto yy523;
+		}
+	}
+yy947:
+	yych = *++p;
+	if (yych == 'R') goto yy955;
+	if (yych == 'r') goto yy955;
+	goto yy523;
+yy948:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy952;
+		if (yych <= 'O') goto yy523;
+		goto yy533;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy523;
+			goto yy952;
+		} else {
+			if (yych == 'p') goto yy533;
+			goto yy523;
+		}
+	}
+yy949:
+	yych = *++p;
+	if (yych == 'I') goto yy951;
+	if (yych == 'i') goto yy951;
+	goto yy523;
+yy950:
+	yych = *++p;
+	if (yych == 'D') goto yy533;
+	if (yych == 'd') goto yy533;
+	goto yy523;
+yy951:
+	yych = *++p;
+	if (yych == 'D') goto yy533;
+	if (yych == 'd') goto yy533;
+	goto yy523;
+yy952:
+	yych = *++p;
+	if (yych == 'L') goto yy953;
+	if (yych != 'l') goto yy523;
+yy953:
+	yych = *++p;
+	if (yych == 'T') goto yy954;
+	if (yych != 't') goto yy523;
+yy954:
+	yych = *++p;
+	if (yych == 'O') goto yy533;
+	if (yych == 'o') goto yy533;
+	goto yy523;
+yy955:
+	yych = *++p;
+	if (yych == 'O') goto yy956;
+	if (yych != 'o') goto yy523;
+yy956:
+	yych = *++p;
+	if (yych == 'M') goto yy957;
+	if (yych != 'm') goto yy523;
+yy957:
+	yych = *++p;
+	if (yych == 'E') goto yy958;
+	if (yych != 'e') goto yy523;
+yy958:
+	yych = *++p;
+	if (yych == '-') goto yy959;
+	if (yych == ':') goto yy534;
+	goto yy523;
+yy959:
+	yych = *++p;
+	if (yych == 'E') goto yy960;
+	if (yych != 'e') goto yy523;
+yy960:
+	yych = *++p;
+	if (yych == 'X') goto yy961;
+	if (yych != 'x') goto yy523;
+yy961:
+	yych = *++p;
+	if (yych == 'T') goto yy962;
+	if (yych != 't') goto yy523;
+yy962:
+	yych = *++p;
+	if (yych == 'E') goto yy963;
+	if (yych != 'e') goto yy523;
+yy963:
+	yych = *++p;
+	if (yych == 'N') goto yy964;
+	if (yych != 'n') goto yy523;
+yy964:
+	yych = *++p;
+	if (yych == 'S') goto yy965;
+	if (yych != 's') goto yy523;
+yy965:
+	yych = *++p;
+	if (yych == 'I') goto yy966;
+	if (yych != 'i') goto yy523;
+yy966:
+	yych = *++p;
+	if (yych == 'O') goto yy967;
+	if (yych != 'o') goto yy523;
+yy967:
+	yych = *++p;
+	if (yych == 'N') goto yy533;
+	if (yych == 'n') goto yy533;
+	goto yy523;
+yy968:
+	yych = *++p;
+	if (yych == 'P') goto yy533;
+	if (yych == 'p') goto yy533;
+	goto yy523;
+yy969:
+	yych = *++p;
+	if (yych == '-') goto yy974;
+	goto yy523;
+yy970:
+	yych = *++p;
+	if (yych == 'T') goto yy971;
+	if (yych != 't') goto yy523;
+yy971:
+	yych = *++p;
+	if (yych == 'E') goto yy972;
+	if (yych != 'e') goto yy523;
+yy972:
+	yych = *++p;
+	if (yych == 'N') goto yy973;
+	if (yych != 'n') goto yy523;
+yy973:
+	yych = *++p;
+	if (yych == 'T') goto yy533;
+	if (yych == 't') goto yy533;
+	goto yy523;
+yy974:
+	yych = *++p;
+	if (yych == 'E') goto yy975;
+	if (yych != 'e') goto yy523;
+yy975:
+	yych = *++p;
+	if (yych == 'V') goto yy976;
+	if (yych != 'v') goto yy523;
+yy976:
+	yych = *++p;
+	if (yych == 'E') goto yy977;
+	if (yych != 'e') goto yy523;
+yy977:
+	yych = *++p;
+	if (yych == 'N') goto yy978;
+	if (yych != 'n') goto yy523;
+yy978:
+	yych = *++p;
+	if (yych == 'T') goto yy979;
+	if (yych != 't') goto yy523;
+yy979:
+	yych = *++p;
+	if (yych == 'B') goto yy980;
+	if (yych != 'b') goto yy523;
+yy980:
+	yych = *++p;
+	if (yych == 'R') goto yy981;
+	if (yych != 'r') goto yy523;
+yy981:
+	yych = *++p;
+	if (yych == 'I') goto yy982;
+	if (yych != 'i') goto yy523;
+yy982:
+	yych = *++p;
+	if (yych == 'T') goto yy983;
+	if (yych != 't') goto yy523;
+yy983:
+	yych = *++p;
+	if (yych == 'E') goto yy984;
+	if (yych != 'e') goto yy523;
+yy984:
+	yych = *++p;
+	if (yych != '-') goto yy523;
+	yych = *++p;
+	if (yych == 'A') goto yy986;
+	if (yych != 'a') goto yy523;
+yy986:
+	yych = *++p;
+	if (yych == 'T') goto yy987;
+	if (yych != 't') goto yy523;
+yy987:
+	yych = *++p;
+	if (yych == 'T') goto yy988;
+	if (yych != 't') goto yy523;
+yy988:
+	yych = *++p;
+	if (yych == 'E') goto yy989;
+	if (yych != 'e') goto yy523;
+yy989:
+	yych = *++p;
+	if (yych == 'N') goto yy990;
+	if (yych != 'n') goto yy523;
+yy990:
+	yych = *++p;
+	if (yych == 'D') goto yy991;
+	if (yych != 'd') goto yy523;
+yy991:
+	yych = *++p;
+	if (yych == 'E') goto yy992;
+	if (yych != 'e') goto yy523;
+yy992:
+	++p;
+	if ((yych = *p) == 'E') goto yy533;
+	if (yych == 'e') goto yy533;
+	goto yy523;
+}
+
+}
+
+// Try to match email autolink after first <, returning num of chars matched.
+bufsize_t _scan_autolink_email(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0, 128,   0, 128, 128, 128, 128, 128, 
+		  0,   0, 128, 128,   0, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128,   0,   0,   0, 128,   0, 128, 
+		  0, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128,   0,   0,   0, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= '?') {
+		if (yych <= ')') {
+			if (yych <= ' ') {
+				if (yych != '\n') goto yy997;
+			} else {
+				if (yych == '"') goto yy997;
+				if (yych <= '\'') goto yy996;
+				goto yy997;
+			}
+		} else {
+			if (yych <= '9') {
+				if (yych == ',') goto yy997;
+				goto yy996;
+			} else {
+				if (yych == '=') goto yy996;
+				if (yych <= '>') goto yy997;
+				goto yy996;
+			}
+		}
+	} else {
+		if (yych <= 0xDF) {
+			if (yych <= ']') {
+				if (yych <= '@') goto yy997;
+				if (yych <= 'Z') goto yy996;
+				goto yy997;
+			} else {
+				if (yych <= '~') goto yy996;
+				if (yych <= 0x7F) goto yy997;
+				if (yych >= 0xC2) goto yy998;
+			}
+		} else {
+			if (yych <= 0xEF) {
+				if (yych <= 0xE0) goto yy1000;
+				if (yych == 0xED) goto yy1005;
+				goto yy1001;
+			} else {
+				if (yych <= 0xF0) goto yy1002;
+				if (yych <= 0xF3) goto yy1003;
+				if (yych <= 0xF4) goto yy1004;
+			}
+		}
+	}
+yy995:
+	{ return 0; }
+yy996:
+	yych = *(marker = ++p);
+	if (yych <= ',') {
+		if (yych <= '"') {
+			if (yych == '!') goto yy1008;
+			goto yy995;
+		} else {
+			if (yych <= '\'') goto yy1008;
+			if (yych <= ')') goto yy995;
+			if (yych <= '+') goto yy1008;
+			goto yy995;
+		}
+	} else {
+		if (yych <= '>') {
+			if (yych <= '9') goto yy1008;
+			if (yych == '=') goto yy1008;
+			goto yy995;
+		} else {
+			if (yych <= 'Z') goto yy1008;
+			if (yych <= ']') goto yy995;
+			if (yych <= '~') goto yy1008;
+			goto yy995;
+		}
+	}
+yy997:
+	yych = *++p;
+	goto yy995;
+yy998:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy999;
+	if (yych <= 0xBF) goto yy997;
+yy999:
+	p = marker;
+	goto yy995;
+yy1000:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy999;
+	if (yych <= 0xBF) goto yy998;
+	goto yy999;
+yy1001:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy999;
+	if (yych <= 0xBF) goto yy998;
+	goto yy999;
+yy1002:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy999;
+	if (yych <= 0xBF) goto yy1001;
+	goto yy999;
+yy1003:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy999;
+	if (yych <= 0xBF) goto yy1001;
+	goto yy999;
+yy1004:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy999;
+	if (yych <= 0x8F) goto yy1001;
+	goto yy999;
+yy1005:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy999;
+	if (yych <= 0x9F) goto yy998;
+	goto yy999;
+yy1006:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych <= '/') goto yy999;
+		if (yych <= '9') goto yy1009;
+		goto yy999;
+	} else {
+		if (yych <= 'Z') goto yy1009;
+		if (yych <= '`') goto yy999;
+		if (yych <= 'z') goto yy1009;
+		goto yy999;
+	}
+yy1007:
+	++p;
+	yych = *p;
+yy1008:
+	if (yybm[0+yych] & 128) {
+		goto yy1007;
+	}
+	if (yych <= '>') goto yy999;
+	if (yych <= '@') goto yy1006;
+	goto yy999;
+yy1009:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1011;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1011;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1011;
+			goto yy999;
+		}
+	}
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1139;
+		if (yych <= '/') goto yy999;
+		goto yy1140;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1140;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1140;
+			goto yy999;
+		}
+	}
+yy1011:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych <= '-') goto yy1139;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1140;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1140;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1140;
+			goto yy999;
+		}
+	}
+yy1012:
+	++p;
+	yych = *p;
+	if (yych <= '@') {
+		if (yych <= '/') goto yy999;
+		if (yych <= '9') goto yy1015;
+		goto yy999;
+	} else {
+		if (yych <= 'Z') goto yy1015;
+		if (yych <= '`') goto yy999;
+		if (yych <= 'z') goto yy1015;
+		goto yy999;
+	}
+yy1013:
+	++p;
+	{ return (bufsize_t)(p - start); }
+yy1015:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1017;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1017;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1017;
+			goto yy999;
+		}
+	}
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1018;
+		if (yych <= '/') goto yy999;
+		goto yy1019;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1019;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1019;
+			goto yy999;
+		}
+	}
+yy1017:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1019;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1019;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1019;
+			goto yy999;
+		}
+	}
+yy1018:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1020;
+		if (yych <= '/') goto yy999;
+		goto yy1021;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1021;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1021;
+			goto yy999;
+		}
+	}
+yy1019:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1021;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1021;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1021;
+			goto yy999;
+		}
+	}
+yy1020:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1022;
+		if (yych <= '/') goto yy999;
+		goto yy1023;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1023;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1023;
+			goto yy999;
+		}
+	}
+yy1021:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1023;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1023;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1023;
+			goto yy999;
+		}
+	}
+yy1022:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1024;
+		if (yych <= '/') goto yy999;
+		goto yy1025;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1025;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1025;
+			goto yy999;
+		}
+	}
+yy1023:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1025;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1025;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1025;
+			goto yy999;
+		}
+	}
+yy1024:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1026;
+		if (yych <= '/') goto yy999;
+		goto yy1027;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1027;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1027;
+			goto yy999;
+		}
+	}
+yy1025:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1027;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1027;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1027;
+			goto yy999;
+		}
+	}
+yy1026:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1028;
+		if (yych <= '/') goto yy999;
+		goto yy1029;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1029;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1029;
+			goto yy999;
+		}
+	}
+yy1027:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1029;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1029;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1029;
+			goto yy999;
+		}
+	}
+yy1028:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1030;
+		if (yych <= '/') goto yy999;
+		goto yy1031;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1031;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1031;
+			goto yy999;
+		}
+	}
+yy1029:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1031;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1031;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1031;
+			goto yy999;
+		}
+	}
+yy1030:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1032;
+		if (yych <= '/') goto yy999;
+		goto yy1033;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1033;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1033;
+			goto yy999;
+		}
+	}
+yy1031:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1033;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1033;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1033;
+			goto yy999;
+		}
+	}
+yy1032:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1034;
+		if (yych <= '/') goto yy999;
+		goto yy1035;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1035;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1035;
+			goto yy999;
+		}
+	}
+yy1033:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1035;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1035;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1035;
+			goto yy999;
+		}
+	}
+yy1034:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1036;
+		if (yych <= '/') goto yy999;
+		goto yy1037;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1037;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1037;
+			goto yy999;
+		}
+	}
+yy1035:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1037;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1037;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1037;
+			goto yy999;
+		}
+	}
+yy1036:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1038;
+		if (yych <= '/') goto yy999;
+		goto yy1039;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1039;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1039;
+			goto yy999;
+		}
+	}
+yy1037:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1039;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1039;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1039;
+			goto yy999;
+		}
+	}
+yy1038:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1040;
+		if (yych <= '/') goto yy999;
+		goto yy1041;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1041;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1041;
+			goto yy999;
+		}
+	}
+yy1039:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1041;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1041;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1041;
+			goto yy999;
+		}
+	}
+yy1040:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1042;
+		if (yych <= '/') goto yy999;
+		goto yy1043;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1043;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1043;
+			goto yy999;
+		}
+	}
+yy1041:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1043;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1043;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1043;
+			goto yy999;
+		}
+	}
+yy1042:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1044;
+		if (yych <= '/') goto yy999;
+		goto yy1045;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1045;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1045;
+			goto yy999;
+		}
+	}
+yy1043:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1045;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1045;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1045;
+			goto yy999;
+		}
+	}
+yy1044:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1046;
+		if (yych <= '/') goto yy999;
+		goto yy1047;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1047;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1047;
+			goto yy999;
+		}
+	}
+yy1045:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1047;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1047;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1047;
+			goto yy999;
+		}
+	}
+yy1046:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1048;
+		if (yych <= '/') goto yy999;
+		goto yy1049;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1049;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1049;
+			goto yy999;
+		}
+	}
+yy1047:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1049;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1049;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1049;
+			goto yy999;
+		}
+	}
+yy1048:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1050;
+		if (yych <= '/') goto yy999;
+		goto yy1051;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1051;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1051;
+			goto yy999;
+		}
+	}
+yy1049:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1051;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1051;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1051;
+			goto yy999;
+		}
+	}
+yy1050:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1052;
+		if (yych <= '/') goto yy999;
+		goto yy1053;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1053;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1053;
+			goto yy999;
+		}
+	}
+yy1051:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1053;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1053;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1053;
+			goto yy999;
+		}
+	}
+yy1052:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1054;
+		if (yych <= '/') goto yy999;
+		goto yy1055;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1055;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1055;
+			goto yy999;
+		}
+	}
+yy1053:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1055;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1055;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1055;
+			goto yy999;
+		}
+	}
+yy1054:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1056;
+		if (yych <= '/') goto yy999;
+		goto yy1057;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1057;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1057;
+			goto yy999;
+		}
+	}
+yy1055:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1057;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1057;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1057;
+			goto yy999;
+		}
+	}
+yy1056:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1058;
+		if (yych <= '/') goto yy999;
+		goto yy1059;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1059;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1059;
+			goto yy999;
+		}
+	}
+yy1057:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1059;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1059;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1059;
+			goto yy999;
+		}
+	}
+yy1058:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1060;
+		if (yych <= '/') goto yy999;
+		goto yy1061;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1061;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1061;
+			goto yy999;
+		}
+	}
+yy1059:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1061;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1061;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1061;
+			goto yy999;
+		}
+	}
+yy1060:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1062;
+		if (yych <= '/') goto yy999;
+		goto yy1063;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1063;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1063;
+			goto yy999;
+		}
+	}
+yy1061:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1063;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1063;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1063;
+			goto yy999;
+		}
+	}
+yy1062:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1064;
+		if (yych <= '/') goto yy999;
+		goto yy1065;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1065;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1065;
+			goto yy999;
+		}
+	}
+yy1063:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1065;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1065;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1065;
+			goto yy999;
+		}
+	}
+yy1064:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1066;
+		if (yych <= '/') goto yy999;
+		goto yy1067;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1067;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1067;
+			goto yy999;
+		}
+	}
+yy1065:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1067;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1067;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1067;
+			goto yy999;
+		}
+	}
+yy1066:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1068;
+		if (yych <= '/') goto yy999;
+		goto yy1069;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1069;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1069;
+			goto yy999;
+		}
+	}
+yy1067:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1069;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1069;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1069;
+			goto yy999;
+		}
+	}
+yy1068:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1070;
+		if (yych <= '/') goto yy999;
+		goto yy1071;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1071;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1071;
+			goto yy999;
+		}
+	}
+yy1069:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1071;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1071;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1071;
+			goto yy999;
+		}
+	}
+yy1070:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1072;
+		if (yych <= '/') goto yy999;
+		goto yy1073;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1073;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1073;
+			goto yy999;
+		}
+	}
+yy1071:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1073;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1073;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1073;
+			goto yy999;
+		}
+	}
+yy1072:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1074;
+		if (yych <= '/') goto yy999;
+		goto yy1075;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1075;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1075;
+			goto yy999;
+		}
+	}
+yy1073:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1075;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1075;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1075;
+			goto yy999;
+		}
+	}
+yy1074:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1076;
+		if (yych <= '/') goto yy999;
+		goto yy1077;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1077;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1077;
+			goto yy999;
+		}
+	}
+yy1075:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1077;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1077;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1077;
+			goto yy999;
+		}
+	}
+yy1076:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1078;
+		if (yych <= '/') goto yy999;
+		goto yy1079;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1079;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1079;
+			goto yy999;
+		}
+	}
+yy1077:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1079;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1079;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1079;
+			goto yy999;
+		}
+	}
+yy1078:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1080;
+		if (yych <= '/') goto yy999;
+		goto yy1081;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1081;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1081;
+			goto yy999;
+		}
+	}
+yy1079:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1081;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1081;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1081;
+			goto yy999;
+		}
+	}
+yy1080:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1082;
+		if (yych <= '/') goto yy999;
+		goto yy1083;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1083;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1083;
+			goto yy999;
+		}
+	}
+yy1081:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1083;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1083;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1083;
+			goto yy999;
+		}
+	}
+yy1082:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1084;
+		if (yych <= '/') goto yy999;
+		goto yy1085;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1085;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1085;
+			goto yy999;
+		}
+	}
+yy1083:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1085;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1085;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1085;
+			goto yy999;
+		}
+	}
+yy1084:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1086;
+		if (yych <= '/') goto yy999;
+		goto yy1087;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1087;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1087;
+			goto yy999;
+		}
+	}
+yy1085:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1087;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1087;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1087;
+			goto yy999;
+		}
+	}
+yy1086:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1088;
+		if (yych <= '/') goto yy999;
+		goto yy1089;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1089;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1089;
+			goto yy999;
+		}
+	}
+yy1087:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1089;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1089;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1089;
+			goto yy999;
+		}
+	}
+yy1088:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1090;
+		if (yych <= '/') goto yy999;
+		goto yy1091;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1091;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1091;
+			goto yy999;
+		}
+	}
+yy1089:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1091;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1091;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1091;
+			goto yy999;
+		}
+	}
+yy1090:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1092;
+		if (yych <= '/') goto yy999;
+		goto yy1093;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1093;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1093;
+			goto yy999;
+		}
+	}
+yy1091:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1093;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1093;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1093;
+			goto yy999;
+		}
+	}
+yy1092:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1094;
+		if (yych <= '/') goto yy999;
+		goto yy1095;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1095;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1095;
+			goto yy999;
+		}
+	}
+yy1093:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1095;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1095;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1095;
+			goto yy999;
+		}
+	}
+yy1094:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1096;
+		if (yych <= '/') goto yy999;
+		goto yy1097;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1097;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1097;
+			goto yy999;
+		}
+	}
+yy1095:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1097;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1097;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1097;
+			goto yy999;
+		}
+	}
+yy1096:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1098;
+		if (yych <= '/') goto yy999;
+		goto yy1099;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1099;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1099;
+			goto yy999;
+		}
+	}
+yy1097:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1099;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1099;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1099;
+			goto yy999;
+		}
+	}
+yy1098:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1100;
+		if (yych <= '/') goto yy999;
+		goto yy1101;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1101;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1101;
+			goto yy999;
+		}
+	}
+yy1099:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1101;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1101;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1101;
+			goto yy999;
+		}
+	}
+yy1100:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1102;
+		if (yych <= '/') goto yy999;
+		goto yy1103;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1103;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1103;
+			goto yy999;
+		}
+	}
+yy1101:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1103;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1103;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1103;
+			goto yy999;
+		}
+	}
+yy1102:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1104;
+		if (yych <= '/') goto yy999;
+		goto yy1105;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1105;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1105;
+			goto yy999;
+		}
+	}
+yy1103:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1105;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1105;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1105;
+			goto yy999;
+		}
+	}
+yy1104:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1106;
+		if (yych <= '/') goto yy999;
+		goto yy1107;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1107;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1107;
+			goto yy999;
+		}
+	}
+yy1105:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1107;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1107;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1107;
+			goto yy999;
+		}
+	}
+yy1106:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1108;
+		if (yych <= '/') goto yy999;
+		goto yy1109;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1109;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1109;
+			goto yy999;
+		}
+	}
+yy1107:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1109;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1109;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1109;
+			goto yy999;
+		}
+	}
+yy1108:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1110;
+		if (yych <= '/') goto yy999;
+		goto yy1111;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1111;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1111;
+			goto yy999;
+		}
+	}
+yy1109:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1111;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1111;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1111;
+			goto yy999;
+		}
+	}
+yy1110:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1112;
+		if (yych <= '/') goto yy999;
+		goto yy1113;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1113;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1113;
+			goto yy999;
+		}
+	}
+yy1111:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1113;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1113;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1113;
+			goto yy999;
+		}
+	}
+yy1112:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1114;
+		if (yych <= '/') goto yy999;
+		goto yy1115;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1115;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1115;
+			goto yy999;
+		}
+	}
+yy1113:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1115;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1115;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1115;
+			goto yy999;
+		}
+	}
+yy1114:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1116;
+		if (yych <= '/') goto yy999;
+		goto yy1117;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1117;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1117;
+			goto yy999;
+		}
+	}
+yy1115:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1117;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1117;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1117;
+			goto yy999;
+		}
+	}
+yy1116:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1118;
+		if (yych <= '/') goto yy999;
+		goto yy1119;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1119;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1119;
+			goto yy999;
+		}
+	}
+yy1117:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1119;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1119;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1119;
+			goto yy999;
+		}
+	}
+yy1118:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1120;
+		if (yych <= '/') goto yy999;
+		goto yy1121;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1121;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1121;
+			goto yy999;
+		}
+	}
+yy1119:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1121;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1121;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1121;
+			goto yy999;
+		}
+	}
+yy1120:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1122;
+		if (yych <= '/') goto yy999;
+		goto yy1123;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1123;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1123;
+			goto yy999;
+		}
+	}
+yy1121:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1123;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1123;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1123;
+			goto yy999;
+		}
+	}
+yy1122:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1124;
+		if (yych <= '/') goto yy999;
+		goto yy1125;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1125;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1125;
+			goto yy999;
+		}
+	}
+yy1123:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1125;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1125;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1125;
+			goto yy999;
+		}
+	}
+yy1124:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1126;
+		if (yych <= '/') goto yy999;
+		goto yy1127;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1127;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1127;
+			goto yy999;
+		}
+	}
+yy1125:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1127;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1127;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1127;
+			goto yy999;
+		}
+	}
+yy1126:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1128;
+		if (yych <= '/') goto yy999;
+		goto yy1129;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1129;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1129;
+			goto yy999;
+		}
+	}
+yy1127:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1129;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1129;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1129;
+			goto yy999;
+		}
+	}
+yy1128:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1130;
+		if (yych <= '/') goto yy999;
+		goto yy1131;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1131;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1131;
+			goto yy999;
+		}
+	}
+yy1129:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1131;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1131;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1131;
+			goto yy999;
+		}
+	}
+yy1130:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1132;
+		if (yych <= '/') goto yy999;
+		goto yy1133;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1133;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1133;
+			goto yy999;
+		}
+	}
+yy1131:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1133;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1133;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1133;
+			goto yy999;
+		}
+	}
+yy1132:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1134;
+		if (yych <= '/') goto yy999;
+		goto yy1135;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1135;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1135;
+			goto yy999;
+		}
+	}
+yy1133:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1135;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1135;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1135;
+			goto yy999;
+		}
+	}
+yy1134:
+	++p;
+	yych = *p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1136;
+		if (yych <= '/') goto yy999;
+		goto yy1137;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1137;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1137;
+			goto yy999;
+		}
+	}
+yy1135:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1137;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1137;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1137;
+			goto yy999;
+		}
+	}
+yy1136:
+	++p;
+	yych = *p;
+	if (yych <= '@') {
+		if (yych <= '/') goto yy999;
+		if (yych <= '9') goto yy1138;
+		goto yy999;
+	} else {
+		if (yych <= 'Z') goto yy1138;
+		if (yych <= '`') goto yy999;
+		if (yych <= 'z') goto yy1138;
+		goto yy999;
+	}
+yy1137:
+	++p;
+	yych = *p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= '-') goto yy999;
+			goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych >= ':') goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych >= '{') goto yy999;
+		}
+	}
+yy1138:
+	++p;
+	yych = *p;
+	if (yych == '.') goto yy1012;
+	if (yych == '>') goto yy1013;
+	goto yy999;
+yy1139:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1141;
+		if (yych <= '/') goto yy999;
+		goto yy1142;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1142;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1142;
+			goto yy999;
+		}
+	}
+yy1140:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1142;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1142;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1142;
+			goto yy999;
+		}
+	}
+yy1141:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1143;
+		if (yych <= '/') goto yy999;
+		goto yy1144;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1144;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1144;
+			goto yy999;
+		}
+	}
+yy1142:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1144;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1144;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1144;
+			goto yy999;
+		}
+	}
+yy1143:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1145;
+		if (yych <= '/') goto yy999;
+		goto yy1146;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1146;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1146;
+			goto yy999;
+		}
+	}
+yy1144:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1146;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1146;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1146;
+			goto yy999;
+		}
+	}
+yy1145:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1147;
+		if (yych <= '/') goto yy999;
+		goto yy1148;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1148;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1148;
+			goto yy999;
+		}
+	}
+yy1146:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1148;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1148;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1148;
+			goto yy999;
+		}
+	}
+yy1147:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1149;
+		if (yych <= '/') goto yy999;
+		goto yy1150;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1150;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1150;
+			goto yy999;
+		}
+	}
+yy1148:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1150;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1150;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1150;
+			goto yy999;
+		}
+	}
+yy1149:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1151;
+		if (yych <= '/') goto yy999;
+		goto yy1152;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1152;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1152;
+			goto yy999;
+		}
+	}
+yy1150:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1152;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1152;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1152;
+			goto yy999;
+		}
+	}
+yy1151:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1153;
+		if (yych <= '/') goto yy999;
+		goto yy1154;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1154;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1154;
+			goto yy999;
+		}
+	}
+yy1152:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1154;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1154;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1154;
+			goto yy999;
+		}
+	}
+yy1153:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1155;
+		if (yych <= '/') goto yy999;
+		goto yy1156;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1156;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1156;
+			goto yy999;
+		}
+	}
+yy1154:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1156;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1156;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1156;
+			goto yy999;
+		}
+	}
+yy1155:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1157;
+		if (yych <= '/') goto yy999;
+		goto yy1158;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1158;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1158;
+			goto yy999;
+		}
+	}
+yy1156:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1158;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1158;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1158;
+			goto yy999;
+		}
+	}
+yy1157:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1159;
+		if (yych <= '/') goto yy999;
+		goto yy1160;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1160;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1160;
+			goto yy999;
+		}
+	}
+yy1158:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1160;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1160;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1160;
+			goto yy999;
+		}
+	}
+yy1159:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1161;
+		if (yych <= '/') goto yy999;
+		goto yy1162;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1162;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1162;
+			goto yy999;
+		}
+	}
+yy1160:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1162;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1162;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1162;
+			goto yy999;
+		}
+	}
+yy1161:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1163;
+		if (yych <= '/') goto yy999;
+		goto yy1164;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1164;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1164;
+			goto yy999;
+		}
+	}
+yy1162:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1164;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1164;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1164;
+			goto yy999;
+		}
+	}
+yy1163:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1165;
+		if (yych <= '/') goto yy999;
+		goto yy1166;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1166;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1166;
+			goto yy999;
+		}
+	}
+yy1164:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1166;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1166;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1166;
+			goto yy999;
+		}
+	}
+yy1165:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1167;
+		if (yych <= '/') goto yy999;
+		goto yy1168;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1168;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1168;
+			goto yy999;
+		}
+	}
+yy1166:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1168;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1168;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1168;
+			goto yy999;
+		}
+	}
+yy1167:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1169;
+		if (yych <= '/') goto yy999;
+		goto yy1170;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1170;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1170;
+			goto yy999;
+		}
+	}
+yy1168:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1170;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1170;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1170;
+			goto yy999;
+		}
+	}
+yy1169:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1171;
+		if (yych <= '/') goto yy999;
+		goto yy1172;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1172;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1172;
+			goto yy999;
+		}
+	}
+yy1170:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1172;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1172;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1172;
+			goto yy999;
+		}
+	}
+yy1171:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1173;
+		if (yych <= '/') goto yy999;
+		goto yy1174;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1174;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1174;
+			goto yy999;
+		}
+	}
+yy1172:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1174;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1174;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1174;
+			goto yy999;
+		}
+	}
+yy1173:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1175;
+		if (yych <= '/') goto yy999;
+		goto yy1176;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1176;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1176;
+			goto yy999;
+		}
+	}
+yy1174:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1176;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1176;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1176;
+			goto yy999;
+		}
+	}
+yy1175:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1177;
+		if (yych <= '/') goto yy999;
+		goto yy1178;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1178;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1178;
+			goto yy999;
+		}
+	}
+yy1176:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1178;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1178;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1178;
+			goto yy999;
+		}
+	}
+yy1177:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1179;
+		if (yych <= '/') goto yy999;
+		goto yy1180;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1180;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1180;
+			goto yy999;
+		}
+	}
+yy1178:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1180;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1180;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1180;
+			goto yy999;
+		}
+	}
+yy1179:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1181;
+		if (yych <= '/') goto yy999;
+		goto yy1182;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1182;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1182;
+			goto yy999;
+		}
+	}
+yy1180:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1182;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1182;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1182;
+			goto yy999;
+		}
+	}
+yy1181:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1183;
+		if (yych <= '/') goto yy999;
+		goto yy1184;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1184;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1184;
+			goto yy999;
+		}
+	}
+yy1182:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1184;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1184;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1184;
+			goto yy999;
+		}
+	}
+yy1183:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1185;
+		if (yych <= '/') goto yy999;
+		goto yy1186;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1186;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1186;
+			goto yy999;
+		}
+	}
+yy1184:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1186;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1186;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1186;
+			goto yy999;
+		}
+	}
+yy1185:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1187;
+		if (yych <= '/') goto yy999;
+		goto yy1188;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1188;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1188;
+			goto yy999;
+		}
+	}
+yy1186:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1188;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1188;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1188;
+			goto yy999;
+		}
+	}
+yy1187:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1189;
+		if (yych <= '/') goto yy999;
+		goto yy1190;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1190;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1190;
+			goto yy999;
+		}
+	}
+yy1188:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1190;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1190;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1190;
+			goto yy999;
+		}
+	}
+yy1189:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1191;
+		if (yych <= '/') goto yy999;
+		goto yy1192;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1192;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1192;
+			goto yy999;
+		}
+	}
+yy1190:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1192;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1192;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1192;
+			goto yy999;
+		}
+	}
+yy1191:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1193;
+		if (yych <= '/') goto yy999;
+		goto yy1194;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1194;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1194;
+			goto yy999;
+		}
+	}
+yy1192:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1194;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1194;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1194;
+			goto yy999;
+		}
+	}
+yy1193:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1195;
+		if (yych <= '/') goto yy999;
+		goto yy1196;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1196;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1196;
+			goto yy999;
+		}
+	}
+yy1194:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1196;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1196;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1196;
+			goto yy999;
+		}
+	}
+yy1195:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1197;
+		if (yych <= '/') goto yy999;
+		goto yy1198;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1198;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1198;
+			goto yy999;
+		}
+	}
+yy1196:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1198;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1198;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1198;
+			goto yy999;
+		}
+	}
+yy1197:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1199;
+		if (yych <= '/') goto yy999;
+		goto yy1200;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1200;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1200;
+			goto yy999;
+		}
+	}
+yy1198:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1200;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1200;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1200;
+			goto yy999;
+		}
+	}
+yy1199:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1201;
+		if (yych <= '/') goto yy999;
+		goto yy1202;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1202;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1202;
+			goto yy999;
+		}
+	}
+yy1200:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1202;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1202;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1202;
+			goto yy999;
+		}
+	}
+yy1201:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1203;
+		if (yych <= '/') goto yy999;
+		goto yy1204;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1204;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1204;
+			goto yy999;
+		}
+	}
+yy1202:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1204;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1204;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1204;
+			goto yy999;
+		}
+	}
+yy1203:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1205;
+		if (yych <= '/') goto yy999;
+		goto yy1206;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1206;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1206;
+			goto yy999;
+		}
+	}
+yy1204:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1206;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1206;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1206;
+			goto yy999;
+		}
+	}
+yy1205:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1207;
+		if (yych <= '/') goto yy999;
+		goto yy1208;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1208;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1208;
+			goto yy999;
+		}
+	}
+yy1206:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1208;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1208;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1208;
+			goto yy999;
+		}
+	}
+yy1207:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1209;
+		if (yych <= '/') goto yy999;
+		goto yy1210;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1210;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1210;
+			goto yy999;
+		}
+	}
+yy1208:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1210;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1210;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1210;
+			goto yy999;
+		}
+	}
+yy1209:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1211;
+		if (yych <= '/') goto yy999;
+		goto yy1212;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1212;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1212;
+			goto yy999;
+		}
+	}
+yy1210:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1212;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1212;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1212;
+			goto yy999;
+		}
+	}
+yy1211:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1213;
+		if (yych <= '/') goto yy999;
+		goto yy1214;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1214;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1214;
+			goto yy999;
+		}
+	}
+yy1212:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1214;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1214;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1214;
+			goto yy999;
+		}
+	}
+yy1213:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1215;
+		if (yych <= '/') goto yy999;
+		goto yy1216;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1216;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1216;
+			goto yy999;
+		}
+	}
+yy1214:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1216;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1216;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1216;
+			goto yy999;
+		}
+	}
+yy1215:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1217;
+		if (yych <= '/') goto yy999;
+		goto yy1218;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1218;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1218;
+			goto yy999;
+		}
+	}
+yy1216:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1218;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1218;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1218;
+			goto yy999;
+		}
+	}
+yy1217:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1219;
+		if (yych <= '/') goto yy999;
+		goto yy1220;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1220;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1220;
+			goto yy999;
+		}
+	}
+yy1218:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1220;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1220;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1220;
+			goto yy999;
+		}
+	}
+yy1219:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1221;
+		if (yych <= '/') goto yy999;
+		goto yy1222;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1222;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1222;
+			goto yy999;
+		}
+	}
+yy1220:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1222;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1222;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1222;
+			goto yy999;
+		}
+	}
+yy1221:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1223;
+		if (yych <= '/') goto yy999;
+		goto yy1224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1224;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1224;
+			goto yy999;
+		}
+	}
+yy1222:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1224;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1224;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1224;
+			goto yy999;
+		}
+	}
+yy1223:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1225;
+		if (yych <= '/') goto yy999;
+		goto yy1226;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1226;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1226;
+			goto yy999;
+		}
+	}
+yy1224:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1226;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1226;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1226;
+			goto yy999;
+		}
+	}
+yy1225:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1227;
+		if (yych <= '/') goto yy999;
+		goto yy1228;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1228;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1228;
+			goto yy999;
+		}
+	}
+yy1226:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1228;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1228;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1228;
+			goto yy999;
+		}
+	}
+yy1227:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1229;
+		if (yych <= '/') goto yy999;
+		goto yy1230;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1230;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1230;
+			goto yy999;
+		}
+	}
+yy1228:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1230;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1230;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1230;
+			goto yy999;
+		}
+	}
+yy1229:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1231;
+		if (yych <= '/') goto yy999;
+		goto yy1232;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1232;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1232;
+			goto yy999;
+		}
+	}
+yy1230:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1232;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1232;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1232;
+			goto yy999;
+		}
+	}
+yy1231:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1233;
+		if (yych <= '/') goto yy999;
+		goto yy1234;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1234;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1234;
+			goto yy999;
+		}
+	}
+yy1232:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1234;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1234;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1234;
+			goto yy999;
+		}
+	}
+yy1233:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1235;
+		if (yych <= '/') goto yy999;
+		goto yy1236;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1236;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1236;
+			goto yy999;
+		}
+	}
+yy1234:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1236;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1236;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1236;
+			goto yy999;
+		}
+	}
+yy1235:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1237;
+		if (yych <= '/') goto yy999;
+		goto yy1238;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1238;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1238;
+			goto yy999;
+		}
+	}
+yy1236:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1238;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1238;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1238;
+			goto yy999;
+		}
+	}
+yy1237:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1239;
+		if (yych <= '/') goto yy999;
+		goto yy1240;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1240;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1240;
+			goto yy999;
+		}
+	}
+yy1238:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1240;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1240;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1240;
+			goto yy999;
+		}
+	}
+yy1239:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1241;
+		if (yych <= '/') goto yy999;
+		goto yy1242;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1242;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1242;
+			goto yy999;
+		}
+	}
+yy1240:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1242;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1242;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1242;
+			goto yy999;
+		}
+	}
+yy1241:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1243;
+		if (yych <= '/') goto yy999;
+		goto yy1244;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1244;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1244;
+			goto yy999;
+		}
+	}
+yy1242:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1244;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1244;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1244;
+			goto yy999;
+		}
+	}
+yy1243:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1245;
+		if (yych <= '/') goto yy999;
+		goto yy1246;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1246;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1246;
+			goto yy999;
+		}
+	}
+yy1244:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1246;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1246;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1246;
+			goto yy999;
+		}
+	}
+yy1245:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1247;
+		if (yych <= '/') goto yy999;
+		goto yy1248;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1248;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1248;
+			goto yy999;
+		}
+	}
+yy1246:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1248;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1248;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1248;
+			goto yy999;
+		}
+	}
+yy1247:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1249;
+		if (yych <= '/') goto yy999;
+		goto yy1250;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1250;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1250;
+			goto yy999;
+		}
+	}
+yy1248:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1250;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1250;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1250;
+			goto yy999;
+		}
+	}
+yy1249:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1251;
+		if (yych <= '/') goto yy999;
+		goto yy1252;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1252;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1252;
+			goto yy999;
+		}
+	}
+yy1250:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1252;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1252;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1252;
+			goto yy999;
+		}
+	}
+yy1251:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1253;
+		if (yych <= '/') goto yy999;
+		goto yy1254;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1254;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1254;
+			goto yy999;
+		}
+	}
+yy1252:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1254;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1254;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1254;
+			goto yy999;
+		}
+	}
+yy1253:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1255;
+		if (yych <= '/') goto yy999;
+		goto yy1256;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1256;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1256;
+			goto yy999;
+		}
+	}
+yy1254:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1256;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1256;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1256;
+			goto yy999;
+		}
+	}
+yy1255:
+	yych = *++p;
+	if (yych <= '9') {
+		if (yych == '-') goto yy1257;
+		if (yych <= '/') goto yy999;
+		goto yy1258;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy999;
+			goto yy1258;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1258;
+			goto yy999;
+		}
+	}
+yy1256:
+	yych = *++p;
+	if (yych <= '=') {
+		if (yych <= '.') {
+			if (yych <= ',') goto yy999;
+			if (yych >= '.') goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1258;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1258;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1258;
+			goto yy999;
+		}
+	}
+yy1257:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych <= '/') goto yy999;
+		if (yych <= '9') goto yy1138;
+		goto yy999;
+	} else {
+		if (yych <= 'Z') goto yy1138;
+		if (yych <= '`') goto yy999;
+		if (yych <= 'z') goto yy1138;
+		goto yy999;
+	}
+yy1258:
+	++p;
+	if ((yych = *p) <= '=') {
+		if (yych <= '.') {
+			if (yych <= '-') goto yy999;
+			goto yy1012;
+		} else {
+			if (yych <= '/') goto yy999;
+			if (yych <= '9') goto yy1138;
+			goto yy999;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1013;
+			if (yych <= '@') goto yy999;
+			goto yy1138;
+		} else {
+			if (yych <= '`') goto yy999;
+			if (yych <= 'z') goto yy1138;
+			goto yy999;
+		}
+	}
+}
+
+}
+
+// Try to match an HTML tag after first <, returning num of chars matched.
+bufsize_t _scan_html_tag(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		/* table 1 .. 8: 0 */
+		  0, 230, 230, 230, 230, 230, 230, 230, 
+		230, 199, 199, 199, 199, 199, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		230, 230, 230, 230, 230, 230, 230, 230, 
+		199, 230,  70, 230, 230, 230, 230, 134, 
+		230, 230, 230, 230, 230, 254, 246, 230, 
+		254, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 246, 230, 198, 198, 196, 230, 
+		230, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 254, 230, 230, 226, 230, 246, 
+		198, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 254, 254, 254, 254, 254, 254, 
+		254, 254, 254, 230, 230, 230, 230, 230, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		/* table 9 .. 11: 256 */
+		  0, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160,  32, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 128, 
+		160, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= '`') {
+		if (yych <= '.') {
+			if (yych <= '\n') {
+				if (yych <= '\t') goto yy1266;
+			} else {
+				if (yych == '!') goto yy1264;
+				goto yy1266;
+			}
+		} else {
+			if (yych <= '?') {
+				if (yych <= '/') goto yy1263;
+				if (yych <= '>') goto yy1266;
+				goto yy1265;
+			} else {
+				if (yych <= '@') goto yy1266;
+				if (yych <= 'Z') goto yy1262;
+				goto yy1266;
+			}
+		}
+	} else {
+		if (yych <= 0xEC) {
+			if (yych <= 0xC1) {
+				if (yych <= 'z') goto yy1262;
+				if (yych <= 0x7F) goto yy1266;
+			} else {
+				if (yych <= 0xDF) goto yy1267;
+				if (yych <= 0xE0) goto yy1269;
+				goto yy1270;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xED) goto yy1274;
+				if (yych <= 0xEF) goto yy1270;
+				goto yy1271;
+			} else {
+				if (yych <= 0xF3) goto yy1272;
+				if (yych <= 0xF4) goto yy1273;
+			}
+		}
+	}
+yy1261:
+	{ return 0; }
+yy1262:
+	yych = *(marker = ++p);
+	if (yych <= '/') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) goto yy1261;
+			if (yych <= '\r') goto yy1366;
+			if (yych <= 0x1F) goto yy1261;
+			goto yy1366;
+		} else {
+			if (yych == '-') goto yy1364;
+			if (yych <= '.') goto yy1261;
+			goto yy1368;
+		}
+	} else {
+		if (yych <= '@') {
+			if (yych <= '9') goto yy1364;
+			if (yych == '>') goto yy1285;
+			goto yy1261;
+		} else {
+			if (yych <= 'Z') goto yy1364;
+			if (yych <= '`') goto yy1261;
+			if (yych <= 'z') goto yy1364;
+			goto yy1261;
+		}
+	}
+yy1263:
+	yych = *(marker = ++p);
+	if (yych <= '@') goto yy1261;
+	if (yych <= 'Z') goto yy1360;
+	if (yych <= '`') goto yy1261;
+	if (yych <= 'z') goto yy1360;
+	goto yy1261;
+yy1264:
+	yych = *(marker = ++p);
+	if (yybm[256+yych] & 64) {
+		goto yy1295;
+	}
+	if (yych == '-') goto yy1297;
+	if (yych <= '@') goto yy1261;
+	if (yych <= '[') goto yy1294;
+	goto yy1261;
+yy1265:
+	yych = *(marker = ++p);
+	if (yych <= 0x00) goto yy1261;
+	if (yych <= 0x7F) goto yy1276;
+	if (yych <= 0xC1) goto yy1261;
+	if (yych <= 0xF4) goto yy1276;
+	goto yy1261;
+yy1266:
+	yych = *++p;
+	goto yy1261;
+yy1267:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1266;
+yy1268:
+	p = marker;
+	goto yy1261;
+yy1269:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy1268;
+	if (yych <= 0xBF) goto yy1267;
+	goto yy1268;
+yy1270:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1267;
+	goto yy1268;
+yy1271:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy1268;
+	if (yych <= 0xBF) goto yy1270;
+	goto yy1268;
+yy1272:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1270;
+	goto yy1268;
+yy1273:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x8F) goto yy1270;
+	goto yy1268;
+yy1274:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x9F) goto yy1267;
+	goto yy1268;
+yy1275:
+	++p;
+	yych = *p;
+yy1276:
+	if (yybm[256+yych] & 32) {
+		goto yy1275;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x00) goto yy1268;
+			if (yych <= '?') goto yy1284;
+			goto yy1268;
+		} else {
+			if (yych <= 0xDF) goto yy1277;
+			if (yych <= 0xE0) goto yy1278;
+			goto yy1279;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1283;
+			if (yych <= 0xEF) goto yy1279;
+			goto yy1280;
+		} else {
+			if (yych <= 0xF3) goto yy1281;
+			if (yych <= 0xF4) goto yy1282;
+			goto yy1268;
+		}
+	}
+yy1277:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1275;
+	goto yy1268;
+yy1278:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1268;
+	if (yych <= 0xBF) goto yy1277;
+	goto yy1268;
+yy1279:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1277;
+	goto yy1268;
+yy1280:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1268;
+	if (yych <= 0xBF) goto yy1279;
+	goto yy1268;
+yy1281:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1279;
+	goto yy1268;
+yy1282:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x8F) goto yy1279;
+	goto yy1268;
+yy1283:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x9F) goto yy1277;
+	goto yy1268;
+yy1284:
+	++p;
+	yych = *p;
+	if (yych <= 0xE0) {
+		if (yych <= '>') {
+			if (yych <= 0x00) goto yy1268;
+			if (yych <= '=') goto yy1275;
+		} else {
+			if (yych <= 0x7F) goto yy1275;
+			if (yych <= 0xC1) goto yy1268;
+			if (yych <= 0xDF) goto yy1287;
+			goto yy1288;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1293;
+			goto yy1289;
+		} else {
+			if (yych <= 0xF0) goto yy1290;
+			if (yych <= 0xF3) goto yy1291;
+			if (yych <= 0xF4) goto yy1292;
+			goto yy1268;
+		}
+	}
+yy1285:
+	++p;
+	{ return (bufsize_t)(p - start); }
+yy1287:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1275;
+	goto yy1268;
+yy1288:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1268;
+	if (yych <= 0xBF) goto yy1287;
+	goto yy1268;
+yy1289:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1287;
+	goto yy1268;
+yy1290:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1268;
+	if (yych <= 0xBF) goto yy1289;
+	goto yy1268;
+yy1291:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1289;
+	goto yy1268;
+yy1292:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x8F) goto yy1289;
+	goto yy1268;
+yy1293:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x9F) goto yy1287;
+	goto yy1268;
+yy1294:
+	yych = *++p;
+	if (yych == 'C') goto yy1330;
+	if (yych == 'c') goto yy1330;
+	goto yy1268;
+yy1295:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 1) {
+		goto yy1319;
+	}
+	if (yych <= '@') goto yy1268;
+	if (yych <= 'Z') goto yy1295;
+	goto yy1268;
+yy1297:
+	yych = *++p;
+	if (yych != '-') goto yy1268;
+	yych = *++p;
+	if (yych <= 0xE0) {
+		if (yych <= '=') {
+			if (yych != '-') goto yy1301;
+		} else {
+			if (yych <= '>') goto yy1268;
+			if (yych <= 0xC1) goto yy1301;
+			if (yych <= 0xDF) goto yy1302;
+			goto yy1303;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1308;
+			goto yy1304;
+		} else {
+			if (yych <= 0xF0) goto yy1305;
+			if (yych <= 0xF3) goto yy1306;
+			if (yych <= 0xF4) goto yy1307;
+			goto yy1301;
+		}
+	}
+	yych = *++p;
+	if (yych <= 0xE0) {
+		if (yych <= '=') {
+			if (yych == '-') goto yy1318;
+			goto yy1301;
+		} else {
+			if (yych <= '>') goto yy1268;
+			if (yych <= 0xC1) goto yy1301;
+			if (yych <= 0xDF) goto yy1302;
+			goto yy1303;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1308;
+			goto yy1304;
+		} else {
+			if (yych <= 0xF0) goto yy1305;
+			if (yych <= 0xF3) goto yy1306;
+			if (yych <= 0xF4) goto yy1307;
+			goto yy1301;
+		}
+	}
+yy1300:
+	++p;
+	yych = *p;
+yy1301:
+	if (yybm[256+yych] & 128) {
+		goto yy1300;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x00) goto yy1268;
+			if (yych <= '-') goto yy1309;
+			goto yy1268;
+		} else {
+			if (yych <= 0xDF) goto yy1310;
+			if (yych <= 0xE0) goto yy1311;
+			goto yy1312;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1316;
+			if (yych <= 0xEF) goto yy1312;
+			goto yy1313;
+		} else {
+			if (yych <= 0xF3) goto yy1314;
+			if (yych <= 0xF4) goto yy1315;
+			goto yy1268;
+		}
+	}
+yy1302:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1300;
+	goto yy1268;
+yy1303:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy1268;
+	if (yych <= 0xBF) goto yy1302;
+	goto yy1268;
+yy1304:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1302;
+	goto yy1268;
+yy1305:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy1268;
+	if (yych <= 0xBF) goto yy1304;
+	goto yy1268;
+yy1306:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1304;
+	goto yy1268;
+yy1307:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x8F) goto yy1304;
+	goto yy1268;
+yy1308:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x9F) goto yy1302;
+	goto yy1268;
+yy1309:
+	++p;
+	yych = *p;
+	if (yybm[256+yych] & 128) {
+		goto yy1300;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x00) goto yy1268;
+			if (yych <= '-') goto yy1317;
+			goto yy1268;
+		} else {
+			if (yych <= 0xDF) goto yy1310;
+			if (yych <= 0xE0) goto yy1311;
+			goto yy1312;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1316;
+			if (yych <= 0xEF) goto yy1312;
+			goto yy1313;
+		} else {
+			if (yych <= 0xF3) goto yy1314;
+			if (yych <= 0xF4) goto yy1315;
+			goto yy1268;
+		}
+	}
+yy1310:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1300;
+	goto yy1268;
+yy1311:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1268;
+	if (yych <= 0xBF) goto yy1310;
+	goto yy1268;
+yy1312:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1310;
+	goto yy1268;
+yy1313:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1268;
+	if (yych <= 0xBF) goto yy1312;
+	goto yy1268;
+yy1314:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1312;
+	goto yy1268;
+yy1315:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x8F) goto yy1312;
+	goto yy1268;
+yy1316:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x9F) goto yy1310;
+	goto yy1268;
+yy1317:
+	yych = *++p;
+	if (yych == '>') goto yy1285;
+	goto yy1268;
+yy1318:
+	yych = *++p;
+	if (yych == '>') goto yy1285;
+	goto yy1268;
+yy1319:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 1) {
+		goto yy1319;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '>') {
+			if (yych <= 0x00) goto yy1268;
+			if (yych >= '>') goto yy1285;
+		} else {
+			if (yych <= 0x7F) goto yy1321;
+			if (yych <= 0xC1) goto yy1268;
+			if (yych <= 0xDF) goto yy1323;
+			goto yy1324;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1329;
+			goto yy1325;
+		} else {
+			if (yych <= 0xF0) goto yy1326;
+			if (yych <= 0xF3) goto yy1327;
+			if (yych <= 0xF4) goto yy1328;
+			goto yy1268;
+		}
+	}
+yy1321:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 2) {
+		goto yy1321;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x00) goto yy1268;
+			if (yych <= '>') goto yy1285;
+			goto yy1268;
+		} else {
+			if (yych <= 0xDF) goto yy1323;
+			if (yych <= 0xE0) goto yy1324;
+			goto yy1325;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1329;
+			if (yych <= 0xEF) goto yy1325;
+			goto yy1326;
+		} else {
+			if (yych <= 0xF3) goto yy1327;
+			if (yych <= 0xF4) goto yy1328;
+			goto yy1268;
+		}
+	}
+yy1323:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1321;
+	goto yy1268;
+yy1324:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1268;
+	if (yych <= 0xBF) goto yy1323;
+	goto yy1268;
+yy1325:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1323;
+	goto yy1268;
+yy1326:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1268;
+	if (yych <= 0xBF) goto yy1325;
+	goto yy1268;
+yy1327:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1325;
+	goto yy1268;
+yy1328:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x8F) goto yy1325;
+	goto yy1268;
+yy1329:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x9F) goto yy1323;
+	goto yy1268;
+yy1330:
+	yych = *++p;
+	if (yych == 'D') goto yy1331;
+	if (yych != 'd') goto yy1268;
+yy1331:
+	yych = *++p;
+	if (yych == 'A') goto yy1332;
+	if (yych != 'a') goto yy1268;
+yy1332:
+	yych = *++p;
+	if (yych == 'T') goto yy1333;
+	if (yych != 't') goto yy1268;
+yy1333:
+	yych = *++p;
+	if (yych == 'A') goto yy1334;
+	if (yych != 'a') goto yy1268;
+yy1334:
+	yych = *++p;
+	if (yych != '[') goto yy1268;
+yy1335:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 4) {
+		goto yy1335;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x00) goto yy1268;
+			if (yych <= ']') goto yy1344;
+			goto yy1268;
+		} else {
+			if (yych <= 0xDF) goto yy1337;
+			if (yych <= 0xE0) goto yy1338;
+			goto yy1339;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1343;
+			if (yych <= 0xEF) goto yy1339;
+			goto yy1340;
+		} else {
+			if (yych <= 0xF3) goto yy1341;
+			if (yych <= 0xF4) goto yy1342;
+			goto yy1268;
+		}
+	}
+yy1337:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1335;
+	goto yy1268;
+yy1338:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1268;
+	if (yych <= 0xBF) goto yy1337;
+	goto yy1268;
+yy1339:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1337;
+	goto yy1268;
+yy1340:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1268;
+	if (yych <= 0xBF) goto yy1339;
+	goto yy1268;
+yy1341:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1339;
+	goto yy1268;
+yy1342:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x8F) goto yy1339;
+	goto yy1268;
+yy1343:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x9F) goto yy1337;
+	goto yy1268;
+yy1344:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 4) {
+		goto yy1335;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x00) goto yy1268;
+			if (yych >= '^') goto yy1268;
+		} else {
+			if (yych <= 0xDF) goto yy1346;
+			if (yych <= 0xE0) goto yy1347;
+			goto yy1348;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1352;
+			if (yych <= 0xEF) goto yy1348;
+			goto yy1349;
+		} else {
+			if (yych <= 0xF3) goto yy1350;
+			if (yych <= 0xF4) goto yy1351;
+			goto yy1268;
+		}
+	}
+	++p;
+	yych = *p;
+	if (yych <= 0xE0) {
+		if (yych <= '>') {
+			if (yych <= 0x00) goto yy1268;
+			if (yych <= '=') goto yy1335;
+			goto yy1285;
+		} else {
+			if (yych <= 0x7F) goto yy1335;
+			if (yych <= 0xC1) goto yy1268;
+			if (yych <= 0xDF) goto yy1353;
+			goto yy1354;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1359;
+			goto yy1355;
+		} else {
+			if (yych <= 0xF0) goto yy1356;
+			if (yych <= 0xF3) goto yy1357;
+			if (yych <= 0xF4) goto yy1358;
+			goto yy1268;
+		}
+	}
+yy1346:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1335;
+	goto yy1268;
+yy1347:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1268;
+	if (yych <= 0xBF) goto yy1346;
+	goto yy1268;
+yy1348:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1346;
+	goto yy1268;
+yy1349:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1268;
+	if (yych <= 0xBF) goto yy1348;
+	goto yy1268;
+yy1350:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1348;
+	goto yy1268;
+yy1351:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x8F) goto yy1348;
+	goto yy1268;
+yy1352:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x9F) goto yy1346;
+	goto yy1268;
+yy1353:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1335;
+	goto yy1268;
+yy1354:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1268;
+	if (yych <= 0xBF) goto yy1353;
+	goto yy1268;
+yy1355:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1353;
+	goto yy1268;
+yy1356:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1268;
+	if (yych <= 0xBF) goto yy1355;
+	goto yy1268;
+yy1357:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1355;
+	goto yy1268;
+yy1358:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x8F) goto yy1355;
+	goto yy1268;
+yy1359:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x9F) goto yy1353;
+	goto yy1268;
+yy1360:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 8) {
+		goto yy1360;
+	}
+	if (yych <= 0x1F) {
+		if (yych <= 0x08) goto yy1268;
+		if (yych >= 0x0E) goto yy1268;
+	} else {
+		if (yych <= ' ') goto yy1362;
+		if (yych == '>') goto yy1285;
+		goto yy1268;
+	}
+yy1362:
+	++p;
+	yych = *p;
+	if (yych <= 0x1F) {
+		if (yych <= 0x08) goto yy1268;
+		if (yych <= '\r') goto yy1362;
+		goto yy1268;
+	} else {
+		if (yych <= ' ') goto yy1362;
+		if (yych == '>') goto yy1285;
+		goto yy1268;
+	}
+yy1364:
+	++p;
+	yych = *p;
+	if (yych <= '/') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) goto yy1268;
+			if (yych <= '\r') goto yy1366;
+			if (yych <= 0x1F) goto yy1268;
+		} else {
+			if (yych == '-') goto yy1364;
+			if (yych <= '.') goto yy1268;
+			goto yy1368;
+		}
+	} else {
+		if (yych <= '@') {
+			if (yych <= '9') goto yy1364;
+			if (yych == '>') goto yy1285;
+			goto yy1268;
+		} else {
+			if (yych <= 'Z') goto yy1364;
+			if (yych <= '`') goto yy1268;
+			if (yych <= 'z') goto yy1364;
+			goto yy1268;
+		}
+	}
+yy1366:
+	++p;
+	yych = *p;
+	if (yych <= ':') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) goto yy1268;
+			if (yych <= '\r') goto yy1366;
+			if (yych <= 0x1F) goto yy1268;
+			goto yy1366;
+		} else {
+			if (yych == '/') goto yy1368;
+			if (yych <= '9') goto yy1268;
+			goto yy1369;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych == '>') goto yy1285;
+			if (yych <= '@') goto yy1268;
+			goto yy1369;
+		} else {
+			if (yych <= '_') {
+				if (yych <= '^') goto yy1268;
+				goto yy1369;
+			} else {
+				if (yych <= '`') goto yy1268;
+				if (yych <= 'z') goto yy1369;
+				goto yy1268;
+			}
+		}
+	}
+yy1368:
+	yych = *++p;
+	if (yych == '>') goto yy1285;
+	goto yy1268;
+yy1369:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 16) {
+		goto yy1369;
+	}
+	if (yych <= ',') {
+		if (yych <= '\r') {
+			if (yych <= 0x08) goto yy1268;
+		} else {
+			if (yych != ' ') goto yy1268;
+		}
+	} else {
+		if (yych <= '<') {
+			if (yych <= '/') goto yy1368;
+			goto yy1268;
+		} else {
+			if (yych <= '=') goto yy1373;
+			if (yych <= '>') goto yy1285;
+			goto yy1268;
+		}
+	}
+yy1371:
+	++p;
+	yych = *p;
+	if (yych <= '<') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) goto yy1268;
+			if (yych <= '\r') goto yy1371;
+			if (yych <= 0x1F) goto yy1268;
+			goto yy1371;
+		} else {
+			if (yych <= '/') {
+				if (yych <= '.') goto yy1268;
+				goto yy1368;
+			} else {
+				if (yych == ':') goto yy1369;
+				goto yy1268;
+			}
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '=') goto yy1373;
+			if (yych <= '>') goto yy1285;
+			if (yych <= '@') goto yy1268;
+			goto yy1369;
+		} else {
+			if (yych <= '_') {
+				if (yych <= '^') goto yy1268;
+				goto yy1369;
+			} else {
+				if (yych <= '`') goto yy1268;
+				if (yych <= 'z') goto yy1369;
+				goto yy1268;
+			}
+		}
+	}
+yy1373:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1375;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '"') {
+			if (yych <= 0x00) goto yy1268;
+			if (yych >= '!') goto yy1386;
+		} else {
+			if (yych <= '\'') goto yy1384;
+			if (yych <= 0xC1) goto yy1268;
+			if (yych <= 0xDF) goto yy1377;
+			goto yy1378;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1383;
+			goto yy1379;
+		} else {
+			if (yych <= 0xF0) goto yy1380;
+			if (yych <= 0xF3) goto yy1381;
+			if (yych <= 0xF4) goto yy1382;
+			goto yy1268;
+		}
+	}
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1375;
+	}
+	if (yych <= 0xDF) {
+		if (yych <= '\'') {
+			if (yych <= 0x00) goto yy1268;
+			if (yych <= ' ') goto yy1409;
+			if (yych <= '"') goto yy1386;
+			goto yy1384;
+		} else {
+			if (yych == '>') goto yy1285;
+			if (yych <= 0xC1) goto yy1268;
+			goto yy1377;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1378;
+			if (yych == 0xED) goto yy1383;
+			goto yy1379;
+		} else {
+			if (yych <= 0xF0) goto yy1380;
+			if (yych <= 0xF3) goto yy1381;
+			if (yych <= 0xF4) goto yy1382;
+			goto yy1268;
+		}
+	}
+yy1375:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1375;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '=') {
+			if (yych <= 0x00) goto yy1268;
+			if (yych <= ' ') goto yy1403;
+			goto yy1268;
+		} else {
+			if (yych <= '>') goto yy1285;
+			if (yych <= 0xC1) goto yy1268;
+			if (yych >= 0xE0) goto yy1378;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1383;
+			goto yy1379;
+		} else {
+			if (yych <= 0xF0) goto yy1380;
+			if (yych <= 0xF3) goto yy1381;
+			if (yych <= 0xF4) goto yy1382;
+			goto yy1268;
+		}
+	}
+yy1377:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1375;
+	goto yy1268;
+yy1378:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1268;
+	if (yych <= 0xBF) goto yy1377;
+	goto yy1268;
+yy1379:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1377;
+	goto yy1268;
+yy1380:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1268;
+	if (yych <= 0xBF) goto yy1379;
+	goto yy1268;
+yy1381:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1379;
+	goto yy1268;
+yy1382:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x8F) goto yy1379;
+	goto yy1268;
+yy1383:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x9F) goto yy1377;
+	goto yy1268;
+yy1384:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1384;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x00) goto yy1268;
+			if (yych <= '\'') goto yy1395;
+			goto yy1268;
+		} else {
+			if (yych <= 0xDF) goto yy1396;
+			if (yych <= 0xE0) goto yy1397;
+			goto yy1398;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1402;
+			if (yych <= 0xEF) goto yy1398;
+			goto yy1399;
+		} else {
+			if (yych <= 0xF3) goto yy1400;
+			if (yych <= 0xF4) goto yy1401;
+			goto yy1268;
+		}
+	}
+yy1386:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1386;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x00) goto yy1268;
+			if (yych <= '"') goto yy1395;
+			goto yy1268;
+		} else {
+			if (yych <= 0xDF) goto yy1388;
+			if (yych <= 0xE0) goto yy1389;
+			goto yy1390;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1394;
+			if (yych <= 0xEF) goto yy1390;
+			goto yy1391;
+		} else {
+			if (yych <= 0xF3) goto yy1392;
+			if (yych <= 0xF4) goto yy1393;
+			goto yy1268;
+		}
+	}
+yy1388:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1386;
+	goto yy1268;
+yy1389:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1268;
+	if (yych <= 0xBF) goto yy1388;
+	goto yy1268;
+yy1390:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1388;
+	goto yy1268;
+yy1391:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1268;
+	if (yych <= 0xBF) goto yy1390;
+	goto yy1268;
+yy1392:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1390;
+	goto yy1268;
+yy1393:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x8F) goto yy1390;
+	goto yy1268;
+yy1394:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x9F) goto yy1388;
+	goto yy1268;
+yy1395:
+	++p;
+	yych = *p;
+	if (yych <= ' ') {
+		if (yych <= 0x08) goto yy1268;
+		if (yych <= '\r') goto yy1366;
+		if (yych <= 0x1F) goto yy1268;
+		goto yy1366;
+	} else {
+		if (yych <= '/') {
+			if (yych <= '.') goto yy1268;
+			goto yy1368;
+		} else {
+			if (yych == '>') goto yy1285;
+			goto yy1268;
+		}
+	}
+yy1396:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1384;
+	goto yy1268;
+yy1397:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1268;
+	if (yych <= 0xBF) goto yy1396;
+	goto yy1268;
+yy1398:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1396;
+	goto yy1268;
+yy1399:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1268;
+	if (yych <= 0xBF) goto yy1398;
+	goto yy1268;
+yy1400:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0xBF) goto yy1398;
+	goto yy1268;
+yy1401:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x8F) goto yy1398;
+	goto yy1268;
+yy1402:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1268;
+	if (yych <= 0x9F) goto yy1396;
+	goto yy1268;
+yy1403:
+	++p;
+	yych = *p;
+	if (yych <= '@') {
+		if (yych <= '"') {
+			if (yych <= '\r') {
+				if (yych <= 0x00) goto yy1268;
+				if (yych <= 0x08) goto yy1375;
+				goto yy1403;
+			} else {
+				if (yych == ' ') goto yy1403;
+				if (yych <= '!') goto yy1375;
+				goto yy1268;
+			}
+		} else {
+			if (yych <= ':') {
+				if (yych == '\'') goto yy1268;
+				if (yych <= '9') goto yy1375;
+			} else {
+				if (yych <= ';') goto yy1375;
+				if (yych <= '=') goto yy1268;
+				if (yych <= '>') goto yy1285;
+				goto yy1375;
+			}
+		}
+	} else {
+		if (yych <= 0xDF) {
+			if (yych <= '`') {
+				if (yych <= 'Z') goto yy1405;
+				if (yych <= '^') goto yy1375;
+				if (yych >= '`') goto yy1268;
+			} else {
+				if (yych <= 'z') goto yy1405;
+				if (yych <= 0x7F) goto yy1375;
+				if (yych <= 0xC1) goto yy1268;
+				goto yy1377;
+			}
+		} else {
+			if (yych <= 0xEF) {
+				if (yych <= 0xE0) goto yy1378;
+				if (yych == 0xED) goto yy1383;
+				goto yy1379;
+			} else {
+				if (yych <= 0xF0) goto yy1380;
+				if (yych <= 0xF3) goto yy1381;
+				if (yych <= 0xF4) goto yy1382;
+				goto yy1268;
+			}
+		}
+	}
+yy1405:
+	++p;
+	yych = *p;
+	if (yych <= '>') {
+		if (yych <= '&') {
+			if (yych <= 0x1F) {
+				if (yych <= 0x00) goto yy1268;
+				if (yych <= 0x08) goto yy1375;
+				if (yych >= 0x0E) goto yy1375;
+			} else {
+				if (yych <= ' ') goto yy1407;
+				if (yych == '"') goto yy1268;
+				goto yy1375;
+			}
+		} else {
+			if (yych <= '/') {
+				if (yych <= '\'') goto yy1268;
+				if (yych <= ',') goto yy1375;
+				if (yych <= '.') goto yy1405;
+				goto yy1375;
+			} else {
+				if (yych <= ';') {
+					if (yych <= ':') goto yy1405;
+					goto yy1375;
+				} else {
+					if (yych <= '<') goto yy1268;
+					if (yych <= '=') goto yy1373;
+					goto yy1285;
+				}
+			}
+		}
+	} else {
+		if (yych <= 0xC1) {
+			if (yych <= '_') {
+				if (yych <= '@') goto yy1375;
+				if (yych <= 'Z') goto yy1405;
+				if (yych <= '^') goto yy1375;
+				goto yy1405;
+			} else {
+				if (yych <= '`') goto yy1268;
+				if (yych <= 'z') goto yy1405;
+				if (yych <= 0x7F) goto yy1375;
+				goto yy1268;
+			}
+		} else {
+			if (yych <= 0xED) {
+				if (yych <= 0xDF) goto yy1377;
+				if (yych <= 0xE0) goto yy1378;
+				if (yych <= 0xEC) goto yy1379;
+				goto yy1383;
+			} else {
+				if (yych <= 0xF0) {
+					if (yych <= 0xEF) goto yy1379;
+					goto yy1380;
+				} else {
+					if (yych <= 0xF3) goto yy1381;
+					if (yych <= 0xF4) goto yy1382;
+					goto yy1268;
+				}
+			}
+		}
+	}
+yy1407:
+	++p;
+	yych = *p;
+	if (yych <= '@') {
+		if (yych <= '&') {
+			if (yych <= 0x1F) {
+				if (yych <= 0x00) goto yy1268;
+				if (yych <= 0x08) goto yy1375;
+				if (yych <= '\r') goto yy1407;
+				goto yy1375;
+			} else {
+				if (yych <= ' ') goto yy1407;
+				if (yych == '"') goto yy1268;
+				goto yy1375;
+			}
+		} else {
+			if (yych <= ';') {
+				if (yych <= '\'') goto yy1268;
+				if (yych == ':') goto yy1405;
+				goto yy1375;
+			} else {
+				if (yych <= '<') goto yy1268;
+				if (yych <= '=') goto yy1373;
+				if (yych <= '>') goto yy1285;
+				goto yy1375;
+			}
+		}
+	} else {
+		if (yych <= 0xDF) {
+			if (yych <= '`') {
+				if (yych <= 'Z') goto yy1405;
+				if (yych <= '^') goto yy1375;
+				if (yych <= '_') goto yy1405;
+				goto yy1268;
+			} else {
+				if (yych <= 'z') goto yy1405;
+				if (yych <= 0x7F) goto yy1375;
+				if (yych <= 0xC1) goto yy1268;
+				goto yy1377;
+			}
+		} else {
+			if (yych <= 0xEF) {
+				if (yych <= 0xE0) goto yy1378;
+				if (yych == 0xED) goto yy1383;
+				goto yy1379;
+			} else {
+				if (yych <= 0xF0) goto yy1380;
+				if (yych <= 0xF3) goto yy1381;
+				if (yych <= 0xF4) goto yy1382;
+				goto yy1268;
+			}
+		}
+	}
+yy1409:
+	++p;
+	yych = *p;
+	if (yych <= '@') {
+		if (yych <= '"') {
+			if (yych <= '\r') {
+				if (yych <= 0x00) goto yy1268;
+				if (yych <= 0x08) goto yy1375;
+				goto yy1409;
+			} else {
+				if (yych == ' ') goto yy1409;
+				if (yych <= '!') goto yy1375;
+				goto yy1386;
+			}
+		} else {
+			if (yych <= ':') {
+				if (yych == '\'') goto yy1384;
+				if (yych <= '9') goto yy1375;
+				goto yy1405;
+			} else {
+				if (yych <= ';') goto yy1375;
+				if (yych <= '=') goto yy1268;
+				if (yych <= '>') goto yy1285;
+				goto yy1375;
+			}
+		}
+	} else {
+		if (yych <= 0xDF) {
+			if (yych <= '`') {
+				if (yych <= 'Z') goto yy1405;
+				if (yych <= '^') goto yy1375;
+				if (yych <= '_') goto yy1405;
+				goto yy1268;
+			} else {
+				if (yych <= 'z') goto yy1405;
+				if (yych <= 0x7F) goto yy1375;
+				if (yych <= 0xC1) goto yy1268;
+				goto yy1377;
+			}
+		} else {
+			if (yych <= 0xEF) {
+				if (yych <= 0xE0) goto yy1378;
+				if (yych == 0xED) goto yy1383;
+				goto yy1379;
+			} else {
+				if (yych <= 0xF0) goto yy1380;
+				if (yych <= 0xF3) goto yy1381;
+				if (yych <= 0xF4) goto yy1382;
+				goto yy1268;
+			}
+		}
+	}
+}
+
+}
+
+// Try to match an HTML block tag start line, returning
+// an integer code for the type of block (1-6, matching the spec).
+// #7 is handled by a separate function, below.
+bufsize_t _scan_html_block_start(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+
+{
+	unsigned char yych;
+	yych = *(marker = p);
+	if (yych <= 0xDF) {
+		if (yych <= ';') {
+			if (yych != '\n') goto yy1415;
+		} else {
+			if (yych <= '<') goto yy1414;
+			if (yych <= 0x7F) goto yy1415;
+			if (yych >= 0xC2) goto yy1416;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1418;
+			if (yych == 0xED) goto yy1423;
+			goto yy1419;
+		} else {
+			if (yych <= 0xF0) goto yy1420;
+			if (yych <= 0xF3) goto yy1421;
+			if (yych <= 0xF4) goto yy1422;
+		}
+	}
+yy1413:
+	{ return 0; }
+yy1414:
+	yych = *(marker = ++p);
+	switch (yych) {
+	case '!':	goto yy1439;
+	case '/':	goto yy1424;
+	case '?':	goto yy1440;
+	case 'A':
+	case 'a':	goto yy1426;
+	case 'B':
+	case 'b':	goto yy1427;
+	case 'C':
+	case 'c':	goto yy1428;
+	case 'D':
+	case 'd':	goto yy1429;
+	case 'F':
+	case 'f':	goto yy1430;
+	case 'H':
+	case 'h':	goto yy1431;
+	case 'L':
+	case 'l':	goto yy1432;
+	case 'M':
+	case 'm':	goto yy1433;
+	case 'N':
+	case 'n':	goto yy1434;
+	case 'O':
+	case 'o':	goto yy1435;
+	case 'P':
+	case 'p':	goto yy1425;
+	case 'S':
+	case 's':	goto yy1436;
+	case 'T':
+	case 't':	goto yy1437;
+	case 'U':
+	case 'u':	goto yy1438;
+	default:	goto yy1413;
+	}
+yy1415:
+	yych = *++p;
+	goto yy1413;
+yy1416:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1417;
+	if (yych <= 0xBF) goto yy1415;
+yy1417:
+	p = marker;
+	goto yy1413;
+yy1418:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy1417;
+	if (yych <= 0xBF) goto yy1416;
+	goto yy1417;
+yy1419:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1417;
+	if (yych <= 0xBF) goto yy1416;
+	goto yy1417;
+yy1420:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy1417;
+	if (yych <= 0xBF) goto yy1419;
+	goto yy1417;
+yy1421:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1417;
+	if (yych <= 0xBF) goto yy1419;
+	goto yy1417;
+yy1422:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1417;
+	if (yych <= 0x8F) goto yy1419;
+	goto yy1417;
+yy1423:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1417;
+	if (yych <= 0x9F) goto yy1416;
+	goto yy1417;
+yy1424:
+	yych = *++p;
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy1426;
+	case 'B':
+	case 'b':	goto yy1427;
+	case 'C':
+	case 'c':	goto yy1428;
+	case 'D':
+	case 'd':	goto yy1429;
+	case 'F':
+	case 'f':	goto yy1430;
+	case 'H':
+	case 'h':	goto yy1431;
+	case 'L':
+	case 'l':	goto yy1432;
+	case 'M':
+	case 'm':	goto yy1433;
+	case 'N':
+	case 'n':	goto yy1434;
+	case 'O':
+	case 'o':	goto yy1435;
+	case 'P':
+	case 'p':	goto yy1622;
+	case 'S':
+	case 's':	goto yy1623;
+	case 'T':
+	case 't':	goto yy1437;
+	case 'U':
+	case 'u':	goto yy1438;
+	default:	goto yy1417;
+	}
+yy1425:
+	yych = *++p;
+	if (yych <= '>') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) goto yy1417;
+			if (yych <= '\r') goto yy1456;
+			if (yych <= 0x1F) goto yy1417;
+			goto yy1456;
+		} else {
+			if (yych == '/') goto yy1458;
+			if (yych <= '=') goto yy1417;
+			goto yy1456;
+		}
+	} else {
+		if (yych <= 'R') {
+			if (yych == 'A') goto yy1617;
+			if (yych <= 'Q') goto yy1417;
+			goto yy1616;
+		} else {
+			if (yych <= 'a') {
+				if (yych <= '`') goto yy1417;
+				goto yy1617;
+			} else {
+				if (yych == 'r') goto yy1616;
+				goto yy1417;
+			}
+		}
+	}
+yy1426:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych <= 'D') {
+			if (yych <= 'C') goto yy1417;
+			goto yy1605;
+		} else {
+			if (yych <= 'Q') goto yy1417;
+			if (yych <= 'R') goto yy1604;
+			goto yy1603;
+		}
+	} else {
+		if (yych <= 'q') {
+			if (yych == 'd') goto yy1605;
+			goto yy1417;
+		} else {
+			if (yych <= 'r') goto yy1604;
+			if (yych <= 's') goto yy1603;
+			goto yy1417;
+		}
+	}
+yy1427:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych <= 'K') {
+			if (yych == 'A') goto yy1589;
+			goto yy1417;
+		} else {
+			if (yych <= 'L') goto yy1588;
+			if (yych <= 'N') goto yy1417;
+			goto yy1587;
+		}
+	} else {
+		if (yych <= 'k') {
+			if (yych == 'a') goto yy1589;
+			goto yy1417;
+		} else {
+			if (yych <= 'l') goto yy1588;
+			if (yych == 'o') goto yy1587;
+			goto yy1417;
+		}
+	}
+yy1428:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych <= 'D') {
+			if (yych == 'A') goto yy1574;
+			goto yy1417;
+		} else {
+			if (yych <= 'E') goto yy1573;
+			if (yych <= 'N') goto yy1417;
+			goto yy1572;
+		}
+	} else {
+		if (yych <= 'd') {
+			if (yych == 'a') goto yy1574;
+			goto yy1417;
+		} else {
+			if (yych <= 'e') goto yy1573;
+			if (yych == 'o') goto yy1572;
+			goto yy1417;
+		}
+	}
+yy1429:
+	yych = *++p;
+	switch (yych) {
+	case 'D':
+	case 'L':
+	case 'T':
+	case 'd':
+	case 'l':
+	case 't':	goto yy1455;
+	case 'E':
+	case 'e':	goto yy1564;
+	case 'I':
+	case 'i':	goto yy1563;
+	default:	goto yy1417;
+	}
+yy1430:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych <= 'N') {
+			if (yych == 'I') goto yy1539;
+			goto yy1417;
+		} else {
+			if (yych <= 'O') goto yy1538;
+			if (yych <= 'Q') goto yy1417;
+			goto yy1537;
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych == 'i') goto yy1539;
+			goto yy1417;
+		} else {
+			if (yych <= 'o') goto yy1538;
+			if (yych == 'r') goto yy1537;
+			goto yy1417;
+		}
+	}
+yy1431:
+	yych = *++p;
+	if (yych <= 'S') {
+		if (yych <= 'D') {
+			if (yych == '1') goto yy1455;
+			goto yy1417;
+		} else {
+			if (yych <= 'E') goto yy1532;
+			if (yych == 'R') goto yy1455;
+			goto yy1417;
+		}
+	} else {
+		if (yych <= 'q') {
+			if (yych <= 'T') goto yy1531;
+			if (yych == 'e') goto yy1532;
+			goto yy1417;
+		} else {
+			if (yych <= 'r') goto yy1455;
+			if (yych == 't') goto yy1531;
+			goto yy1417;
+		}
+	}
+yy1432:
+	yych = *++p;
+	if (yych <= 'I') {
+		if (yych == 'E') goto yy1526;
+		if (yych <= 'H') goto yy1417;
+		goto yy1525;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy1417;
+			goto yy1526;
+		} else {
+			if (yych == 'i') goto yy1525;
+			goto yy1417;
+		}
+	}
+yy1433:
+	yych = *++p;
+	if (yych <= 'E') {
+		if (yych == 'A') goto yy1517;
+		if (yych <= 'D') goto yy1417;
+		goto yy1516;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy1417;
+			goto yy1517;
+		} else {
+			if (yych == 'e') goto yy1516;
+			goto yy1417;
+		}
+	}
+yy1434:
+	yych = *++p;
+	if (yych <= 'O') {
+		if (yych == 'A') goto yy1510;
+		if (yych <= 'N') goto yy1417;
+		goto yy1509;
+	} else {
+		if (yych <= 'a') {
+			if (yych <= '`') goto yy1417;
+			goto yy1510;
+		} else {
+			if (yych == 'o') goto yy1509;
+			goto yy1417;
+		}
+	}
+yy1435:
+	yych = *++p;
+	if (yych <= 'P') {
+		if (yych == 'L') goto yy1455;
+		if (yych <= 'O') goto yy1417;
+		goto yy1501;
+	} else {
+		if (yych <= 'l') {
+			if (yych <= 'k') goto yy1417;
+			goto yy1455;
+		} else {
+			if (yych == 'p') goto yy1501;
+			goto yy1417;
+		}
+	}
+yy1436:
+	yych = *++p;
+	if (yych <= 'U') {
+		if (yych <= 'E') {
+			if (yych == 'C') goto yy1478;
+			if (yych <= 'D') goto yy1417;
+			goto yy1481;
+		} else {
+			if (yych <= 'O') {
+				if (yych <= 'N') goto yy1417;
+				goto yy1480;
+			} else {
+				if (yych <= 'S') goto yy1417;
+				if (yych <= 'T') goto yy1477;
+				goto yy1479;
+			}
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'c') {
+				if (yych <= 'b') goto yy1417;
+				goto yy1478;
+			} else {
+				if (yych == 'e') goto yy1481;
+				goto yy1417;
+			}
+		} else {
+			if (yych <= 's') {
+				if (yych <= 'o') goto yy1480;
+				goto yy1417;
+			} else {
+				if (yych <= 't') goto yy1477;
+				if (yych <= 'u') goto yy1479;
+				goto yy1417;
+			}
+		}
+	}
+yy1437:
+	yych = *++p;
+	switch (yych) {
+	case 'A':
+	case 'a':	goto yy1464;
+	case 'B':
+	case 'b':	goto yy1463;
+	case 'D':
+	case 'd':	goto yy1455;
+	case 'F':
+	case 'f':	goto yy1462;
+	case 'H':
+	case 'h':	goto yy1461;
+	case 'I':
+	case 'i':	goto yy1460;
+	case 'R':
+	case 'r':	goto yy1459;
+	default:	goto yy1417;
+	}
+yy1438:
+	yych = *++p;
+	if (yych == 'L') goto yy1455;
+	if (yych == 'l') goto yy1455;
+	goto yy1417;
+yy1439:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych == '-') goto yy1442;
+		goto yy1417;
+	} else {
+		if (yych <= 'Z') goto yy1443;
+		if (yych <= '[') goto yy1445;
+		goto yy1417;
+	}
+yy1440:
+	++p;
+	{ return 3; }
+yy1442:
+	yych = *++p;
+	if (yych == '-') goto yy1453;
+	goto yy1417;
+yy1443:
+	++p;
+	{ return 4; }
+yy1445:
+	yych = *++p;
+	if (yych == 'C') goto yy1446;
+	if (yych != 'c') goto yy1417;
+yy1446:
+	yych = *++p;
+	if (yych == 'D') goto yy1447;
+	if (yych != 'd') goto yy1417;
+yy1447:
+	yych = *++p;
+	if (yych == 'A') goto yy1448;
+	if (yych != 'a') goto yy1417;
+yy1448:
+	yych = *++p;
+	if (yych == 'T') goto yy1449;
+	if (yych != 't') goto yy1417;
+yy1449:
+	yych = *++p;
+	if (yych == 'A') goto yy1450;
+	if (yych != 'a') goto yy1417;
+yy1450:
+	yych = *++p;
+	if (yych != '[') goto yy1417;
+	++p;
+	{ return 5; }
+yy1453:
+	++p;
+	{ return 2; }
+yy1455:
+	yych = *++p;
+	if (yych <= ' ') {
+		if (yych <= 0x08) goto yy1417;
+		if (yych <= '\r') goto yy1456;
+		if (yych <= 0x1F) goto yy1417;
+	} else {
+		if (yych <= '/') {
+			if (yych <= '.') goto yy1417;
+			goto yy1458;
+		} else {
+			if (yych != '>') goto yy1417;
+		}
+	}
+yy1456:
+	++p;
+	{ return 6; }
+yy1458:
+	yych = *++p;
+	if (yych == '>') goto yy1456;
+	goto yy1417;
+yy1459:
+	yych = *++p;
+	if (yych <= '/') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1417;
+			if (yych <= '\r') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= ' ') goto yy1456;
+			if (yych <= '.') goto yy1417;
+			goto yy1458;
+		}
+	} else {
+		if (yych <= '@') {
+			if (yych == '>') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= 'A') goto yy1475;
+			if (yych == 'a') goto yy1475;
+			goto yy1417;
+		}
+	}
+yy1460:
+	yych = *++p;
+	if (yych == 'T') goto yy1473;
+	if (yych == 't') goto yy1473;
+	goto yy1417;
+yy1461:
+	yych = *++p;
+	if (yych <= '/') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1417;
+			if (yych <= '\r') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= ' ') goto yy1456;
+			if (yych <= '.') goto yy1417;
+			goto yy1458;
+		}
+	} else {
+		if (yych <= 'D') {
+			if (yych == '>') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= 'E') goto yy1471;
+			if (yych == 'e') goto yy1471;
+			goto yy1417;
+		}
+	}
+yy1462:
+	yych = *++p;
+	if (yych == 'O') goto yy1469;
+	if (yych == 'o') goto yy1469;
+	goto yy1417;
+yy1463:
+	yych = *++p;
+	if (yych == 'O') goto yy1467;
+	if (yych == 'o') goto yy1467;
+	goto yy1417;
+yy1464:
+	yych = *++p;
+	if (yych == 'B') goto yy1465;
+	if (yych != 'b') goto yy1417;
+yy1465:
+	yych = *++p;
+	if (yych == 'L') goto yy1466;
+	if (yych != 'l') goto yy1417;
+yy1466:
+	yych = *++p;
+	if (yych == 'E') goto yy1455;
+	if (yych == 'e') goto yy1455;
+	goto yy1417;
+yy1467:
+	yych = *++p;
+	if (yych == 'D') goto yy1468;
+	if (yych != 'd') goto yy1417;
+yy1468:
+	yych = *++p;
+	if (yych == 'Y') goto yy1455;
+	if (yych == 'y') goto yy1455;
+	goto yy1417;
+yy1469:
+	yych = *++p;
+	if (yych == 'O') goto yy1470;
+	if (yych != 'o') goto yy1417;
+yy1470:
+	yych = *++p;
+	if (yych == 'T') goto yy1455;
+	if (yych == 't') goto yy1455;
+	goto yy1417;
+yy1471:
+	yych = *++p;
+	if (yych == 'A') goto yy1472;
+	if (yych != 'a') goto yy1417;
+yy1472:
+	yych = *++p;
+	if (yych == 'D') goto yy1455;
+	if (yych == 'd') goto yy1455;
+	goto yy1417;
+yy1473:
+	yych = *++p;
+	if (yych == 'L') goto yy1474;
+	if (yych != 'l') goto yy1417;
+yy1474:
+	yych = *++p;
+	if (yych == 'E') goto yy1455;
+	if (yych == 'e') goto yy1455;
+	goto yy1417;
+yy1475:
+	yych = *++p;
+	if (yych == 'C') goto yy1476;
+	if (yych != 'c') goto yy1417;
+yy1476:
+	yych = *++p;
+	if (yych == 'K') goto yy1455;
+	if (yych == 'k') goto yy1455;
+	goto yy1417;
+yy1477:
+	yych = *++p;
+	if (yych == 'Y') goto yy1499;
+	if (yych == 'y') goto yy1499;
+	goto yy1417;
+yy1478:
+	yych = *++p;
+	if (yych == 'R') goto yy1493;
+	if (yych == 'r') goto yy1493;
+	goto yy1417;
+yy1479:
+	yych = *++p;
+	if (yych == 'M') goto yy1489;
+	if (yych == 'm') goto yy1489;
+	goto yy1417;
+yy1480:
+	yych = *++p;
+	if (yych == 'U') goto yy1486;
+	if (yych == 'u') goto yy1486;
+	goto yy1417;
+yy1481:
+	yych = *++p;
+	if (yych == 'C') goto yy1482;
+	if (yych != 'c') goto yy1417;
+yy1482:
+	yych = *++p;
+	if (yych == 'T') goto yy1483;
+	if (yych != 't') goto yy1417;
+yy1483:
+	yych = *++p;
+	if (yych == 'I') goto yy1484;
+	if (yych != 'i') goto yy1417;
+yy1484:
+	yych = *++p;
+	if (yych == 'O') goto yy1485;
+	if (yych != 'o') goto yy1417;
+yy1485:
+	yych = *++p;
+	if (yych == 'N') goto yy1455;
+	if (yych == 'n') goto yy1455;
+	goto yy1417;
+yy1486:
+	yych = *++p;
+	if (yych == 'R') goto yy1487;
+	if (yych != 'r') goto yy1417;
+yy1487:
+	yych = *++p;
+	if (yych == 'C') goto yy1488;
+	if (yych != 'c') goto yy1417;
+yy1488:
+	yych = *++p;
+	if (yych == 'E') goto yy1455;
+	if (yych == 'e') goto yy1455;
+	goto yy1417;
+yy1489:
+	yych = *++p;
+	if (yych == 'M') goto yy1490;
+	if (yych != 'm') goto yy1417;
+yy1490:
+	yych = *++p;
+	if (yych == 'A') goto yy1491;
+	if (yych != 'a') goto yy1417;
+yy1491:
+	yych = *++p;
+	if (yych == 'R') goto yy1492;
+	if (yych != 'r') goto yy1417;
+yy1492:
+	yych = *++p;
+	if (yych == 'Y') goto yy1455;
+	if (yych == 'y') goto yy1455;
+	goto yy1417;
+yy1493:
+	yych = *++p;
+	if (yych == 'I') goto yy1494;
+	if (yych != 'i') goto yy1417;
+yy1494:
+	yych = *++p;
+	if (yych == 'P') goto yy1495;
+	if (yych != 'p') goto yy1417;
+yy1495:
+	yych = *++p;
+	if (yych == 'T') goto yy1496;
+	if (yych != 't') goto yy1417;
+yy1496:
+	yych = *++p;
+	if (yych <= 0x1F) {
+		if (yych <= 0x08) goto yy1417;
+		if (yych >= 0x0E) goto yy1417;
+	} else {
+		if (yych <= ' ') goto yy1497;
+		if (yych != '>') goto yy1417;
+	}
+yy1497:
+	++p;
+yy1498:
+	{ return 1; }
+yy1499:
+	yych = *++p;
+	if (yych == 'L') goto yy1500;
+	if (yych != 'l') goto yy1417;
+yy1500:
+	yych = *++p;
+	if (yych == 'E') goto yy1496;
+	if (yych == 'e') goto yy1496;
+	goto yy1417;
+yy1501:
+	yych = *++p;
+	if (yych == 'T') goto yy1502;
+	if (yych != 't') goto yy1417;
+yy1502:
+	yych = *++p;
+	if (yych <= 'I') {
+		if (yych == 'G') goto yy1504;
+		if (yych <= 'H') goto yy1417;
+	} else {
+		if (yych <= 'g') {
+			if (yych <= 'f') goto yy1417;
+			goto yy1504;
+		} else {
+			if (yych != 'i') goto yy1417;
+		}
+	}
+	yych = *++p;
+	if (yych == 'O') goto yy1508;
+	if (yych == 'o') goto yy1508;
+	goto yy1417;
+yy1504:
+	yych = *++p;
+	if (yych == 'R') goto yy1505;
+	if (yych != 'r') goto yy1417;
+yy1505:
+	yych = *++p;
+	if (yych == 'O') goto yy1506;
+	if (yych != 'o') goto yy1417;
+yy1506:
+	yych = *++p;
+	if (yych == 'U') goto yy1507;
+	if (yych != 'u') goto yy1417;
+yy1507:
+	yych = *++p;
+	if (yych == 'P') goto yy1455;
+	if (yych == 'p') goto yy1455;
+	goto yy1417;
+yy1508:
+	yych = *++p;
+	if (yych == 'N') goto yy1455;
+	if (yych == 'n') goto yy1455;
+	goto yy1417;
+yy1509:
+	yych = *++p;
+	if (yych == 'F') goto yy1511;
+	if (yych == 'f') goto yy1511;
+	goto yy1417;
+yy1510:
+	yych = *++p;
+	if (yych == 'V') goto yy1455;
+	if (yych == 'v') goto yy1455;
+	goto yy1417;
+yy1511:
+	yych = *++p;
+	if (yych == 'R') goto yy1512;
+	if (yych != 'r') goto yy1417;
+yy1512:
+	yych = *++p;
+	if (yych == 'A') goto yy1513;
+	if (yych != 'a') goto yy1417;
+yy1513:
+	yych = *++p;
+	if (yych == 'M') goto yy1514;
+	if (yych != 'm') goto yy1417;
+yy1514:
+	yych = *++p;
+	if (yych == 'E') goto yy1515;
+	if (yych != 'e') goto yy1417;
+yy1515:
+	yych = *++p;
+	if (yych == 'S') goto yy1455;
+	if (yych == 's') goto yy1455;
+	goto yy1417;
+yy1516:
+	yych = *++p;
+	if (yych <= 'T') {
+		if (yych == 'N') goto yy1519;
+		if (yych <= 'S') goto yy1417;
+		goto yy1520;
+	} else {
+		if (yych <= 'n') {
+			if (yych <= 'm') goto yy1417;
+			goto yy1519;
+		} else {
+			if (yych == 't') goto yy1520;
+			goto yy1417;
+		}
+	}
+yy1517:
+	yych = *++p;
+	if (yych == 'I') goto yy1518;
+	if (yych != 'i') goto yy1417;
+yy1518:
+	yych = *++p;
+	if (yych == 'N') goto yy1455;
+	if (yych == 'n') goto yy1455;
+	goto yy1417;
+yy1519:
+	yych = *++p;
+	if (yych == 'U') goto yy1521;
+	if (yych == 'u') goto yy1521;
+	goto yy1417;
+yy1520:
+	yych = *++p;
+	if (yych == 'A') goto yy1455;
+	if (yych == 'a') goto yy1455;
+	goto yy1417;
+yy1521:
+	yych = *++p;
+	if (yych <= '/') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1417;
+			if (yych <= '\r') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= ' ') goto yy1456;
+			if (yych <= '.') goto yy1417;
+			goto yy1458;
+		}
+	} else {
+		if (yych <= 'H') {
+			if (yych == '>') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= 'I') goto yy1522;
+			if (yych != 'i') goto yy1417;
+		}
+	}
+yy1522:
+	yych = *++p;
+	if (yych == 'T') goto yy1523;
+	if (yych != 't') goto yy1417;
+yy1523:
+	yych = *++p;
+	if (yych == 'E') goto yy1524;
+	if (yych != 'e') goto yy1417;
+yy1524:
+	yych = *++p;
+	if (yych == 'M') goto yy1455;
+	if (yych == 'm') goto yy1455;
+	goto yy1417;
+yy1525:
+	yych = *++p;
+	if (yych <= '/') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1417;
+			if (yych <= '\r') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= ' ') goto yy1456;
+			if (yych <= '.') goto yy1417;
+			goto yy1458;
+		}
+	} else {
+		if (yych <= 'M') {
+			if (yych == '>') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= 'N') goto yy1530;
+			if (yych == 'n') goto yy1530;
+			goto yy1417;
+		}
+	}
+yy1526:
+	yych = *++p;
+	if (yych == 'G') goto yy1527;
+	if (yych != 'g') goto yy1417;
+yy1527:
+	yych = *++p;
+	if (yych == 'E') goto yy1528;
+	if (yych != 'e') goto yy1417;
+yy1528:
+	yych = *++p;
+	if (yych == 'N') goto yy1529;
+	if (yych != 'n') goto yy1417;
+yy1529:
+	yych = *++p;
+	if (yych == 'D') goto yy1455;
+	if (yych == 'd') goto yy1455;
+	goto yy1417;
+yy1530:
+	yych = *++p;
+	if (yych == 'K') goto yy1455;
+	if (yych == 'k') goto yy1455;
+	goto yy1417;
+yy1531:
+	yych = *++p;
+	if (yych == 'M') goto yy1536;
+	if (yych == 'm') goto yy1536;
+	goto yy1417;
+yy1532:
+	yych = *++p;
+	if (yych == 'A') goto yy1533;
+	if (yych != 'a') goto yy1417;
+yy1533:
+	yych = *++p;
+	if (yych == 'D') goto yy1534;
+	if (yych != 'd') goto yy1417;
+yy1534:
+	yych = *++p;
+	if (yych <= '/') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1417;
+			if (yych <= '\r') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= ' ') goto yy1456;
+			if (yych <= '.') goto yy1417;
+			goto yy1458;
+		}
+	} else {
+		if (yych <= 'D') {
+			if (yych == '>') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= 'E') goto yy1535;
+			if (yych != 'e') goto yy1417;
+		}
+	}
+yy1535:
+	yych = *++p;
+	if (yych == 'R') goto yy1455;
+	if (yych == 'r') goto yy1455;
+	goto yy1417;
+yy1536:
+	yych = *++p;
+	if (yych == 'L') goto yy1455;
+	if (yych == 'l') goto yy1455;
+	goto yy1417;
+yy1537:
+	yych = *++p;
+	if (yych == 'A') goto yy1558;
+	if (yych == 'a') goto yy1558;
+	goto yy1417;
+yy1538:
+	yych = *++p;
+	if (yych <= 'R') {
+		if (yych == 'O') goto yy1554;
+		if (yych <= 'Q') goto yy1417;
+		goto yy1555;
+	} else {
+		if (yych <= 'o') {
+			if (yych <= 'n') goto yy1417;
+			goto yy1554;
+		} else {
+			if (yych == 'r') goto yy1555;
+			goto yy1417;
+		}
+	}
+yy1539:
+	yych = *++p;
+	if (yych <= 'G') {
+		if (yych == 'E') goto yy1540;
+		if (yych <= 'F') goto yy1417;
+		goto yy1541;
+	} else {
+		if (yych <= 'e') {
+			if (yych <= 'd') goto yy1417;
+		} else {
+			if (yych == 'g') goto yy1541;
+			goto yy1417;
+		}
+	}
+yy1540:
+	yych = *++p;
+	if (yych == 'L') goto yy1550;
+	if (yych == 'l') goto yy1550;
+	goto yy1417;
+yy1541:
+	yych = *++p;
+	if (yych <= 'U') {
+		if (yych == 'C') goto yy1543;
+		if (yych <= 'T') goto yy1417;
+	} else {
+		if (yych <= 'c') {
+			if (yych <= 'b') goto yy1417;
+			goto yy1543;
+		} else {
+			if (yych != 'u') goto yy1417;
+		}
+	}
+	yych = *++p;
+	if (yych == 'R') goto yy1549;
+	if (yych == 'r') goto yy1549;
+	goto yy1417;
+yy1543:
+	yych = *++p;
+	if (yych == 'A') goto yy1544;
+	if (yych != 'a') goto yy1417;
+yy1544:
+	yych = *++p;
+	if (yych == 'P') goto yy1545;
+	if (yych != 'p') goto yy1417;
+yy1545:
+	yych = *++p;
+	if (yych == 'T') goto yy1546;
+	if (yych != 't') goto yy1417;
+yy1546:
+	yych = *++p;
+	if (yych == 'I') goto yy1547;
+	if (yych != 'i') goto yy1417;
+yy1547:
+	yych = *++p;
+	if (yych == 'O') goto yy1548;
+	if (yych != 'o') goto yy1417;
+yy1548:
+	yych = *++p;
+	if (yych == 'N') goto yy1455;
+	if (yych == 'n') goto yy1455;
+	goto yy1417;
+yy1549:
+	yych = *++p;
+	if (yych == 'E') goto yy1455;
+	if (yych == 'e') goto yy1455;
+	goto yy1417;
+yy1550:
+	yych = *++p;
+	if (yych == 'D') goto yy1551;
+	if (yych != 'd') goto yy1417;
+yy1551:
+	yych = *++p;
+	if (yych == 'S') goto yy1552;
+	if (yych != 's') goto yy1417;
+yy1552:
+	yych = *++p;
+	if (yych == 'E') goto yy1553;
+	if (yych != 'e') goto yy1417;
+yy1553:
+	yych = *++p;
+	if (yych == 'T') goto yy1455;
+	if (yych == 't') goto yy1455;
+	goto yy1417;
+yy1554:
+	yych = *++p;
+	if (yych == 'T') goto yy1556;
+	if (yych == 't') goto yy1556;
+	goto yy1417;
+yy1555:
+	yych = *++p;
+	if (yych == 'M') goto yy1455;
+	if (yych == 'm') goto yy1455;
+	goto yy1417;
+yy1556:
+	yych = *++p;
+	if (yych == 'E') goto yy1557;
+	if (yych != 'e') goto yy1417;
+yy1557:
+	yych = *++p;
+	if (yych == 'R') goto yy1455;
+	if (yych == 'r') goto yy1455;
+	goto yy1417;
+yy1558:
+	yych = *++p;
+	if (yych == 'M') goto yy1559;
+	if (yych != 'm') goto yy1417;
+yy1559:
+	yych = *++p;
+	if (yych == 'E') goto yy1560;
+	if (yych != 'e') goto yy1417;
+yy1560:
+	yych = *++p;
+	if (yych <= '/') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1417;
+			if (yych <= '\r') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= ' ') goto yy1456;
+			if (yych <= '.') goto yy1417;
+			goto yy1458;
+		}
+	} else {
+		if (yych <= 'R') {
+			if (yych == '>') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= 'S') goto yy1561;
+			if (yych != 's') goto yy1417;
+		}
+	}
+yy1561:
+	yych = *++p;
+	if (yych == 'E') goto yy1562;
+	if (yych != 'e') goto yy1417;
+yy1562:
+	yych = *++p;
+	if (yych == 'T') goto yy1455;
+	if (yych == 't') goto yy1455;
+	goto yy1417;
+yy1563:
+	yych = *++p;
+	if (yych <= 'V') {
+		if (yych <= 'Q') {
+			if (yych == 'A') goto yy1569;
+			goto yy1417;
+		} else {
+			if (yych <= 'R') goto yy1455;
+			if (yych <= 'U') goto yy1417;
+			goto yy1455;
+		}
+	} else {
+		if (yych <= 'q') {
+			if (yych == 'a') goto yy1569;
+			goto yy1417;
+		} else {
+			if (yych <= 'r') goto yy1455;
+			if (yych == 'v') goto yy1455;
+			goto yy1417;
+		}
+	}
+yy1564:
+	yych = *++p;
+	if (yych == 'T') goto yy1565;
+	if (yych != 't') goto yy1417;
+yy1565:
+	yych = *++p;
+	if (yych == 'A') goto yy1566;
+	if (yych != 'a') goto yy1417;
+yy1566:
+	yych = *++p;
+	if (yych == 'I') goto yy1567;
+	if (yych != 'i') goto yy1417;
+yy1567:
+	yych = *++p;
+	if (yych == 'L') goto yy1568;
+	if (yych != 'l') goto yy1417;
+yy1568:
+	yych = *++p;
+	if (yych == 'S') goto yy1455;
+	if (yych == 's') goto yy1455;
+	goto yy1417;
+yy1569:
+	yych = *++p;
+	if (yych == 'L') goto yy1570;
+	if (yych != 'l') goto yy1417;
+yy1570:
+	yych = *++p;
+	if (yych == 'O') goto yy1571;
+	if (yych != 'o') goto yy1417;
+yy1571:
+	yych = *++p;
+	if (yych == 'G') goto yy1455;
+	if (yych == 'g') goto yy1455;
+	goto yy1417;
+yy1572:
+	yych = *++p;
+	if (yych == 'L') goto yy1582;
+	if (yych == 'l') goto yy1582;
+	goto yy1417;
+yy1573:
+	yych = *++p;
+	if (yych == 'N') goto yy1579;
+	if (yych == 'n') goto yy1579;
+	goto yy1417;
+yy1574:
+	yych = *++p;
+	if (yych == 'P') goto yy1575;
+	if (yych != 'p') goto yy1417;
+yy1575:
+	yych = *++p;
+	if (yych == 'T') goto yy1576;
+	if (yych != 't') goto yy1417;
+yy1576:
+	yych = *++p;
+	if (yych == 'I') goto yy1577;
+	if (yych != 'i') goto yy1417;
+yy1577:
+	yych = *++p;
+	if (yych == 'O') goto yy1578;
+	if (yych != 'o') goto yy1417;
+yy1578:
+	yych = *++p;
+	if (yych == 'N') goto yy1455;
+	if (yych == 'n') goto yy1455;
+	goto yy1417;
+yy1579:
+	yych = *++p;
+	if (yych == 'T') goto yy1580;
+	if (yych != 't') goto yy1417;
+yy1580:
+	yych = *++p;
+	if (yych == 'E') goto yy1581;
+	if (yych != 'e') goto yy1417;
+yy1581:
+	yych = *++p;
+	if (yych == 'R') goto yy1455;
+	if (yych == 'r') goto yy1455;
+	goto yy1417;
+yy1582:
+	yych = *++p;
+	if (yych <= '/') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1417;
+			if (yych <= '\r') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= ' ') goto yy1456;
+			if (yych <= '.') goto yy1417;
+			goto yy1458;
+		}
+	} else {
+		if (yych <= 'F') {
+			if (yych == '>') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= 'G') goto yy1583;
+			if (yych != 'g') goto yy1417;
+		}
+	}
+yy1583:
+	yych = *++p;
+	if (yych == 'R') goto yy1584;
+	if (yych != 'r') goto yy1417;
+yy1584:
+	yych = *++p;
+	if (yych == 'O') goto yy1585;
+	if (yych != 'o') goto yy1417;
+yy1585:
+	yych = *++p;
+	if (yych == 'U') goto yy1586;
+	if (yych != 'u') goto yy1417;
+yy1586:
+	yych = *++p;
+	if (yych == 'P') goto yy1455;
+	if (yych == 'p') goto yy1455;
+	goto yy1417;
+yy1587:
+	yych = *++p;
+	if (yych == 'D') goto yy1602;
+	if (yych == 'd') goto yy1602;
+	goto yy1417;
+yy1588:
+	yych = *++p;
+	if (yych == 'O') goto yy1595;
+	if (yych == 'o') goto yy1595;
+	goto yy1417;
+yy1589:
+	yych = *++p;
+	if (yych == 'S') goto yy1590;
+	if (yych != 's') goto yy1417;
+yy1590:
+	yych = *++p;
+	if (yych == 'E') goto yy1591;
+	if (yych != 'e') goto yy1417;
+yy1591:
+	yych = *++p;
+	if (yych <= '/') {
+		if (yych <= 0x1F) {
+			if (yych <= 0x08) goto yy1417;
+			if (yych <= '\r') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= ' ') goto yy1456;
+			if (yych <= '.') goto yy1417;
+			goto yy1458;
+		}
+	} else {
+		if (yych <= 'E') {
+			if (yych == '>') goto yy1456;
+			goto yy1417;
+		} else {
+			if (yych <= 'F') goto yy1592;
+			if (yych != 'f') goto yy1417;
+		}
+	}
+yy1592:
+	yych = *++p;
+	if (yych == 'O') goto yy1593;
+	if (yych != 'o') goto yy1417;
+yy1593:
+	yych = *++p;
+	if (yych == 'N') goto yy1594;
+	if (yych != 'n') goto yy1417;
+yy1594:
+	yych = *++p;
+	if (yych == 'T') goto yy1455;
+	if (yych == 't') goto yy1455;
+	goto yy1417;
+yy1595:
+	yych = *++p;
+	if (yych == 'C') goto yy1596;
+	if (yych != 'c') goto yy1417;
+yy1596:
+	yych = *++p;
+	if (yych == 'K') goto yy1597;
+	if (yych != 'k') goto yy1417;
+yy1597:
+	yych = *++p;
+	if (yych == 'Q') goto yy1598;
+	if (yych != 'q') goto yy1417;
+yy1598:
+	yych = *++p;
+	if (yych == 'U') goto yy1599;
+	if (yych != 'u') goto yy1417;
+yy1599:
+	yych = *++p;
+	if (yych == 'O') goto yy1600;
+	if (yych != 'o') goto yy1417;
+yy1600:
+	yych = *++p;
+	if (yych == 'T') goto yy1601;
+	if (yych != 't') goto yy1417;
+yy1601:
+	yych = *++p;
+	if (yych == 'E') goto yy1455;
+	if (yych == 'e') goto yy1455;
+	goto yy1417;
+yy1602:
+	yych = *++p;
+	if (yych == 'Y') goto yy1455;
+	if (yych == 'y') goto yy1455;
+	goto yy1417;
+yy1603:
+	yych = *++p;
+	if (yych == 'I') goto yy1614;
+	if (yych == 'i') goto yy1614;
+	goto yy1417;
+yy1604:
+	yych = *++p;
+	if (yych == 'T') goto yy1610;
+	if (yych == 't') goto yy1610;
+	goto yy1417;
+yy1605:
+	yych = *++p;
+	if (yych == 'D') goto yy1606;
+	if (yych != 'd') goto yy1417;
+yy1606:
+	yych = *++p;
+	if (yych == 'R') goto yy1607;
+	if (yych != 'r') goto yy1417;
+yy1607:
+	yych = *++p;
+	if (yych == 'E') goto yy1608;
+	if (yych != 'e') goto yy1417;
+yy1608:
+	yych = *++p;
+	if (yych == 'S') goto yy1609;
+	if (yych != 's') goto yy1417;
+yy1609:
+	yych = *++p;
+	if (yych == 'S') goto yy1455;
+	if (yych == 's') goto yy1455;
+	goto yy1417;
+yy1610:
+	yych = *++p;
+	if (yych == 'I') goto yy1611;
+	if (yych != 'i') goto yy1417;
+yy1611:
+	yych = *++p;
+	if (yych == 'C') goto yy1612;
+	if (yych != 'c') goto yy1417;
+yy1612:
+	yych = *++p;
+	if (yych == 'L') goto yy1613;
+	if (yych != 'l') goto yy1417;
+yy1613:
+	yych = *++p;
+	if (yych == 'E') goto yy1455;
+	if (yych == 'e') goto yy1455;
+	goto yy1417;
+yy1614:
+	yych = *++p;
+	if (yych == 'D') goto yy1615;
+	if (yych != 'd') goto yy1417;
+yy1615:
+	yych = *++p;
+	if (yych == 'E') goto yy1455;
+	if (yych == 'e') goto yy1455;
+	goto yy1417;
+yy1616:
+	yych = *++p;
+	if (yych == 'E') goto yy1620;
+	if (yych == 'e') goto yy1620;
+	goto yy1417;
+yy1617:
+	yych = *++p;
+	if (yych == 'R') goto yy1618;
+	if (yych != 'r') goto yy1417;
+yy1618:
+	yych = *++p;
+	if (yych == 'A') goto yy1619;
+	if (yych != 'a') goto yy1417;
+yy1619:
+	yych = *++p;
+	if (yych == 'M') goto yy1455;
+	if (yych == 'm') goto yy1455;
+	goto yy1417;
+yy1620:
+	yych = *++p;
+	if (yych <= ' ') {
+		if (yych <= 0x08) goto yy1417;
+		if (yych <= '\r') goto yy1621;
+		if (yych <= 0x1F) goto yy1417;
+	} else {
+		if (yych <= '/') {
+			if (yych <= '.') goto yy1417;
+			goto yy1458;
+		} else {
+			if (yych != '>') goto yy1417;
+		}
+	}
+yy1621:
+	yych = *++p;
+	goto yy1498;
+yy1622:
+	yych = *++p;
+	if (yych <= '>') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) goto yy1417;
+			if (yych <= '\r') goto yy1456;
+			if (yych <= 0x1F) goto yy1417;
+			goto yy1456;
+		} else {
+			if (yych == '/') goto yy1458;
+			if (yych <= '=') goto yy1417;
+			goto yy1456;
+		}
+	} else {
+		if (yych <= 'R') {
+			if (yych == 'A') goto yy1617;
+			if (yych <= 'Q') goto yy1417;
+			goto yy1624;
+		} else {
+			if (yych <= 'a') {
+				if (yych <= '`') goto yy1417;
+				goto yy1617;
+			} else {
+				if (yych == 'r') goto yy1624;
+				goto yy1417;
+			}
+		}
+	}
+yy1623:
+	yych = *++p;
+	if (yych <= 'U') {
+		if (yych <= 'N') {
+			if (yych == 'E') goto yy1481;
+			goto yy1417;
+		} else {
+			if (yych <= 'O') goto yy1480;
+			if (yych <= 'T') goto yy1417;
+			goto yy1479;
+		}
+	} else {
+		if (yych <= 'n') {
+			if (yych == 'e') goto yy1481;
+			goto yy1417;
+		} else {
+			if (yych <= 'o') goto yy1480;
+			if (yych == 'u') goto yy1479;
+			goto yy1417;
+		}
+	}
+yy1624:
+	++p;
+	if ((yych = *p) == 'E') goto yy1455;
+	if (yych == 'e') goto yy1455;
+	goto yy1417;
+}
+
+}
+
+// Try to match an HTML block tag start line of type 7, returning
+// 7 if successful, 0 if not.
+bufsize_t _scan_html_block_start_7(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+
+{
+	unsigned char yych;
+	unsigned int yyaccept = 0;
+	static const unsigned char yybm[] = {
+		  0, 224, 224, 224, 224, 224, 224, 224, 
+		224, 198, 202, 194, 198, 194, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		198, 224,  64, 224, 224, 224, 224, 128, 
+		224, 224, 224, 224, 224, 241, 240, 224, 
+		241, 241, 241, 241, 241, 241, 241, 241, 
+		241, 241, 240, 224, 192, 192, 192, 224, 
+		224, 241, 241, 241, 241, 241, 241, 241, 
+		241, 241, 241, 241, 241, 241, 241, 241, 
+		241, 241, 241, 241, 241, 241, 241, 241, 
+		241, 241, 241, 224, 224, 224, 224, 240, 
+		192, 241, 241, 241, 241, 241, 241, 241, 
+		241, 241, 241, 241, 241, 241, 241, 241, 
+		241, 241, 241, 241, 241, 241, 241, 241, 
+		241, 241, 241, 224, 224, 224, 224, 224, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0xDF) {
+		if (yych <= ';') {
+			if (yych != '\n') goto yy1629;
+		} else {
+			if (yych <= '<') goto yy1628;
+			if (yych <= 0x7F) goto yy1629;
+			if (yych >= 0xC2) goto yy1630;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1632;
+			if (yych == 0xED) goto yy1637;
+			goto yy1633;
+		} else {
+			if (yych <= 0xF0) goto yy1634;
+			if (yych <= 0xF3) goto yy1635;
+			if (yych <= 0xF4) goto yy1636;
+		}
+	}
+yy1627:
+	{ return 0; }
+yy1628:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= '@') {
+		if (yych == '/') goto yy1640;
+		goto yy1627;
+	} else {
+		if (yych <= 'Z') goto yy1638;
+		if (yych <= '`') goto yy1627;
+		if (yych <= 'z') goto yy1638;
+		goto yy1627;
+	}
+yy1629:
+	yych = *++p;
+	goto yy1627;
+yy1630:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0xBF) goto yy1629;
+yy1631:
+	p = marker;
+	if (yyaccept == 0) {
+		goto yy1627;
+	} else {
+		goto yy1649;
+	}
+yy1632:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy1631;
+	if (yych <= 0xBF) goto yy1630;
+	goto yy1631;
+yy1633:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0xBF) goto yy1630;
+	goto yy1631;
+yy1634:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy1631;
+	if (yych <= 0xBF) goto yy1633;
+	goto yy1631;
+yy1635:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0xBF) goto yy1633;
+	goto yy1631;
+yy1636:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0x8F) goto yy1633;
+	goto yy1631;
+yy1637:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0x9F) goto yy1630;
+	goto yy1631;
+yy1638:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 1) {
+		goto yy1638;
+	}
+	if (yych <= ' ') {
+		if (yych <= 0x08) goto yy1631;
+		if (yych <= '\r') goto yy1651;
+		if (yych <= 0x1F) goto yy1631;
+		goto yy1651;
+	} else {
+		if (yych <= '/') {
+			if (yych <= '.') goto yy1631;
+			goto yy1653;
+		} else {
+			if (yych == '>') goto yy1645;
+			goto yy1631;
+		}
+	}
+yy1640:
+	yych = *++p;
+	if (yych <= '@') goto yy1631;
+	if (yych <= 'Z') goto yy1641;
+	if (yych <= '`') goto yy1631;
+	if (yych >= '{') goto yy1631;
+yy1641:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 2) {
+		goto yy1643;
+	}
+	if (yych <= '=') {
+		if (yych <= '-') {
+			if (yych <= ',') goto yy1631;
+			goto yy1641;
+		} else {
+			if (yych <= '/') goto yy1631;
+			if (yych <= '9') goto yy1641;
+			goto yy1631;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '>') goto yy1645;
+			if (yych <= '@') goto yy1631;
+			goto yy1641;
+		} else {
+			if (yych <= '`') goto yy1631;
+			if (yych <= 'z') goto yy1641;
+			goto yy1631;
+		}
+	}
+yy1643:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 2) {
+		goto yy1643;
+	}
+	if (yych != '>') goto yy1631;
+yy1645:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 4) {
+		goto yy1645;
+	}
+	if (yych <= 0x08) goto yy1631;
+	if (yych <= '\n') goto yy1647;
+	if (yych <= '\v') goto yy1631;
+	if (yych <= '\r') goto yy1650;
+	goto yy1631;
+yy1647:
+	yyaccept = 1;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 4) {
+		goto yy1645;
+	}
+	if (yych <= 0x08) goto yy1649;
+	if (yych <= '\n') goto yy1647;
+	if (yych <= '\v') goto yy1649;
+	if (yych <= '\r') goto yy1650;
+yy1649:
+	{ return 7; }
+yy1650:
+	yych = *++p;
+	goto yy1649;
+yy1651:
+	++p;
+	yych = *p;
+	if (yych <= ':') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) goto yy1631;
+			if (yych <= '\r') goto yy1651;
+			if (yych <= 0x1F) goto yy1631;
+			goto yy1651;
+		} else {
+			if (yych == '/') goto yy1653;
+			if (yych <= '9') goto yy1631;
+			goto yy1654;
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych == '>') goto yy1645;
+			if (yych <= '@') goto yy1631;
+			goto yy1654;
+		} else {
+			if (yych <= '_') {
+				if (yych <= '^') goto yy1631;
+				goto yy1654;
+			} else {
+				if (yych <= '`') goto yy1631;
+				if (yych <= 'z') goto yy1654;
+				goto yy1631;
+			}
+		}
+	}
+yy1653:
+	yych = *++p;
+	if (yych == '>') goto yy1645;
+	goto yy1631;
+yy1654:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 16) {
+		goto yy1654;
+	}
+	if (yych <= ',') {
+		if (yych <= '\r') {
+			if (yych <= 0x08) goto yy1631;
+		} else {
+			if (yych != ' ') goto yy1631;
+		}
+	} else {
+		if (yych <= '<') {
+			if (yych <= '/') goto yy1653;
+			goto yy1631;
+		} else {
+			if (yych <= '=') goto yy1658;
+			if (yych <= '>') goto yy1645;
+			goto yy1631;
+		}
+	}
+yy1656:
+	++p;
+	yych = *p;
+	if (yych <= '<') {
+		if (yych <= ' ') {
+			if (yych <= 0x08) goto yy1631;
+			if (yych <= '\r') goto yy1656;
+			if (yych <= 0x1F) goto yy1631;
+			goto yy1656;
+		} else {
+			if (yych <= '/') {
+				if (yych <= '.') goto yy1631;
+				goto yy1653;
+			} else {
+				if (yych == ':') goto yy1654;
+				goto yy1631;
+			}
+		}
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '=') goto yy1658;
+			if (yych <= '>') goto yy1645;
+			if (yych <= '@') goto yy1631;
+			goto yy1654;
+		} else {
+			if (yych <= '_') {
+				if (yych <= '^') goto yy1631;
+				goto yy1654;
+			} else {
+				if (yych <= '`') goto yy1631;
+				if (yych <= 'z') goto yy1654;
+				goto yy1631;
+			}
+		}
+	}
+yy1658:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1660;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '"') {
+			if (yych <= 0x00) goto yy1631;
+			if (yych >= '!') goto yy1671;
+		} else {
+			if (yych <= '\'') goto yy1669;
+			if (yych <= 0xC1) goto yy1631;
+			if (yych <= 0xDF) goto yy1662;
+			goto yy1663;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1668;
+			goto yy1664;
+		} else {
+			if (yych <= 0xF0) goto yy1665;
+			if (yych <= 0xF3) goto yy1666;
+			if (yych <= 0xF4) goto yy1667;
+			goto yy1631;
+		}
+	}
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1660;
+	}
+	if (yych <= 0xDF) {
+		if (yych <= '\'') {
+			if (yych <= 0x00) goto yy1631;
+			if (yych <= ' ') goto yy1694;
+			if (yych <= '"') goto yy1671;
+			goto yy1669;
+		} else {
+			if (yych == '>') goto yy1645;
+			if (yych <= 0xC1) goto yy1631;
+			goto yy1662;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1663;
+			if (yych == 0xED) goto yy1668;
+			goto yy1664;
+		} else {
+			if (yych <= 0xF0) goto yy1665;
+			if (yych <= 0xF3) goto yy1666;
+			if (yych <= 0xF4) goto yy1667;
+			goto yy1631;
+		}
+	}
+yy1660:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1660;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '=') {
+			if (yych <= 0x00) goto yy1631;
+			if (yych <= ' ') goto yy1688;
+			goto yy1631;
+		} else {
+			if (yych <= '>') goto yy1645;
+			if (yych <= 0xC1) goto yy1631;
+			if (yych >= 0xE0) goto yy1663;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1668;
+			goto yy1664;
+		} else {
+			if (yych <= 0xF0) goto yy1665;
+			if (yych <= 0xF3) goto yy1666;
+			if (yych <= 0xF4) goto yy1667;
+			goto yy1631;
+		}
+	}
+yy1662:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0xBF) goto yy1660;
+	goto yy1631;
+yy1663:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1631;
+	if (yych <= 0xBF) goto yy1662;
+	goto yy1631;
+yy1664:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0xBF) goto yy1662;
+	goto yy1631;
+yy1665:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1631;
+	if (yych <= 0xBF) goto yy1664;
+	goto yy1631;
+yy1666:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0xBF) goto yy1664;
+	goto yy1631;
+yy1667:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0x8F) goto yy1664;
+	goto yy1631;
+yy1668:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0x9F) goto yy1662;
+	goto yy1631;
+yy1669:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1669;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x00) goto yy1631;
+			if (yych <= '\'') goto yy1680;
+			goto yy1631;
+		} else {
+			if (yych <= 0xDF) goto yy1681;
+			if (yych <= 0xE0) goto yy1682;
+			goto yy1683;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1687;
+			if (yych <= 0xEF) goto yy1683;
+			goto yy1684;
+		} else {
+			if (yych <= 0xF3) goto yy1685;
+			if (yych <= 0xF4) goto yy1686;
+			goto yy1631;
+		}
+	}
+yy1671:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1671;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x00) goto yy1631;
+			if (yych <= '"') goto yy1680;
+			goto yy1631;
+		} else {
+			if (yych <= 0xDF) goto yy1673;
+			if (yych <= 0xE0) goto yy1674;
+			goto yy1675;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1679;
+			if (yych <= 0xEF) goto yy1675;
+			goto yy1676;
+		} else {
+			if (yych <= 0xF3) goto yy1677;
+			if (yych <= 0xF4) goto yy1678;
+			goto yy1631;
+		}
+	}
+yy1673:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0xBF) goto yy1671;
+	goto yy1631;
+yy1674:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1631;
+	if (yych <= 0xBF) goto yy1673;
+	goto yy1631;
+yy1675:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0xBF) goto yy1673;
+	goto yy1631;
+yy1676:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1631;
+	if (yych <= 0xBF) goto yy1675;
+	goto yy1631;
+yy1677:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0xBF) goto yy1675;
+	goto yy1631;
+yy1678:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0x8F) goto yy1675;
+	goto yy1631;
+yy1679:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0x9F) goto yy1673;
+	goto yy1631;
+yy1680:
+	++p;
+	yych = *p;
+	if (yych <= ' ') {
+		if (yych <= 0x08) goto yy1631;
+		if (yych <= '\r') goto yy1651;
+		if (yych <= 0x1F) goto yy1631;
+		goto yy1651;
+	} else {
+		if (yych <= '/') {
+			if (yych <= '.') goto yy1631;
+			goto yy1653;
+		} else {
+			if (yych == '>') goto yy1645;
+			goto yy1631;
+		}
+	}
+yy1681:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0xBF) goto yy1669;
+	goto yy1631;
+yy1682:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1631;
+	if (yych <= 0xBF) goto yy1681;
+	goto yy1631;
+yy1683:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0xBF) goto yy1681;
+	goto yy1631;
+yy1684:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1631;
+	if (yych <= 0xBF) goto yy1683;
+	goto yy1631;
+yy1685:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0xBF) goto yy1683;
+	goto yy1631;
+yy1686:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0x8F) goto yy1683;
+	goto yy1631;
+yy1687:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1631;
+	if (yych <= 0x9F) goto yy1681;
+	goto yy1631;
+yy1688:
+	++p;
+	yych = *p;
+	if (yych <= '@') {
+		if (yych <= '"') {
+			if (yych <= '\r') {
+				if (yych <= 0x00) goto yy1631;
+				if (yych <= 0x08) goto yy1660;
+				goto yy1688;
+			} else {
+				if (yych == ' ') goto yy1688;
+				if (yych <= '!') goto yy1660;
+				goto yy1631;
+			}
+		} else {
+			if (yych <= ':') {
+				if (yych == '\'') goto yy1631;
+				if (yych <= '9') goto yy1660;
+			} else {
+				if (yych <= ';') goto yy1660;
+				if (yych <= '=') goto yy1631;
+				if (yych <= '>') goto yy1645;
+				goto yy1660;
+			}
+		}
+	} else {
+		if (yych <= 0xDF) {
+			if (yych <= '`') {
+				if (yych <= 'Z') goto yy1690;
+				if (yych <= '^') goto yy1660;
+				if (yych >= '`') goto yy1631;
+			} else {
+				if (yych <= 'z') goto yy1690;
+				if (yych <= 0x7F) goto yy1660;
+				if (yych <= 0xC1) goto yy1631;
+				goto yy1662;
+			}
+		} else {
+			if (yych <= 0xEF) {
+				if (yych <= 0xE0) goto yy1663;
+				if (yych == 0xED) goto yy1668;
+				goto yy1664;
+			} else {
+				if (yych <= 0xF0) goto yy1665;
+				if (yych <= 0xF3) goto yy1666;
+				if (yych <= 0xF4) goto yy1667;
+				goto yy1631;
+			}
+		}
+	}
+yy1690:
+	++p;
+	yych = *p;
+	if (yych <= '>') {
+		if (yych <= '&') {
+			if (yych <= 0x1F) {
+				if (yych <= 0x00) goto yy1631;
+				if (yych <= 0x08) goto yy1660;
+				if (yych >= 0x0E) goto yy1660;
+			} else {
+				if (yych <= ' ') goto yy1692;
+				if (yych == '"') goto yy1631;
+				goto yy1660;
+			}
+		} else {
+			if (yych <= '/') {
+				if (yych <= '\'') goto yy1631;
+				if (yych <= ',') goto yy1660;
+				if (yych <= '.') goto yy1690;
+				goto yy1660;
+			} else {
+				if (yych <= ';') {
+					if (yych <= ':') goto yy1690;
+					goto yy1660;
+				} else {
+					if (yych <= '<') goto yy1631;
+					if (yych <= '=') goto yy1658;
+					goto yy1645;
+				}
+			}
+		}
+	} else {
+		if (yych <= 0xC1) {
+			if (yych <= '_') {
+				if (yych <= '@') goto yy1660;
+				if (yych <= 'Z') goto yy1690;
+				if (yych <= '^') goto yy1660;
+				goto yy1690;
+			} else {
+				if (yych <= '`') goto yy1631;
+				if (yych <= 'z') goto yy1690;
+				if (yych <= 0x7F) goto yy1660;
+				goto yy1631;
+			}
+		} else {
+			if (yych <= 0xED) {
+				if (yych <= 0xDF) goto yy1662;
+				if (yych <= 0xE0) goto yy1663;
+				if (yych <= 0xEC) goto yy1664;
+				goto yy1668;
+			} else {
+				if (yych <= 0xF0) {
+					if (yych <= 0xEF) goto yy1664;
+					goto yy1665;
+				} else {
+					if (yych <= 0xF3) goto yy1666;
+					if (yych <= 0xF4) goto yy1667;
+					goto yy1631;
+				}
+			}
+		}
+	}
+yy1692:
+	++p;
+	yych = *p;
+	if (yych <= '@') {
+		if (yych <= '&') {
+			if (yych <= 0x1F) {
+				if (yych <= 0x00) goto yy1631;
+				if (yych <= 0x08) goto yy1660;
+				if (yych <= '\r') goto yy1692;
+				goto yy1660;
+			} else {
+				if (yych <= ' ') goto yy1692;
+				if (yych == '"') goto yy1631;
+				goto yy1660;
+			}
+		} else {
+			if (yych <= ';') {
+				if (yych <= '\'') goto yy1631;
+				if (yych == ':') goto yy1690;
+				goto yy1660;
+			} else {
+				if (yych <= '<') goto yy1631;
+				if (yych <= '=') goto yy1658;
+				if (yych <= '>') goto yy1645;
+				goto yy1660;
+			}
+		}
+	} else {
+		if (yych <= 0xDF) {
+			if (yych <= '`') {
+				if (yych <= 'Z') goto yy1690;
+				if (yych <= '^') goto yy1660;
+				if (yych <= '_') goto yy1690;
+				goto yy1631;
+			} else {
+				if (yych <= 'z') goto yy1690;
+				if (yych <= 0x7F) goto yy1660;
+				if (yych <= 0xC1) goto yy1631;
+				goto yy1662;
+			}
+		} else {
+			if (yych <= 0xEF) {
+				if (yych <= 0xE0) goto yy1663;
+				if (yych == 0xED) goto yy1668;
+				goto yy1664;
+			} else {
+				if (yych <= 0xF0) goto yy1665;
+				if (yych <= 0xF3) goto yy1666;
+				if (yych <= 0xF4) goto yy1667;
+				goto yy1631;
+			}
+		}
+	}
+yy1694:
+	++p;
+	yych = *p;
+	if (yych <= '@') {
+		if (yych <= '"') {
+			if (yych <= '\r') {
+				if (yych <= 0x00) goto yy1631;
+				if (yych <= 0x08) goto yy1660;
+				goto yy1694;
+			} else {
+				if (yych == ' ') goto yy1694;
+				if (yych <= '!') goto yy1660;
+				goto yy1671;
+			}
+		} else {
+			if (yych <= ':') {
+				if (yych == '\'') goto yy1669;
+				if (yych <= '9') goto yy1660;
+				goto yy1690;
+			} else {
+				if (yych <= ';') goto yy1660;
+				if (yych <= '=') goto yy1631;
+				if (yych <= '>') goto yy1645;
+				goto yy1660;
+			}
+		}
+	} else {
+		if (yych <= 0xDF) {
+			if (yych <= '`') {
+				if (yych <= 'Z') goto yy1690;
+				if (yych <= '^') goto yy1660;
+				if (yych <= '_') goto yy1690;
+				goto yy1631;
+			} else {
+				if (yych <= 'z') goto yy1690;
+				if (yych <= 0x7F) goto yy1660;
+				if (yych <= 0xC1) goto yy1631;
+				goto yy1662;
+			}
+		} else {
+			if (yych <= 0xEF) {
+				if (yych <= 0xE0) goto yy1663;
+				if (yych == 0xED) goto yy1668;
+				goto yy1664;
+			} else {
+				if (yych <= 0xF0) goto yy1665;
+				if (yych <= 0xF3) goto yy1666;
+				if (yych <= 0xF4) goto yy1667;
+				goto yy1631;
+			}
+		}
+	}
+}
+
+}
+
+// Try to match an HTML block end line of type 1
+bufsize_t _scan_html_block_end_1(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	unsigned int yyaccept = 0;
+	static const unsigned char yybm[] = {
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128,   0, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128,  64, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0xDF) {
+		if (yych <= ';') {
+			if (yych != '\n') goto yy1699;
+		} else {
+			if (yych <= '<') goto yy1700;
+			if (yych <= 0x7F) goto yy1699;
+			if (yych >= 0xC2) goto yy1701;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1703;
+			if (yych == 0xED) goto yy1708;
+			goto yy1704;
+		} else {
+			if (yych <= 0xF0) goto yy1705;
+			if (yych <= 0xF3) goto yy1706;
+			if (yych <= 0xF4) goto yy1707;
+		}
+	}
+yy1698:
+	{ return 0; }
+yy1699:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= 0x7F) {
+		if (yych == '\n') goto yy1698;
+		goto yy1713;
+	} else {
+		if (yych <= 0xC1) goto yy1698;
+		if (yych <= 0xF4) goto yy1713;
+		goto yy1698;
+	}
+yy1700:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= '/') {
+		if (yych == '\n') goto yy1698;
+		if (yych <= '.') goto yy1713;
+		goto yy1709;
+	} else {
+		if (yych <= 0x7F) goto yy1713;
+		if (yych <= 0xC1) goto yy1698;
+		if (yych <= 0xF4) goto yy1713;
+		goto yy1698;
+	}
+yy1701:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1702;
+	if (yych <= 0xBF) goto yy1699;
+yy1702:
+	p = marker;
+	if (yyaccept == 0) {
+		goto yy1698;
+	} else {
+		goto yy1730;
+	}
+yy1703:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy1702;
+	if (yych <= 0xBF) goto yy1701;
+	goto yy1702;
+yy1704:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1702;
+	if (yych <= 0xBF) goto yy1701;
+	goto yy1702;
+yy1705:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy1702;
+	if (yych <= 0xBF) goto yy1704;
+	goto yy1702;
+yy1706:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1702;
+	if (yych <= 0xBF) goto yy1704;
+	goto yy1702;
+yy1707:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1702;
+	if (yych <= 0x8F) goto yy1704;
+	goto yy1702;
+yy1708:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1702;
+	if (yych <= 0x9F) goto yy1701;
+	goto yy1702;
+yy1709:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 's') {
+		if (yych <= 'R') {
+			if (yych <= '\n') {
+				if (yych <= '\t') goto yy1712;
+				goto yy1702;
+			} else {
+				if (yych == 'P') goto yy1721;
+				goto yy1712;
+			}
+		} else {
+			if (yych <= 'o') {
+				if (yych <= 'S') goto yy1722;
+				goto yy1712;
+			} else {
+				if (yych <= 'p') goto yy1721;
+				if (yych <= 'r') goto yy1712;
+				goto yy1722;
+			}
+		}
+	} else {
+		if (yych <= 0xEC) {
+			if (yych <= 0xC1) {
+				if (yych <= 0x7F) goto yy1712;
+				goto yy1702;
+			} else {
+				if (yych <= 0xDF) goto yy1714;
+				if (yych <= 0xE0) goto yy1715;
+				goto yy1716;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xED) goto yy1720;
+				if (yych <= 0xEF) goto yy1716;
+				goto yy1717;
+			} else {
+				if (yych <= 0xF3) goto yy1718;
+				if (yych <= 0xF4) goto yy1719;
+				goto yy1702;
+			}
+		}
+	}
+yy1710:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 0xDF) {
+		if (yych <= '.') {
+			if (yych == '\n') goto yy1702;
+		} else {
+			if (yych <= '/') goto yy1709;
+			if (yych <= 0x7F) goto yy1712;
+			if (yych <= 0xC1) goto yy1702;
+			goto yy1714;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1715;
+			if (yych == 0xED) goto yy1720;
+			goto yy1716;
+		} else {
+			if (yych <= 0xF0) goto yy1717;
+			if (yych <= 0xF3) goto yy1718;
+			if (yych <= 0xF4) goto yy1719;
+			goto yy1702;
+		}
+	}
+yy1712:
+	++p;
+	yych = *p;
+yy1713:
+	if (yybm[0+yych] & 128) {
+		goto yy1712;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '\n') goto yy1702;
+			if (yych <= '<') goto yy1710;
+			goto yy1702;
+		} else {
+			if (yych <= 0xDF) goto yy1714;
+			if (yych <= 0xE0) goto yy1715;
+			goto yy1716;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1720;
+			if (yych <= 0xEF) goto yy1716;
+			goto yy1717;
+		} else {
+			if (yych <= 0xF3) goto yy1718;
+			if (yych <= 0xF4) goto yy1719;
+			goto yy1702;
+		}
+	}
+yy1714:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1702;
+	if (yych <= 0xBF) goto yy1712;
+	goto yy1702;
+yy1715:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1702;
+	if (yych <= 0xBF) goto yy1714;
+	goto yy1702;
+yy1716:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1702;
+	if (yych <= 0xBF) goto yy1714;
+	goto yy1702;
+yy1717:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1702;
+	if (yych <= 0xBF) goto yy1716;
+	goto yy1702;
+yy1718:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1702;
+	if (yych <= 0xBF) goto yy1716;
+	goto yy1702;
+yy1719:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1702;
+	if (yych <= 0x8F) goto yy1716;
+	goto yy1702;
+yy1720:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1702;
+	if (yych <= 0x9F) goto yy1714;
+	goto yy1702;
+yy1721:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 0xC1) {
+		if (yych <= 'R') {
+			if (yych == '\n') goto yy1702;
+			if (yych <= 'Q') goto yy1712;
+			goto yy1733;
+		} else {
+			if (yych == 'r') goto yy1733;
+			if (yych <= 0x7F) goto yy1712;
+			goto yy1702;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy1714;
+			if (yych <= 0xE0) goto yy1715;
+			if (yych <= 0xEC) goto yy1716;
+			goto yy1720;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1716;
+				goto yy1717;
+			} else {
+				if (yych <= 0xF3) goto yy1718;
+				if (yych <= 0xF4) goto yy1719;
+				goto yy1702;
+			}
+		}
+	}
+yy1722:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 't') {
+		if (yych <= 'S') {
+			if (yych <= '\n') {
+				if (yych <= '\t') goto yy1712;
+				goto yy1702;
+			} else {
+				if (yych == 'C') goto yy1724;
+				goto yy1712;
+			}
+		} else {
+			if (yych <= 'b') {
+				if (yych >= 'U') goto yy1712;
+			} else {
+				if (yych <= 'c') goto yy1724;
+				if (yych <= 's') goto yy1712;
+			}
+		}
+	} else {
+		if (yych <= 0xEC) {
+			if (yych <= 0xC1) {
+				if (yych <= 0x7F) goto yy1712;
+				goto yy1702;
+			} else {
+				if (yych <= 0xDF) goto yy1714;
+				if (yych <= 0xE0) goto yy1715;
+				goto yy1716;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xED) goto yy1720;
+				if (yych <= 0xEF) goto yy1716;
+				goto yy1717;
+			} else {
+				if (yych <= 0xF3) goto yy1718;
+				if (yych <= 0xF4) goto yy1719;
+				goto yy1702;
+			}
+		}
+	}
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 0xC1) {
+		if (yych <= 'Y') {
+			if (yych == '\n') goto yy1702;
+			if (yych <= 'X') goto yy1712;
+			goto yy1731;
+		} else {
+			if (yych == 'y') goto yy1731;
+			if (yych <= 0x7F) goto yy1712;
+			goto yy1702;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy1714;
+			if (yych <= 0xE0) goto yy1715;
+			if (yych <= 0xEC) goto yy1716;
+			goto yy1720;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1716;
+				goto yy1717;
+			} else {
+				if (yych <= 0xF3) goto yy1718;
+				if (yych <= 0xF4) goto yy1719;
+				goto yy1702;
+			}
+		}
+	}
+yy1724:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 0xC1) {
+		if (yych <= 'R') {
+			if (yych == '\n') goto yy1702;
+			if (yych <= 'Q') goto yy1712;
+		} else {
+			if (yych == 'r') goto yy1725;
+			if (yych <= 0x7F) goto yy1712;
+			goto yy1702;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy1714;
+			if (yych <= 0xE0) goto yy1715;
+			if (yych <= 0xEC) goto yy1716;
+			goto yy1720;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1716;
+				goto yy1717;
+			} else {
+				if (yych <= 0xF3) goto yy1718;
+				if (yych <= 0xF4) goto yy1719;
+				goto yy1702;
+			}
+		}
+	}
+yy1725:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 0xC1) {
+		if (yych <= 'I') {
+			if (yych == '\n') goto yy1702;
+			if (yych <= 'H') goto yy1712;
+		} else {
+			if (yych == 'i') goto yy1726;
+			if (yych <= 0x7F) goto yy1712;
+			goto yy1702;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy1714;
+			if (yych <= 0xE0) goto yy1715;
+			if (yych <= 0xEC) goto yy1716;
+			goto yy1720;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1716;
+				goto yy1717;
+			} else {
+				if (yych <= 0xF3) goto yy1718;
+				if (yych <= 0xF4) goto yy1719;
+				goto yy1702;
+			}
+		}
+	}
+yy1726:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 0xC1) {
+		if (yych <= 'P') {
+			if (yych == '\n') goto yy1702;
+			if (yych <= 'O') goto yy1712;
+		} else {
+			if (yych == 'p') goto yy1727;
+			if (yych <= 0x7F) goto yy1712;
+			goto yy1702;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy1714;
+			if (yych <= 0xE0) goto yy1715;
+			if (yych <= 0xEC) goto yy1716;
+			goto yy1720;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1716;
+				goto yy1717;
+			} else {
+				if (yych <= 0xF3) goto yy1718;
+				if (yych <= 0xF4) goto yy1719;
+				goto yy1702;
+			}
+		}
+	}
+yy1727:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 0xC1) {
+		if (yych <= 'T') {
+			if (yych == '\n') goto yy1702;
+			if (yych <= 'S') goto yy1712;
+		} else {
+			if (yych == 't') goto yy1728;
+			if (yych <= 0x7F) goto yy1712;
+			goto yy1702;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy1714;
+			if (yych <= 0xE0) goto yy1715;
+			if (yych <= 0xEC) goto yy1716;
+			goto yy1720;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1716;
+				goto yy1717;
+			} else {
+				if (yych <= 0xF3) goto yy1718;
+				if (yych <= 0xF4) goto yy1719;
+				goto yy1702;
+			}
+		}
+	}
+yy1728:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 0xDF) {
+		if (yych <= '=') {
+			if (yych == '\n') goto yy1702;
+			goto yy1712;
+		} else {
+			if (yych <= '>') goto yy1729;
+			if (yych <= 0x7F) goto yy1712;
+			if (yych <= 0xC1) goto yy1702;
+			goto yy1714;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1715;
+			if (yych == 0xED) goto yy1720;
+			goto yy1716;
+		} else {
+			if (yych <= 0xF0) goto yy1717;
+			if (yych <= 0xF3) goto yy1718;
+			if (yych <= 0xF4) goto yy1719;
+			goto yy1702;
+		}
+	}
+yy1729:
+	yyaccept = 1;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1712;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '\n') goto yy1730;
+			if (yych <= '<') goto yy1710;
+		} else {
+			if (yych <= 0xDF) goto yy1714;
+			if (yych <= 0xE0) goto yy1715;
+			goto yy1716;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1720;
+			if (yych <= 0xEF) goto yy1716;
+			goto yy1717;
+		} else {
+			if (yych <= 0xF3) goto yy1718;
+			if (yych <= 0xF4) goto yy1719;
+		}
+	}
+yy1730:
+	{ return (bufsize_t)(p - start); }
+yy1731:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 0xC1) {
+		if (yych <= 'L') {
+			if (yych == '\n') goto yy1702;
+			if (yych <= 'K') goto yy1712;
+		} else {
+			if (yych == 'l') goto yy1732;
+			if (yych <= 0x7F) goto yy1712;
+			goto yy1702;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy1714;
+			if (yych <= 0xE0) goto yy1715;
+			if (yych <= 0xEC) goto yy1716;
+			goto yy1720;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1716;
+				goto yy1717;
+			} else {
+				if (yych <= 0xF3) goto yy1718;
+				if (yych <= 0xF4) goto yy1719;
+				goto yy1702;
+			}
+		}
+	}
+yy1732:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 0xC1) {
+		if (yych <= 'E') {
+			if (yych == '\n') goto yy1702;
+			if (yych <= 'D') goto yy1712;
+			goto yy1728;
+		} else {
+			if (yych == 'e') goto yy1728;
+			if (yych <= 0x7F) goto yy1712;
+			goto yy1702;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy1714;
+			if (yych <= 0xE0) goto yy1715;
+			if (yych <= 0xEC) goto yy1716;
+			goto yy1720;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1716;
+				goto yy1717;
+			} else {
+				if (yych <= 0xF3) goto yy1718;
+				if (yych <= 0xF4) goto yy1719;
+				goto yy1702;
+			}
+		}
+	}
+yy1733:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1710;
+	}
+	if (yych <= 0xC1) {
+		if (yych <= 'E') {
+			if (yych == '\n') goto yy1702;
+			if (yych <= 'D') goto yy1712;
+			goto yy1728;
+		} else {
+			if (yych == 'e') goto yy1728;
+			if (yych <= 0x7F) goto yy1712;
+			goto yy1702;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy1714;
+			if (yych <= 0xE0) goto yy1715;
+			if (yych <= 0xEC) goto yy1716;
+			goto yy1720;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1716;
+				goto yy1717;
+			} else {
+				if (yych <= 0xF3) goto yy1718;
+				if (yych <= 0xF4) goto yy1719;
+				goto yy1702;
+			}
+		}
+	}
+}
+
+}
+
+// Try to match an HTML block end line of type 2
+bufsize_t _scan_html_block_end_2(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	unsigned int yyaccept = 0;
+	static const unsigned char yybm[] = {
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128,   0, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128,  64, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0xDF) {
+		if (yych <= ',') {
+			if (yych != '\n') goto yy1737;
+		} else {
+			if (yych <= '-') goto yy1738;
+			if (yych <= 0x7F) goto yy1737;
+			if (yych >= 0xC2) goto yy1739;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1741;
+			if (yych == 0xED) goto yy1746;
+			goto yy1742;
+		} else {
+			if (yych <= 0xF0) goto yy1743;
+			if (yych <= 0xF3) goto yy1744;
+			if (yych <= 0xF4) goto yy1745;
+		}
+	}
+yy1736:
+	{ return 0; }
+yy1737:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= 0x7F) {
+		if (yych == '\n') goto yy1736;
+		goto yy1750;
+	} else {
+		if (yych <= 0xC1) goto yy1736;
+		if (yych <= 0xF4) goto yy1750;
+		goto yy1736;
+	}
+yy1738:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yybm[0+yych] & 64) {
+		goto yy1747;
+	}
+	if (yych <= 0x7F) {
+		if (yych == '\n') goto yy1736;
+		goto yy1750;
+	} else {
+		if (yych <= 0xC1) goto yy1736;
+		if (yych <= 0xF4) goto yy1750;
+		goto yy1736;
+	}
+yy1739:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1740;
+	if (yych <= 0xBF) goto yy1737;
+yy1740:
+	p = marker;
+	if (yyaccept == 0) {
+		goto yy1736;
+	} else {
+		goto yy1760;
+	}
+yy1741:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy1740;
+	if (yych <= 0xBF) goto yy1739;
+	goto yy1740;
+yy1742:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1740;
+	if (yych <= 0xBF) goto yy1739;
+	goto yy1740;
+yy1743:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy1740;
+	if (yych <= 0xBF) goto yy1742;
+	goto yy1740;
+yy1744:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1740;
+	if (yych <= 0xBF) goto yy1742;
+	goto yy1740;
+yy1745:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1740;
+	if (yych <= 0x8F) goto yy1742;
+	goto yy1740;
+yy1746:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1740;
+	if (yych <= 0x9F) goto yy1739;
+	goto yy1740;
+yy1747:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1747;
+	}
+	if (yych <= 0xDF) {
+		if (yych <= '=') {
+			if (yych == '\n') goto yy1740;
+		} else {
+			if (yych <= '>') goto yy1759;
+			if (yych <= 0x7F) goto yy1749;
+			if (yych <= 0xC1) goto yy1740;
+			goto yy1751;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1752;
+			if (yych == 0xED) goto yy1757;
+			goto yy1753;
+		} else {
+			if (yych <= 0xF0) goto yy1754;
+			if (yych <= 0xF3) goto yy1755;
+			if (yych <= 0xF4) goto yy1756;
+			goto yy1740;
+		}
+	}
+yy1749:
+	++p;
+	yych = *p;
+yy1750:
+	if (yybm[0+yych] & 128) {
+		goto yy1749;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '\n') goto yy1740;
+			if (yych <= '-') goto yy1758;
+			goto yy1740;
+		} else {
+			if (yych <= 0xDF) goto yy1751;
+			if (yych <= 0xE0) goto yy1752;
+			goto yy1753;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1757;
+			if (yych <= 0xEF) goto yy1753;
+			goto yy1754;
+		} else {
+			if (yych <= 0xF3) goto yy1755;
+			if (yych <= 0xF4) goto yy1756;
+			goto yy1740;
+		}
+	}
+yy1751:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1740;
+	if (yych <= 0xBF) goto yy1749;
+	goto yy1740;
+yy1752:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1740;
+	if (yych <= 0xBF) goto yy1751;
+	goto yy1740;
+yy1753:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1740;
+	if (yych <= 0xBF) goto yy1751;
+	goto yy1740;
+yy1754:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1740;
+	if (yych <= 0xBF) goto yy1753;
+	goto yy1740;
+yy1755:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1740;
+	if (yych <= 0xBF) goto yy1753;
+	goto yy1740;
+yy1756:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1740;
+	if (yych <= 0x8F) goto yy1753;
+	goto yy1740;
+yy1757:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1740;
+	if (yych <= 0x9F) goto yy1751;
+	goto yy1740;
+yy1758:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1749;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '\n') goto yy1740;
+			if (yych <= '-') goto yy1747;
+			goto yy1740;
+		} else {
+			if (yych <= 0xDF) goto yy1751;
+			if (yych <= 0xE0) goto yy1752;
+			goto yy1753;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1757;
+			if (yych <= 0xEF) goto yy1753;
+			goto yy1754;
+		} else {
+			if (yych <= 0xF3) goto yy1755;
+			if (yych <= 0xF4) goto yy1756;
+			goto yy1740;
+		}
+	}
+yy1759:
+	yyaccept = 1;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1749;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '\n') goto yy1760;
+			if (yych <= '-') goto yy1758;
+		} else {
+			if (yych <= 0xDF) goto yy1751;
+			if (yych <= 0xE0) goto yy1752;
+			goto yy1753;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1757;
+			if (yych <= 0xEF) goto yy1753;
+			goto yy1754;
+		} else {
+			if (yych <= 0xF3) goto yy1755;
+			if (yych <= 0xF4) goto yy1756;
+		}
+	}
+yy1760:
+	{ return (bufsize_t)(p - start); }
+}
+
+}
+
+// Try to match an HTML block end line of type 3
+bufsize_t _scan_html_block_end_3(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	unsigned int yyaccept = 0;
+	static const unsigned char yybm[] = {
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128,   0, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128,  64, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0xDF) {
+		if (yych <= '>') {
+			if (yych != '\n') goto yy1764;
+		} else {
+			if (yych <= '?') goto yy1765;
+			if (yych <= 0x7F) goto yy1764;
+			if (yych >= 0xC2) goto yy1766;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1768;
+			if (yych == 0xED) goto yy1773;
+			goto yy1769;
+		} else {
+			if (yych <= 0xF0) goto yy1770;
+			if (yych <= 0xF3) goto yy1771;
+			if (yych <= 0xF4) goto yy1772;
+		}
+	}
+yy1763:
+	{ return 0; }
+yy1764:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= 0x7F) {
+		if (yych == '\n') goto yy1763;
+		goto yy1779;
+	} else {
+		if (yych <= 0xC1) goto yy1763;
+		if (yych <= 0xF4) goto yy1779;
+		goto yy1763;
+	}
+yy1765:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= '>') {
+		if (yych == '\n') goto yy1763;
+		if (yych <= '=') goto yy1779;
+		goto yy1774;
+	} else {
+		if (yych <= 0x7F) goto yy1779;
+		if (yych <= 0xC1) goto yy1763;
+		if (yych <= 0xF4) goto yy1779;
+		goto yy1763;
+	}
+yy1766:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1767;
+	if (yych <= 0xBF) goto yy1764;
+yy1767:
+	p = marker;
+	if (yyaccept == 0) {
+		goto yy1763;
+	} else {
+		goto yy1775;
+	}
+yy1768:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy1767;
+	if (yych <= 0xBF) goto yy1766;
+	goto yy1767;
+yy1769:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1767;
+	if (yych <= 0xBF) goto yy1766;
+	goto yy1767;
+yy1770:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy1767;
+	if (yych <= 0xBF) goto yy1769;
+	goto yy1767;
+yy1771:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1767;
+	if (yych <= 0xBF) goto yy1769;
+	goto yy1767;
+yy1772:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1767;
+	if (yych <= 0x8F) goto yy1769;
+	goto yy1767;
+yy1773:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1767;
+	if (yych <= 0x9F) goto yy1766;
+	goto yy1767;
+yy1774:
+	yyaccept = 1;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1778;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '\n') goto yy1775;
+			if (yych <= '?') goto yy1776;
+		} else {
+			if (yych <= 0xDF) goto yy1780;
+			if (yych <= 0xE0) goto yy1781;
+			goto yy1782;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1786;
+			if (yych <= 0xEF) goto yy1782;
+			goto yy1783;
+		} else {
+			if (yych <= 0xF3) goto yy1784;
+			if (yych <= 0xF4) goto yy1785;
+		}
+	}
+yy1775:
+	{ return (bufsize_t)(p - start); }
+yy1776:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1776;
+	}
+	if (yych <= 0xDF) {
+		if (yych <= '=') {
+			if (yych == '\n') goto yy1767;
+		} else {
+			if (yych <= '>') goto yy1774;
+			if (yych <= 0x7F) goto yy1778;
+			if (yych <= 0xC1) goto yy1767;
+			goto yy1780;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1781;
+			if (yych == 0xED) goto yy1786;
+			goto yy1782;
+		} else {
+			if (yych <= 0xF0) goto yy1783;
+			if (yych <= 0xF3) goto yy1784;
+			if (yych <= 0xF4) goto yy1785;
+			goto yy1767;
+		}
+	}
+yy1778:
+	++p;
+	yych = *p;
+yy1779:
+	if (yybm[0+yych] & 128) {
+		goto yy1778;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '\n') goto yy1767;
+			if (yych <= '?') goto yy1776;
+			goto yy1767;
+		} else {
+			if (yych <= 0xDF) goto yy1780;
+			if (yych <= 0xE0) goto yy1781;
+			goto yy1782;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1786;
+			if (yych <= 0xEF) goto yy1782;
+			goto yy1783;
+		} else {
+			if (yych <= 0xF3) goto yy1784;
+			if (yych <= 0xF4) goto yy1785;
+			goto yy1767;
+		}
+	}
+yy1780:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1767;
+	if (yych <= 0xBF) goto yy1778;
+	goto yy1767;
+yy1781:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1767;
+	if (yych <= 0xBF) goto yy1780;
+	goto yy1767;
+yy1782:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1767;
+	if (yych <= 0xBF) goto yy1780;
+	goto yy1767;
+yy1783:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1767;
+	if (yych <= 0xBF) goto yy1782;
+	goto yy1767;
+yy1784:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1767;
+	if (yych <= 0xBF) goto yy1782;
+	goto yy1767;
+yy1785:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1767;
+	if (yych <= 0x8F) goto yy1782;
+	goto yy1767;
+yy1786:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1767;
+	if (yych <= 0x9F) goto yy1780;
+	goto yy1767;
+}
+
+}
+
+// Try to match an HTML block end line of type 4
+bufsize_t _scan_html_block_end_4(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	unsigned int yyaccept = 0;
+	static const unsigned char yybm[] = {
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128,   0, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128,  64, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0xDF) {
+		if (yych <= '=') {
+			if (yych != '\n') goto yy1790;
+		} else {
+			if (yych <= '>') goto yy1791;
+			if (yych <= 0x7F) goto yy1790;
+			if (yych >= 0xC2) goto yy1793;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1795;
+			if (yych == 0xED) goto yy1800;
+			goto yy1796;
+		} else {
+			if (yych <= 0xF0) goto yy1797;
+			if (yych <= 0xF3) goto yy1798;
+			if (yych <= 0xF4) goto yy1799;
+		}
+	}
+yy1789:
+	{ return 0; }
+yy1790:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= 0x7F) {
+		if (yych == '\n') goto yy1789;
+		goto yy1804;
+	} else {
+		if (yych <= 0xC1) goto yy1789;
+		if (yych <= 0xF4) goto yy1804;
+		goto yy1789;
+	}
+yy1791:
+	yyaccept = 1;
+	yych = *(marker = ++p);
+	if (yych <= 0x7F) {
+		if (yych != '\n') goto yy1804;
+	} else {
+		if (yych <= 0xC1) goto yy1792;
+		if (yych <= 0xF4) goto yy1804;
+	}
+yy1792:
+	{ return (bufsize_t)(p - start); }
+yy1793:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1794;
+	if (yych <= 0xBF) goto yy1790;
+yy1794:
+	p = marker;
+	if (yyaccept == 0) {
+		goto yy1789;
+	} else {
+		goto yy1792;
+	}
+yy1795:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy1794;
+	if (yych <= 0xBF) goto yy1793;
+	goto yy1794;
+yy1796:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1794;
+	if (yych <= 0xBF) goto yy1793;
+	goto yy1794;
+yy1797:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy1794;
+	if (yych <= 0xBF) goto yy1796;
+	goto yy1794;
+yy1798:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1794;
+	if (yych <= 0xBF) goto yy1796;
+	goto yy1794;
+yy1799:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1794;
+	if (yych <= 0x8F) goto yy1796;
+	goto yy1794;
+yy1800:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1794;
+	if (yych <= 0x9F) goto yy1793;
+	goto yy1794;
+yy1801:
+	yyaccept = 1;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1803;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '\n') goto yy1792;
+			if (yych <= '>') goto yy1801;
+			goto yy1792;
+		} else {
+			if (yych <= 0xDF) goto yy1805;
+			if (yych <= 0xE0) goto yy1806;
+			goto yy1807;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1811;
+			if (yych <= 0xEF) goto yy1807;
+			goto yy1808;
+		} else {
+			if (yych <= 0xF3) goto yy1809;
+			if (yych <= 0xF4) goto yy1810;
+			goto yy1792;
+		}
+	}
+yy1803:
+	++p;
+	yych = *p;
+yy1804:
+	if (yybm[0+yych] & 128) {
+		goto yy1803;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '\n') goto yy1794;
+			if (yych <= '>') goto yy1801;
+			goto yy1794;
+		} else {
+			if (yych <= 0xDF) goto yy1805;
+			if (yych <= 0xE0) goto yy1806;
+			goto yy1807;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1811;
+			if (yych <= 0xEF) goto yy1807;
+			goto yy1808;
+		} else {
+			if (yych <= 0xF3) goto yy1809;
+			if (yych <= 0xF4) goto yy1810;
+			goto yy1794;
+		}
+	}
+yy1805:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1794;
+	if (yych <= 0xBF) goto yy1803;
+	goto yy1794;
+yy1806:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1794;
+	if (yych <= 0xBF) goto yy1805;
+	goto yy1794;
+yy1807:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1794;
+	if (yych <= 0xBF) goto yy1805;
+	goto yy1794;
+yy1808:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1794;
+	if (yych <= 0xBF) goto yy1807;
+	goto yy1794;
+yy1809:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1794;
+	if (yych <= 0xBF) goto yy1807;
+	goto yy1794;
+yy1810:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1794;
+	if (yych <= 0x8F) goto yy1807;
+	goto yy1794;
+yy1811:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1794;
+	if (yych <= 0x9F) goto yy1805;
+	goto yy1794;
+}
+
+}
+
+// Try to match an HTML block end line of type 5
+bufsize_t _scan_html_block_end_5(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	unsigned int yyaccept = 0;
+	static const unsigned char yybm[] = {
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128,   0, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128,  64, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0xDF) {
+		if (yych <= '\\') {
+			if (yych != '\n') goto yy1815;
+		} else {
+			if (yych <= ']') goto yy1816;
+			if (yych <= 0x7F) goto yy1815;
+			if (yych >= 0xC2) goto yy1817;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1819;
+			if (yych == 0xED) goto yy1824;
+			goto yy1820;
+		} else {
+			if (yych <= 0xF0) goto yy1821;
+			if (yych <= 0xF3) goto yy1822;
+			if (yych <= 0xF4) goto yy1823;
+		}
+	}
+yy1814:
+	{ return 0; }
+yy1815:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= 0x7F) {
+		if (yych == '\n') goto yy1814;
+		goto yy1828;
+	} else {
+		if (yych <= 0xC1) goto yy1814;
+		if (yych <= 0xF4) goto yy1828;
+		goto yy1814;
+	}
+yy1816:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yybm[0+yych] & 64) {
+		goto yy1825;
+	}
+	if (yych <= 0x7F) {
+		if (yych == '\n') goto yy1814;
+		goto yy1828;
+	} else {
+		if (yych <= 0xC1) goto yy1814;
+		if (yych <= 0xF4) goto yy1828;
+		goto yy1814;
+	}
+yy1817:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1818;
+	if (yych <= 0xBF) goto yy1815;
+yy1818:
+	p = marker;
+	if (yyaccept == 0) {
+		goto yy1814;
+	} else {
+		goto yy1838;
+	}
+yy1819:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy1818;
+	if (yych <= 0xBF) goto yy1817;
+	goto yy1818;
+yy1820:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1818;
+	if (yych <= 0xBF) goto yy1817;
+	goto yy1818;
+yy1821:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy1818;
+	if (yych <= 0xBF) goto yy1820;
+	goto yy1818;
+yy1822:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1818;
+	if (yych <= 0xBF) goto yy1820;
+	goto yy1818;
+yy1823:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1818;
+	if (yych <= 0x8F) goto yy1820;
+	goto yy1818;
+yy1824:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1818;
+	if (yych <= 0x9F) goto yy1817;
+	goto yy1818;
+yy1825:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1825;
+	}
+	if (yych <= 0xDF) {
+		if (yych <= '=') {
+			if (yych == '\n') goto yy1818;
+		} else {
+			if (yych <= '>') goto yy1837;
+			if (yych <= 0x7F) goto yy1827;
+			if (yych <= 0xC1) goto yy1818;
+			goto yy1829;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1830;
+			if (yych == 0xED) goto yy1835;
+			goto yy1831;
+		} else {
+			if (yych <= 0xF0) goto yy1832;
+			if (yych <= 0xF3) goto yy1833;
+			if (yych <= 0xF4) goto yy1834;
+			goto yy1818;
+		}
+	}
+yy1827:
+	++p;
+	yych = *p;
+yy1828:
+	if (yybm[0+yych] & 128) {
+		goto yy1827;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '\n') goto yy1818;
+			if (yych <= ']') goto yy1836;
+			goto yy1818;
+		} else {
+			if (yych <= 0xDF) goto yy1829;
+			if (yych <= 0xE0) goto yy1830;
+			goto yy1831;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1835;
+			if (yych <= 0xEF) goto yy1831;
+			goto yy1832;
+		} else {
+			if (yych <= 0xF3) goto yy1833;
+			if (yych <= 0xF4) goto yy1834;
+			goto yy1818;
+		}
+	}
+yy1829:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1818;
+	if (yych <= 0xBF) goto yy1827;
+	goto yy1818;
+yy1830:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1818;
+	if (yych <= 0xBF) goto yy1829;
+	goto yy1818;
+yy1831:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1818;
+	if (yych <= 0xBF) goto yy1829;
+	goto yy1818;
+yy1832:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1818;
+	if (yych <= 0xBF) goto yy1831;
+	goto yy1818;
+yy1833:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1818;
+	if (yych <= 0xBF) goto yy1831;
+	goto yy1818;
+yy1834:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1818;
+	if (yych <= 0x8F) goto yy1831;
+	goto yy1818;
+yy1835:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1818;
+	if (yych <= 0x9F) goto yy1829;
+	goto yy1818;
+yy1836:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1827;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '\n') goto yy1818;
+			if (yych <= ']') goto yy1825;
+			goto yy1818;
+		} else {
+			if (yych <= 0xDF) goto yy1829;
+			if (yych <= 0xE0) goto yy1830;
+			goto yy1831;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1835;
+			if (yych <= 0xEF) goto yy1831;
+			goto yy1832;
+		} else {
+			if (yych <= 0xF3) goto yy1833;
+			if (yych <= 0xF4) goto yy1834;
+			goto yy1818;
+		}
+	}
+yy1837:
+	yyaccept = 1;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1827;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= '\n') goto yy1838;
+			if (yych <= ']') goto yy1836;
+		} else {
+			if (yych <= 0xDF) goto yy1829;
+			if (yych <= 0xE0) goto yy1830;
+			goto yy1831;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1835;
+			if (yych <= 0xEF) goto yy1831;
+			goto yy1832;
+		} else {
+			if (yych <= 0xF3) goto yy1833;
+			if (yych <= 0xF4) goto yy1834;
+		}
+	}
+yy1838:
+	{ return (bufsize_t)(p - start); }
+}
+
+}
+
+// Try to match a URL in a link or reference, return number of chars matched.
+// This may optionally be contained in <..>; otherwise
+// whitespace and unbalanced right parentheses aren't allowed.
+// Newlines aren't ever allowed.
+bufsize_t _scan_link_url(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	unsigned int yyaccept = 0;
+	static const unsigned char yybm[] = {
+		  0, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128,   8, 128, 128,   8, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		128, 128, 128, 128, 128, 128, 128, 128, 
+		136, 224, 224, 224, 224, 224, 224, 224, 
+		128, 128, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224,  32, 224,  32, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224,  16, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= '[') {
+		if (yych <= ' ') {
+			if (yych <= '\f') {
+				if (yych == '\n') goto yy1842;
+				goto yy1858;
+			} else {
+				if (yych <= '\r') goto yy1844;
+				if (yych <= 0x1F) goto yy1858;
+				goto yy1844;
+			}
+		} else {
+			if (yych <= ')') {
+				if (yych <= '\'') goto yy1846;
+				if (yych <= '(') goto yy1857;
+				goto yy1858;
+			} else {
+				if (yych == '<') goto yy1845;
+				goto yy1846;
+			}
+		}
+	} else {
+		if (yych <= 0xEC) {
+			if (yych <= 0xC1) {
+				if (yych <= '\\') goto yy1855;
+				if (yych <= 0x7F) goto yy1846;
+			} else {
+				if (yych <= 0xDF) goto yy1847;
+				if (yych <= 0xE0) goto yy1849;
+				goto yy1850;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xED) goto yy1854;
+				if (yych <= 0xEF) goto yy1850;
+				goto yy1851;
+			} else {
+				if (yych <= 0xF3) goto yy1852;
+				if (yych <= 0xF4) goto yy1853;
+			}
+		}
+	}
+yy1841:
+	{ return (bufsize_t)(p - start); }
+yy1842:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+yy1843:
+	if (yybm[0+yych] & 8) {
+		goto yy1842;
+	}
+	if (yych <= 0x7F) {
+		if (yych <= ')') {
+			if (yych <= 0x1F) goto yy1841;
+			if (yych <= '\'') goto yy1870;
+			if (yych <= '(') goto yy1861;
+			goto yy1841;
+		} else {
+			if (yych <= '<') {
+				if (yych <= ';') goto yy1870;
+				goto yy1905;
+			} else {
+				if (yych == '\\') goto yy1879;
+				goto yy1870;
+			}
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) {
+				if (yych <= 0xC1) goto yy1841;
+				goto yy1872;
+			} else {
+				if (yych <= 0xE0) goto yy1873;
+				if (yych <= 0xEC) goto yy1874;
+				goto yy1878;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1874;
+				goto yy1875;
+			} else {
+				if (yych <= 0xF3) goto yy1876;
+				if (yych <= 0xF4) goto yy1877;
+				goto yy1841;
+			}
+		}
+	}
+yy1844:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	goto yy1843;
+yy1845:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yybm[0+yych] & 64) {
+		goto yy1905;
+	}
+	if (yych <= '>') {
+		if (yych <= '\r') {
+			if (yych <= '\t') {
+				if (yych <= 0x00) goto yy1841;
+				goto yy1919;
+			} else {
+				if (yych <= '\n') goto yy1841;
+				if (yych <= '\f') goto yy1919;
+				goto yy1841;
+			}
+		} else {
+			if (yych <= '(') {
+				if (yych <= ' ') goto yy1919;
+				goto yy1917;
+			} else {
+				if (yych <= ')') goto yy1919;
+				if (yych <= '<') goto yy1870;
+				goto yy1907;
+			}
+		}
+	} else {
+		if (yych <= 0xEC) {
+			if (yych <= 0xC1) {
+				if (yych <= '\\') goto yy1916;
+				goto yy1841;
+			} else {
+				if (yych <= 0xDF) goto yy1909;
+				if (yych <= 0xE0) goto yy1910;
+				goto yy1911;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xED) goto yy1915;
+				if (yych <= 0xEF) goto yy1911;
+				goto yy1912;
+			} else {
+				if (yych <= 0xF3) goto yy1913;
+				if (yych <= 0xF4) goto yy1914;
+				goto yy1841;
+			}
+		}
+	}
+yy1846:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	goto yy1871;
+yy1847:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1846;
+yy1848:
+	p = marker;
+	if (yyaccept <= 1) {
+		if (yyaccept == 0) {
+			goto yy1841;
+		} else {
+			goto yy1856;
+		}
+	} else {
+		goto yy1908;
+	}
+yy1849:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy1848;
+	if (yych <= 0xBF) goto yy1847;
+	goto yy1848;
+yy1850:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1847;
+	goto yy1848;
+yy1851:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy1848;
+	if (yych <= 0xBF) goto yy1850;
+	goto yy1848;
+yy1852:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1850;
+	goto yy1848;
+yy1853:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x8F) goto yy1850;
+	goto yy1848;
+yy1854:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x9F) goto yy1847;
+	goto yy1848;
+yy1855:
+	yyaccept = 1;
+	yych = *(marker = ++p);
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x7F) goto yy1870;
+		} else {
+			if (yych <= 0xDF) goto yy1880;
+			if (yych <= 0xE0) goto yy1881;
+			goto yy1882;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1886;
+			if (yych <= 0xEF) goto yy1882;
+			goto yy1883;
+		} else {
+			if (yych <= 0xF3) goto yy1884;
+			if (yych <= 0xF4) goto yy1885;
+		}
+	}
+yy1856:
+	{ return 0; }
+yy1857:
+	yyaccept = 1;
+	yych = *(marker = ++p);
+	if (yych <= '(') {
+		if (yych <= ' ') goto yy1856;
+		if (yych <= '\'') goto yy1862;
+		goto yy1856;
+	} else {
+		if (yych <= 0x7F) goto yy1862;
+		if (yych <= 0xC1) goto yy1856;
+		if (yych <= 0xF4) goto yy1862;
+		goto yy1856;
+	}
+yy1858:
+	yych = *++p;
+	goto yy1856;
+yy1859:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 16) {
+		goto yy1859;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= ')') {
+			if (yych <= ' ') goto yy1848;
+			if (yych >= ')') goto yy1887;
+		} else {
+			if (yych <= 0x7F) goto yy1861;
+			if (yych <= 0xC1) goto yy1848;
+			if (yych <= 0xDF) goto yy1863;
+			goto yy1864;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1869;
+			goto yy1865;
+		} else {
+			if (yych <= 0xF0) goto yy1866;
+			if (yych <= 0xF3) goto yy1867;
+			if (yych <= 0xF4) goto yy1868;
+			goto yy1848;
+		}
+	}
+yy1861:
+	++p;
+	yych = *p;
+yy1862:
+	if (yybm[0+yych] & 32) {
+		goto yy1861;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= '(') goto yy1848;
+			if (yych <= ')') goto yy1870;
+			goto yy1859;
+		} else {
+			if (yych <= 0xC1) goto yy1848;
+			if (yych >= 0xE0) goto yy1864;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1869;
+			goto yy1865;
+		} else {
+			if (yych <= 0xF0) goto yy1866;
+			if (yych <= 0xF3) goto yy1867;
+			if (yych <= 0xF4) goto yy1868;
+			goto yy1848;
+		}
+	}
+yy1863:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1861;
+	goto yy1848;
+yy1864:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1848;
+	if (yych <= 0xBF) goto yy1863;
+	goto yy1848;
+yy1865:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1863;
+	goto yy1848;
+yy1866:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1848;
+	if (yych <= 0xBF) goto yy1865;
+	goto yy1848;
+yy1867:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1865;
+	goto yy1848;
+yy1868:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x8F) goto yy1865;
+	goto yy1848;
+yy1869:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x9F) goto yy1863;
+	goto yy1848;
+yy1870:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+yy1871:
+	if (yych <= 0xC1) {
+		if (yych <= ')') {
+			if (yych <= ' ') goto yy1841;
+			if (yych <= '\'') goto yy1870;
+			if (yych <= '(') goto yy1861;
+			goto yy1841;
+		} else {
+			if (yych == '\\') goto yy1879;
+			if (yych <= 0x7F) goto yy1870;
+			goto yy1841;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy1872;
+			if (yych <= 0xE0) goto yy1873;
+			if (yych <= 0xEC) goto yy1874;
+			goto yy1878;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1874;
+				goto yy1875;
+			} else {
+				if (yych <= 0xF3) goto yy1876;
+				if (yych <= 0xF4) goto yy1877;
+				goto yy1841;
+			}
+		}
+	}
+yy1872:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1870;
+	goto yy1848;
+yy1873:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1848;
+	if (yych <= 0xBF) goto yy1872;
+	goto yy1848;
+yy1874:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1872;
+	goto yy1848;
+yy1875:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1848;
+	if (yych <= 0xBF) goto yy1874;
+	goto yy1848;
+yy1876:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1874;
+	goto yy1848;
+yy1877:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x8F) goto yy1874;
+	goto yy1848;
+yy1878:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x9F) goto yy1872;
+	goto yy1848;
+yy1879:
+	++p;
+	yych = *p;
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x7F) goto yy1870;
+			goto yy1848;
+		} else {
+			if (yych <= 0xDF) goto yy1880;
+			if (yych <= 0xE0) goto yy1881;
+			goto yy1882;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy1886;
+			if (yych <= 0xEF) goto yy1882;
+			goto yy1883;
+		} else {
+			if (yych <= 0xF3) goto yy1884;
+			if (yych <= 0xF4) goto yy1885;
+			goto yy1848;
+		}
+	}
+yy1880:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1870;
+	goto yy1848;
+yy1881:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1848;
+	if (yych <= 0xBF) goto yy1880;
+	goto yy1848;
+yy1882:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1880;
+	goto yy1848;
+yy1883:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1848;
+	if (yych <= 0xBF) goto yy1882;
+	goto yy1848;
+yy1884:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1882;
+	goto yy1848;
+yy1885:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x8F) goto yy1882;
+	goto yy1848;
+yy1886:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x9F) goto yy1880;
+	goto yy1848;
+yy1887:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+yy1888:
+	if (yych <= 0xC1) {
+		if (yych <= ')') {
+			if (yych <= ' ') goto yy1841;
+			if (yych <= '\'') goto yy1887;
+			if (yych <= '(') goto yy1861;
+			goto yy1870;
+		} else {
+			if (yych == '\\') goto yy1896;
+			if (yych <= 0x7F) goto yy1887;
+			goto yy1841;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy1889;
+			if (yych <= 0xE0) goto yy1890;
+			if (yych <= 0xEC) goto yy1891;
+			goto yy1895;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1891;
+				goto yy1892;
+			} else {
+				if (yych <= 0xF3) goto yy1893;
+				if (yych <= 0xF4) goto yy1894;
+				goto yy1841;
+			}
+		}
+	}
+yy1889:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1887;
+	goto yy1848;
+yy1890:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1848;
+	if (yych <= 0xBF) goto yy1889;
+	goto yy1848;
+yy1891:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1889;
+	goto yy1848;
+yy1892:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1848;
+	if (yych <= 0xBF) goto yy1891;
+	goto yy1848;
+yy1893:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1891;
+	goto yy1848;
+yy1894:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x8F) goto yy1891;
+	goto yy1848;
+yy1895:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x9F) goto yy1889;
+	goto yy1848;
+yy1896:
+	++p;
+	yych = *p;
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= ' ') goto yy1870;
+			if (yych <= '[') goto yy1887;
+		} else {
+			if (yych <= 0x7F) goto yy1887;
+			if (yych <= 0xC1) goto yy1848;
+			if (yych <= 0xDF) goto yy1898;
+			goto yy1899;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1904;
+			goto yy1900;
+		} else {
+			if (yych <= 0xF0) goto yy1901;
+			if (yych <= 0xF3) goto yy1902;
+			if (yych <= 0xF4) goto yy1903;
+			goto yy1848;
+		}
+	}
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+	if (yych <= 0xDF) {
+		if (yych <= '[') {
+			if (yych <= ' ') goto yy1841;
+			if (yych == '(') goto yy1861;
+			goto yy1887;
+		} else {
+			if (yych <= '\\') goto yy1896;
+			if (yych <= 0x7F) goto yy1887;
+			if (yych <= 0xC1) goto yy1841;
+			goto yy1889;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy1890;
+			if (yych == 0xED) goto yy1895;
+			goto yy1891;
+		} else {
+			if (yych <= 0xF0) goto yy1892;
+			if (yych <= 0xF3) goto yy1893;
+			if (yych <= 0xF4) goto yy1894;
+			goto yy1841;
+		}
+	}
+yy1898:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1887;
+	goto yy1848;
+yy1899:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1848;
+	if (yych <= 0xBF) goto yy1898;
+	goto yy1848;
+yy1900:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1898;
+	goto yy1848;
+yy1901:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1848;
+	if (yych <= 0xBF) goto yy1900;
+	goto yy1848;
+yy1902:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1900;
+	goto yy1848;
+yy1903:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x8F) goto yy1900;
+	goto yy1848;
+yy1904:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x9F) goto yy1898;
+	goto yy1848;
+yy1905:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1905;
+	}
+	if (yych <= '>') {
+		if (yych <= '\r') {
+			if (yych <= '\t') {
+				if (yych <= 0x00) goto yy1841;
+				goto yy1919;
+			} else {
+				if (yych <= '\n') goto yy1841;
+				if (yych <= '\f') goto yy1919;
+				goto yy1841;
+			}
+		} else {
+			if (yych <= '(') {
+				if (yych <= ' ') goto yy1919;
+				goto yy1917;
+			} else {
+				if (yych <= ')') goto yy1919;
+				if (yych <= '<') goto yy1870;
+			}
+		}
+	} else {
+		if (yych <= 0xEC) {
+			if (yych <= 0xC1) {
+				if (yych <= '\\') goto yy1916;
+				goto yy1841;
+			} else {
+				if (yych <= 0xDF) goto yy1909;
+				if (yych <= 0xE0) goto yy1910;
+				goto yy1911;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xED) goto yy1915;
+				if (yych <= 0xEF) goto yy1911;
+				goto yy1912;
+			} else {
+				if (yych <= 0xF3) goto yy1913;
+				if (yych <= 0xF4) goto yy1914;
+				goto yy1841;
+			}
+		}
+	}
+yy1907:
+	yyaccept = 2;
+	yych = *(marker = ++p);
+	if (yych <= ')') {
+		if (yych <= ' ') goto yy1908;
+		if (yych <= '(') goto yy1871;
+	} else {
+		if (yych <= 0x7F) goto yy1871;
+		if (yych <= 0xC1) goto yy1908;
+		if (yych <= 0xF4) goto yy1871;
+	}
+yy1908:
+	{ return (bufsize_t)(p - start); }
+yy1909:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1905;
+	goto yy1848;
+yy1910:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1848;
+	if (yych <= 0xBF) goto yy1909;
+	goto yy1848;
+yy1911:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1909;
+	goto yy1848;
+yy1912:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1848;
+	if (yych <= 0xBF) goto yy1911;
+	goto yy1848;
+yy1913:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1911;
+	goto yy1848;
+yy1914:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x8F) goto yy1911;
+	goto yy1848;
+yy1915:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x9F) goto yy1909;
+	goto yy1848;
+yy1916:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) {
+		if (yych <= '\r') {
+			if (yych <= '\t') {
+				if (yych <= 0x00) goto yy1870;
+				goto yy1905;
+			} else {
+				if (yych <= '\n') goto yy1870;
+				if (yych <= '\f') goto yy1905;
+				goto yy1870;
+			}
+		} else {
+			if (yych <= '>') {
+				if (yych <= '=') goto yy1905;
+				goto yy1963;
+			} else {
+				if (yych == '\\') goto yy1964;
+				goto yy1905;
+			}
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) {
+				if (yych <= 0xC1) goto yy1848;
+				goto yy1965;
+			} else {
+				if (yych <= 0xE0) goto yy1966;
+				if (yych <= 0xEC) goto yy1967;
+				goto yy1971;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1967;
+				goto yy1968;
+			} else {
+				if (yych <= 0xF3) goto yy1969;
+				if (yych <= 0xF4) goto yy1970;
+				goto yy1848;
+			}
+		}
+	}
+yy1917:
+	++p;
+	yych = *p;
+	if (yych <= '>') {
+		if (yych <= ' ') {
+			if (yych <= '\n') {
+				if (yych <= 0x00) goto yy1848;
+				if (yych >= '\n') goto yy1848;
+			} else {
+				if (yych == '\r') goto yy1848;
+			}
+		} else {
+			if (yych <= ')') {
+				if (yych <= '\'') goto yy1917;
+				if (yych >= ')') goto yy1905;
+			} else {
+				if (yych == '<') goto yy1861;
+				if (yych <= '=') goto yy1917;
+				goto yy1932;
+			}
+		}
+	} else {
+		if (yych <= 0xE0) {
+			if (yych <= 0x7F) {
+				if (yych == '\\') goto yy1933;
+				goto yy1917;
+			} else {
+				if (yych <= 0xC1) goto yy1848;
+				if (yych <= 0xDF) goto yy1935;
+				goto yy1936;
+			}
+		} else {
+			if (yych <= 0xEF) {
+				if (yych == 0xED) goto yy1941;
+				goto yy1937;
+			} else {
+				if (yych <= 0xF0) goto yy1938;
+				if (yych <= 0xF3) goto yy1939;
+				if (yych <= 0xF4) goto yy1940;
+				goto yy1848;
+			}
+		}
+	}
+yy1919:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1919;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= '<') goto yy1848;
+			if (yych >= '?') goto yy1922;
+		} else {
+			if (yych <= 0xC1) goto yy1848;
+			if (yych <= 0xDF) goto yy1924;
+			goto yy1925;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1930;
+			goto yy1926;
+		} else {
+			if (yych <= 0xF0) goto yy1927;
+			if (yych <= 0xF3) goto yy1928;
+			if (yych <= 0xF4) goto yy1929;
+			goto yy1848;
+		}
+	}
+yy1921:
+	yych = *++p;
+	goto yy1908;
+yy1922:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) {
+		if (yych <= '\r') {
+			if (yych <= '\t') {
+				if (yych <= 0x00) goto yy1848;
+				goto yy1919;
+			} else {
+				if (yych <= '\n') goto yy1848;
+				if (yych <= '\f') goto yy1919;
+				goto yy1848;
+			}
+		} else {
+			if (yych <= '>') {
+				if (yych <= '=') goto yy1919;
+				goto yy1931;
+			} else {
+				if (yych == '\\') goto yy1922;
+				goto yy1919;
+			}
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) {
+				if (yych <= 0xC1) goto yy1848;
+			} else {
+				if (yych <= 0xE0) goto yy1925;
+				if (yych <= 0xEC) goto yy1926;
+				goto yy1930;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1926;
+				goto yy1927;
+			} else {
+				if (yych <= 0xF3) goto yy1928;
+				if (yych <= 0xF4) goto yy1929;
+				goto yy1848;
+			}
+		}
+	}
+yy1924:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1919;
+	goto yy1848;
+yy1925:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1848;
+	if (yych <= 0xBF) goto yy1924;
+	goto yy1848;
+yy1926:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1924;
+	goto yy1848;
+yy1927:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1848;
+	if (yych <= 0xBF) goto yy1926;
+	goto yy1848;
+yy1928:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1926;
+	goto yy1848;
+yy1929:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x8F) goto yy1926;
+	goto yy1848;
+yy1930:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x9F) goto yy1924;
+	goto yy1848;
+yy1931:
+	yyaccept = 2;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy1919;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= '<') goto yy1908;
+			if (yych <= '>') goto yy1921;
+			goto yy1922;
+		} else {
+			if (yych <= 0xC1) goto yy1908;
+			if (yych <= 0xDF) goto yy1924;
+			goto yy1925;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1930;
+			goto yy1926;
+		} else {
+			if (yych <= 0xF0) goto yy1927;
+			if (yych <= 0xF3) goto yy1928;
+			if (yych <= 0xF4) goto yy1929;
+			goto yy1908;
+		}
+	}
+yy1932:
+	yyaccept = 2;
+	yych = *(marker = ++p);
+	if (yych <= '(') {
+		if (yych <= ' ') goto yy1908;
+		if (yych <= '\'') goto yy1862;
+		goto yy1908;
+	} else {
+		if (yych <= 0x7F) goto yy1862;
+		if (yych <= 0xC1) goto yy1908;
+		if (yych <= 0xF4) goto yy1862;
+		goto yy1908;
+	}
+yy1933:
+	++p;
+	yych = *p;
+	if (yych <= '[') {
+		if (yych <= '\r') {
+			if (yych <= '\t') {
+				if (yych <= 0x00) goto yy1848;
+				goto yy1919;
+			} else {
+				if (yych <= '\n') goto yy1848;
+				if (yych <= '\f') goto yy1919;
+				goto yy1848;
+			}
+		} else {
+			if (yych <= ')') {
+				if (yych <= ' ') goto yy1919;
+				if (yych <= '(') goto yy1917;
+				goto yy1942;
+			} else {
+				if (yych == '>') goto yy1944;
+				goto yy1917;
+			}
+		}
+	} else {
+		if (yych <= 0xEC) {
+			if (yych <= 0xC1) {
+				if (yych <= '\\') goto yy1933;
+				if (yych <= 0x7F) goto yy1917;
+				goto yy1848;
+			} else {
+				if (yych <= 0xDF) goto yy1935;
+				if (yych <= 0xE0) goto yy1936;
+				goto yy1937;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xED) goto yy1941;
+				if (yych <= 0xEF) goto yy1937;
+				goto yy1938;
+			} else {
+				if (yych <= 0xF3) goto yy1939;
+				if (yych <= 0xF4) goto yy1940;
+				goto yy1848;
+			}
+		}
+	}
+yy1935:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1917;
+	goto yy1848;
+yy1936:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1848;
+	if (yych <= 0xBF) goto yy1935;
+	goto yy1848;
+yy1937:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1935;
+	goto yy1848;
+yy1938:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1848;
+	if (yych <= 0xBF) goto yy1937;
+	goto yy1848;
+yy1939:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1937;
+	goto yy1848;
+yy1940:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x8F) goto yy1937;
+	goto yy1848;
+yy1941:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x9F) goto yy1935;
+	goto yy1848;
+yy1942:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+	if (yych <= '>') {
+		if (yych <= ' ') {
+			if (yych <= '\n') {
+				if (yych <= 0x00) goto yy1841;
+				if (yych <= '\t') goto yy1919;
+				goto yy1841;
+			} else {
+				if (yych == '\r') goto yy1841;
+				goto yy1919;
+			}
+		} else {
+			if (yych <= ')') {
+				if (yych <= '\'') goto yy1942;
+				if (yych <= '(') goto yy1917;
+				goto yy1905;
+			} else {
+				if (yych == '<') goto yy1887;
+				if (yych <= '=') goto yy1942;
+				goto yy1945;
+			}
+		}
+	} else {
+		if (yych <= 0xE0) {
+			if (yych <= 0x7F) {
+				if (yych == '\\') goto yy1946;
+				goto yy1942;
+			} else {
+				if (yych <= 0xC1) goto yy1841;
+				if (yych <= 0xDF) goto yy1947;
+				goto yy1948;
+			}
+		} else {
+			if (yych <= 0xEF) {
+				if (yych == 0xED) goto yy1953;
+				goto yy1949;
+			} else {
+				if (yych <= 0xF0) goto yy1950;
+				if (yych <= 0xF3) goto yy1951;
+				if (yych <= 0xF4) goto yy1952;
+				goto yy1841;
+			}
+		}
+	}
+yy1944:
+	yyaccept = 2;
+	marker = ++p;
+	yych = *p;
+	if (yych <= '>') {
+		if (yych <= ' ') {
+			if (yych <= '\n') {
+				if (yych <= 0x00) goto yy1908;
+				if (yych <= '\t') goto yy1919;
+				goto yy1908;
+			} else {
+				if (yych == '\r') goto yy1908;
+				goto yy1919;
+			}
+		} else {
+			if (yych <= ')') {
+				if (yych <= '\'') goto yy1917;
+				if (yych <= '(') goto yy1919;
+				goto yy1905;
+			} else {
+				if (yych == '<') goto yy1861;
+				if (yych <= '=') goto yy1917;
+				goto yy1932;
+			}
+		}
+	} else {
+		if (yych <= 0xE0) {
+			if (yych <= 0x7F) {
+				if (yych == '\\') goto yy1933;
+				goto yy1917;
+			} else {
+				if (yych <= 0xC1) goto yy1908;
+				if (yych <= 0xDF) goto yy1935;
+				goto yy1936;
+			}
+		} else {
+			if (yych <= 0xEF) {
+				if (yych == 0xED) goto yy1941;
+				goto yy1937;
+			} else {
+				if (yych <= 0xF0) goto yy1938;
+				if (yych <= 0xF3) goto yy1939;
+				if (yych <= 0xF4) goto yy1940;
+				goto yy1908;
+			}
+		}
+	}
+yy1945:
+	yyaccept = 2;
+	yych = *(marker = ++p);
+	if (yych <= ' ') goto yy1908;
+	if (yych <= 0x7F) goto yy1888;
+	if (yych <= 0xC1) goto yy1908;
+	if (yych <= 0xF4) goto yy1888;
+	goto yy1908;
+yy1946:
+	++p;
+	yych = *p;
+	if (yych <= '\\') {
+		if (yych <= '\r') {
+			if (yych <= '\t') {
+				if (yych <= 0x00) goto yy1870;
+				goto yy1905;
+			} else {
+				if (yych <= '\n') goto yy1870;
+				if (yych <= '\f') goto yy1905;
+				goto yy1870;
+			}
+		} else {
+			if (yych <= '=') {
+				if (yych <= ' ') goto yy1905;
+				goto yy1942;
+			} else {
+				if (yych <= '>') goto yy1954;
+				if (yych <= '[') goto yy1942;
+				goto yy1955;
+			}
+		}
+	} else {
+		if (yych <= 0xEC) {
+			if (yych <= 0xC1) {
+				if (yych <= 0x7F) goto yy1942;
+				goto yy1848;
+			} else {
+				if (yych <= 0xDF) goto yy1956;
+				if (yych <= 0xE0) goto yy1957;
+				goto yy1958;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xED) goto yy1962;
+				if (yych <= 0xEF) goto yy1958;
+				goto yy1959;
+			} else {
+				if (yych <= 0xF3) goto yy1960;
+				if (yych <= 0xF4) goto yy1961;
+				goto yy1848;
+			}
+		}
+	}
+yy1947:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1942;
+	goto yy1848;
+yy1948:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1848;
+	if (yych <= 0xBF) goto yy1947;
+	goto yy1848;
+yy1949:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1947;
+	goto yy1848;
+yy1950:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1848;
+	if (yych <= 0xBF) goto yy1949;
+	goto yy1848;
+yy1951:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1949;
+	goto yy1848;
+yy1952:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x8F) goto yy1949;
+	goto yy1848;
+yy1953:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x9F) goto yy1947;
+	goto yy1848;
+yy1954:
+	yyaccept = 2;
+	marker = ++p;
+	yych = *p;
+	if (yych <= '>') {
+		if (yych <= ' ') {
+			if (yych <= '\n') {
+				if (yych <= 0x00) goto yy1908;
+				if (yych <= '\t') goto yy1919;
+				goto yy1908;
+			} else {
+				if (yych == '\r') goto yy1908;
+				goto yy1919;
+			}
+		} else {
+			if (yych <= ')') {
+				if (yych <= '\'') goto yy1942;
+				if (yych <= '(') goto yy1917;
+				goto yy1905;
+			} else {
+				if (yych == '<') goto yy1887;
+				if (yych <= '=') goto yy1942;
+				goto yy1945;
+			}
+		}
+	} else {
+		if (yych <= 0xE0) {
+			if (yych <= 0x7F) {
+				if (yych == '\\') goto yy1946;
+				goto yy1942;
+			} else {
+				if (yych <= 0xC1) goto yy1908;
+				if (yych <= 0xDF) goto yy1947;
+				goto yy1948;
+			}
+		} else {
+			if (yych <= 0xEF) {
+				if (yych == 0xED) goto yy1953;
+				goto yy1949;
+			} else {
+				if (yych <= 0xF0) goto yy1950;
+				if (yych <= 0xF3) goto yy1951;
+				if (yych <= 0xF4) goto yy1952;
+				goto yy1908;
+			}
+		}
+	}
+yy1955:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+	if (yych <= '[') {
+		if (yych <= '\r') {
+			if (yych <= '\t') {
+				if (yych <= 0x00) goto yy1841;
+				goto yy1919;
+			} else {
+				if (yych <= '\n') goto yy1841;
+				if (yych <= '\f') goto yy1919;
+				goto yy1841;
+			}
+		} else {
+			if (yych <= '(') {
+				if (yych <= ' ') goto yy1919;
+				if (yych <= '\'') goto yy1942;
+				goto yy1917;
+			} else {
+				if (yych == '>') goto yy1954;
+				goto yy1942;
+			}
+		}
+	} else {
+		if (yych <= 0xEC) {
+			if (yych <= 0xC1) {
+				if (yych <= '\\') goto yy1946;
+				if (yych <= 0x7F) goto yy1942;
+				goto yy1841;
+			} else {
+				if (yych <= 0xDF) goto yy1947;
+				if (yych <= 0xE0) goto yy1948;
+				goto yy1949;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xED) goto yy1953;
+				if (yych <= 0xEF) goto yy1949;
+				goto yy1950;
+			} else {
+				if (yych <= 0xF3) goto yy1951;
+				if (yych <= 0xF4) goto yy1952;
+				goto yy1841;
+			}
+		}
+	}
+yy1956:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1942;
+	goto yy1848;
+yy1957:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1848;
+	if (yych <= 0xBF) goto yy1956;
+	goto yy1848;
+yy1958:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1956;
+	goto yy1848;
+yy1959:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1848;
+	if (yych <= 0xBF) goto yy1958;
+	goto yy1848;
+yy1960:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1958;
+	goto yy1848;
+yy1961:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x8F) goto yy1958;
+	goto yy1848;
+yy1962:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x9F) goto yy1956;
+	goto yy1848;
+yy1963:
+	yyaccept = 2;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy1905;
+	}
+	if (yych <= '>') {
+		if (yych <= '\r') {
+			if (yych <= '\t') {
+				if (yych <= 0x00) goto yy1908;
+				goto yy1919;
+			} else {
+				if (yych <= '\n') goto yy1908;
+				if (yych <= '\f') goto yy1919;
+				goto yy1908;
+			}
+		} else {
+			if (yych <= '(') {
+				if (yych <= ' ') goto yy1919;
+				goto yy1917;
+			} else {
+				if (yych <= ')') goto yy1919;
+				if (yych <= '<') goto yy1870;
+				goto yy1907;
+			}
+		}
+	} else {
+		if (yych <= 0xEC) {
+			if (yych <= 0xC1) {
+				if (yych <= '\\') goto yy1916;
+				goto yy1908;
+			} else {
+				if (yych <= 0xDF) goto yy1909;
+				if (yych <= 0xE0) goto yy1910;
+				goto yy1911;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xED) goto yy1915;
+				if (yych <= 0xEF) goto yy1911;
+				goto yy1912;
+			} else {
+				if (yych <= 0xF3) goto yy1913;
+				if (yych <= 0xF4) goto yy1914;
+				goto yy1908;
+			}
+		}
+	}
+yy1964:
+	yyaccept = 0;
+	marker = ++p;
+	yych = *p;
+	if (yych <= '[') {
+		if (yych <= ' ') {
+			if (yych <= '\n') {
+				if (yych <= 0x00) goto yy1841;
+				if (yych <= '\t') goto yy1919;
+				goto yy1841;
+			} else {
+				if (yych == '\r') goto yy1841;
+				goto yy1919;
+			}
+		} else {
+			if (yych <= ')') {
+				if (yych <= '\'') goto yy1905;
+				if (yych <= '(') goto yy1917;
+				goto yy1919;
+			} else {
+				if (yych == '>') goto yy1963;
+				goto yy1905;
+			}
+		}
+	} else {
+		if (yych <= 0xEC) {
+			if (yych <= 0xC1) {
+				if (yych <= '\\') goto yy1916;
+				if (yych <= 0x7F) goto yy1905;
+				goto yy1841;
+			} else {
+				if (yych <= 0xDF) goto yy1909;
+				if (yych <= 0xE0) goto yy1910;
+				goto yy1911;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xED) goto yy1915;
+				if (yych <= 0xEF) goto yy1911;
+				goto yy1912;
+			} else {
+				if (yych <= 0xF3) goto yy1913;
+				if (yych <= 0xF4) goto yy1914;
+				goto yy1841;
+			}
+		}
+	}
+yy1965:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1905;
+	goto yy1848;
+yy1966:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1848;
+	if (yych <= 0xBF) goto yy1965;
+	goto yy1848;
+yy1967:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1965;
+	goto yy1848;
+yy1968:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1848;
+	if (yych <= 0xBF) goto yy1967;
+	goto yy1848;
+yy1969:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0xBF) goto yy1967;
+	goto yy1848;
+yy1970:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x8F) goto yy1967;
+	goto yy1848;
+yy1971:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1848;
+	if (yych <= 0x9F) goto yy1965;
+	goto yy1848;
+}
+
+}
+
+// Try to match a link title (in single quotes, in double quotes, or
+// in parentheses), returning number of chars matched.  Allow one
+// level of internal nesting (quotes within quotes).
+bufsize_t _scan_link_title(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	unsigned int yyaccept = 0;
+	static const unsigned char yybm[] = {
+		  0, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224,  96, 224, 224, 224, 224, 160, 
+		224, 192, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224,  16, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		224, 224, 224, 224, 224, 224, 224, 224, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0xC1) {
+		if (yych <= '"') {
+			if (yych == '\n') goto yy1974;
+			if (yych <= '!') goto yy1978;
+			goto yy1975;
+		} else {
+			if (yych <= '\'') {
+				if (yych <= '&') goto yy1978;
+				goto yy1976;
+			} else {
+				if (yych <= '(') goto yy1977;
+				if (yych <= 0x7F) goto yy1978;
+			}
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy1979;
+			if (yych <= 0xE0) goto yy1981;
+			if (yych <= 0xEC) goto yy1982;
+			goto yy1986;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy1982;
+				goto yy1983;
+			} else {
+				if (yych <= 0xF3) goto yy1984;
+				if (yych <= 0xF4) goto yy1985;
+			}
+		}
+	}
+yy1974:
+	{ return 0; }
+yy1975:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= 0x00) goto yy1974;
+	if (yych <= 0x7F) goto yy2018;
+	if (yych <= 0xC1) goto yy1974;
+	if (yych <= 0xF4) goto yy2018;
+	goto yy1974;
+yy1976:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= 0x00) goto yy1974;
+	if (yych <= 0x7F) goto yy2004;
+	if (yych <= 0xC1) goto yy1974;
+	if (yych <= 0xF4) goto yy2004;
+	goto yy1974;
+yy1977:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych <= 0x00) goto yy1974;
+	if (yych <= 0x7F) goto yy1990;
+	if (yych <= 0xC1) goto yy1974;
+	if (yych <= 0xF4) goto yy1990;
+	goto yy1974;
+yy1978:
+	yych = *++p;
+	goto yy1974;
+yy1979:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0xBF) goto yy1978;
+yy1980:
+	p = marker;
+	if (yyaccept <= 1) {
+		if (yyaccept == 0) {
+			goto yy1974;
+		} else {
+			goto yy1999;
+		}
+	} else {
+		if (yyaccept == 2) {
+			goto yy2013;
+		} else {
+			goto yy2027;
+		}
+	}
+yy1981:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy1980;
+	if (yych <= 0xBF) goto yy1979;
+	goto yy1980;
+yy1982:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0xBF) goto yy1979;
+	goto yy1980;
+yy1983:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy1980;
+	if (yych <= 0xBF) goto yy1982;
+	goto yy1980;
+yy1984:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0xBF) goto yy1982;
+	goto yy1980;
+yy1985:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0x8F) goto yy1982;
+	goto yy1980;
+yy1986:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0x9F) goto yy1979;
+	goto yy1980;
+yy1987:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1989;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= 0x00) goto yy1980;
+			if (yych <= ')') goto yy2000;
+			goto yy1987;
+		} else {
+			if (yych <= 0xC1) goto yy1980;
+			if (yych <= 0xDF) goto yy1991;
+			goto yy1992;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1997;
+			goto yy1993;
+		} else {
+			if (yych <= 0xF0) goto yy1994;
+			if (yych <= 0xF3) goto yy1995;
+			if (yych <= 0xF4) goto yy1996;
+			goto yy1980;
+		}
+	}
+yy1989:
+	++p;
+	yych = *p;
+yy1990:
+	if (yybm[0+yych] & 32) {
+		goto yy1989;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= 0x00) goto yy1980;
+			if (yych <= ')') goto yy1998;
+			goto yy1987;
+		} else {
+			if (yych <= 0xC1) goto yy1980;
+			if (yych >= 0xE0) goto yy1992;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1997;
+			goto yy1993;
+		} else {
+			if (yych <= 0xF0) goto yy1994;
+			if (yych <= 0xF3) goto yy1995;
+			if (yych <= 0xF4) goto yy1996;
+			goto yy1980;
+		}
+	}
+yy1991:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0xBF) goto yy1989;
+	goto yy1980;
+yy1992:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1980;
+	if (yych <= 0xBF) goto yy1991;
+	goto yy1980;
+yy1993:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0xBF) goto yy1991;
+	goto yy1980;
+yy1994:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1980;
+	if (yych <= 0xBF) goto yy1993;
+	goto yy1980;
+yy1995:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0xBF) goto yy1993;
+	goto yy1980;
+yy1996:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0x8F) goto yy1993;
+	goto yy1980;
+yy1997:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0x9F) goto yy1991;
+	goto yy1980;
+yy1998:
+	++p;
+yy1999:
+	{ return (bufsize_t)(p - start); }
+yy2000:
+	yyaccept = 1;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy1989;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= 0x00) goto yy1999;
+			if (yych <= ')') goto yy1998;
+			goto yy1987;
+		} else {
+			if (yych <= 0xC1) goto yy1999;
+			if (yych <= 0xDF) goto yy1991;
+			goto yy1992;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy1997;
+			goto yy1993;
+		} else {
+			if (yych <= 0xF0) goto yy1994;
+			if (yych <= 0xF3) goto yy1995;
+			if (yych <= 0xF4) goto yy1996;
+			goto yy1999;
+		}
+	}
+yy2001:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy2003;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= 0x00) goto yy1980;
+			if (yych <= '\'') goto yy2014;
+			goto yy2001;
+		} else {
+			if (yych <= 0xC1) goto yy1980;
+			if (yych <= 0xDF) goto yy2005;
+			goto yy2006;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy2011;
+			goto yy2007;
+		} else {
+			if (yych <= 0xF0) goto yy2008;
+			if (yych <= 0xF3) goto yy2009;
+			if (yych <= 0xF4) goto yy2010;
+			goto yy1980;
+		}
+	}
+yy2003:
+	++p;
+	yych = *p;
+yy2004:
+	if (yybm[0+yych] & 64) {
+		goto yy2003;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= 0x00) goto yy1980;
+			if (yych <= '\'') goto yy2012;
+			goto yy2001;
+		} else {
+			if (yych <= 0xC1) goto yy1980;
+			if (yych >= 0xE0) goto yy2006;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy2011;
+			goto yy2007;
+		} else {
+			if (yych <= 0xF0) goto yy2008;
+			if (yych <= 0xF3) goto yy2009;
+			if (yych <= 0xF4) goto yy2010;
+			goto yy1980;
+		}
+	}
+yy2005:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0xBF) goto yy2003;
+	goto yy1980;
+yy2006:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1980;
+	if (yych <= 0xBF) goto yy2005;
+	goto yy1980;
+yy2007:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0xBF) goto yy2005;
+	goto yy1980;
+yy2008:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1980;
+	if (yych <= 0xBF) goto yy2007;
+	goto yy1980;
+yy2009:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0xBF) goto yy2007;
+	goto yy1980;
+yy2010:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0x8F) goto yy2007;
+	goto yy1980;
+yy2011:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0x9F) goto yy2005;
+	goto yy1980;
+yy2012:
+	++p;
+yy2013:
+	{ return (bufsize_t)(p - start); }
+yy2014:
+	yyaccept = 2;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy2003;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= 0x00) goto yy2013;
+			if (yych <= '\'') goto yy2012;
+			goto yy2001;
+		} else {
+			if (yych <= 0xC1) goto yy2013;
+			if (yych <= 0xDF) goto yy2005;
+			goto yy2006;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy2011;
+			goto yy2007;
+		} else {
+			if (yych <= 0xF0) goto yy2008;
+			if (yych <= 0xF3) goto yy2009;
+			if (yych <= 0xF4) goto yy2010;
+			goto yy2013;
+		}
+	}
+yy2015:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy2017;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= 0x00) goto yy1980;
+			if (yych <= '"') goto yy2028;
+			goto yy2015;
+		} else {
+			if (yych <= 0xC1) goto yy1980;
+			if (yych <= 0xDF) goto yy2019;
+			goto yy2020;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy2025;
+			goto yy2021;
+		} else {
+			if (yych <= 0xF0) goto yy2022;
+			if (yych <= 0xF3) goto yy2023;
+			if (yych <= 0xF4) goto yy2024;
+			goto yy1980;
+		}
+	}
+yy2017:
+	++p;
+	yych = *p;
+yy2018:
+	if (yybm[0+yych] & 128) {
+		goto yy2017;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= 0x00) goto yy1980;
+			if (yych <= '"') goto yy2026;
+			goto yy2015;
+		} else {
+			if (yych <= 0xC1) goto yy1980;
+			if (yych >= 0xE0) goto yy2020;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy2025;
+			goto yy2021;
+		} else {
+			if (yych <= 0xF0) goto yy2022;
+			if (yych <= 0xF3) goto yy2023;
+			if (yych <= 0xF4) goto yy2024;
+			goto yy1980;
+		}
+	}
+yy2019:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0xBF) goto yy2017;
+	goto yy1980;
+yy2020:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy1980;
+	if (yych <= 0xBF) goto yy2019;
+	goto yy1980;
+yy2021:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0xBF) goto yy2019;
+	goto yy1980;
+yy2022:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy1980;
+	if (yych <= 0xBF) goto yy2021;
+	goto yy1980;
+yy2023:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0xBF) goto yy2021;
+	goto yy1980;
+yy2024:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0x8F) goto yy2021;
+	goto yy1980;
+yy2025:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy1980;
+	if (yych <= 0x9F) goto yy2019;
+	goto yy1980;
+yy2026:
+	++p;
+yy2027:
+	{ return (bufsize_t)(p - start); }
+yy2028:
+	yyaccept = 3;
+	marker = ++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy2017;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '\\') {
+			if (yych <= 0x00) goto yy2027;
+			if (yych <= '"') goto yy2026;
+			goto yy2015;
+		} else {
+			if (yych <= 0xC1) goto yy2027;
+			if (yych <= 0xDF) goto yy2019;
+			goto yy2020;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy2025;
+			goto yy2021;
+		} else {
+			if (yych <= 0xF0) goto yy2022;
+			if (yych <= 0xF3) goto yy2023;
+			if (yych <= 0xF4) goto yy2024;
+			goto yy2027;
+		}
+	}
+}
+
+}
+
+// Match space characters, including newlines.
+bufsize_t _scan_spacechars(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p; \
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0, 128, 128, 128, 128, 128,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		128,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0xC1) {
+		if (yych <= '\r') {
+			if (yych <= 0x08) goto yy2035;
+			if (yych == '\n') goto yy2033;
+			goto yy2032;
+		} else {
+			if (yych == ' ') goto yy2032;
+			if (yych <= 0x7F) goto yy2035;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy2037;
+			if (yych <= 0xE0) goto yy2039;
+			if (yych <= 0xEC) goto yy2040;
+			goto yy2044;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy2040;
+				goto yy2041;
+			} else {
+				if (yych <= 0xF3) goto yy2042;
+				if (yych <= 0xF4) goto yy2043;
+			}
+		}
+	}
+yy2031:
+	{ return (bufsize_t)(p - start); }
+yy2032:
+	yych = *++p;
+	goto yy2034;
+yy2033:
+	++p;
+	yych = *p;
+yy2034:
+	if (yybm[0+yych] & 128) {
+		goto yy2033;
+	}
+	goto yy2031;
+yy2035:
+	++p;
+	{ return 0; }
+yy2037:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2038;
+	if (yych <= 0xBF) goto yy2035;
+yy2038:
+	p = marker;
+	goto yy2031;
+yy2039:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy2038;
+	if (yych <= 0xBF) goto yy2037;
+	goto yy2038;
+yy2040:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2038;
+	if (yych <= 0xBF) goto yy2037;
+	goto yy2038;
+yy2041:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy2038;
+	if (yych <= 0xBF) goto yy2040;
+	goto yy2038;
+yy2042:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2038;
+	if (yych <= 0xBF) goto yy2040;
+	goto yy2038;
+yy2043:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2038;
+	if (yych <= 0x8F) goto yy2040;
+	goto yy2038;
+yy2044:
+	++p;
+	if ((yych = *p) <= 0x7F) goto yy2038;
+	if (yych <= 0x9F) goto yy2037;
+	goto yy2038;
+}
+
+}
+
+// Match ATX header start.
+bufsize_t _scan_atx_header_start(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		128,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0xDF) {
+		if (yych <= '"') {
+			if (yych != '\n') goto yy2049;
+		} else {
+			if (yych <= '#') goto yy2048;
+			if (yych <= 0x7F) goto yy2049;
+			if (yych >= 0xC2) goto yy2050;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy2052;
+			if (yych == 0xED) goto yy2057;
+			goto yy2053;
+		} else {
+			if (yych <= 0xF0) goto yy2054;
+			if (yych <= 0xF3) goto yy2055;
+			if (yych <= 0xF4) goto yy2056;
+		}
+	}
+yy2047:
+	{ return 0; }
+yy2048:
+	yych = *(marker = ++p);
+	if (yybm[0+yych] & 128) {
+		goto yy2060;
+	}
+	if (yych <= '\f') {
+		if (yych == '\n') goto yy2058;
+		goto yy2047;
+	} else {
+		if (yych <= '\r') goto yy2058;
+		if (yych == '#') goto yy2062;
+		goto yy2047;
+	}
+yy2049:
+	yych = *++p;
+	goto yy2047;
+yy2050:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2051;
+	if (yych <= 0xBF) goto yy2049;
+yy2051:
+	p = marker;
+	goto yy2047;
+yy2052:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy2051;
+	if (yych <= 0xBF) goto yy2050;
+	goto yy2051;
+yy2053:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2051;
+	if (yych <= 0xBF) goto yy2050;
+	goto yy2051;
+yy2054:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy2051;
+	if (yych <= 0xBF) goto yy2053;
+	goto yy2051;
+yy2055:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2051;
+	if (yych <= 0xBF) goto yy2053;
+	goto yy2051;
+yy2056:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2051;
+	if (yych <= 0x8F) goto yy2053;
+	goto yy2051;
+yy2057:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2051;
+	if (yych <= 0x9F) goto yy2050;
+	goto yy2051;
+yy2058:
+	++p;
+yy2059:
+	{ return (bufsize_t)(p - start); }
+yy2060:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy2060;
+	}
+	goto yy2059;
+yy2062:
+	yych = *++p;
+	if (yybm[0+yych] & 128) {
+		goto yy2060;
+	}
+	if (yych <= '\f') {
+		if (yych == '\n') goto yy2058;
+		goto yy2051;
+	} else {
+		if (yych <= '\r') goto yy2058;
+		if (yych != '#') goto yy2051;
+	}
+	yych = *++p;
+	if (yybm[0+yych] & 128) {
+		goto yy2060;
+	}
+	if (yych <= '\f') {
+		if (yych == '\n') goto yy2058;
+		goto yy2051;
+	} else {
+		if (yych <= '\r') goto yy2058;
+		if (yych != '#') goto yy2051;
+	}
+	yych = *++p;
+	if (yybm[0+yych] & 128) {
+		goto yy2060;
+	}
+	if (yych <= '\f') {
+		if (yych == '\n') goto yy2058;
+		goto yy2051;
+	} else {
+		if (yych <= '\r') goto yy2058;
+		if (yych != '#') goto yy2051;
+	}
+	yych = *++p;
+	if (yybm[0+yych] & 128) {
+		goto yy2060;
+	}
+	if (yych <= '\f') {
+		if (yych == '\n') goto yy2058;
+		goto yy2051;
+	} else {
+		if (yych <= '\r') goto yy2058;
+		if (yych != '#') goto yy2051;
+	}
+	++p;
+	if (yybm[0+(yych = *p)] & 128) {
+		goto yy2060;
+	}
+	if (yych == '\n') goto yy2058;
+	if (yych == '\r') goto yy2058;
+	goto yy2051;
+}
+
+}
+
+// Match setext header line.  Return 1 for level-1 header,
+// 2 for level-2, 0 for no match.
+bufsize_t _scan_setext_header_line(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		 32,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,  64,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0, 128,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0xC1) {
+		if (yych <= '-') {
+			if (yych == '\n') goto yy2069;
+			if (yych <= ',') goto yy2072;
+			goto yy2071;
+		} else {
+			if (yych == '=') goto yy2070;
+			if (yych <= 0x7F) goto yy2072;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy2073;
+			if (yych <= 0xE0) goto yy2075;
+			if (yych <= 0xEC) goto yy2076;
+			goto yy2080;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy2076;
+				goto yy2077;
+			} else {
+				if (yych <= 0xF3) goto yy2078;
+				if (yych <= 0xF4) goto yy2079;
+			}
+		}
+	}
+yy2069:
+	{ return 0; }
+yy2070:
+	yych = *(marker = ++p);
+	if (yybm[0+yych] & 128) {
+		goto yy2091;
+	}
+	if (yych <= '\f') {
+		if (yych == '\n') goto yy2089;
+		goto yy2069;
+	} else {
+		if (yych <= '\r') goto yy2089;
+		if (yych == ' ') goto yy2087;
+		goto yy2069;
+	}
+yy2071:
+	yych = *(marker = ++p);
+	if (yybm[0+yych] & 32) {
+		goto yy2081;
+	}
+	if (yych <= '\f') {
+		if (yych == '\n') goto yy2083;
+		goto yy2069;
+	} else {
+		if (yych <= '\r') goto yy2083;
+		if (yych == '-') goto yy2085;
+		goto yy2069;
+	}
+yy2072:
+	yych = *++p;
+	goto yy2069;
+yy2073:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2074;
+	if (yych <= 0xBF) goto yy2072;
+yy2074:
+	p = marker;
+	goto yy2069;
+yy2075:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy2074;
+	if (yych <= 0xBF) goto yy2073;
+	goto yy2074;
+yy2076:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2074;
+	if (yych <= 0xBF) goto yy2073;
+	goto yy2074;
+yy2077:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy2074;
+	if (yych <= 0xBF) goto yy2076;
+	goto yy2074;
+yy2078:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2074;
+	if (yych <= 0xBF) goto yy2076;
+	goto yy2074;
+yy2079:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2074;
+	if (yych <= 0x8F) goto yy2076;
+	goto yy2074;
+yy2080:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2074;
+	if (yych <= 0x9F) goto yy2073;
+	goto yy2074;
+yy2081:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy2081;
+	}
+	if (yych == '\n') goto yy2083;
+	if (yych != '\r') goto yy2074;
+yy2083:
+	++p;
+	{ return 2; }
+yy2085:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy2081;
+	}
+	if (yych <= '\f') {
+		if (yych == '\n') goto yy2083;
+		goto yy2074;
+	} else {
+		if (yych <= '\r') goto yy2083;
+		if (yych == '-') goto yy2085;
+		goto yy2074;
+	}
+yy2087:
+	++p;
+	yych = *p;
+	if (yych <= '\f') {
+		if (yych != '\n') goto yy2074;
+	} else {
+		if (yych <= '\r') goto yy2089;
+		if (yych == ' ') goto yy2087;
+		goto yy2074;
+	}
+yy2089:
+	++p;
+	{ return 1; }
+yy2091:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy2091;
+	}
+	if (yych <= '\f') {
+		if (yych == '\n') goto yy2089;
+		goto yy2074;
+	} else {
+		if (yych <= '\r') goto yy2089;
+		if (yych == ' ') goto yy2087;
+		goto yy2074;
+	}
+}
+
+}
+
+// Scan a horizontal rule line: "...three or more hyphens, asterisks,
+// or underscores on a line by themselves. If you wish, you may use
+// spaces between the hyphens or asterisks."
+bufsize_t _scan_hrule(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,  32,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		248,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0, 128,   0,   0,  16,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,  64, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0x7F) {
+		if (yych <= '*') {
+			if (yych == '\n') goto yy2095;
+			if (yych <= ')') goto yy2099;
+			goto yy2096;
+		} else {
+			if (yych <= '-') {
+				if (yych <= ',') goto yy2099;
+				goto yy2098;
+			} else {
+				if (yych == '_') goto yy2097;
+				goto yy2099;
+			}
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) {
+				if (yych >= 0xC2) goto yy2100;
+			} else {
+				if (yych <= 0xE0) goto yy2102;
+				if (yych <= 0xEC) goto yy2103;
+				goto yy2107;
+			}
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy2103;
+				goto yy2104;
+			} else {
+				if (yych <= 0xF3) goto yy2105;
+				if (yych <= 0xF4) goto yy2106;
+			}
+		}
+	}
+yy2095:
+	{ return 0; }
+yy2096:
+	yych = *(marker = ++p);
+	if (yych == ' ') goto yy2128;
+	if (yych == '*') goto yy2130;
+	goto yy2095;
+yy2097:
+	yych = *(marker = ++p);
+	if (yych == ' ') goto yy2118;
+	if (yych == '_') goto yy2120;
+	goto yy2095;
+yy2098:
+	yych = *(marker = ++p);
+	if (yybm[0+yych] & 8) {
+		goto yy2108;
+	}
+	if (yych == '-') goto yy2110;
+	goto yy2095;
+yy2099:
+	yych = *++p;
+	goto yy2095;
+yy2100:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2101;
+	if (yych <= 0xBF) goto yy2099;
+yy2101:
+	p = marker;
+	goto yy2095;
+yy2102:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy2101;
+	if (yych <= 0xBF) goto yy2100;
+	goto yy2101;
+yy2103:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2101;
+	if (yych <= 0xBF) goto yy2100;
+	goto yy2101;
+yy2104:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy2101;
+	if (yych <= 0xBF) goto yy2103;
+	goto yy2101;
+yy2105:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2101;
+	if (yych <= 0xBF) goto yy2103;
+	goto yy2101;
+yy2106:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2101;
+	if (yych <= 0x8F) goto yy2103;
+	goto yy2101;
+yy2107:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2101;
+	if (yych <= 0x9F) goto yy2100;
+	goto yy2101;
+yy2108:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 8) {
+		goto yy2108;
+	}
+	if (yych != '-') goto yy2101;
+yy2110:
+	++p;
+	yych = *p;
+	if (yych == ' ') goto yy2110;
+	if (yych != '-') goto yy2101;
+yy2112:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 16) {
+		goto yy2112;
+	}
+	if (yych <= '\n') {
+		if (yych <= 0x08) goto yy2101;
+		if (yych >= '\n') goto yy2116;
+	} else {
+		if (yych == '\r') goto yy2116;
+		goto yy2101;
+	}
+yy2114:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy2114;
+	}
+	if (yych <= 0x08) goto yy2101;
+	if (yych <= '\n') goto yy2116;
+	if (yych != '\r') goto yy2101;
+yy2116:
+	++p;
+	{ return (bufsize_t)(p - start); }
+yy2118:
+	++p;
+	yych = *p;
+	if (yych == ' ') goto yy2118;
+	if (yych != '_') goto yy2101;
+yy2120:
+	++p;
+	yych = *p;
+	if (yych == ' ') goto yy2120;
+	if (yych != '_') goto yy2101;
+yy2122:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy2122;
+	}
+	if (yych <= '\n') {
+		if (yych <= 0x08) goto yy2101;
+		if (yych >= '\n') goto yy2126;
+	} else {
+		if (yych == '\r') goto yy2126;
+		goto yy2101;
+	}
+yy2124:
+	++p;
+	yych = *p;
+	if (yych <= '\f') {
+		if (yych <= 0x08) goto yy2101;
+		if (yych <= '\t') goto yy2124;
+		if (yych >= '\v') goto yy2101;
+	} else {
+		if (yych <= '\r') goto yy2126;
+		if (yych == ' ') goto yy2124;
+		goto yy2101;
+	}
+yy2126:
+	++p;
+	{ return (bufsize_t)(p - start); }
+yy2128:
+	++p;
+	yych = *p;
+	if (yych == ' ') goto yy2128;
+	if (yych != '*') goto yy2101;
+yy2130:
+	++p;
+	yych = *p;
+	if (yych == ' ') goto yy2130;
+	if (yych != '*') goto yy2101;
+yy2132:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy2132;
+	}
+	if (yych <= '\n') {
+		if (yych <= 0x08) goto yy2101;
+		if (yych >= '\n') goto yy2136;
+	} else {
+		if (yych == '\r') goto yy2136;
+		goto yy2101;
+	}
+yy2134:
+	++p;
+	yych = *p;
+	if (yych <= '\f') {
+		if (yych <= 0x08) goto yy2101;
+		if (yych <= '\t') goto yy2134;
+		if (yych >= '\v') goto yy2101;
+	} else {
+		if (yych <= '\r') goto yy2136;
+		if (yych == ' ') goto yy2134;
+		goto yy2101;
+	}
+yy2136:
+	++p;
+	{ return (bufsize_t)(p - start); }
+}
+
+}
+
+// Scan an opening code fence.
+bufsize_t _scan_open_code_fence(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160,   0, 160, 160,   0, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		 96, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 160, 160, 
+		160, 160, 160, 160, 160, 160, 144, 160, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0xC1) {
+		if (yych <= '`') {
+			if (yych == '\n') goto yy2140;
+			if (yych <= '_') goto yy2143;
+			goto yy2141;
+		} else {
+			if (yych == '~') goto yy2142;
+			if (yych <= 0x7F) goto yy2143;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy2144;
+			if (yych <= 0xE0) goto yy2146;
+			if (yych <= 0xEC) goto yy2147;
+			goto yy2151;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy2147;
+				goto yy2148;
+			} else {
+				if (yych <= 0xF3) goto yy2149;
+				if (yych <= 0xF4) goto yy2150;
+			}
+		}
+	}
+yy2140:
+	{ return 0; }
+yy2141:
+	yych = *(marker = ++p);
+	if (yych == '`') goto yy2166;
+	goto yy2140;
+yy2142:
+	yych = *(marker = ++p);
+	if (yych == '~') goto yy2152;
+	goto yy2140;
+yy2143:
+	yych = *++p;
+	goto yy2140;
+yy2144:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0xBF) goto yy2143;
+yy2145:
+	p = marker;
+	goto yy2140;
+yy2146:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy2145;
+	if (yych <= 0xBF) goto yy2144;
+	goto yy2145;
+yy2147:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0xBF) goto yy2144;
+	goto yy2145;
+yy2148:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy2145;
+	if (yych <= 0xBF) goto yy2147;
+	goto yy2145;
+yy2149:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0xBF) goto yy2147;
+	goto yy2145;
+yy2150:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0x8F) goto yy2147;
+	goto yy2145;
+yy2151:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0x9F) goto yy2144;
+	goto yy2145;
+yy2152:
+	yych = *++p;
+	if (yybm[0+yych] & 16) {
+		goto yy2153;
+	}
+	goto yy2145;
+yy2153:
+	marker = p + 1;
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy2155;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '~') {
+			if (yych <= 0x00) goto yy2145;
+			if (yych <= '\r') goto yy2164;
+			goto yy2153;
+		} else {
+			if (yych <= 0xC1) goto yy2145;
+			if (yych <= 0xDF) goto yy2157;
+			goto yy2158;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy2163;
+			goto yy2159;
+		} else {
+			if (yych <= 0xF0) goto yy2160;
+			if (yych <= 0xF3) goto yy2161;
+			if (yych <= 0xF4) goto yy2162;
+			goto yy2145;
+		}
+	}
+yy2155:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 32) {
+		goto yy2155;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x00) goto yy2145;
+			if (yych <= '\r') goto yy2164;
+			goto yy2145;
+		} else {
+			if (yych <= 0xDF) goto yy2157;
+			if (yych <= 0xE0) goto yy2158;
+			goto yy2159;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy2163;
+			if (yych <= 0xEF) goto yy2159;
+			goto yy2160;
+		} else {
+			if (yych <= 0xF3) goto yy2161;
+			if (yych <= 0xF4) goto yy2162;
+			goto yy2145;
+		}
+	}
+yy2157:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0xBF) goto yy2155;
+	goto yy2145;
+yy2158:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy2145;
+	if (yych <= 0xBF) goto yy2157;
+	goto yy2145;
+yy2159:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0xBF) goto yy2157;
+	goto yy2145;
+yy2160:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy2145;
+	if (yych <= 0xBF) goto yy2159;
+	goto yy2145;
+yy2161:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0xBF) goto yy2159;
+	goto yy2145;
+yy2162:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0x8F) goto yy2159;
+	goto yy2145;
+yy2163:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0x9F) goto yy2157;
+	goto yy2145;
+yy2164:
+	++p;
+	p = marker;
+	{ return (bufsize_t)(p - start); }
+yy2166:
+	yych = *++p;
+	if (yybm[0+yych] & 64) {
+		goto yy2167;
+	}
+	goto yy2145;
+yy2167:
+	marker = p + 1;
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy2169;
+	}
+	if (yych <= 0xE0) {
+		if (yych <= '`') {
+			if (yych <= 0x00) goto yy2145;
+			if (yych <= '\r') goto yy2178;
+			goto yy2167;
+		} else {
+			if (yych <= 0xC1) goto yy2145;
+			if (yych <= 0xDF) goto yy2171;
+			goto yy2172;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych == 0xED) goto yy2177;
+			goto yy2173;
+		} else {
+			if (yych <= 0xF0) goto yy2174;
+			if (yych <= 0xF3) goto yy2175;
+			if (yych <= 0xF4) goto yy2176;
+			goto yy2145;
+		}
+	}
+yy2169:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy2169;
+	}
+	if (yych <= 0xEC) {
+		if (yych <= 0xC1) {
+			if (yych <= 0x00) goto yy2145;
+			if (yych <= '\r') goto yy2178;
+			goto yy2145;
+		} else {
+			if (yych <= 0xDF) goto yy2171;
+			if (yych <= 0xE0) goto yy2172;
+			goto yy2173;
+		}
+	} else {
+		if (yych <= 0xF0) {
+			if (yych <= 0xED) goto yy2177;
+			if (yych <= 0xEF) goto yy2173;
+			goto yy2174;
+		} else {
+			if (yych <= 0xF3) goto yy2175;
+			if (yych <= 0xF4) goto yy2176;
+			goto yy2145;
+		}
+	}
+yy2171:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0xBF) goto yy2169;
+	goto yy2145;
+yy2172:
+	++p;
+	yych = *p;
+	if (yych <= 0x9F) goto yy2145;
+	if (yych <= 0xBF) goto yy2171;
+	goto yy2145;
+yy2173:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0xBF) goto yy2171;
+	goto yy2145;
+yy2174:
+	++p;
+	yych = *p;
+	if (yych <= 0x8F) goto yy2145;
+	if (yych <= 0xBF) goto yy2173;
+	goto yy2145;
+yy2175:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0xBF) goto yy2173;
+	goto yy2145;
+yy2176:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0x8F) goto yy2173;
+	goto yy2145;
+yy2177:
+	++p;
+	yych = *p;
+	if (yych <= 0x7F) goto yy2145;
+	if (yych <= 0x9F) goto yy2171;
+	goto yy2145;
+yy2178:
+	++p;
+	p = marker;
+	{ return (bufsize_t)(p - start); }
+}
+
+}
+
+// Scan a closing code fence with length at least len.
+bufsize_t _scan_close_code_fence(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	static const unsigned char yybm[] = {
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,  64,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		 64,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		128,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,  32,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+		  0,   0,   0,   0,   0,   0,   0,   0, 
+	};
+	yych = *(marker = p);
+	if (yych <= 0xC1) {
+		if (yych <= '`') {
+			if (yych == '\n') goto yy2182;
+			if (yych <= '_') goto yy2185;
+			goto yy2183;
+		} else {
+			if (yych == '~') goto yy2184;
+			if (yych <= 0x7F) goto yy2185;
+		}
+	} else {
+		if (yych <= 0xED) {
+			if (yych <= 0xDF) goto yy2186;
+			if (yych <= 0xE0) goto yy2188;
+			if (yych <= 0xEC) goto yy2189;
+			goto yy2193;
+		} else {
+			if (yych <= 0xF0) {
+				if (yych <= 0xEF) goto yy2189;
+				goto yy2190;
+			} else {
+				if (yych <= 0xF3) goto yy2191;
+				if (yych <= 0xF4) goto yy2192;
+			}
+		}
+	}
+yy2182:
+	{ return 0; }
+yy2183:
+	yych = *(marker = ++p);
+	if (yych == '`') goto yy2201;
+	goto yy2182;
+yy2184:
+	yych = *(marker = ++p);
+	if (yych == '~') goto yy2194;
+	goto yy2182;
+yy2185:
+	yych = *++p;
+	goto yy2182;
+yy2186:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2187;
+	if (yych <= 0xBF) goto yy2185;
+yy2187:
+	p = marker;
+	goto yy2182;
+yy2188:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy2187;
+	if (yych <= 0xBF) goto yy2186;
+	goto yy2187;
+yy2189:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2187;
+	if (yych <= 0xBF) goto yy2186;
+	goto yy2187;
+yy2190:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy2187;
+	if (yych <= 0xBF) goto yy2189;
+	goto yy2187;
+yy2191:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2187;
+	if (yych <= 0xBF) goto yy2189;
+	goto yy2187;
+yy2192:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2187;
+	if (yych <= 0x8F) goto yy2189;
+	goto yy2187;
+yy2193:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2187;
+	if (yych <= 0x9F) goto yy2186;
+	goto yy2187;
+yy2194:
+	yych = *++p;
+	if (yybm[0+yych] & 32) {
+		goto yy2195;
+	}
+	goto yy2187;
+yy2195:
+	marker = p + 1;
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy2197;
+	}
+	if (yych <= '\f') {
+		if (yych <= 0x08) goto yy2187;
+		if (yych <= '\n') goto yy2199;
+		goto yy2187;
+	} else {
+		if (yych <= '\r') goto yy2199;
+		if (yych == '~') goto yy2195;
+		goto yy2187;
+	}
+yy2197:
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 64) {
+		goto yy2197;
+	}
+	if (yych <= 0x08) goto yy2187;
+	if (yych <= '\n') goto yy2199;
+	if (yych != '\r') goto yy2187;
+yy2199:
+	++p;
+	p = marker;
+	{ return (bufsize_t)(p - start); }
+yy2201:
+	yych = *++p;
+	if (yybm[0+yych] & 128) {
+		goto yy2202;
+	}
+	goto yy2187;
+yy2202:
+	marker = p + 1;
+	++p;
+	yych = *p;
+	if (yybm[0+yych] & 128) {
+		goto yy2202;
+	}
+	if (yych <= '\f') {
+		if (yych <= 0x08) goto yy2187;
+		if (yych <= '\t') goto yy2204;
+		if (yych <= '\n') goto yy2206;
+		goto yy2187;
+	} else {
+		if (yych <= '\r') goto yy2206;
+		if (yych != ' ') goto yy2187;
+	}
+yy2204:
+	++p;
+	yych = *p;
+	if (yych <= '\f') {
+		if (yych <= 0x08) goto yy2187;
+		if (yych <= '\t') goto yy2204;
+		if (yych >= '\v') goto yy2187;
+	} else {
+		if (yych <= '\r') goto yy2206;
+		if (yych == ' ') goto yy2204;
+		goto yy2187;
+	}
+yy2206:
+	++p;
+	p = marker;
+	{ return (bufsize_t)(p - start); }
+}
+
+}
+
+// Scans an entity.
+// Returns number of chars matched.
+bufsize_t _scan_entity(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	yych = *(marker = p);
+	if (yych <= 0xDF) {
+		if (yych <= '%') {
+			if (yych != '\n') goto yy2212;
+		} else {
+			if (yych <= '&') goto yy2211;
+			if (yych <= 0x7F) goto yy2212;
+			if (yych >= 0xC2) goto yy2213;
+		}
+	} else {
+		if (yych <= 0xEF) {
+			if (yych <= 0xE0) goto yy2215;
+			if (yych == 0xED) goto yy2220;
+			goto yy2216;
+		} else {
+			if (yych <= 0xF0) goto yy2217;
+			if (yych <= 0xF3) goto yy2218;
+			if (yych <= 0xF4) goto yy2219;
+		}
+	}
+yy2210:
+	{ return 0; }
+yy2211:
+	yych = *(marker = ++p);
+	if (yych <= '@') {
+		if (yych == '#') goto yy2221;
+		goto yy2210;
+	} else {
+		if (yych <= 'Z') goto yy2222;
+		if (yych <= '`') goto yy2210;
+		if (yych <= 'z') goto yy2222;
+		goto yy2210;
+	}
+yy2212:
+	yych = *++p;
+	goto yy2210;
+yy2213:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2214;
+	if (yych <= 0xBF) goto yy2212;
+yy2214:
+	p = marker;
+	goto yy2210;
+yy2215:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy2214;
+	if (yych <= 0xBF) goto yy2213;
+	goto yy2214;
+yy2216:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2214;
+	if (yych <= 0xBF) goto yy2213;
+	goto yy2214;
+yy2217:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy2214;
+	if (yych <= 0xBF) goto yy2216;
+	goto yy2214;
+yy2218:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2214;
+	if (yych <= 0xBF) goto yy2216;
+	goto yy2214;
+yy2219:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2214;
+	if (yych <= 0x8F) goto yy2216;
+	goto yy2214;
+yy2220:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2214;
+	if (yych <= 0x9F) goto yy2213;
+	goto yy2214;
+yy2221:
+	yych = *++p;
+	if (yych <= 'W') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2257;
+		goto yy2214;
+	} else {
+		if (yych <= 'X') goto yy2256;
+		if (yych == 'x') goto yy2256;
+		goto yy2214;
+	}
+yy2222:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych <= '/') goto yy2214;
+		if (yych >= ':') goto yy2214;
+	} else {
+		if (yych <= 'Z') goto yy2223;
+		if (yych <= '`') goto yy2214;
+		if (yych >= '{') goto yy2214;
+	}
+yy2223:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2226;
+		if (yych <= ':') goto yy2214;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+			goto yy2226;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych <= 'z') goto yy2226;
+			goto yy2214;
+		}
+	}
+yy2224:
+	++p;
+	{ return (bufsize_t)(p - start); }
+yy2226:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2227;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2227:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2228;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2228:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2229;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2229:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2230;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2230:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2231;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2231:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2232;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2232:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2233;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2233:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2234;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2234:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2235;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2235:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2236;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2236:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2237;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2237:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2238;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2238:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2239;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2239:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2240;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2240:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2241;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2241:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2242;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2242:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2243;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2243:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2244;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2244:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2245;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2245:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2246;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2246:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2247;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2247:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2248;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2248:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2249;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2249:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2250;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2250:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2251;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2251:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2252;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2252:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2253;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2253:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2254;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2254:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2255;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'Z') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= '{') goto yy2214;
+		}
+	}
+yy2255:
+	yych = *++p;
+	if (yych == ';') goto yy2224;
+	goto yy2214;
+yy2256:
+	yych = *++p;
+	if (yych <= '@') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2264;
+		goto yy2214;
+	} else {
+		if (yych <= 'F') goto yy2264;
+		if (yych <= '`') goto yy2214;
+		if (yych <= 'f') goto yy2264;
+		goto yy2214;
+	}
+yy2257:
+	yych = *++p;
+	if (yych <= '/') goto yy2214;
+	if (yych <= '9') goto yy2258;
+	if (yych == ';') goto yy2224;
+	goto yy2214;
+yy2258:
+	yych = *++p;
+	if (yych <= '/') goto yy2214;
+	if (yych <= '9') goto yy2259;
+	if (yych == ';') goto yy2224;
+	goto yy2214;
+yy2259:
+	yych = *++p;
+	if (yych <= '/') goto yy2214;
+	if (yych <= '9') goto yy2260;
+	if (yych == ';') goto yy2224;
+	goto yy2214;
+yy2260:
+	yych = *++p;
+	if (yych <= '/') goto yy2214;
+	if (yych <= '9') goto yy2261;
+	if (yych == ';') goto yy2224;
+	goto yy2214;
+yy2261:
+	yych = *++p;
+	if (yych <= '/') goto yy2214;
+	if (yych <= '9') goto yy2262;
+	if (yych == ';') goto yy2224;
+	goto yy2214;
+yy2262:
+	yych = *++p;
+	if (yych <= '/') goto yy2214;
+	if (yych <= '9') goto yy2263;
+	if (yych == ';') goto yy2224;
+	goto yy2214;
+yy2263:
+	yych = *++p;
+	if (yych <= '/') goto yy2214;
+	if (yych <= '9') goto yy2255;
+	if (yych == ';') goto yy2224;
+	goto yy2214;
+yy2264:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2265;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= 'g') goto yy2214;
+		}
+	}
+yy2265:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2266;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= 'g') goto yy2214;
+		}
+	}
+yy2266:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2267;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= 'g') goto yy2214;
+		}
+	}
+yy2267:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2268;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= 'g') goto yy2214;
+		}
+	}
+yy2268:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2269;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= 'g') goto yy2214;
+		}
+	}
+yy2269:
+	yych = *++p;
+	if (yych <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2270;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy2214;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych >= 'g') goto yy2214;
+		}
+	}
+yy2270:
+	++p;
+	if ((yych = *p) <= ';') {
+		if (yych <= '/') goto yy2214;
+		if (yych <= '9') goto yy2255;
+		if (yych <= ':') goto yy2214;
+		goto yy2224;
+	} else {
+		if (yych <= 'F') {
+			if (yych <= '@') goto yy2214;
+			goto yy2255;
+		} else {
+			if (yych <= '`') goto yy2214;
+			if (yych <= 'f') goto yy2255;
+			goto yy2214;
+		}
+	}
+}
+
+}
+
+// Returns positive value if a URL begins in a way that is potentially
+// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.
+bufsize_t _scan_dangerous_url(const unsigned char *p)
+{
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+{
+	unsigned char yych;
+	unsigned int yyaccept = 0;
+	yych = *(marker = p);
+	if (yych <= 'f') {
+		if (yych <= 'I') {
+			if (yych <= 'C') {
+				if (yych != '\n') goto yy2278;
+			} else {
+				if (yych <= 'D') goto yy2274;
+				if (yych == 'F') goto yy2277;
+				goto yy2278;
+			}
+		} else {
+			if (yych <= 'V') {
+				if (yych <= 'J') goto yy2275;
+				if (yych <= 'U') goto yy2278;
+				goto yy2276;
+			} else {
+				if (yych == 'd') goto yy2274;
+				if (yych <= 'e') goto yy2278;
+				goto yy2277;
+			}
+		}
+	} else {
+		if (yych <= 0xDF) {
+			if (yych <= 'u') {
+				if (yych == 'j') goto yy2275;
+				goto yy2278;
+			} else {
+				if (yych <= 'v') goto yy2276;
+				if (yych <= 0x7F) goto yy2278;
+				if (yych >= 0xC2) goto yy2279;
+			}
+		} else {
+			if (yych <= 0xEF) {
+				if (yych <= 0xE0) goto yy2281;
+				if (yych == 0xED) goto yy2286;
+				goto yy2282;
+			} else {
+				if (yych <= 0xF0) goto yy2283;
+				if (yych <= 0xF3) goto yy2284;
+				if (yych <= 0xF4) goto yy2285;
+			}
+		}
+	}
+yy2273:
+	{ return 0; }
+yy2274:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych == 'A') goto yy2308;
+	if (yych == 'a') goto yy2308;
+	goto yy2273;
+yy2275:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych == 'A') goto yy2299;
+	if (yych == 'a') goto yy2299;
+	goto yy2273;
+yy2276:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych == 'B') goto yy2292;
+	if (yych == 'b') goto yy2292;
+	goto yy2273;
+yy2277:
+	yyaccept = 0;
+	yych = *(marker = ++p);
+	if (yych == 'I') goto yy2287;
+	if (yych == 'i') goto yy2287;
+	goto yy2273;
+yy2278:
+	yych = *++p;
+	goto yy2273;
+yy2279:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2280;
+	if (yych <= 0xBF) goto yy2278;
+yy2280:
+	p = marker;
+	if (yyaccept == 0) {
+		goto yy2273;
+	} else {
+		goto yy2291;
+	}
+yy2281:
+	yych = *++p;
+	if (yych <= 0x9F) goto yy2280;
+	if (yych <= 0xBF) goto yy2279;
+	goto yy2280;
+yy2282:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2280;
+	if (yych <= 0xBF) goto yy2279;
+	goto yy2280;
+yy2283:
+	yych = *++p;
+	if (yych <= 0x8F) goto yy2280;
+	if (yych <= 0xBF) goto yy2282;
+	goto yy2280;
+yy2284:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2280;
+	if (yych <= 0xBF) goto yy2282;
+	goto yy2280;
+yy2285:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2280;
+	if (yych <= 0x8F) goto yy2282;
+	goto yy2280;
+yy2286:
+	yych = *++p;
+	if (yych <= 0x7F) goto yy2280;
+	if (yych <= 0x9F) goto yy2279;
+	goto yy2280;
+yy2287:
+	yych = *++p;
+	if (yych == 'L') goto yy2288;
+	if (yych != 'l') goto yy2280;
+yy2288:
+	yych = *++p;
+	if (yych == 'E') goto yy2289;
+	if (yych != 'e') goto yy2280;
+yy2289:
+	yych = *++p;
+	if (yych != ':') goto yy2280;
+yy2290:
+	++p;
+yy2291:
+	{ return (bufsize_t)(p - start); }
+yy2292:
+	yych = *++p;
+	if (yych == 'S') goto yy2293;
+	if (yych != 's') goto yy2280;
+yy2293:
+	yych = *++p;
+	if (yych == 'C') goto yy2294;
+	if (yych != 'c') goto yy2280;
+yy2294:
+	yych = *++p;
+	if (yych == 'R') goto yy2295;
+	if (yych != 'r') goto yy2280;
+yy2295:
+	yych = *++p;
+	if (yych == 'I') goto yy2296;
+	if (yych != 'i') goto yy2280;
+yy2296:
+	yych = *++p;
+	if (yych == 'P') goto yy2297;
+	if (yych != 'p') goto yy2280;
+yy2297:
+	yych = *++p;
+	if (yych == 'T') goto yy2298;
+	if (yych != 't') goto yy2280;
+yy2298:
+	yych = *++p;
+	if (yych == ':') goto yy2290;
+	goto yy2280;
+yy2299:
+	yych = *++p;
+	if (yych == 'V') goto yy2300;
+	if (yych != 'v') goto yy2280;
+yy2300:
+	yych = *++p;
+	if (yych == 'A') goto yy2301;
+	if (yych != 'a') goto yy2280;
+yy2301:
+	yych = *++p;
+	if (yych == 'S') goto yy2302;
+	if (yych != 's') goto yy2280;
+yy2302:
+	yych = *++p;
+	if (yych == 'C') goto yy2303;
+	if (yych != 'c') goto yy2280;
+yy2303:
+	yych = *++p;
+	if (yych == 'R') goto yy2304;
+	if (yych != 'r') goto yy2280;
+yy2304:
+	yych = *++p;
+	if (yych == 'I') goto yy2305;
+	if (yych != 'i') goto yy2280;
+yy2305:
+	yych = *++p;
+	if (yych == 'P') goto yy2306;
+	if (yych != 'p') goto yy2280;
+yy2306:
+	yych = *++p;
+	if (yych == 'T') goto yy2307;
+	if (yych != 't') goto yy2280;
+yy2307:
+	yych = *++p;
+	if (yych == ':') goto yy2290;
+	goto yy2280;
+yy2308:
+	yych = *++p;
+	if (yych == 'T') goto yy2309;
+	if (yych != 't') goto yy2280;
+yy2309:
+	yych = *++p;
+	if (yych == 'A') goto yy2310;
+	if (yych != 'a') goto yy2280;
+yy2310:
+	yych = *++p;
+	if (yych != ':') goto yy2280;
+	yyaccept = 1;
+	yych = *(marker = ++p);
+	if (yych == 'I') goto yy2312;
+	if (yych != 'i') goto yy2291;
+yy2312:
+	yych = *++p;
+	if (yych == 'M') goto yy2313;
+	if (yych != 'm') goto yy2280;
+yy2313:
+	yych = *++p;
+	if (yych == 'A') goto yy2314;
+	if (yych != 'a') goto yy2280;
+yy2314:
+	yych = *++p;
+	if (yych == 'G') goto yy2315;
+	if (yych != 'g') goto yy2280;
+yy2315:
+	yych = *++p;
+	if (yych == 'E') goto yy2316;
+	if (yych != 'e') goto yy2280;
+yy2316:
+	yych = *++p;
+	if (yych != '/') goto yy2280;
+	yych = *++p;
+	if (yych <= 'W') {
+		if (yych <= 'J') {
+			if (yych == 'G') goto yy2319;
+			if (yych <= 'I') goto yy2280;
+			goto yy2320;
+		} else {
+			if (yych == 'P') goto yy2318;
+			if (yych <= 'V') goto yy2280;
+			goto yy2321;
+		}
+	} else {
+		if (yych <= 'j') {
+			if (yych == 'g') goto yy2319;
+			if (yych <= 'i') goto yy2280;
+			goto yy2320;
+		} else {
+			if (yych <= 'p') {
+				if (yych <= 'o') goto yy2280;
+			} else {
+				if (yych == 'w') goto yy2321;
+				goto yy2280;
+			}
+		}
+	}
+yy2318:
+	yych = *++p;
+	if (yych == 'N') goto yy2329;
+	if (yych == 'n') goto yy2329;
+	goto yy2280;
+yy2319:
+	yych = *++p;
+	if (yych == 'I') goto yy2328;
+	if (yych == 'i') goto yy2328;
+	goto yy2280;
+yy2320:
+	yych = *++p;
+	if (yych == 'P') goto yy2326;
+	if (yych == 'p') goto yy2326;
+	goto yy2280;
+yy2321:
+	yych = *++p;
+	if (yych == 'E') goto yy2322;
+	if (yych != 'e') goto yy2280;
+yy2322:
+	yych = *++p;
+	if (yych == 'B') goto yy2323;
+	if (yych != 'b') goto yy2280;
+yy2323:
+	yych = *++p;
+	if (yych == 'P') goto yy2324;
+	if (yych != 'p') goto yy2280;
+yy2324:
+	++p;
+	{ return 0; }
+yy2326:
+	yych = *++p;
+	if (yych == 'E') goto yy2327;
+	if (yych != 'e') goto yy2280;
+yy2327:
+	yych = *++p;
+	if (yych == 'G') goto yy2324;
+	if (yych == 'g') goto yy2324;
+	goto yy2280;
+yy2328:
+	yych = *++p;
+	if (yych == 'F') goto yy2324;
+	if (yych == 'f') goto yy2324;
+	goto yy2280;
+yy2329:
+	++p;
+	if ((yych = *p) == 'G') goto yy2324;
+	if (yych == 'g') goto yy2324;
+	goto yy2280;
+}
+
+}
+
diff --git a/cbits/scanners.h b/cbits/scanners.h
--- a/cbits/scanners.h
+++ b/cbits/scanners.h
@@ -10,7 +10,13 @@
 bufsize_t _scan_autolink_uri(const unsigned char *p);
 bufsize_t _scan_autolink_email(const unsigned char *p);
 bufsize_t _scan_html_tag(const unsigned char *p);
-bufsize_t _scan_html_block_tag(const unsigned char *p);
+bufsize_t _scan_html_block_start(const unsigned char *p);
+bufsize_t _scan_html_block_start_7(const unsigned char *p);
+bufsize_t _scan_html_block_end_1(const unsigned char *p);
+bufsize_t _scan_html_block_end_2(const unsigned char *p);
+bufsize_t _scan_html_block_end_3(const unsigned char *p);
+bufsize_t _scan_html_block_end_4(const unsigned char *p);
+bufsize_t _scan_html_block_end_5(const unsigned char *p);
 bufsize_t _scan_link_url(const unsigned char *p);
 bufsize_t _scan_link_title(const unsigned char *p);
 bufsize_t _scan_spacechars(const unsigned char *p);
@@ -20,12 +26,19 @@
 bufsize_t _scan_open_code_fence(const unsigned char *p);
 bufsize_t _scan_close_code_fence(const unsigned char *p);
 bufsize_t _scan_entity(const unsigned char *p);
+bufsize_t _scan_dangerous_url(const unsigned char *p);
 
 #define scan_scheme(c, n) _scan_at(&_scan_scheme, c, n)
 #define scan_autolink_uri(c, n) _scan_at(&_scan_autolink_uri, c, n)
 #define scan_autolink_email(c, n) _scan_at(&_scan_autolink_email, c, n)
 #define scan_html_tag(c, n) _scan_at(&_scan_html_tag, c, n)
-#define scan_html_block_tag(c, n) _scan_at(&_scan_html_block_tag, c, n)
+#define scan_html_block_start(c, n) _scan_at(&_scan_html_block_start, c, n)
+#define scan_html_block_start_7(c, n) _scan_at(&_scan_html_block_start_7, c, n)
+#define scan_html_block_end_1(c, n) _scan_at(&_scan_html_block_end_1, c, n)
+#define scan_html_block_end_2(c, n) _scan_at(&_scan_html_block_end_2, c, n)
+#define scan_html_block_end_3(c, n) _scan_at(&_scan_html_block_end_3, c, n)
+#define scan_html_block_end_4(c, n) _scan_at(&_scan_html_block_end_4, c, n)
+#define scan_html_block_end_5(c, n) _scan_at(&_scan_html_block_end_5, c, n)
 #define scan_link_url(c, n) _scan_at(&_scan_link_url, c, n)
 #define scan_link_title(c, n) _scan_at(&_scan_link_title, c, n)
 #define scan_spacechars(c, n) _scan_at(&_scan_spacechars, c, n)
@@ -35,6 +48,7 @@
 #define scan_open_code_fence(c, n) _scan_at(&_scan_open_code_fence, c, n)
 #define scan_close_code_fence(c, n) _scan_at(&_scan_close_code_fence, c, n)
 #define scan_entity(c, n) _scan_at(&_scan_entity, c, n)
+#define scan_dangerous_url(c, n) _scan_at(&_scan_dangerous_url, c, n)
 
 #ifdef __cplusplus
 }
diff --git a/cbits/utf8.c b/cbits/utf8.c
--- a/cbits/utf8.c
+++ b/cbits/utf8.c
@@ -56,21 +56,18 @@
 // Validate a single UTF-8 character according to RFC 3629.
 static int utf8proc_valid(const uint8_t *str, bufsize_t str_len)
 {
-	int length = utf8proc_charlen(str, str_len);
+	int length = utf8proc_utf8class[str[0]];
 
-	if (length <= 0)
-		return length;
+	if (!length)
+		return -1;
 
-	switch (length) {
-	case 1:
-		if (str[0] == 0x00) {
-			// ASCII NUL is technically valid but rejected
-			// for security reasons.
-			return -length;
-		}
-		break;
+	if ((bufsize_t)length > str_len)
+		return -str_len;
 
+	switch (length) {
 	case 2:
+		if ((str[1] & 0xC0) != 0x80)
+			return -1;
 		if (str[0] < 0xC2) {
 			// Overlong
 			return -length;
@@ -78,6 +75,10 @@
 		break;
 
 	case 3:
+		if ((str[1] & 0xC0) != 0x80)
+			return -1;
+		if ((str[2] & 0xC0) != 0x80)
+			return -2;
 		if (str[0] == 0xE0) {
 			if (str[1] < 0xA0) {
 				// Overlong
@@ -92,6 +93,12 @@
 		break;
 
 	case 4:
+		if ((str[1] & 0xC0) != 0x80)
+			return -1;
+		if ((str[2] & 0xC0) != 0x80)
+			return -2;
+		if ((str[3] & 0xC0) != 0x80)
+			return -3;
 		if (str[0] == 0xF0) {
 			if (str[1] < 0x90) {
 				// Overlong
@@ -109,44 +116,42 @@
 	return length;
 }
 
-void utf8proc_detab(cmark_strbuf *ob, const uint8_t *line, bufsize_t size)
+void utf8proc_check(cmark_strbuf *ob, const uint8_t *line, bufsize_t size)
 {
-	static const uint8_t whitespace[] = "    ";
-
-	bufsize_t i = 0, tab = 0;
+	bufsize_t i = 0;
 
 	while (i < size) {
 		bufsize_t org = i;
+		int charlen = 0;
 
-		while (i < size && line[i] != '\t' && line[i] != '\0'
-		       && line[i] < 0x80) {
-			i++;
-			tab++;
+		while (i < size) {
+			if (line[i] < 0x80 && line[i] != 0) {
+				i++;
+			} else if (line[i] >= 0x80) {
+				charlen = utf8proc_valid(line + i, size - i);
+				if (charlen < 0) {
+					charlen = -charlen;
+					break;
+				}
+				i += charlen;
+			} else if (line[i] == 0) {
+				// ASCII NUL is technically valid but rejected
+				// for security reasons.
+				charlen = 1;
+				break;
+			}
 		}
 
-		if (i > org)
+		if (i > org) {
 			cmark_strbuf_put(ob, line + org, i - org);
+		}
 
-		if (i >= size)
+		if (i >= size) {
 			break;
-
-		if (line[i] == '\t') {
-			int numspaces = 4 - (tab % 4);
-			cmark_strbuf_put(ob, whitespace, numspaces);
-			i += 1;
-			tab += numspaces;
 		} else {
-			int charlen = utf8proc_valid(line + i, size - i);
-
-			if (charlen >= 0) {
-				cmark_strbuf_put(ob, line + i, charlen);
-			} else {
-				encode_unknown(ob);
-				charlen = -charlen;
-			}
-
+			// Invalid UTF-8
+			encode_unknown(ob);
 			i += charlen;
-			tab += 1;
 		}
 	}
 }
diff --git a/cbits/utf8.h b/cbits/utf8.h
--- a/cbits/utf8.h
+++ b/cbits/utf8.h
@@ -11,7 +11,7 @@
 void utf8proc_case_fold(cmark_strbuf *dest, const uint8_t *str, bufsize_t len);
 void utf8proc_encode_char(int32_t uc, cmark_strbuf *buf);
 int utf8proc_iterate(const uint8_t *str, bufsize_t str_len, int32_t *dst);
-void utf8proc_detab(cmark_strbuf *dest, const uint8_t *line, bufsize_t size);
+void utf8proc_check(cmark_strbuf *dest, const uint8_t *line, bufsize_t size);
 int utf8proc_is_space(int32_t uc);
 int utf8proc_is_punctuation(int32_t uc);
 
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,13 @@
+cmark 0.4 (14 Jul 2015)
+
+  * API changes:
+    + Added `commonmarkToLaTeX`, `nodeToLaTeX`, `optSafe`.
+    + Changed type of `commonmarkToMan` and `nodeToMan`,
+      adding `Maybe Int` param for width.
+    + Changed type of `nodeToCommonMark`, changing the `Int` width
+      parameter to a `Maybe Int`.
+  * Updated to cmark 0.21 sources.
+
 cmark 0.3.4 (08 Jun 2015)
 
   * Updated to libcmark 0.20.0.
diff --git a/cmark.cabal b/cmark.cabal
--- a/cmark.cabal
+++ b/cmark.cabal
@@ -1,81 +1,13 @@
 name:                cmark
-version:             0.3.4
+version:             0.3.5
 synopsis:            Fast, accurate CommonMark (Markdown) parser and renderer
 description:
   This package provides Haskell bindings for
   <https://github.com/jgm/cmark libcmark>, the reference
   parser for <http://commonmark.org CommonMark>, a fully
   specified variant of Markdown. It includes sources for
-  libcmark (0.20.0) and does not require prior installation of the
+  libcmark (0.21.0) and does not require prior installation of the
   C library.
-  .
-  cmark provides the following advantages over existing
-  Markdown libraries for Haskell:
-  .
-  -   Speed: Conversion speed is on par with the
-      <https://hackage.haskell.org/package/sundown sundown>
-      library. We were unable to measure precisely
-      against
-      <https://hackage.haskell.org/package/sundown sundown>,
-      which raised a malloc error when compiled into our
-      benchmark suite. Relative to other implementations:
-      cmark was 82 times faster than
-      <https://hackage.haskell.org/package/cheapskate cheapskate>,
-      59 times faster than
-      <https://hackage.haskell.org/package/markdown markdown>,
-      105 times faster than
-      <https://hackage.haskell.org/package/pandoc pandoc>,
-      and 2.8 times faster than
-      <https://hackage.haskell.org/package/discount discount>.
-  .
-  -   Memory footprint: Memory footprint is on par with
-      <https://hackage.haskell.org/package/sundown sundown>.
-      On one sample, the library uses a fourth the memory that
-      <https://hackage.haskell.org/package/markdown markdown>
-      uses, and less than a tenth the memory that
-      <https://hackage.haskell.org/package/pandoc pandoc>
-      uses.
-  .
-  -   Robustness: cmark can handle whatever is thrown
-      at it, without the exponential blowups in parsing
-      time one can sometimes get with other libraries.
-      (The input @bench\/full-sample.md@, for example,
-      causes both
-      <https://hackage.haskell.org/package/pandoc pandoc>
-      and
-      <https://hackage.haskell.org/package/markdown markdown>
-      to grind to a halt.)
-  .
-  -   Accuracy: cmark passes the CommonMark spec\'s
-      suite of over 500 conformance tests.
-  .
-  -   Standardization: Since there is a spec and a
-      comprehensive suite of tests, we can have a high
-      degree of confidence that any two CommonMark
-      implementations will behave the same. Thus, for
-      example, one could use this library for server-side
-      rendering and
-      <http://github.com/jgm/commonmark.js commonmark.js>
-      for client-side previewing.
-  .
-  -   Ease of installation: cmark is portable and has
-      minimal dependencies.
-  .
-  cmark does not provide Haskell versions of the whole
-  <http://github.com/jgm/cmark libcmark> API, which is
-  built around mutable @cmark_node@ objects. Instead, it
-  provides functions for converting CommonMark to HTML
-  (and other formats), and a function for converting
-  CommonMark to a @Node@ tree that can be processed
-  further using Haskell.
-  .
-  A note on security: This library does not attempt
-  to sanitize HTML output. We recommend using
-  <https://hackage.haskell.org/package/xss-sanitize xss-sanitize>
-  to filter the output.
-  .
-  A note on stability: There is a good chance the API
-  will change significantly after this early release.
 
 homepage:            https://github.com/jgm/commonmark-hs
 license:             BSD3
@@ -103,10 +35,12 @@
                      cbits/iterator.h
                      cbits/node.h
                      cbits/buffer.h
+                     cbits/render.h
                      cbits/cmark_ctype.h
                      cbits/config.h
                      cbits/scanners.h
                      cbits/case_fold_switch.inc
+                     cbits/entities.inc
                      bench/sample.md
                      bench/full-sample.md
 cabal-version:       >=1.14
@@ -143,7 +77,9 @@
                        cbits/html.c
                        cbits/man.c
                        cbits/commonmark.c
+                       cbits/latex.c
                        cbits/xml.c
+                       cbits/render.c
 
 benchmark bench-cmark
   type:             exitcode-stdio-1.0
diff --git a/test/test-cmark.hs b/test/test-cmark.hs
--- a/test/test-cmark.hs
+++ b/test/test-cmark.hs
@@ -18,8 +18,9 @@
 tests = TestList [
     "<h1>Hi</h1>\n" ~=? commonmarkToHtml [] "# Hi"
   , "<p>dog’s</p>\n" ~=? commonmarkToHtml [optSmart] "dog's"
-  , ".RS\n.PP\nquote\n.RE\n" ~=? commonmarkToMan [] "> quote"
+  , "<p><a href=\"\">trick</a></p>\n" ~=? commonmarkToHtml [optSafe] "[trick](javascript:alert('hi'))"
+  , ".RS\n.PP\nquote\n.RE\n" ~=? commonmarkToMan [] Nothing "> quote"
   , (Node (Just (PosInfo {startLine = 1, startColumn = 1, endLine = 1, endColumn = 13})) DOCUMENT [Node (Just (PosInfo {startLine = 1, startColumn = 1, endLine = 1, endColumn = 13})) PARAGRAPH [Node Nothing (TEXT "Hello ") [],Node Nothing EMPH [Node Nothing (TEXT "world") []]]]) ~=? commonmarkToNode [] "Hello *world*"
-  , "> Hello\n> *world*\n" ~=? nodeToCommonmark [] 12 (Node Nothing DOCUMENT [Node Nothing BLOCK_QUOTE [Node Nothing PARAGRAPH [Node Nothing (TEXT "Hello ") [],Node Nothing EMPH [Node Nothing (TEXT "world") []]]]])
+  , "> Hello\n> *world*\n" ~=? nodeToCommonmark [] (Just 12) (Node Nothing DOCUMENT [Node Nothing BLOCK_QUOTE [Node Nothing PARAGRAPH [Node Nothing (TEXT "Hello ") [],Node Nothing EMPH [Node Nothing (TEXT "world") []]]]])
   ]
 
