diff --git a/cbits/blocks.c b/cbits/blocks.c
--- a/cbits/blocks.c
+++ b/cbits/blocks.c
@@ -800,11 +800,7 @@
 
     } else if (!indented && container->type == CMARK_NODE_PARAGRAPH &&
                (lev =
-                    scan_setext_heading_line(&input, parser->first_nonspace)) &&
-               // check that there is only one line in the paragraph:
-               (cmark_strbuf_strrchr(
-                    &container->string_content, '\n',
-                    cmark_strbuf_len(&container->string_content) - 2) < 0)) {
+                    scan_setext_heading_line(&input, parser->first_nonspace))) {
 
       container->type = CMARK_NODE_HEADING;
       container->as.heading.level = lev;
diff --git a/cbits/buffer.c b/cbits/buffer.c
--- a/cbits/buffer.c
+++ b/cbits/buffer.c
@@ -217,7 +217,8 @@
   if (pos >= buf->size)
     pos = buf->size - 1;
 
-  for (bufsize_t i = pos; i >= 0; i--) {
+  bufsize_t i;
+  for (i = pos; i >= 0; i--) {
     if (buf->ptr[i] == (unsigned char)c)
       return i;
   }
diff --git a/cbits/chunk.h b/cbits/chunk.h
--- a/cbits/chunk.h
+++ b/cbits/chunk.h
@@ -48,8 +48,8 @@
   cmark_chunk_rtrim(c);
 }
 
-static CMARK_INLINE bufsize_t
-    cmark_chunk_strchr(cmark_chunk *ch, int c, bufsize_t offset) {
+static CMARK_INLINE bufsize_t cmark_chunk_strchr(cmark_chunk *ch, int c,
+                                                 bufsize_t offset) {
   const unsigned char *p =
       (unsigned char *)memchr(ch->data + offset, c, ch->len - offset);
   return p ? (bufsize_t)(p - ch->data) : ch->len;
@@ -96,8 +96,8 @@
   return c;
 }
 
-static CMARK_INLINE cmark_chunk
-    cmark_chunk_dup(const cmark_chunk *ch, bufsize_t pos, bufsize_t len) {
+static CMARK_INLINE cmark_chunk cmark_chunk_dup(const cmark_chunk *ch,
+                                                bufsize_t pos, bufsize_t len) {
   cmark_chunk c = {ch->data + pos, len, 0};
   return c;
 }
diff --git a/cbits/cmark.h b/cbits/cmark.h
--- a/cbits/cmark.h
+++ b/cbits/cmark.h
@@ -86,13 +86,6 @@
 typedef struct cmark_parser cmark_parser;
 typedef struct cmark_iter cmark_iter;
 
-typedef enum {
-  CMARK_EVENT_NONE,
-  CMARK_EVENT_DONE,
-  CMARK_EVENT_ENTER,
-  CMARK_EVENT_EXIT
-} cmark_event_type;
-
 /**
  * ## Creating and Destroying Nodes
  */
@@ -178,6 +171,13 @@
  * leaf nodes.
  */
 
+typedef enum {
+  CMARK_EVENT_NONE,
+  CMARK_EVENT_DONE,
+  CMARK_EVENT_ENTER,
+  CMARK_EVENT_EXIT
+} cmark_event_type;
+
 /** Creates a new iterator starting at 'root'.  The current node and event
  * type are undefined until `cmark_iter_next` is called for the first time.
  */
@@ -386,6 +386,12 @@
 /** Inserts 'sibling' after 'node'. Returns 1 on success, 0 on failure.
  */
 CMARK_EXPORT int cmark_node_insert_after(cmark_node *node, cmark_node *sibling);
+
+/** Replaces 'oldnode' with 'newnode' and unlinks 'oldnode' (but does
+ * not free its memory).
+ * Returns 1 on success, 0 on failure.
+ */
+CMARK_EXPORT int cmark_node_replace(cmark_node *oldnode, cmark_node *newnode);
 
 /** Adds 'child' to the beginning of the children of 'node'.
  * Returns 1 on success, 0 on failure.
diff --git a/cbits/commonmark.c b/cbits/commonmark.c
--- a/cbits/commonmark.c
+++ b/cbits/commonmark.c
@@ -23,7 +23,11 @@
 static inline void outc(cmark_renderer *renderer, cmark_escaping escape,
                         int32_t c, unsigned char nextc) {
   bool needs_escaping = false;
-  char encoded[20];
+  bool follows_digit =
+      renderer->buffer->size > 0 &&
+      cmark_isdigit(renderer->buffer->ptr[renderer->buffer->size - 1]);
+  const size_t ENCODED_SIZE = 20;
+  char encoded[ENCODED_SIZE];
 
   needs_escaping =
       escape != LITERAL &&
@@ -31,9 +35,12 @@
         (c == '*' || c == '_' || c == '[' || c == ']' || c == '#' || c == '<' ||
          c == '>' || c == '\\' || c == '`' || c == '!' ||
          (c == '&' && isalpha(nextc)) || (c == '!' && nextc == '[') ||
-         (renderer->begin_content && (c == '-' || c == '+' || c == '=')) ||
-         ((c == '.' || c == ')') &&
-          isdigit(renderer->buffer->ptr[renderer->buffer->size - 1])))) ||
+         (renderer->begin_content && (c == '-' || c == '+' || c == '=') &&
+          // begin_content doesn't get set to false til we've passed digits
+          // at the beginning of line, so...
+          !follows_digit) ||
+         (renderer->begin_content && (c == '.' || c == ')') && follows_digit &&
+          (nextc == 0 || cmark_isspace(nextc))))) ||
        (escape == URL && (c == '`' || c == '<' || c == '>' || isspace(c) ||
                           c == '\\' || c == ')' || c == '(')) ||
        (escape == TITLE &&
@@ -42,7 +49,7 @@
   if (needs_escaping) {
     if (isspace(c)) {
       // use percent encoding for spaces
-      sprintf(encoded, "%%%2x", c);
+      snprintf(encoded, ENCODED_SIZE, "%%%2x", c);
       cmark_strbuf_puts(renderer->buffer, encoded);
       renderer->column += 3;
     } else {
@@ -121,6 +128,9 @@
   }
 
   link_text = node->first_child;
+  if (link_text == NULL) {
+    return false;
+  }
   cmark_consolidate_text_nodes(link_text);
   realurl = (char *)url->data;
   realurllen = url->len;
@@ -135,12 +145,17 @@
 
 // if node is a block node, returns node.
 // otherwise returns first block-level node that is an ancestor of node.
+// if there is no block-level ancestor, returns NULL.
 static cmark_node *get_containing_block(cmark_node *node) {
-  while (node && (node->type < CMARK_NODE_FIRST_BLOCK ||
-                  node->type > CMARK_NODE_LAST_BLOCK)) {
-    node = node->parent;
+  while (node) {
+    if (node->type >= CMARK_NODE_FIRST_BLOCK &&
+        node->type <= CMARK_NODE_LAST_BLOCK) {
+      return node;
+    } else {
+      node = node->parent;
+    }
   }
-  return node;
+  return NULL;
 }
 
 static int S_render_node(cmark_renderer *renderer, cmark_node *node,
@@ -153,7 +168,8 @@
   bool entering = (ev_type == CMARK_EVENT_ENTER);
   const char *info, *code, *title;
   size_t info_len, code_len;
-  char listmarker[20];
+  const size_t LISTMARKER_SIZE = 20;
+  char listmarker[LISTMARKER_SIZE];
   char *emph_delim;
   bufsize_t marker_width;
 
@@ -163,10 +179,11 @@
   if (!(node->type == CMARK_NODE_ITEM && node->prev == NULL && entering)) {
     tmp = get_containing_block(node);
     renderer->in_tight_list_item =
-        (tmp->type == CMARK_NODE_ITEM &&
-         cmark_node_get_list_tight(tmp->parent)) ||
-        (tmp && tmp->parent && tmp->parent->type == CMARK_NODE_ITEM &&
-         cmark_node_get_list_tight(tmp->parent->parent));
+        tmp && // tmp might be NULL if there is no containing block
+        ((tmp->type == CMARK_NODE_ITEM &&
+          cmark_node_get_list_tight(tmp->parent)) ||
+         (tmp && tmp->parent && tmp->parent->type == CMARK_NODE_ITEM &&
+          cmark_node_get_list_tight(tmp->parent->parent)));
   }
 
   switch (node->type) {
@@ -187,15 +204,17 @@
   case CMARK_NODE_LIST:
     if (!entering && node->next && (node->next->type == CMARK_NODE_CODE_BLOCK ||
                                     node->next->type == CMARK_NODE_LIST)) {
-      // this ensures 2 blank lines after list,
-      // if before code block or list:
-      LIT("\n");
+      // this ensures that a following code block or list will be
+      // inteprereted correctly.
+      CR();
+      LIT("<!-- end list -->");
+      BLANKLINE();
     }
     break;
 
   case CMARK_NODE_ITEM:
     if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {
-      marker_width = 2;
+      marker_width = 4;
     } else {
       list_number = cmark_node_get_list_start(node->parent);
       list_delim = cmark_node_get_list_delim(node->parent);
@@ -207,23 +226,22 @@
       // we ensure a width of at least 4 so
       // we get nice transition from single digits
       // to double
-      sprintf(listmarker, "%d%s%s", list_number,
-              list_delim == CMARK_PAREN_DELIM ? ")" : ".",
-              list_number < 10 ? "  " : " ");
+      snprintf(listmarker, LISTMARKER_SIZE, "%d%s%s", list_number,
+               list_delim == CMARK_PAREN_DELIM ? ")" : ".",
+               list_number < 10 ? "  " : " ");
       marker_width = safe_strlen(listmarker);
     }
     if (entering) {
       if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {
-        LIT("* ");
+        LIT("  - ");
         renderer->begin_content = true;
-        cmark_strbuf_puts(renderer->prefix, "  ");
       } else {
         LIT(listmarker);
         renderer->begin_content = true;
-        for (i = marker_width; i--;) {
-          cmark_strbuf_putc(renderer->prefix, ' ');
-        }
       }
+      for (i = marker_width; i--;) {
+        cmark_strbuf_putc(renderer->prefix, ' ');
+      }
     } else {
       cmark_strbuf_truncate(renderer->prefix,
                             renderer->prefix->size - marker_width);
@@ -314,7 +332,7 @@
 
   case CMARK_NODE_LINEBREAK:
     if (!(CMARK_OPT_HARDBREAKS & options)) {
-      LIT("\\");
+      LIT("  ");
     }
     CR();
     break;
diff --git a/cbits/html.c b/cbits/html.c
--- a/cbits/html.c
+++ b/cbits/html.c
@@ -29,11 +29,12 @@
 
 static void S_render_sourcepos(cmark_node *node, cmark_strbuf *html,
                                int options) {
-  char buffer[100];
+  const size_t BUFFER_SIZE = 100;
+  char buffer[BUFFER_SIZE];
   if (CMARK_OPT_SOURCEPOS & options) {
-    sprintf(buffer, " data-sourcepos=\"%d:%d-%d:%d\"",
-            cmark_node_get_start_line(node), cmark_node_get_start_column(node),
-            cmark_node_get_end_line(node), cmark_node_get_end_column(node));
+    snprintf(buffer, BUFFER_SIZE, " data-sourcepos=\"%d:%d-%d:%d\"",
+             cmark_node_get_start_line(node), cmark_node_get_start_column(node),
+             cmark_node_get_end_line(node), cmark_node_get_end_column(node));
     cmark_strbuf_puts(html, buffer);
   }
 }
@@ -46,7 +47,8 @@
   char start_heading[] = "<h0";
   char end_heading[] = "</h0";
   bool tight;
-  char buffer[100];
+  const size_t BUFFER_SIZE = 100;
+  char buffer[BUFFER_SIZE];
 
   bool entering = (ev_type == CMARK_EVENT_ENTER);
 
@@ -104,7 +106,7 @@
         S_render_sourcepos(node, html, options);
         cmark_strbuf_puts(html, ">\n");
       } else {
-        sprintf(buffer, "<ol start=\"%d\"", start);
+        snprintf(buffer, BUFFER_SIZE, "<ol start=\"%d\"", start);
         cmark_strbuf_puts(html, buffer);
         S_render_sourcepos(node, html, options);
         cmark_strbuf_puts(html, ">\n");
@@ -144,7 +146,7 @@
   case CMARK_NODE_CODE_BLOCK:
     cr(html);
 
-    if (!node->as.code.fenced || node->as.code.info.len == 0) {
+    if (node->as.code.info.len == 0) {
       cmark_strbuf_puts(html, "<pre");
       S_render_sourcepos(node, html, options);
       cmark_strbuf_puts(html, "><code>");
diff --git a/cbits/iterator.c b/cbits/iterator.c
--- a/cbits/iterator.c
+++ b/cbits/iterator.c
@@ -89,6 +89,9 @@
 cmark_node *cmark_iter_get_root(cmark_iter *iter) { return iter->root; }
 
 void cmark_consolidate_text_nodes(cmark_node *root) {
+  if (root == NULL) {
+    return;
+  }
   cmark_iter *iter = cmark_iter_new(root);
   cmark_strbuf buf = GH_BUF_INIT;
   cmark_event_type ev_type;
diff --git a/cbits/latex.c b/cbits/latex.c
--- a/cbits/latex.c
+++ b/cbits/latex.c
@@ -217,7 +217,8 @@
 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];
+  const size_t LIST_NUMBER_STRING_SIZE = 20;
+  char list_number_string[LIST_NUMBER_STRING_SIZE];
   bool entering = (ev_type == CMARK_EVENT_ENTER);
   cmark_list_type list_type;
   const char *roman_numerals[] = {"",   "i",   "ii",   "iii", "iv", "v",
@@ -249,7 +250,8 @@
       CR();
       list_number = cmark_node_get_list_start(node);
       if (list_number > 1) {
-        sprintf(list_number_string, "%d", list_number);
+        snprintf(list_number_string, LIST_NUMBER_STRING_SIZE, "%d",
+                 list_number);
         LIT("\\setcounter{enum");
         LIT((char *)roman_numerals[S_get_enumlevel(node)]);
         LIT("}{");
diff --git a/cbits/man.c b/cbits/man.c
--- a/cbits/man.c
+++ b/cbits/man.c
@@ -110,8 +110,9 @@
           tmp = tmp->prev;
           list_number += 1;
         }
-        char list_number_s[20];
-        sprintf(list_number_s, "\"%d.\" 4", list_number);
+        const size_t LIST_NUMBER_SIZE = 20;
+        char list_number_s[LIST_NUMBER_SIZE];
+        snprintf(list_number_s, LIST_NUMBER_SIZE, "\"%d.\" 4", list_number);
         LIT(list_number_s);
       }
       CR();
diff --git a/cbits/node.c b/cbits/node.c
--- a/cbits/node.c
+++ b/cbits/node.c
@@ -46,12 +46,14 @@
   case CMARK_NODE_DOCUMENT:
   case CMARK_NODE_BLOCK_QUOTE:
   case CMARK_NODE_ITEM:
-  case CMARK_NODE_CUSTOM_BLOCK:
     return S_is_block(child) && child->type != CMARK_NODE_ITEM;
 
   case CMARK_NODE_LIST:
     return child->type == CMARK_NODE_ITEM;
 
+  case CMARK_NODE_CUSTOM_BLOCK:
+    return true;
+
   case CMARK_NODE_PARAGRAPH:
   case CMARK_NODE_HEADING:
   case CMARK_NODE_EMPH:
@@ -169,7 +171,7 @@
   case CMARK_NODE_HTML_BLOCK:
     return "html_block";
   case CMARK_NODE_CUSTOM_BLOCK:
-    return "raw_block";
+    return "custom_block";
   case CMARK_NODE_PARAGRAPH:
     return "paragraph";
   case CMARK_NODE_HEADING:
@@ -187,7 +189,7 @@
   case CMARK_NODE_HTML_INLINE:
     return "html_inline";
   case CMARK_NODE_CUSTOM_INLINE:
-    return "raw_inline";
+    return "custom_inline";
   case CMARK_NODE_EMPH:
     return "emph";
   case CMARK_NODE_STRONG:
@@ -725,6 +727,14 @@
     parent->last_child = sibling;
   }
 
+  return 1;
+}
+
+int cmark_node_replace(cmark_node *oldnode, cmark_node *newnode) {
+  if (!cmark_node_insert_before(oldnode, newnode)) {
+    return 0;
+  }
+  cmark_node_unlink(oldnode);
   return 1;
 }
 
diff --git a/cbits/render.c b/cbits/render.c
--- a/cbits/render.c
+++ b/cbits/render.c
@@ -23,6 +23,7 @@
   unsigned char nextc;
   int32_t c;
   int i = 0;
+  int last_nonspace;
   int len;
   cmark_chunk remainder = cmark_chunk_literal("");
   int k = renderer->buffer->size - 1;
@@ -63,15 +64,20 @@
     nextc = source[i + len];
     if (c == 32 && wrap) {
       if (!renderer->begin_line) {
+        last_nonspace = renderer->buffer->size;
         cmark_strbuf_putc(renderer->buffer, ' ');
         renderer->column += 1;
         renderer->begin_line = false;
         renderer->begin_content = false;
-        renderer->last_breakable = renderer->buffer->size - 1;
         // skip following spaces
         while (source[i + 1] == ' ') {
           i++;
         }
+        // We don't allow breaks that make a digit the first character
+        // because this causes problems with commonmark output.
+        if (!cmark_isdigit(source[i + 1])) {
+          renderer->last_breakable = last_nonspace;
+        }
       }
 
     } else if (c == 10) {
@@ -83,11 +89,17 @@
     } else if (escape == LITERAL) {
       cmark_render_code_point(renderer, c);
       renderer->begin_line = false;
-      renderer->begin_content = false;
+      // we don't set 'begin_content' to false til we've
+      // finished parsing a digit.  Reason:  in commonmark
+      // we need to escape a potential list marker after
+      // a digit:
+      renderer->begin_content =
+          renderer->begin_content && cmark_isdigit(c) == 1;
     } else {
       (renderer->outc)(renderer, escape, c, nextc);
       renderer->begin_line = false;
-      renderer->begin_content = false;
+      renderer->begin_content =
+          renderer->begin_content && cmark_isdigit(c) == 1;
     }
 
     // If adding the character went beyond width, look for an
@@ -141,8 +153,8 @@
   char *result;
   cmark_iter *iter = cmark_iter_new(root);
 
-  cmark_renderer renderer = {&buf,  &pref, 0,    width, 0,           0,    true,
-                             false, false, false,
+  cmark_renderer renderer = {&buf, &pref, 0,           width, 0,
+                             0,    true,  true,        false, false,
                              outc, S_cr,  S_blankline, S_out};
 
   while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
diff --git a/cbits/scanners.c b/cbits/scanners.c
--- a/cbits/scanners.c
+++ b/cbits/scanners.c
@@ -1,27213 +1,21263 @@
-/* Generated by re2c 0.15.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;
-
-  if (ptr == NULL || offset > c->len) {
-    return 0;
-  } else {
-    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);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy232;
-    case 'L':
-    case 'l':
-      goto yy231;
-    case 'O':
-    case 'o':
-      goto yy233;
-    case 'R':
-    case 'r':
-      goto yy230;
-    case 'S':
-    case 's':
-      goto yy229;
-    default:
-      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);
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy733;
-    case 'L':
-    case 'l':
-      goto yy732;
-    case 'O':
-    case 'o':
-      goto yy734;
-    case 'R':
-    case 'r':
-      goto yy731;
-    case 'S':
-    case 's':
-      goto yy730;
-    default:
-      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 yy1011;
-        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;
-      }
-    }
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1140;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1139;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1139;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1139;
-        goto yy999;
-      }
-    }
-  yy1011:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1140;
-      if (yych <= '/')
-        goto yy999;
-      goto yy1139;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-        goto yy1139;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1139;
-        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 yy1017;
-        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;
-      }
-    }
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1019;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1018;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1018;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1018;
-        goto yy999;
-      }
-    }
-  yy1017:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1019;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1018:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1021;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1020;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1020;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1020;
-        goto yy999;
-      }
-    }
-  yy1019:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1021;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1020:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1023;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1022;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1022;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1022;
-        goto yy999;
-      }
-    }
-  yy1021:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1023;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1022:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1025;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1024;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1024;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1024;
-        goto yy999;
-      }
-    }
-  yy1023:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1025;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1024:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1027;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1026;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1026;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1026;
-        goto yy999;
-      }
-    }
-  yy1025:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1027;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1026:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1029;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1028;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1028;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1028;
-        goto yy999;
-      }
-    }
-  yy1027:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1029;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1028:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1031;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1030;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1030;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1030;
-        goto yy999;
-      }
-    }
-  yy1029:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1031;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1030:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1033;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1032;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1032;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1032;
-        goto yy999;
-      }
-    }
-  yy1031:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1033;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1032:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1035;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1034;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1034;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1034;
-        goto yy999;
-      }
-    }
-  yy1033:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1035;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1034:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1037;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1036;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1036;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1036;
-        goto yy999;
-      }
-    }
-  yy1035:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1037;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1036:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1039;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1038;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1038;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1038;
-        goto yy999;
-      }
-    }
-  yy1037:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1039;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1038:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1041;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1040;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1040;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1040;
-        goto yy999;
-      }
-    }
-  yy1039:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1041;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1040:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1043;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1042;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1042;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1042;
-        goto yy999;
-      }
-    }
-  yy1041:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1043;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1042:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1045;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1044;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1044;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1044;
-        goto yy999;
-      }
-    }
-  yy1043:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1045;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1044:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1047;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1046;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1046;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1046;
-        goto yy999;
-      }
-    }
-  yy1045:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1047;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1046:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1049;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1048;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1048;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1048;
-        goto yy999;
-      }
-    }
-  yy1047:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1049;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1048:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1051;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1050;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1050;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1050;
-        goto yy999;
-      }
-    }
-  yy1049:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1051;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1050:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1053;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1052;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1052;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1052;
-        goto yy999;
-      }
-    }
-  yy1051:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1053;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1052:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1055;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1054;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1054;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1054;
-        goto yy999;
-      }
-    }
-  yy1053:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1055;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1054:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1057;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1056;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1056;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1056;
-        goto yy999;
-      }
-    }
-  yy1055:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1057;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1056:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1059;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1058;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1058;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1058;
-        goto yy999;
-      }
-    }
-  yy1057:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1059;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1058:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1061;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1060;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1060;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1060;
-        goto yy999;
-      }
-    }
-  yy1059:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1061;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1060:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1063;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1062;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1062;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1062;
-        goto yy999;
-      }
-    }
-  yy1061:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1063;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1062:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1065;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1064;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1064;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1064;
-        goto yy999;
-      }
-    }
-  yy1063:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1065;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1064:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1067;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1066;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1066;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1066;
-        goto yy999;
-      }
-    }
-  yy1065:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1067;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1066:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1069;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1068;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1068;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1068;
-        goto yy999;
-      }
-    }
-  yy1067:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1069;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1068:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1071;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1070;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1070;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1070;
-        goto yy999;
-      }
-    }
-  yy1069:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1071;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1070:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1073;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1072;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1072;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1072;
-        goto yy999;
-      }
-    }
-  yy1071:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1073;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1072:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1075;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1074;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1074;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1074;
-        goto yy999;
-      }
-    }
-  yy1073:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1075;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1074:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1077;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1076;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1076;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1076;
-        goto yy999;
-      }
-    }
-  yy1075:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1077;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1076:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1079;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1078;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1078;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1078;
-        goto yy999;
-      }
-    }
-  yy1077:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1079;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1078:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1081;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1080;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1080;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1080;
-        goto yy999;
-      }
-    }
-  yy1079:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1081;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1080:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1083;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1082;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1082;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1082;
-        goto yy999;
-      }
-    }
-  yy1081:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1083;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1082:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1085;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1084;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1084;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1084;
-        goto yy999;
-      }
-    }
-  yy1083:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1085;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1084:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1087;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1086;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1086;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1086;
-        goto yy999;
-      }
-    }
-  yy1085:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1087;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1086:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1089;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1088;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1088;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1088;
-        goto yy999;
-      }
-    }
-  yy1087:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1089;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1088:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1091;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1090;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1090;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1090;
-        goto yy999;
-      }
-    }
-  yy1089:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1091;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1090:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1093;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1092;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1092;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1092;
-        goto yy999;
-      }
-    }
-  yy1091:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1093;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1092:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1095;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1094;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1094;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1094;
-        goto yy999;
-      }
-    }
-  yy1093:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1095;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1094:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1097;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1096;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1096;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1096;
-        goto yy999;
-      }
-    }
-  yy1095:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1097;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1096:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1099;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1098;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1098;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1098;
-        goto yy999;
-      }
-    }
-  yy1097:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1099;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1098:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1101;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1100;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1100;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1100;
-        goto yy999;
-      }
-    }
-  yy1099:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1101;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1100:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1103;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1102;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1102;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1102;
-        goto yy999;
-      }
-    }
-  yy1101:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1103;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1102:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1105;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1104;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1104;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1104;
-        goto yy999;
-      }
-    }
-  yy1103:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1105;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1104:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1107;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1106;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1106;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1106;
-        goto yy999;
-      }
-    }
-  yy1105:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1107;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1106:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1109;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1108;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1108;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1108;
-        goto yy999;
-      }
-    }
-  yy1107:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1109;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1108:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1111;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1110;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1110;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1110;
-        goto yy999;
-      }
-    }
-  yy1109:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1111;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1110:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1113;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1112;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1112;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1112;
-        goto yy999;
-      }
-    }
-  yy1111:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1113;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1112:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1115;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1114;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1114;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1114;
-        goto yy999;
-      }
-    }
-  yy1113:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1115;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1114:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1117;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1116;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1116;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1116;
-        goto yy999;
-      }
-    }
-  yy1115:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1117;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1116:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1119;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1118;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1118;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1118;
-        goto yy999;
-      }
-    }
-  yy1117:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1119;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1118:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1121;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1120;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1120;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1120;
-        goto yy999;
-      }
-    }
-  yy1119:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1121;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1120:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1123;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1122;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1122;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1122;
-        goto yy999;
-      }
-    }
-  yy1121:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1123;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1122:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1125;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1124;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1124;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1124;
-        goto yy999;
-      }
-    }
-  yy1123:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1125;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1124:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1127;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1126;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1126;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1126;
-        goto yy999;
-      }
-    }
-  yy1125:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1127;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1126:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1129;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1128;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1128;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1128;
-        goto yy999;
-      }
-    }
-  yy1127:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1129;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1128:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1131;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1130;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1130;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1130;
-        goto yy999;
-      }
-    }
-  yy1129:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1131;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1130:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1133;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1132;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1132;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1132;
-        goto yy999;
-      }
-    }
-  yy1131:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1133;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1132:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1135;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1134;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1134;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1134;
-        goto yy999;
-      }
-    }
-  yy1133:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1135;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1134:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1137;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1136;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1136;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1136;
-        goto yy999;
-      }
-    }
-  yy1135:
-    ++p;
-    yych = *p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1137;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1136:
-    ++p;
-    yych = *p;
-    if (yych <= '=') {
-      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;
-      }
-    }
-  yy1137:
-    ++p;
-    yych = *p;
-    if (yych <= '@') {
-      if (yych <= '/')
-        goto yy999;
-      if (yych >= ':')
-        goto yy999;
-    } else {
-      if (yych <= 'Z')
-        goto yy1138;
-      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 <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1142;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1141;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1141;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1141;
-        goto yy999;
-      }
-    }
-  yy1140:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1142;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1141:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1144;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1143;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1143;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1143;
-        goto yy999;
-      }
-    }
-  yy1142:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1144;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1143:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1146;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1145;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1145;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1145;
-        goto yy999;
-      }
-    }
-  yy1144:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1146;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1145:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1148;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1147;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1147;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1147;
-        goto yy999;
-      }
-    }
-  yy1146:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1148;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1147:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1150;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1149;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1149;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1149;
-        goto yy999;
-      }
-    }
-  yy1148:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1150;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1149:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1152;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1151;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1151;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1151;
-        goto yy999;
-      }
-    }
-  yy1150:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1152;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1151:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1154;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1153;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1153;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1153;
-        goto yy999;
-      }
-    }
-  yy1152:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1154;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1153:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1156;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1155;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1155;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1155;
-        goto yy999;
-      }
-    }
-  yy1154:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1156;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1155:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1158;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1157;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1157;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1157;
-        goto yy999;
-      }
-    }
-  yy1156:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1158;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1157:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1160;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1159;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1159;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1159;
-        goto yy999;
-      }
-    }
-  yy1158:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1160;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1159:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1162;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1161;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1161;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1161;
-        goto yy999;
-      }
-    }
-  yy1160:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1162;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1161:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1164;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1163;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1163;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1163;
-        goto yy999;
-      }
-    }
-  yy1162:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1164;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1163:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1166;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1165;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1165;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1165;
-        goto yy999;
-      }
-    }
-  yy1164:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1166;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1165:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1168;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1167;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1167;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1167;
-        goto yy999;
-      }
-    }
-  yy1166:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1168;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1167:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1170;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1169;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1169;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1169;
-        goto yy999;
-      }
-    }
-  yy1168:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1170;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1169:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1172;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1171;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1171;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1171;
-        goto yy999;
-      }
-    }
-  yy1170:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1172;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1171:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1174;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1173;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1173;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1173;
-        goto yy999;
-      }
-    }
-  yy1172:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1174;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1173:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1176;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1175;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1175;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1175;
-        goto yy999;
-      }
-    }
-  yy1174:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1176;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1175:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1178;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1177;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1177;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1177;
-        goto yy999;
-      }
-    }
-  yy1176:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1178;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1177:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1180;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1179;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1179;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1179;
-        goto yy999;
-      }
-    }
-  yy1178:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1180;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1179:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1182;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1181;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1181;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1181;
-        goto yy999;
-      }
-    }
-  yy1180:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1182;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1181:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1184;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1183;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1183;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1183;
-        goto yy999;
-      }
-    }
-  yy1182:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1184;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1183:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1186;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1185;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1185;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1185;
-        goto yy999;
-      }
-    }
-  yy1184:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1186;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1185:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1188;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1187;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1187;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1187;
-        goto yy999;
-      }
-    }
-  yy1186:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1188;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1187:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1190;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1189;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1189;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1189;
-        goto yy999;
-      }
-    }
-  yy1188:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1190;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1189:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1192;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1191;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1191;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1191;
-        goto yy999;
-      }
-    }
-  yy1190:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1192;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1191:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1194;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1193;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1193;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1193;
-        goto yy999;
-      }
-    }
-  yy1192:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1194;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1193:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1196;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1195;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1195;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1195;
-        goto yy999;
-      }
-    }
-  yy1194:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1196;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1195:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1198;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1197;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1197;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1197;
-        goto yy999;
-      }
-    }
-  yy1196:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1198;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1197:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1200;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1199;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1199;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1199;
-        goto yy999;
-      }
-    }
-  yy1198:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1200;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1199:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1202;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1201;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1201;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1201;
-        goto yy999;
-      }
-    }
-  yy1200:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1202;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1201:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1204;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1203;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1203;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1203;
-        goto yy999;
-      }
-    }
-  yy1202:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1204;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1203:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1206;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1205;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1205;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1205;
-        goto yy999;
-      }
-    }
-  yy1204:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1206;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1205:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1208;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1207;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1207;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1207;
-        goto yy999;
-      }
-    }
-  yy1206:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1208;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1207:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1210;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1209;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1209;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1209;
-        goto yy999;
-      }
-    }
-  yy1208:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1210;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1209:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1212;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1211;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1211;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1211;
-        goto yy999;
-      }
-    }
-  yy1210:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1212;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1211:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1214;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1213;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1213;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1213;
-        goto yy999;
-      }
-    }
-  yy1212:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1214;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1213:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1216;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1215;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1215;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1215;
-        goto yy999;
-      }
-    }
-  yy1214:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1216;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1215:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1218;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1217;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1217;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1217;
-        goto yy999;
-      }
-    }
-  yy1216:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1218;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1217:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1220;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1219;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1219;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1219;
-        goto yy999;
-      }
-    }
-  yy1218:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1220;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1219:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1222;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1221;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1221;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1221;
-        goto yy999;
-      }
-    }
-  yy1220:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1222;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1221:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1224;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1223;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1223;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1223;
-        goto yy999;
-      }
-    }
-  yy1222:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1224;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1223:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1226;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1225;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1225;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1225;
-        goto yy999;
-      }
-    }
-  yy1224:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1226;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1225:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1228;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1227;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1227;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1227;
-        goto yy999;
-      }
-    }
-  yy1226:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1228;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1227:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1230;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1229;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1229;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1229;
-        goto yy999;
-      }
-    }
-  yy1228:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1230;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1229:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1232;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1231;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1231;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1231;
-        goto yy999;
-      }
-    }
-  yy1230:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1232;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1231:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1234;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1233;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1233;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1233;
-        goto yy999;
-      }
-    }
-  yy1232:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1234;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1233:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1236;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1235;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1235;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1235;
-        goto yy999;
-      }
-    }
-  yy1234:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1236;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1235:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1238;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1237;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1237;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1237;
-        goto yy999;
-      }
-    }
-  yy1236:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1238;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1237:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1240;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1239;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1239;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1239;
-        goto yy999;
-      }
-    }
-  yy1238:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1240;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1239:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1242;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1241;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1241;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1241;
-        goto yy999;
-      }
-    }
-  yy1240:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1242;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1241:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1244;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1243;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1243;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1243;
-        goto yy999;
-      }
-    }
-  yy1242:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1244;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1243:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1246;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1245;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1245;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1245;
-        goto yy999;
-      }
-    }
-  yy1244:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1246;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1245:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1248;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1247;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1247;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1247;
-        goto yy999;
-      }
-    }
-  yy1246:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1248;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1247:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1250;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1249;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1249;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1249;
-        goto yy999;
-      }
-    }
-  yy1248:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1250;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1249:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1252;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1251;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1251;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1251;
-        goto yy999;
-      }
-    }
-  yy1250:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1252;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1251:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1254;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1253;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1253;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1253;
-        goto yy999;
-      }
-    }
-  yy1252:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1254;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1253:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1256;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1255;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1255;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1255;
-        goto yy999;
-      }
-    }
-  yy1254:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1256;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1255:
-    yych = *++p;
-    if (yych <= '=') {
-      if (yych <= '.') {
-        if (yych <= ',')
-          goto yy999;
-        if (yych <= '-')
-          goto yy1258;
-        goto yy1012;
-      } else {
-        if (yych <= '/')
-          goto yy999;
-        if (yych <= '9')
-          goto yy1257;
-        goto yy999;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1013;
-        if (yych <= '@')
-          goto yy999;
-        goto yy1257;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych <= 'z')
-          goto yy1257;
-        goto yy999;
-      }
-    }
-  yy1256:
-    yych = *++p;
-    if (yych <= '9') {
-      if (yych == '-')
-        goto yy1258;
-      if (yych <= '/')
-        goto yy999;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy999;
-      } else {
-        if (yych <= '`')
-          goto yy999;
-        if (yych >= '{')
-          goto yy999;
-      }
-    }
-  yy1257:
-    yych = *++p;
-    if (yych <= '=') {
-      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;
-      }
-    }
-  yy1258:
-    ++p;
-    if ((yych = *p) <= '@') {
-      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;
-    }
-  }
-}
-
-// 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 yy1440;
-    case '/':
-      goto yy1424;
-    case '?':
-      goto yy1441;
-    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 'I':
-    case 'i':
-      goto yy1432;
-    case 'L':
-    case 'l':
-      goto yy1433;
-    case 'M':
-    case 'm':
-      goto yy1434;
-    case 'N':
-    case 'n':
-      goto yy1435;
-    case 'O':
-    case 'o':
-      goto yy1436;
-    case 'P':
-    case 'p':
-      goto yy1425;
-    case 'S':
-    case 's':
-      goto yy1437;
-    case 'T':
-    case 't':
-      goto yy1438;
-    case 'U':
-    case 'u':
-      goto yy1439;
-    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 'I':
-    case 'i':
-      goto yy1432;
-    case 'L':
-    case 'l':
-      goto yy1433;
-    case 'M':
-    case 'm':
-      goto yy1434;
-    case 'N':
-    case 'n':
-      goto yy1435;
-    case 'O':
-    case 'o':
-      goto yy1436;
-    case 'P':
-    case 'p':
-      goto yy1625;
-    case 'S':
-    case 's':
-      goto yy1626;
-    case 'T':
-    case 't':
-      goto yy1438;
-    case 'U':
-    case 'u':
-      goto yy1439;
-    default:
-      goto yy1417;
-    }
-  yy1425:
-    yych = *++p;
-    if (yych <= '>') {
-      if (yych <= ' ') {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        if (yych <= 0x1F)
-          goto yy1417;
-        goto yy1457;
-      } else {
-        if (yych == '/')
-          goto yy1459;
-        if (yych <= '=')
-          goto yy1417;
-        goto yy1457;
-      }
-    } else {
-      if (yych <= 'R') {
-        if (yych == 'A')
-          goto yy1622;
-        if (yych <= 'Q')
-          goto yy1417;
-        goto yy1621;
-      } else {
-        if (yych <= 'a') {
-          if (yych <= '`')
-            goto yy1417;
-          goto yy1622;
-        } else {
-          if (yych == 'r')
-            goto yy1621;
-          goto yy1417;
-        }
-      }
-    }
-  yy1426:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych <= 'D') {
-        if (yych <= 'C')
-          goto yy1417;
-        goto yy1610;
-      } else {
-        if (yych <= 'Q')
-          goto yy1417;
-        if (yych <= 'R')
-          goto yy1609;
-        goto yy1608;
-      }
-    } else {
-      if (yych <= 'q') {
-        if (yych == 'd')
-          goto yy1610;
-        goto yy1417;
-      } else {
-        if (yych <= 'r')
-          goto yy1609;
-        if (yych <= 's')
-          goto yy1608;
-        goto yy1417;
-      }
-    }
-  yy1427:
-    yych = *++p;
-    if (yych <= 'O') {
-      if (yych <= 'K') {
-        if (yych == 'A')
-          goto yy1594;
-        goto yy1417;
-      } else {
-        if (yych <= 'L')
-          goto yy1593;
-        if (yych <= 'N')
-          goto yy1417;
-        goto yy1592;
-      }
-    } else {
-      if (yych <= 'k') {
-        if (yych == 'a')
-          goto yy1594;
-        goto yy1417;
-      } else {
-        if (yych <= 'l')
-          goto yy1593;
-        if (yych == 'o')
-          goto yy1592;
-        goto yy1417;
-      }
-    }
-  yy1428:
-    yych = *++p;
-    if (yych <= 'O') {
-      if (yych <= 'D') {
-        if (yych == 'A')
-          goto yy1579;
-        goto yy1417;
-      } else {
-        if (yych <= 'E')
-          goto yy1578;
-        if (yych <= 'N')
-          goto yy1417;
-        goto yy1577;
-      }
-    } else {
-      if (yych <= 'd') {
-        if (yych == 'a')
-          goto yy1579;
-        goto yy1417;
-      } else {
-        if (yych <= 'e')
-          goto yy1578;
-        if (yych == 'o')
-          goto yy1577;
-        goto yy1417;
-      }
-    }
-  yy1429:
-    yych = *++p;
-    switch (yych) {
-    case 'D':
-    case 'L':
-    case 'T':
-    case 'd':
-    case 'l':
-    case 't':
-      goto yy1456;
-    case 'E':
-    case 'e':
-      goto yy1569;
-    case 'I':
-    case 'i':
-      goto yy1568;
-    default:
-      goto yy1417;
-    }
-  yy1430:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych <= 'N') {
-        if (yych == 'I')
-          goto yy1544;
-        goto yy1417;
-      } else {
-        if (yych <= 'O')
-          goto yy1543;
-        if (yych <= 'Q')
-          goto yy1417;
-        goto yy1542;
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych == 'i')
-          goto yy1544;
-        goto yy1417;
-      } else {
-        if (yych <= 'o')
-          goto yy1543;
-        if (yych == 'r')
-          goto yy1542;
-        goto yy1417;
-      }
-    }
-  yy1431:
-    yych = *++p;
-    if (yych <= 'S') {
-      if (yych <= 'D') {
-        if (yych == '1')
-          goto yy1456;
-        goto yy1417;
-      } else {
-        if (yych <= 'E')
-          goto yy1537;
-        if (yych == 'R')
-          goto yy1456;
-        goto yy1417;
-      }
-    } else {
-      if (yych <= 'q') {
-        if (yych <= 'T')
-          goto yy1536;
-        if (yych == 'e')
-          goto yy1537;
-        goto yy1417;
-      } else {
-        if (yych <= 'r')
-          goto yy1456;
-        if (yych == 't')
-          goto yy1536;
-        goto yy1417;
-      }
-    }
-  yy1432:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy1532;
-    if (yych == 'f')
-      goto yy1532;
-    goto yy1417;
-  yy1433:
-    yych = *++p;
-    if (yych <= 'I') {
-      if (yych == 'E')
-        goto yy1527;
-      if (yych <= 'H')
-        goto yy1417;
-      goto yy1526;
-    } else {
-      if (yych <= 'e') {
-        if (yych <= 'd')
-          goto yy1417;
-        goto yy1527;
-      } else {
-        if (yych == 'i')
-          goto yy1526;
-        goto yy1417;
-      }
-    }
-  yy1434:
-    yych = *++p;
-    if (yych <= 'E') {
-      if (yych == 'A')
-        goto yy1518;
-      if (yych <= 'D')
-        goto yy1417;
-      goto yy1517;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy1417;
-        goto yy1518;
-      } else {
-        if (yych == 'e')
-          goto yy1517;
-        goto yy1417;
-      }
-    }
-  yy1435:
-    yych = *++p;
-    if (yych <= 'O') {
-      if (yych == 'A')
-        goto yy1511;
-      if (yych <= 'N')
-        goto yy1417;
-      goto yy1510;
-    } else {
-      if (yych <= 'a') {
-        if (yych <= '`')
-          goto yy1417;
-        goto yy1511;
-      } else {
-        if (yych == 'o')
-          goto yy1510;
-        goto yy1417;
-      }
-    }
-  yy1436:
-    yych = *++p;
-    if (yych <= 'P') {
-      if (yych == 'L')
-        goto yy1456;
-      if (yych <= 'O')
-        goto yy1417;
-      goto yy1502;
-    } else {
-      if (yych <= 'l') {
-        if (yych <= 'k')
-          goto yy1417;
-        goto yy1456;
-      } else {
-        if (yych == 'p')
-          goto yy1502;
-        goto yy1417;
-      }
-    }
-  yy1437:
-    yych = *++p;
-    switch (yych) {
-    case 'C':
-    case 'c':
-      goto yy1479;
-    case 'E':
-    case 'e':
-      goto yy1482;
-    case 'O':
-    case 'o':
-      goto yy1481;
-    case 'T':
-    case 't':
-      goto yy1478;
-    case 'U':
-    case 'u':
-      goto yy1480;
-    default:
-      goto yy1417;
-    }
-  yy1438:
-    yych = *++p;
-    switch (yych) {
-    case 'A':
-    case 'a':
-      goto yy1465;
-    case 'B':
-    case 'b':
-      goto yy1464;
-    case 'D':
-    case 'd':
-      goto yy1456;
-    case 'F':
-    case 'f':
-      goto yy1463;
-    case 'H':
-    case 'h':
-      goto yy1462;
-    case 'I':
-    case 'i':
-      goto yy1461;
-    case 'R':
-    case 'r':
-      goto yy1460;
-    default:
-      goto yy1417;
-    }
-  yy1439:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1456;
-    if (yych == 'l')
-      goto yy1456;
-    goto yy1417;
-  yy1440:
-    yych = *++p;
-    if (yych <= '@') {
-      if (yych == '-')
-        goto yy1443;
-      goto yy1417;
-    } else {
-      if (yych <= 'Z')
-        goto yy1444;
-      if (yych <= '[')
-        goto yy1446;
-      goto yy1417;
-    }
-  yy1441:
-    ++p;
-    { return 3; }
-  yy1443:
-    yych = *++p;
-    if (yych == '-')
-      goto yy1454;
-    goto yy1417;
-  yy1444:
-    ++p;
-    { return 4; }
-  yy1446:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1447;
-    if (yych != 'c')
-      goto yy1417;
-  yy1447:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1448;
-    if (yych != 'd')
-      goto yy1417;
-  yy1448:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1449;
-    if (yych != 'a')
-      goto yy1417;
-  yy1449:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1450;
-    if (yych != 't')
-      goto yy1417;
-  yy1450:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1451;
-    if (yych != 'a')
-      goto yy1417;
-  yy1451:
-    yych = *++p;
-    if (yych != '[')
-      goto yy1417;
-    ++p;
-    { return 5; }
-  yy1454:
-    ++p;
-    { return 2; }
-  yy1456:
-    yych = *++p;
-    if (yych <= ' ') {
-      if (yych <= 0x08)
-        goto yy1417;
-      if (yych <= '\r')
-        goto yy1457;
-      if (yych <= 0x1F)
-        goto yy1417;
-    } else {
-      if (yych <= '/') {
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      } else {
-        if (yych != '>')
-          goto yy1417;
-      }
-    }
-  yy1457:
-    ++p;
-    { return 6; }
-  yy1459:
-    yych = *++p;
-    if (yych == '>')
-      goto yy1457;
-    goto yy1417;
-  yy1460:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= '@') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'A')
-          goto yy1476;
-        if (yych == 'a')
-          goto yy1476;
-        goto yy1417;
-      }
-    }
-  yy1461:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1474;
-    if (yych == 't')
-      goto yy1474;
-    goto yy1417;
-  yy1462:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'D') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'E')
-          goto yy1472;
-        if (yych == 'e')
-          goto yy1472;
-        goto yy1417;
-      }
-    }
-  yy1463:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1470;
-    if (yych == 'o')
-      goto yy1470;
-    goto yy1417;
-  yy1464:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1468;
-    if (yych == 'o')
-      goto yy1468;
-    goto yy1417;
-  yy1465:
-    yych = *++p;
-    if (yych == 'B')
-      goto yy1466;
-    if (yych != 'b')
-      goto yy1417;
-  yy1466:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1467;
-    if (yych != 'l')
-      goto yy1417;
-  yy1467:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1468:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1469;
-    if (yych != 'd')
-      goto yy1417;
-  yy1469:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy1456;
-    if (yych == 'y')
-      goto yy1456;
-    goto yy1417;
-  yy1470:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1471;
-    if (yych != 'o')
-      goto yy1417;
-  yy1471:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1456;
-    if (yych == 't')
-      goto yy1456;
-    goto yy1417;
-  yy1472:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1473;
-    if (yych != 'a')
-      goto yy1417;
-  yy1473:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1456;
-    if (yych == 'd')
-      goto yy1456;
-    goto yy1417;
-  yy1474:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1475;
-    if (yych != 'l')
-      goto yy1417;
-  yy1475:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1476:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1477;
-    if (yych != 'c')
-      goto yy1417;
-  yy1477:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy1456;
-    if (yych == 'k')
-      goto yy1456;
-    goto yy1417;
-  yy1478:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy1500;
-    if (yych == 'y')
-      goto yy1500;
-    goto yy1417;
-  yy1479:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1494;
-    if (yych == 'r')
-      goto yy1494;
-    goto yy1417;
-  yy1480:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1490;
-    if (yych == 'm')
-      goto yy1490;
-    goto yy1417;
-  yy1481:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy1487;
-    if (yych == 'u')
-      goto yy1487;
-    goto yy1417;
-  yy1482:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1483;
-    if (yych != 'c')
-      goto yy1417;
-  yy1483:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1484;
-    if (yych != 't')
-      goto yy1417;
-  yy1484:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1485;
-    if (yych != 'i')
-      goto yy1417;
-  yy1485:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1486;
-    if (yych != 'o')
-      goto yy1417;
-  yy1486:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1456;
-    if (yych == 'n')
-      goto yy1456;
-    goto yy1417;
-  yy1487:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1488;
-    if (yych != 'r')
-      goto yy1417;
-  yy1488:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1489;
-    if (yych != 'c')
-      goto yy1417;
-  yy1489:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1490:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1491;
-    if (yych != 'm')
-      goto yy1417;
-  yy1491:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1492;
-    if (yych != 'a')
-      goto yy1417;
-  yy1492:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1493;
-    if (yych != 'r')
-      goto yy1417;
-  yy1493:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy1456;
-    if (yych == 'y')
-      goto yy1456;
-    goto yy1417;
-  yy1494:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1495;
-    if (yych != 'i')
-      goto yy1417;
-  yy1495:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy1496;
-    if (yych != 'p')
-      goto yy1417;
-  yy1496:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1497;
-    if (yych != 't')
-      goto yy1417;
-  yy1497:
-    yych = *++p;
-    if (yych <= 0x1F) {
-      if (yych <= 0x08)
-        goto yy1417;
-      if (yych >= 0x0E)
-        goto yy1417;
-    } else {
-      if (yych <= ' ')
-        goto yy1498;
-      if (yych != '>')
-        goto yy1417;
-    }
-  yy1498:
-    ++p;
-    { return 1; }
-  yy1500:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1501;
-    if (yych != 'l')
-      goto yy1417;
-  yy1501:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1497;
-    if (yych == 'e')
-      goto yy1497;
-    goto yy1417;
-  yy1502:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1503;
-    if (yych != 't')
-      goto yy1417;
-  yy1503:
-    yych = *++p;
-    if (yych <= 'I') {
-      if (yych == 'G')
-        goto yy1505;
-      if (yych <= 'H')
-        goto yy1417;
-    } else {
-      if (yych <= 'g') {
-        if (yych <= 'f')
-          goto yy1417;
-        goto yy1505;
-      } else {
-        if (yych != 'i')
-          goto yy1417;
-      }
-    }
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1509;
-    if (yych == 'o')
-      goto yy1509;
-    goto yy1417;
-  yy1505:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1506;
-    if (yych != 'r')
-      goto yy1417;
-  yy1506:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1507;
-    if (yych != 'o')
-      goto yy1417;
-  yy1507:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy1508;
-    if (yych != 'u')
-      goto yy1417;
-  yy1508:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy1456;
-    if (yych == 'p')
-      goto yy1456;
-    goto yy1417;
-  yy1509:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1456;
-    if (yych == 'n')
-      goto yy1456;
-    goto yy1417;
-  yy1510:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy1512;
-    if (yych == 'f')
-      goto yy1512;
-    goto yy1417;
-  yy1511:
-    yych = *++p;
-    if (yych == 'V')
-      goto yy1456;
-    if (yych == 'v')
-      goto yy1456;
-    goto yy1417;
-  yy1512:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1513;
-    if (yych != 'r')
-      goto yy1417;
-  yy1513:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1514;
-    if (yych != 'a')
-      goto yy1417;
-  yy1514:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1515;
-    if (yych != 'm')
-      goto yy1417;
-  yy1515:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1516;
-    if (yych != 'e')
-      goto yy1417;
-  yy1516:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy1456;
-    if (yych == 's')
-      goto yy1456;
-    goto yy1417;
-  yy1517:
-    yych = *++p;
-    if (yych <= 'T') {
-      if (yych == 'N')
-        goto yy1520;
-      if (yych <= 'S')
-        goto yy1417;
-      goto yy1521;
-    } else {
-      if (yych <= 'n') {
-        if (yych <= 'm')
-          goto yy1417;
-        goto yy1520;
-      } else {
-        if (yych == 't')
-          goto yy1521;
-        goto yy1417;
-      }
-    }
-  yy1518:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1519;
-    if (yych != 'i')
-      goto yy1417;
-  yy1519:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1456;
-    if (yych == 'n')
-      goto yy1456;
-    goto yy1417;
-  yy1520:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy1522;
-    if (yych == 'u')
-      goto yy1522;
-    goto yy1417;
-  yy1521:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1456;
-    if (yych == 'a')
-      goto yy1456;
-    goto yy1417;
-  yy1522:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'H') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'I')
-          goto yy1523;
-        if (yych != 'i')
-          goto yy1417;
-      }
-    }
-  yy1523:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1524;
-    if (yych != 't')
-      goto yy1417;
-  yy1524:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1525;
-    if (yych != 'e')
-      goto yy1417;
-  yy1525:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1456;
-    if (yych == 'm')
-      goto yy1456;
-    goto yy1417;
-  yy1526:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'M') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'N')
-          goto yy1531;
-        if (yych == 'n')
-          goto yy1531;
-        goto yy1417;
-      }
-    }
-  yy1527:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy1528;
-    if (yych != 'g')
-      goto yy1417;
-  yy1528:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1529;
-    if (yych != 'e')
-      goto yy1417;
-  yy1529:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1530;
-    if (yych != 'n')
-      goto yy1417;
-  yy1530:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1456;
-    if (yych == 'd')
-      goto yy1456;
-    goto yy1417;
-  yy1531:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy1456;
-    if (yych == 'k')
-      goto yy1456;
-    goto yy1417;
-  yy1532:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1533;
-    if (yych != 'r')
-      goto yy1417;
-  yy1533:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1534;
-    if (yych != 'a')
-      goto yy1417;
-  yy1534:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1535;
-    if (yych != 'm')
-      goto yy1417;
-  yy1535:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1536:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1541;
-    if (yych == 'm')
-      goto yy1541;
-    goto yy1417;
-  yy1537:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1538;
-    if (yych != 'a')
-      goto yy1417;
-  yy1538:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1539;
-    if (yych != 'd')
-      goto yy1417;
-  yy1539:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'D') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'E')
-          goto yy1540;
-        if (yych != 'e')
-          goto yy1417;
-      }
-    }
-  yy1540:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1456;
-    if (yych == 'r')
-      goto yy1456;
-    goto yy1417;
-  yy1541:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1456;
-    if (yych == 'l')
-      goto yy1456;
-    goto yy1417;
-  yy1542:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1563;
-    if (yych == 'a')
-      goto yy1563;
-    goto yy1417;
-  yy1543:
-    yych = *++p;
-    if (yych <= 'R') {
-      if (yych == 'O')
-        goto yy1559;
-      if (yych <= 'Q')
-        goto yy1417;
-      goto yy1560;
-    } else {
-      if (yych <= 'o') {
-        if (yych <= 'n')
-          goto yy1417;
-        goto yy1559;
-      } else {
-        if (yych == 'r')
-          goto yy1560;
-        goto yy1417;
-      }
-    }
-  yy1544:
-    yych = *++p;
-    if (yych <= 'G') {
-      if (yych == 'E')
-        goto yy1545;
-      if (yych <= 'F')
-        goto yy1417;
-      goto yy1546;
-    } else {
-      if (yych <= 'e') {
-        if (yych <= 'd')
-          goto yy1417;
-      } else {
-        if (yych == 'g')
-          goto yy1546;
-        goto yy1417;
-      }
-    }
-  yy1545:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1555;
-    if (yych == 'l')
-      goto yy1555;
-    goto yy1417;
-  yy1546:
-    yych = *++p;
-    if (yych <= 'U') {
-      if (yych == 'C')
-        goto yy1548;
-      if (yych <= 'T')
-        goto yy1417;
-    } else {
-      if (yych <= 'c') {
-        if (yych <= 'b')
-          goto yy1417;
-        goto yy1548;
-      } else {
-        if (yych != 'u')
-          goto yy1417;
-      }
-    }
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1554;
-    if (yych == 'r')
-      goto yy1554;
-    goto yy1417;
-  yy1548:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1549;
-    if (yych != 'a')
-      goto yy1417;
-  yy1549:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy1550;
-    if (yych != 'p')
-      goto yy1417;
-  yy1550:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1551;
-    if (yych != 't')
-      goto yy1417;
-  yy1551:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1552;
-    if (yych != 'i')
-      goto yy1417;
-  yy1552:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1553;
-    if (yych != 'o')
-      goto yy1417;
-  yy1553:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1456;
-    if (yych == 'n')
-      goto yy1456;
-    goto yy1417;
-  yy1554:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1555:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1556;
-    if (yych != 'd')
-      goto yy1417;
-  yy1556:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy1557;
-    if (yych != 's')
-      goto yy1417;
-  yy1557:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1558;
-    if (yych != 'e')
-      goto yy1417;
-  yy1558:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1456;
-    if (yych == 't')
-      goto yy1456;
-    goto yy1417;
-  yy1559:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1561;
-    if (yych == 't')
-      goto yy1561;
-    goto yy1417;
-  yy1560:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1456;
-    if (yych == 'm')
-      goto yy1456;
-    goto yy1417;
-  yy1561:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1562;
-    if (yych != 'e')
-      goto yy1417;
-  yy1562:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1456;
-    if (yych == 'r')
-      goto yy1456;
-    goto yy1417;
-  yy1563:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1564;
-    if (yych != 'm')
-      goto yy1417;
-  yy1564:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1565;
-    if (yych != 'e')
-      goto yy1417;
-  yy1565:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'R') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'S')
-          goto yy1566;
-        if (yych != 's')
-          goto yy1417;
-      }
-    }
-  yy1566:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1567;
-    if (yych != 'e')
-      goto yy1417;
-  yy1567:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1456;
-    if (yych == 't')
-      goto yy1456;
-    goto yy1417;
-  yy1568:
-    yych = *++p;
-    if (yych <= 'V') {
-      if (yych <= 'Q') {
-        if (yych == 'A')
-          goto yy1574;
-        goto yy1417;
-      } else {
-        if (yych <= 'R')
-          goto yy1456;
-        if (yych <= 'U')
-          goto yy1417;
-        goto yy1456;
-      }
-    } else {
-      if (yych <= 'q') {
-        if (yych == 'a')
-          goto yy1574;
-        goto yy1417;
-      } else {
-        if (yych <= 'r')
-          goto yy1456;
-        if (yych == 'v')
-          goto yy1456;
-        goto yy1417;
-      }
-    }
-  yy1569:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1570;
-    if (yych != 't')
-      goto yy1417;
-  yy1570:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1571;
-    if (yych != 'a')
-      goto yy1417;
-  yy1571:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1572;
-    if (yych != 'i')
-      goto yy1417;
-  yy1572:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1573;
-    if (yych != 'l')
-      goto yy1417;
-  yy1573:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy1456;
-    if (yych == 's')
-      goto yy1456;
-    goto yy1417;
-  yy1574:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1575;
-    if (yych != 'l')
-      goto yy1417;
-  yy1575:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1576;
-    if (yych != 'o')
-      goto yy1417;
-  yy1576:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy1456;
-    if (yych == 'g')
-      goto yy1456;
-    goto yy1417;
-  yy1577:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1587;
-    if (yych == 'l')
-      goto yy1587;
-    goto yy1417;
-  yy1578:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1584;
-    if (yych == 'n')
-      goto yy1584;
-    goto yy1417;
-  yy1579:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy1580;
-    if (yych != 'p')
-      goto yy1417;
-  yy1580:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1581;
-    if (yych != 't')
-      goto yy1417;
-  yy1581:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1582;
-    if (yych != 'i')
-      goto yy1417;
-  yy1582:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1583;
-    if (yych != 'o')
-      goto yy1417;
-  yy1583:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1456;
-    if (yych == 'n')
-      goto yy1456;
-    goto yy1417;
-  yy1584:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1585;
-    if (yych != 't')
-      goto yy1417;
-  yy1585:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1586;
-    if (yych != 'e')
-      goto yy1417;
-  yy1586:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1456;
-    if (yych == 'r')
-      goto yy1456;
-    goto yy1417;
-  yy1587:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'F') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'G')
-          goto yy1588;
-        if (yych != 'g')
-          goto yy1417;
-      }
-    }
-  yy1588:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1589;
-    if (yych != 'r')
-      goto yy1417;
-  yy1589:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1590;
-    if (yych != 'o')
-      goto yy1417;
-  yy1590:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy1591;
-    if (yych != 'u')
-      goto yy1417;
-  yy1591:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy1456;
-    if (yych == 'p')
-      goto yy1456;
-    goto yy1417;
-  yy1592:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1607;
-    if (yych == 'd')
-      goto yy1607;
-    goto yy1417;
-  yy1593:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1600;
-    if (yych == 'o')
-      goto yy1600;
-    goto yy1417;
-  yy1594:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy1595;
-    if (yych != 's')
-      goto yy1417;
-  yy1595:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1596;
-    if (yych != 'e')
-      goto yy1417;
-  yy1596:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= 'E') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'F')
-          goto yy1597;
-        if (yych != 'f')
-          goto yy1417;
-      }
-    }
-  yy1597:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1598;
-    if (yych != 'o')
-      goto yy1417;
-  yy1598:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy1599;
-    if (yych != 'n')
-      goto yy1417;
-  yy1599:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1456;
-    if (yych == 't')
-      goto yy1456;
-    goto yy1417;
-  yy1600:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1601;
-    if (yych != 'c')
-      goto yy1417;
-  yy1601:
-    yych = *++p;
-    if (yych == 'K')
-      goto yy1602;
-    if (yych != 'k')
-      goto yy1417;
-  yy1602:
-    yych = *++p;
-    if (yych == 'Q')
-      goto yy1603;
-    if (yych != 'q')
-      goto yy1417;
-  yy1603:
-    yych = *++p;
-    if (yych == 'U')
-      goto yy1604;
-    if (yych != 'u')
-      goto yy1417;
-  yy1604:
-    yych = *++p;
-    if (yych == 'O')
-      goto yy1605;
-    if (yych != 'o')
-      goto yy1417;
-  yy1605:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1606;
-    if (yych != 't')
-      goto yy1417;
-  yy1606:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1607:
-    yych = *++p;
-    if (yych == 'Y')
-      goto yy1456;
-    if (yych == 'y')
-      goto yy1456;
-    goto yy1417;
-  yy1608:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1619;
-    if (yych == 'i')
-      goto yy1619;
-    goto yy1417;
-  yy1609:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy1615;
-    if (yych == 't')
-      goto yy1615;
-    goto yy1417;
-  yy1610:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1611;
-    if (yych != 'd')
-      goto yy1417;
-  yy1611:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1612;
-    if (yych != 'r')
-      goto yy1417;
-  yy1612:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1613;
-    if (yych != 'e')
-      goto yy1417;
-  yy1613:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy1614;
-    if (yych != 's')
-      goto yy1417;
-  yy1614:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy1456;
-    if (yych == 's')
-      goto yy1456;
-    goto yy1417;
-  yy1615:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy1616;
-    if (yych != 'i')
-      goto yy1417;
-  yy1616:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy1617;
-    if (yych != 'c')
-      goto yy1417;
-  yy1617:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy1618;
-    if (yych != 'l')
-      goto yy1417;
-  yy1618:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1619:
-    yych = *++p;
-    if (yych == 'D')
-      goto yy1620;
-    if (yych != 'd')
-      goto yy1417;
-  yy1620:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1456;
-    if (yych == 'e')
-      goto yy1456;
-    goto yy1417;
-  yy1621:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy1497;
-    if (yych == 'e')
-      goto yy1497;
-    goto yy1417;
-  yy1622:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy1623;
-    if (yych != 'r')
-      goto yy1417;
-  yy1623:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy1624;
-    if (yych != 'a')
-      goto yy1417;
-  yy1624:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy1456;
-    if (yych == 'm')
-      goto yy1456;
-    goto yy1417;
-  yy1625:
-    yych = *++p;
-    if (yych <= '/') {
-      if (yych <= 0x1F) {
-        if (yych <= 0x08)
-          goto yy1417;
-        if (yych <= '\r')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= ' ')
-          goto yy1457;
-        if (yych <= '.')
-          goto yy1417;
-        goto yy1459;
-      }
-    } else {
-      if (yych <= '@') {
-        if (yych == '>')
-          goto yy1457;
-        goto yy1417;
-      } else {
-        if (yych <= 'A')
-          goto yy1622;
-        if (yych == 'a')
-          goto yy1622;
-        goto yy1417;
-      }
-    }
-  yy1626:
-    ++p;
-    if ((yych = *p) <= 'U') {
-      if (yych <= 'N') {
-        if (yych == 'E')
-          goto yy1482;
-        goto yy1417;
-      } else {
-        if (yych <= 'O')
-          goto yy1481;
-        if (yych <= 'T')
-          goto yy1417;
-        goto yy1480;
-      }
-    } else {
-      if (yych <= 'n') {
-        if (yych == 'e')
-          goto yy1482;
-        goto yy1417;
-      } else {
-        if (yych <= 'o')
-          goto yy1481;
-        if (yych == 'u')
-          goto yy1480;
-        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 yy1631;
-      } else {
-        if (yych <= '<')
-          goto yy1630;
-        if (yych <= 0x7F)
-          goto yy1631;
-        if (yych >= 0xC2)
-          goto yy1632;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1634;
-        if (yych == 0xED)
-          goto yy1639;
-        goto yy1635;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1636;
-        if (yych <= 0xF3)
-          goto yy1637;
-        if (yych <= 0xF4)
-          goto yy1638;
-      }
-    }
-  yy1629 : { return 0; }
-  yy1630:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= '@') {
-      if (yych == '/')
-        goto yy1642;
-      goto yy1629;
-    } else {
-      if (yych <= 'Z')
-        goto yy1640;
-      if (yych <= '`')
-        goto yy1629;
-      if (yych <= 'z')
-        goto yy1640;
-      goto yy1629;
-    }
-  yy1631:
-    yych = *++p;
-    goto yy1629;
-  yy1632:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1631;
-  yy1633:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy1629;
-    } else {
-      goto yy1651;
-    }
-  yy1634:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1632;
-    goto yy1633;
-  yy1635:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1632;
-    goto yy1633;
-  yy1636:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1635;
-    goto yy1633;
-  yy1637:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1635;
-    goto yy1633;
-  yy1638:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x8F)
-      goto yy1635;
-    goto yy1633;
-  yy1639:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x9F)
-      goto yy1632;
-    goto yy1633;
-  yy1640:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 1) {
-      goto yy1640;
-    }
-    if (yych <= ' ') {
-      if (yych <= 0x08)
-        goto yy1633;
-      if (yych <= '\r')
-        goto yy1653;
-      if (yych <= 0x1F)
-        goto yy1633;
-      goto yy1653;
-    } else {
-      if (yych <= '/') {
-        if (yych <= '.')
-          goto yy1633;
-        goto yy1655;
-      } else {
-        if (yych == '>')
-          goto yy1647;
-        goto yy1633;
-      }
-    }
-  yy1642:
-    yych = *++p;
-    if (yych <= '@')
-      goto yy1633;
-    if (yych <= 'Z')
-      goto yy1643;
-    if (yych <= '`')
-      goto yy1633;
-    if (yych >= '{')
-      goto yy1633;
-  yy1643:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 2) {
-      goto yy1645;
-    }
-    if (yych <= '=') {
-      if (yych <= '-') {
-        if (yych <= ',')
-          goto yy1633;
-        goto yy1643;
-      } else {
-        if (yych <= '/')
-          goto yy1633;
-        if (yych <= '9')
-          goto yy1643;
-        goto yy1633;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '>')
-          goto yy1647;
-        if (yych <= '@')
-          goto yy1633;
-        goto yy1643;
-      } else {
-        if (yych <= '`')
-          goto yy1633;
-        if (yych <= 'z')
-          goto yy1643;
-        goto yy1633;
-      }
-    }
-  yy1645:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 2) {
-      goto yy1645;
-    }
-    if (yych != '>')
-      goto yy1633;
-  yy1647:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 4) {
-      goto yy1647;
-    }
-    if (yych <= 0x08)
-      goto yy1633;
-    if (yych <= '\n')
-      goto yy1649;
-    if (yych <= '\v')
-      goto yy1633;
-    if (yych <= '\r')
-      goto yy1652;
-    goto yy1633;
-  yy1649:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 4) {
-      goto yy1647;
-    }
-    if (yych <= 0x08)
-      goto yy1651;
-    if (yych <= '\n')
-      goto yy1649;
-    if (yych <= '\v')
-      goto yy1651;
-    if (yych <= '\r')
-      goto yy1652;
-  yy1651 : { return 7; }
-  yy1652:
-    yych = *++p;
-    goto yy1651;
-  yy1653:
-    ++p;
-    yych = *p;
-    if (yych <= ':') {
-      if (yych <= ' ') {
-        if (yych <= 0x08)
-          goto yy1633;
-        if (yych <= '\r')
-          goto yy1653;
-        if (yych <= 0x1F)
-          goto yy1633;
-        goto yy1653;
-      } else {
-        if (yych == '/')
-          goto yy1655;
-        if (yych <= '9')
-          goto yy1633;
-        goto yy1656;
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych == '>')
-          goto yy1647;
-        if (yych <= '@')
-          goto yy1633;
-        goto yy1656;
-      } else {
-        if (yych <= '_') {
-          if (yych <= '^')
-            goto yy1633;
-          goto yy1656;
-        } else {
-          if (yych <= '`')
-            goto yy1633;
-          if (yych <= 'z')
-            goto yy1656;
-          goto yy1633;
-        }
-      }
-    }
-  yy1655:
-    yych = *++p;
-    if (yych == '>')
-      goto yy1647;
-    goto yy1633;
-  yy1656:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 16) {
-      goto yy1656;
-    }
-    if (yych <= ',') {
-      if (yych <= '\r') {
-        if (yych <= 0x08)
-          goto yy1633;
-      } else {
-        if (yych != ' ')
-          goto yy1633;
-      }
-    } else {
-      if (yych <= '<') {
-        if (yych <= '/')
-          goto yy1655;
-        goto yy1633;
-      } else {
-        if (yych <= '=')
-          goto yy1660;
-        if (yych <= '>')
-          goto yy1647;
-        goto yy1633;
-      }
-    }
-  yy1658:
-    ++p;
-    yych = *p;
-    if (yych <= '<') {
-      if (yych <= ' ') {
-        if (yych <= 0x08)
-          goto yy1633;
-        if (yych <= '\r')
-          goto yy1658;
-        if (yych <= 0x1F)
-          goto yy1633;
-        goto yy1658;
-      } else {
-        if (yych <= '/') {
-          if (yych <= '.')
-            goto yy1633;
-          goto yy1655;
-        } else {
-          if (yych == ':')
-            goto yy1656;
-          goto yy1633;
-        }
-      }
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '=')
-          goto yy1660;
-        if (yych <= '>')
-          goto yy1647;
-        if (yych <= '@')
-          goto yy1633;
-        goto yy1656;
-      } else {
-        if (yych <= '_') {
-          if (yych <= '^')
-            goto yy1633;
-          goto yy1656;
-        } else {
-          if (yych <= '`')
-            goto yy1633;
-          if (yych <= 'z')
-            goto yy1656;
-          goto yy1633;
-        }
-      }
-    }
-  yy1660:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1662;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '"') {
-        if (yych <= 0x00)
-          goto yy1633;
-        if (yych >= '!')
-          goto yy1673;
-      } else {
-        if (yych <= '\'')
-          goto yy1671;
-        if (yych <= 0xC1)
-          goto yy1633;
-        if (yych <= 0xDF)
-          goto yy1664;
-        goto yy1665;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1670;
-        goto yy1666;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1667;
-        if (yych <= 0xF3)
-          goto yy1668;
-        if (yych <= 0xF4)
-          goto yy1669;
-        goto yy1633;
-      }
-    }
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1662;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '\'') {
-        if (yych <= 0x00)
-          goto yy1633;
-        if (yych <= ' ')
-          goto yy1696;
-        if (yych <= '"')
-          goto yy1673;
-        goto yy1671;
-      } else {
-        if (yych == '>')
-          goto yy1647;
-        if (yych <= 0xC1)
-          goto yy1633;
-        goto yy1664;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1665;
-        if (yych == 0xED)
-          goto yy1670;
-        goto yy1666;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1667;
-        if (yych <= 0xF3)
-          goto yy1668;
-        if (yych <= 0xF4)
-          goto yy1669;
-        goto yy1633;
-      }
-    }
-  yy1662:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1662;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '=') {
-        if (yych <= 0x00)
-          goto yy1633;
-        if (yych <= ' ')
-          goto yy1690;
-        goto yy1633;
-      } else {
-        if (yych <= '>')
-          goto yy1647;
-        if (yych <= 0xC1)
-          goto yy1633;
-        if (yych >= 0xE0)
-          goto yy1665;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1670;
-        goto yy1666;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1667;
-        if (yych <= 0xF3)
-          goto yy1668;
-        if (yych <= 0xF4)
-          goto yy1669;
-        goto yy1633;
-      }
-    }
-  yy1664:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1662;
-    goto yy1633;
-  yy1665:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1664;
-    goto yy1633;
-  yy1666:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1664;
-    goto yy1633;
-  yy1667:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1666;
-    goto yy1633;
-  yy1668:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1666;
-    goto yy1633;
-  yy1669:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x8F)
-      goto yy1666;
-    goto yy1633;
-  yy1670:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x9F)
-      goto yy1664;
-    goto yy1633;
-  yy1671:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1671;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy1633;
-        if (yych <= '\'')
-          goto yy1682;
-        goto yy1633;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1683;
-        if (yych <= 0xE0)
-          goto yy1684;
-        goto yy1685;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1689;
-        if (yych <= 0xEF)
-          goto yy1685;
-        goto yy1686;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1687;
-        if (yych <= 0xF4)
-          goto yy1688;
-        goto yy1633;
-      }
-    }
-  yy1673:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1673;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy1633;
-        if (yych <= '"')
-          goto yy1682;
-        goto yy1633;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1675;
-        if (yych <= 0xE0)
-          goto yy1676;
-        goto yy1677;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1681;
-        if (yych <= 0xEF)
-          goto yy1677;
-        goto yy1678;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1679;
-        if (yych <= 0xF4)
-          goto yy1680;
-        goto yy1633;
-      }
-    }
-  yy1675:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1673;
-    goto yy1633;
-  yy1676:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1675;
-    goto yy1633;
-  yy1677:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1675;
-    goto yy1633;
-  yy1678:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1677;
-    goto yy1633;
-  yy1679:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1677;
-    goto yy1633;
-  yy1680:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x8F)
-      goto yy1677;
-    goto yy1633;
-  yy1681:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x9F)
-      goto yy1675;
-    goto yy1633;
-  yy1682:
-    ++p;
-    yych = *p;
-    if (yych <= ' ') {
-      if (yych <= 0x08)
-        goto yy1633;
-      if (yych <= '\r')
-        goto yy1653;
-      if (yych <= 0x1F)
-        goto yy1633;
-      goto yy1653;
-    } else {
-      if (yych <= '/') {
-        if (yych <= '.')
-          goto yy1633;
-        goto yy1655;
-      } else {
-        if (yych == '>')
-          goto yy1647;
-        goto yy1633;
-      }
-    }
-  yy1683:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1671;
-    goto yy1633;
-  yy1684:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1683;
-    goto yy1633;
-  yy1685:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1683;
-    goto yy1633;
-  yy1686:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1685;
-    goto yy1633;
-  yy1687:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0xBF)
-      goto yy1685;
-    goto yy1633;
-  yy1688:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x8F)
-      goto yy1685;
-    goto yy1633;
-  yy1689:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1633;
-    if (yych <= 0x9F)
-      goto yy1683;
-    goto yy1633;
-  yy1690:
-    ++p;
-    yych = *p;
-    if (yych <= '@') {
-      if (yych <= '"') {
-        if (yych <= '\r') {
-          if (yych <= 0x00)
-            goto yy1633;
-          if (yych <= 0x08)
-            goto yy1662;
-          goto yy1690;
-        } else {
-          if (yych == ' ')
-            goto yy1690;
-          if (yych <= '!')
-            goto yy1662;
-          goto yy1633;
-        }
-      } else {
-        if (yych <= ':') {
-          if (yych == '\'')
-            goto yy1633;
-          if (yych <= '9')
-            goto yy1662;
-        } else {
-          if (yych <= ';')
-            goto yy1662;
-          if (yych <= '=')
-            goto yy1633;
-          if (yych <= '>')
-            goto yy1647;
-          goto yy1662;
-        }
-      }
-    } else {
-      if (yych <= 0xDF) {
-        if (yych <= '`') {
-          if (yych <= 'Z')
-            goto yy1692;
-          if (yych <= '^')
-            goto yy1662;
-          if (yych >= '`')
-            goto yy1633;
-        } else {
-          if (yych <= 'z')
-            goto yy1692;
-          if (yych <= 0x7F)
-            goto yy1662;
-          if (yych <= 0xC1)
-            goto yy1633;
-          goto yy1664;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych <= 0xE0)
-            goto yy1665;
-          if (yych == 0xED)
-            goto yy1670;
-          goto yy1666;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1667;
-          if (yych <= 0xF3)
-            goto yy1668;
-          if (yych <= 0xF4)
-            goto yy1669;
-          goto yy1633;
-        }
-      }
-    }
-  yy1692:
-    ++p;
-    yych = *p;
-    if (yych <= '>') {
-      if (yych <= '&') {
-        if (yych <= 0x1F) {
-          if (yych <= 0x00)
-            goto yy1633;
-          if (yych <= 0x08)
-            goto yy1662;
-          if (yych >= 0x0E)
-            goto yy1662;
-        } else {
-          if (yych <= ' ')
-            goto yy1694;
-          if (yych == '"')
-            goto yy1633;
-          goto yy1662;
-        }
-      } else {
-        if (yych <= '/') {
-          if (yych <= '\'')
-            goto yy1633;
-          if (yych <= ',')
-            goto yy1662;
-          if (yych <= '.')
-            goto yy1692;
-          goto yy1662;
-        } else {
-          if (yych <= ';') {
-            if (yych <= ':')
-              goto yy1692;
-            goto yy1662;
-          } else {
-            if (yych <= '<')
-              goto yy1633;
-            if (yych <= '=')
-              goto yy1660;
-            goto yy1647;
-          }
-        }
-      }
-    } else {
-      if (yych <= 0xC1) {
-        if (yych <= '_') {
-          if (yych <= '@')
-            goto yy1662;
-          if (yych <= 'Z')
-            goto yy1692;
-          if (yych <= '^')
-            goto yy1662;
-          goto yy1692;
-        } else {
-          if (yych <= '`')
-            goto yy1633;
-          if (yych <= 'z')
-            goto yy1692;
-          if (yych <= 0x7F)
-            goto yy1662;
-          goto yy1633;
-        }
-      } else {
-        if (yych <= 0xED) {
-          if (yych <= 0xDF)
-            goto yy1664;
-          if (yych <= 0xE0)
-            goto yy1665;
-          if (yych <= 0xEC)
-            goto yy1666;
-          goto yy1670;
-        } else {
-          if (yych <= 0xF0) {
-            if (yych <= 0xEF)
-              goto yy1666;
-            goto yy1667;
-          } else {
-            if (yych <= 0xF3)
-              goto yy1668;
-            if (yych <= 0xF4)
-              goto yy1669;
-            goto yy1633;
-          }
-        }
-      }
-    }
-  yy1694:
-    ++p;
-    yych = *p;
-    if (yych <= '@') {
-      if (yych <= '&') {
-        if (yych <= 0x1F) {
-          if (yych <= 0x00)
-            goto yy1633;
-          if (yych <= 0x08)
-            goto yy1662;
-          if (yych <= '\r')
-            goto yy1694;
-          goto yy1662;
-        } else {
-          if (yych <= ' ')
-            goto yy1694;
-          if (yych == '"')
-            goto yy1633;
-          goto yy1662;
-        }
-      } else {
-        if (yych <= ';') {
-          if (yych <= '\'')
-            goto yy1633;
-          if (yych == ':')
-            goto yy1692;
-          goto yy1662;
-        } else {
-          if (yych <= '<')
-            goto yy1633;
-          if (yych <= '=')
-            goto yy1660;
-          if (yych <= '>')
-            goto yy1647;
-          goto yy1662;
-        }
-      }
-    } else {
-      if (yych <= 0xDF) {
-        if (yych <= '`') {
-          if (yych <= 'Z')
-            goto yy1692;
-          if (yych <= '^')
-            goto yy1662;
-          if (yych <= '_')
-            goto yy1692;
-          goto yy1633;
-        } else {
-          if (yych <= 'z')
-            goto yy1692;
-          if (yych <= 0x7F)
-            goto yy1662;
-          if (yych <= 0xC1)
-            goto yy1633;
-          goto yy1664;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych <= 0xE0)
-            goto yy1665;
-          if (yych == 0xED)
-            goto yy1670;
-          goto yy1666;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1667;
-          if (yych <= 0xF3)
-            goto yy1668;
-          if (yych <= 0xF4)
-            goto yy1669;
-          goto yy1633;
-        }
-      }
-    }
-  yy1696:
-    ++p;
-    yych = *p;
-    if (yych <= '@') {
-      if (yych <= '"') {
-        if (yych <= '\r') {
-          if (yych <= 0x00)
-            goto yy1633;
-          if (yych <= 0x08)
-            goto yy1662;
-          goto yy1696;
-        } else {
-          if (yych == ' ')
-            goto yy1696;
-          if (yych <= '!')
-            goto yy1662;
-          goto yy1673;
-        }
-      } else {
-        if (yych <= ':') {
-          if (yych == '\'')
-            goto yy1671;
-          if (yych <= '9')
-            goto yy1662;
-          goto yy1692;
-        } else {
-          if (yych <= ';')
-            goto yy1662;
-          if (yych <= '=')
-            goto yy1633;
-          if (yych <= '>')
-            goto yy1647;
-          goto yy1662;
-        }
-      }
-    } else {
-      if (yych <= 0xDF) {
-        if (yych <= '`') {
-          if (yych <= 'Z')
-            goto yy1692;
-          if (yych <= '^')
-            goto yy1662;
-          if (yych <= '_')
-            goto yy1692;
-          goto yy1633;
-        } else {
-          if (yych <= 'z')
-            goto yy1692;
-          if (yych <= 0x7F)
-            goto yy1662;
-          if (yych <= 0xC1)
-            goto yy1633;
-          goto yy1664;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych <= 0xE0)
-            goto yy1665;
-          if (yych == 0xED)
-            goto yy1670;
-          goto yy1666;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1667;
-          if (yych <= 0xF3)
-            goto yy1668;
-          if (yych <= 0xF4)
-            goto yy1669;
-          goto yy1633;
-        }
-      }
-    }
-  }
-}
-
-// 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 yy1701;
-      } else {
-        if (yych <= '<')
-          goto yy1702;
-        if (yych <= 0x7F)
-          goto yy1701;
-        if (yych >= 0xC2)
-          goto yy1703;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1705;
-        if (yych == 0xED)
-          goto yy1710;
-        goto yy1706;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1707;
-        if (yych <= 0xF3)
-          goto yy1708;
-        if (yych <= 0xF4)
-          goto yy1709;
-      }
-    }
-  yy1700 : { return 0; }
-  yy1701:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1700;
-      goto yy1715;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1700;
-      if (yych <= 0xF4)
-        goto yy1715;
-      goto yy1700;
-    }
-  yy1702:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= '/') {
-      if (yych == '\n')
-        goto yy1700;
-      if (yych <= '.')
-        goto yy1715;
-      goto yy1711;
-    } else {
-      if (yych <= 0x7F)
-        goto yy1715;
-      if (yych <= 0xC1)
-        goto yy1700;
-      if (yych <= 0xF4)
-        goto yy1715;
-      goto yy1700;
-    }
-  yy1703:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1701;
-  yy1704:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy1700;
-    } else {
-      goto yy1732;
-    }
-  yy1705:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1703;
-    goto yy1704;
-  yy1706:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1703;
-    goto yy1704;
-  yy1707:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1706;
-    goto yy1704;
-  yy1708:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1706;
-    goto yy1704;
-  yy1709:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0x8F)
-      goto yy1706;
-    goto yy1704;
-  yy1710:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0x9F)
-      goto yy1703;
-    goto yy1704;
-  yy1711:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 's') {
-      if (yych <= 'R') {
-        if (yych <= '\n') {
-          if (yych <= '\t')
-            goto yy1714;
-          goto yy1704;
-        } else {
-          if (yych == 'P')
-            goto yy1723;
-          goto yy1714;
-        }
-      } else {
-        if (yych <= 'o') {
-          if (yych <= 'S')
-            goto yy1724;
-          goto yy1714;
-        } else {
-          if (yych <= 'p')
-            goto yy1723;
-          if (yych <= 'r')
-            goto yy1714;
-          goto yy1724;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= 0x7F)
-            goto yy1714;
-          goto yy1704;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1716;
-          if (yych <= 0xE0)
-            goto yy1717;
-          goto yy1718;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1722;
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1712:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '.') {
-        if (yych == '\n')
-          goto yy1704;
-      } else {
-        if (yych <= '/')
-          goto yy1711;
-        if (yych <= 0x7F)
-          goto yy1714;
-        if (yych <= 0xC1)
-          goto yy1704;
-        goto yy1716;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych == 0xED)
-          goto yy1722;
-        goto yy1718;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1719;
-        if (yych <= 0xF3)
-          goto yy1720;
-        if (yych <= 0xF4)
-          goto yy1721;
-        goto yy1704;
-      }
-    }
-  yy1714:
-    ++p;
-    yych = *p;
-  yy1715:
-    if (yybm[0 + yych] & 128) {
-      goto yy1714;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1704;
-        if (yych <= '<')
-          goto yy1712;
-        goto yy1704;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        goto yy1718;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1722;
-        if (yych <= 0xEF)
-          goto yy1718;
-        goto yy1719;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1720;
-        if (yych <= 0xF4)
-          goto yy1721;
-        goto yy1704;
-      }
-    }
-  yy1716:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1714;
-    goto yy1704;
-  yy1717:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1716;
-    goto yy1704;
-  yy1718:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1716;
-    goto yy1704;
-  yy1719:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1718;
-    goto yy1704;
-  yy1720:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0xBF)
-      goto yy1718;
-    goto yy1704;
-  yy1721:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0x8F)
-      goto yy1718;
-    goto yy1704;
-  yy1722:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1704;
-    if (yych <= 0x9F)
-      goto yy1716;
-    goto yy1704;
-  yy1723:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'R') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'Q')
-          goto yy1714;
-        goto yy1735;
-      } else {
-        if (yych == 'r')
-          goto yy1735;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1724:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 't') {
-      if (yych <= 'S') {
-        if (yych <= '\n') {
-          if (yych <= '\t')
-            goto yy1714;
-          goto yy1704;
-        } else {
-          if (yych == 'C')
-            goto yy1726;
-          goto yy1714;
-        }
-      } else {
-        if (yych <= 'b') {
-          if (yych >= 'U')
-            goto yy1714;
-        } else {
-          if (yych <= 'c')
-            goto yy1726;
-          if (yych <= 's')
-            goto yy1714;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= 0x7F)
-            goto yy1714;
-          goto yy1704;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1716;
-          if (yych <= 0xE0)
-            goto yy1717;
-          goto yy1718;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1722;
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'Y') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'X')
-          goto yy1714;
-        goto yy1733;
-      } else {
-        if (yych == 'y')
-          goto yy1733;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1726:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'R') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'Q')
-          goto yy1714;
-      } else {
-        if (yych == 'r')
-          goto yy1727;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1727:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'I') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'H')
-          goto yy1714;
-      } else {
-        if (yych == 'i')
-          goto yy1728;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1728:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'P') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'O')
-          goto yy1714;
-      } else {
-        if (yych == 'p')
-          goto yy1729;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1729:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'T') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'S')
-          goto yy1714;
-      } else {
-        if (yych == 't')
-          goto yy1730;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1730:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '=') {
-        if (yych == '\n')
-          goto yy1704;
-        goto yy1714;
-      } else {
-        if (yych <= '>')
-          goto yy1731;
-        if (yych <= 0x7F)
-          goto yy1714;
-        if (yych <= 0xC1)
-          goto yy1704;
-        goto yy1716;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych == 0xED)
-          goto yy1722;
-        goto yy1718;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1719;
-        if (yych <= 0xF3)
-          goto yy1720;
-        if (yych <= 0xF4)
-          goto yy1721;
-        goto yy1704;
-      }
-    }
-  yy1731:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1714;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1732;
-        if (yych <= '<')
-          goto yy1712;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        goto yy1718;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1722;
-        if (yych <= 0xEF)
-          goto yy1718;
-        goto yy1719;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1720;
-        if (yych <= 0xF4)
-          goto yy1721;
-      }
-    }
-  yy1732 : { return (bufsize_t)(p - start); }
-  yy1733:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'L') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'K')
-          goto yy1714;
-      } else {
-        if (yych == 'l')
-          goto yy1734;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1734:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'E') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'D')
-          goto yy1714;
-        goto yy1730;
-      } else {
-        if (yych == 'e')
-          goto yy1730;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  yy1735:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1712;
-    }
-    if (yych <= 0xC1) {
-      if (yych <= 'E') {
-        if (yych == '\n')
-          goto yy1704;
-        if (yych <= 'D')
-          goto yy1714;
-        goto yy1730;
-      } else {
-        if (yych == 'e')
-          goto yy1730;
-        if (yych <= 0x7F)
-          goto yy1714;
-        goto yy1704;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1716;
-        if (yych <= 0xE0)
-          goto yy1717;
-        if (yych <= 0xEC)
-          goto yy1718;
-        goto yy1722;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1718;
-          goto yy1719;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1720;
-          if (yych <= 0xF4)
-            goto yy1721;
-          goto yy1704;
-        }
-      }
-    }
-  }
-}
-
-// 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 yy1739;
-      } else {
-        if (yych <= '-')
-          goto yy1740;
-        if (yych <= 0x7F)
-          goto yy1739;
-        if (yych >= 0xC2)
-          goto yy1741;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1743;
-        if (yych == 0xED)
-          goto yy1748;
-        goto yy1744;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1745;
-        if (yych <= 0xF3)
-          goto yy1746;
-        if (yych <= 0xF4)
-          goto yy1747;
-      }
-    }
-  yy1738 : { return 0; }
-  yy1739:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1738;
-      goto yy1752;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1738;
-      if (yych <= 0xF4)
-        goto yy1752;
-      goto yy1738;
-    }
-  yy1740:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 64) {
-      goto yy1749;
-    }
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1738;
-      goto yy1752;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1738;
-      if (yych <= 0xF4)
-        goto yy1752;
-      goto yy1738;
-    }
-  yy1741:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1739;
-  yy1742:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy1738;
-    } else {
-      goto yy1762;
-    }
-  yy1743:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1741;
-    goto yy1742;
-  yy1744:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1741;
-    goto yy1742;
-  yy1745:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1744;
-    goto yy1742;
-  yy1746:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1744;
-    goto yy1742;
-  yy1747:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0x8F)
-      goto yy1744;
-    goto yy1742;
-  yy1748:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0x9F)
-      goto yy1741;
-    goto yy1742;
-  yy1749:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1749;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '=') {
-        if (yych == '\n')
-          goto yy1742;
-      } else {
-        if (yych <= '>')
-          goto yy1761;
-        if (yych <= 0x7F)
-          goto yy1751;
-        if (yych <= 0xC1)
-          goto yy1742;
-        goto yy1753;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1754;
-        if (yych == 0xED)
-          goto yy1759;
-        goto yy1755;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1756;
-        if (yych <= 0xF3)
-          goto yy1757;
-        if (yych <= 0xF4)
-          goto yy1758;
-        goto yy1742;
-      }
-    }
-  yy1751:
-    ++p;
-    yych = *p;
-  yy1752:
-    if (yybm[0 + yych] & 128) {
-      goto yy1751;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1742;
-        if (yych <= '-')
-          goto yy1760;
-        goto yy1742;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1753;
-        if (yych <= 0xE0)
-          goto yy1754;
-        goto yy1755;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1759;
-        if (yych <= 0xEF)
-          goto yy1755;
-        goto yy1756;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1757;
-        if (yych <= 0xF4)
-          goto yy1758;
-        goto yy1742;
-      }
-    }
-  yy1753:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1751;
-    goto yy1742;
-  yy1754:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1753;
-    goto yy1742;
-  yy1755:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1753;
-    goto yy1742;
-  yy1756:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1755;
-    goto yy1742;
-  yy1757:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0xBF)
-      goto yy1755;
-    goto yy1742;
-  yy1758:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0x8F)
-      goto yy1755;
-    goto yy1742;
-  yy1759:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1742;
-    if (yych <= 0x9F)
-      goto yy1753;
-    goto yy1742;
-  yy1760:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1751;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1742;
-        if (yych <= '-')
-          goto yy1749;
-        goto yy1742;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1753;
-        if (yych <= 0xE0)
-          goto yy1754;
-        goto yy1755;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1759;
-        if (yych <= 0xEF)
-          goto yy1755;
-        goto yy1756;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1757;
-        if (yych <= 0xF4)
-          goto yy1758;
-        goto yy1742;
-      }
-    }
-  yy1761:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1751;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1762;
-        if (yych <= '-')
-          goto yy1760;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1753;
-        if (yych <= 0xE0)
-          goto yy1754;
-        goto yy1755;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1759;
-        if (yych <= 0xEF)
-          goto yy1755;
-        goto yy1756;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1757;
-        if (yych <= 0xF4)
-          goto yy1758;
-      }
-    }
-  yy1762 : { 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 yy1766;
-      } else {
-        if (yych <= '?')
-          goto yy1767;
-        if (yych <= 0x7F)
-          goto yy1766;
-        if (yych >= 0xC2)
-          goto yy1768;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1770;
-        if (yych == 0xED)
-          goto yy1775;
-        goto yy1771;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1772;
-        if (yych <= 0xF3)
-          goto yy1773;
-        if (yych <= 0xF4)
-          goto yy1774;
-      }
-    }
-  yy1765 : { return 0; }
-  yy1766:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1765;
-      goto yy1781;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1765;
-      if (yych <= 0xF4)
-        goto yy1781;
-      goto yy1765;
-    }
-  yy1767:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= '>') {
-      if (yych == '\n')
-        goto yy1765;
-      if (yych <= '=')
-        goto yy1781;
-      goto yy1776;
-    } else {
-      if (yych <= 0x7F)
-        goto yy1781;
-      if (yych <= 0xC1)
-        goto yy1765;
-      if (yych <= 0xF4)
-        goto yy1781;
-      goto yy1765;
-    }
-  yy1768:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1766;
-  yy1769:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy1765;
-    } else {
-      goto yy1777;
-    }
-  yy1770:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1768;
-    goto yy1769;
-  yy1771:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1768;
-    goto yy1769;
-  yy1772:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1771;
-    goto yy1769;
-  yy1773:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1771;
-    goto yy1769;
-  yy1774:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0x8F)
-      goto yy1771;
-    goto yy1769;
-  yy1775:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0x9F)
-      goto yy1768;
-    goto yy1769;
-  yy1776:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1780;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1777;
-        if (yych <= '?')
-          goto yy1778;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1782;
-        if (yych <= 0xE0)
-          goto yy1783;
-        goto yy1784;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1788;
-        if (yych <= 0xEF)
-          goto yy1784;
-        goto yy1785;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1786;
-        if (yych <= 0xF4)
-          goto yy1787;
-      }
-    }
-  yy1777 : { return (bufsize_t)(p - start); }
-  yy1778:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1778;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '=') {
-        if (yych == '\n')
-          goto yy1769;
-      } else {
-        if (yych <= '>')
-          goto yy1776;
-        if (yych <= 0x7F)
-          goto yy1780;
-        if (yych <= 0xC1)
-          goto yy1769;
-        goto yy1782;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1783;
-        if (yych == 0xED)
-          goto yy1788;
-        goto yy1784;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1785;
-        if (yych <= 0xF3)
-          goto yy1786;
-        if (yych <= 0xF4)
-          goto yy1787;
-        goto yy1769;
-      }
-    }
-  yy1780:
-    ++p;
-    yych = *p;
-  yy1781:
-    if (yybm[0 + yych] & 128) {
-      goto yy1780;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1769;
-        if (yych <= '?')
-          goto yy1778;
-        goto yy1769;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1782;
-        if (yych <= 0xE0)
-          goto yy1783;
-        goto yy1784;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1788;
-        if (yych <= 0xEF)
-          goto yy1784;
-        goto yy1785;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1786;
-        if (yych <= 0xF4)
-          goto yy1787;
-        goto yy1769;
-      }
-    }
-  yy1782:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1780;
-    goto yy1769;
-  yy1783:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1782;
-    goto yy1769;
-  yy1784:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1782;
-    goto yy1769;
-  yy1785:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1784;
-    goto yy1769;
-  yy1786:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0xBF)
-      goto yy1784;
-    goto yy1769;
-  yy1787:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0x8F)
-      goto yy1784;
-    goto yy1769;
-  yy1788:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1769;
-    if (yych <= 0x9F)
-      goto yy1782;
-    goto yy1769;
-  }
-}
-
-// 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 yy1792;
-      } else {
-        if (yych <= '>')
-          goto yy1793;
-        if (yych <= 0x7F)
-          goto yy1792;
-        if (yych >= 0xC2)
-          goto yy1795;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1797;
-        if (yych == 0xED)
-          goto yy1802;
-        goto yy1798;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1799;
-        if (yych <= 0xF3)
-          goto yy1800;
-        if (yych <= 0xF4)
-          goto yy1801;
-      }
-    }
-  yy1791 : { return 0; }
-  yy1792:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1791;
-      goto yy1806;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1791;
-      if (yych <= 0xF4)
-        goto yy1806;
-      goto yy1791;
-    }
-  yy1793:
-    yyaccept = 1;
-    yych = *(marker = ++p);
-    if (yych <= 0x7F) {
-      if (yych != '\n')
-        goto yy1806;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1794;
-      if (yych <= 0xF4)
-        goto yy1806;
-    }
-  yy1794 : { return (bufsize_t)(p - start); }
-  yy1795:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1792;
-  yy1796:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy1791;
-    } else {
-      goto yy1794;
-    }
-  yy1797:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1795;
-    goto yy1796;
-  yy1798:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1795;
-    goto yy1796;
-  yy1799:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1798;
-    goto yy1796;
-  yy1800:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1798;
-    goto yy1796;
-  yy1801:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0x8F)
-      goto yy1798;
-    goto yy1796;
-  yy1802:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0x9F)
-      goto yy1795;
-    goto yy1796;
-  yy1803:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1805;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1794;
-        if (yych <= '>')
-          goto yy1803;
-        goto yy1794;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1807;
-        if (yych <= 0xE0)
-          goto yy1808;
-        goto yy1809;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1813;
-        if (yych <= 0xEF)
-          goto yy1809;
-        goto yy1810;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1811;
-        if (yych <= 0xF4)
-          goto yy1812;
-        goto yy1794;
-      }
-    }
-  yy1805:
-    ++p;
-    yych = *p;
-  yy1806:
-    if (yybm[0 + yych] & 128) {
-      goto yy1805;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1796;
-        if (yych <= '>')
-          goto yy1803;
-        goto yy1796;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1807;
-        if (yych <= 0xE0)
-          goto yy1808;
-        goto yy1809;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1813;
-        if (yych <= 0xEF)
-          goto yy1809;
-        goto yy1810;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1811;
-        if (yych <= 0xF4)
-          goto yy1812;
-        goto yy1796;
-      }
-    }
-  yy1807:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1805;
-    goto yy1796;
-  yy1808:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1807;
-    goto yy1796;
-  yy1809:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1807;
-    goto yy1796;
-  yy1810:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1809;
-    goto yy1796;
-  yy1811:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0xBF)
-      goto yy1809;
-    goto yy1796;
-  yy1812:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0x8F)
-      goto yy1809;
-    goto yy1796;
-  yy1813:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1796;
-    if (yych <= 0x9F)
-      goto yy1807;
-    goto yy1796;
-  }
-}
-
-// 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 yy1817;
-      } else {
-        if (yych <= ']')
-          goto yy1818;
-        if (yych <= 0x7F)
-          goto yy1817;
-        if (yych >= 0xC2)
-          goto yy1819;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1821;
-        if (yych == 0xED)
-          goto yy1826;
-        goto yy1822;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1823;
-        if (yych <= 0xF3)
-          goto yy1824;
-        if (yych <= 0xF4)
-          goto yy1825;
-      }
-    }
-  yy1816 : { return 0; }
-  yy1817:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1816;
-      goto yy1830;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1816;
-      if (yych <= 0xF4)
-        goto yy1830;
-      goto yy1816;
-    }
-  yy1818:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 64) {
-      goto yy1827;
-    }
-    if (yych <= 0x7F) {
-      if (yych == '\n')
-        goto yy1816;
-      goto yy1830;
-    } else {
-      if (yych <= 0xC1)
-        goto yy1816;
-      if (yych <= 0xF4)
-        goto yy1830;
-      goto yy1816;
-    }
-  yy1819:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1817;
-  yy1820:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy1816;
-    } else {
-      goto yy1840;
-    }
-  yy1821:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1819;
-    goto yy1820;
-  yy1822:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1819;
-    goto yy1820;
-  yy1823:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1822;
-    goto yy1820;
-  yy1824:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1822;
-    goto yy1820;
-  yy1825:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0x8F)
-      goto yy1822;
-    goto yy1820;
-  yy1826:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0x9F)
-      goto yy1819;
-    goto yy1820;
-  yy1827:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1827;
-    }
-    if (yych <= 0xDF) {
-      if (yych <= '=') {
-        if (yych == '\n')
-          goto yy1820;
-      } else {
-        if (yych <= '>')
-          goto yy1839;
-        if (yych <= 0x7F)
-          goto yy1829;
-        if (yych <= 0xC1)
-          goto yy1820;
-        goto yy1831;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1832;
-        if (yych == 0xED)
-          goto yy1837;
-        goto yy1833;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1834;
-        if (yych <= 0xF3)
-          goto yy1835;
-        if (yych <= 0xF4)
-          goto yy1836;
-        goto yy1820;
-      }
-    }
-  yy1829:
-    ++p;
-    yych = *p;
-  yy1830:
-    if (yybm[0 + yych] & 128) {
-      goto yy1829;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1820;
-        if (yych <= ']')
-          goto yy1838;
-        goto yy1820;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1831;
-        if (yych <= 0xE0)
-          goto yy1832;
-        goto yy1833;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1837;
-        if (yych <= 0xEF)
-          goto yy1833;
-        goto yy1834;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1835;
-        if (yych <= 0xF4)
-          goto yy1836;
-        goto yy1820;
-      }
-    }
-  yy1831:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1829;
-    goto yy1820;
-  yy1832:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1831;
-    goto yy1820;
-  yy1833:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1831;
-    goto yy1820;
-  yy1834:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1833;
-    goto yy1820;
-  yy1835:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0xBF)
-      goto yy1833;
-    goto yy1820;
-  yy1836:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0x8F)
-      goto yy1833;
-    goto yy1820;
-  yy1837:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1820;
-    if (yych <= 0x9F)
-      goto yy1831;
-    goto yy1820;
-  yy1838:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1829;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1820;
-        if (yych <= ']')
-          goto yy1827;
-        goto yy1820;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1831;
-        if (yych <= 0xE0)
-          goto yy1832;
-        goto yy1833;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1837;
-        if (yych <= 0xEF)
-          goto yy1833;
-        goto yy1834;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1835;
-        if (yych <= 0xF4)
-          goto yy1836;
-        goto yy1820;
-      }
-    }
-  yy1839:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1829;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= '\n')
-          goto yy1840;
-        if (yych <= ']')
-          goto yy1838;
-      } else {
-        if (yych <= 0xDF)
-          goto yy1831;
-        if (yych <= 0xE0)
-          goto yy1832;
-        goto yy1833;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy1837;
-        if (yych <= 0xEF)
-          goto yy1833;
-        goto yy1834;
-      } else {
-        if (yych <= 0xF3)
-          goto yy1835;
-        if (yych <= 0xF4)
-          goto yy1836;
-      }
-    }
-  yy1840 : { 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 yy1844;
-          goto yy1860;
-        } else {
-          if (yych <= '\r')
-            goto yy1846;
-          if (yych <= 0x1F)
-            goto yy1860;
-          goto yy1846;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= '\'')
-            goto yy1849;
-          if (yych <= '(')
-            goto yy1858;
-          goto yy1860;
-        } else {
-          if (yych == '<')
-            goto yy1847;
-          goto yy1849;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1848;
-          if (yych <= 0x7F)
-            goto yy1849;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1850;
-          if (yych <= 0xE0)
-            goto yy1852;
-          goto yy1853;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1857;
-          if (yych <= 0xEF)
-            goto yy1853;
-          goto yy1854;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1855;
-          if (yych <= 0xF4)
-            goto yy1856;
-        }
-      }
-    }
-  yy1843 : { return (bufsize_t)(p - start); }
-  yy1844:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-  yy1845:
-    if (yybm[0 + yych] & 8) {
-      goto yy1844;
-    }
-    if (yych <= 0x7F) {
-      if (yych <= ')') {
-        if (yych <= 0x1F)
-          goto yy1843;
-        if (yych <= '\'')
-          goto yy1872;
-        if (yych <= '(')
-          goto yy1863;
-        goto yy1843;
-      } else {
-        if (yych <= '<') {
-          if (yych <= ';')
-            goto yy1872;
-          goto yy1896;
-        } else {
-          if (yych == '\\')
-            goto yy1874;
-          goto yy1872;
-        }
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF) {
-          if (yych <= 0xC1)
-            goto yy1843;
-          goto yy1876;
-        } else {
-          if (yych <= 0xE0)
-            goto yy1877;
-          if (yych <= 0xEC)
-            goto yy1878;
-          goto yy1882;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1878;
-          goto yy1879;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1880;
-          if (yych <= 0xF4)
-            goto yy1881;
-          goto yy1843;
-        }
-      }
-    }
-  yy1846:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    goto yy1845;
-  yy1847:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 64) {
-      goto yy1896;
-    }
-    if (yych <= '>') {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1843;
-          goto yy1909;
-        } else {
-          if (yych <= '\n')
-            goto yy1843;
-          if (yych <= '\f')
-            goto yy1909;
-          goto yy1843;
-        }
-      } else {
-        if (yych <= '(') {
-          if (yych <= ' ')
-            goto yy1909;
-          goto yy1907;
-        } else {
-          if (yych <= ')')
-            goto yy1909;
-          if (yych <= '<')
-            goto yy1872;
-          goto yy1898;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1894;
-          goto yy1843;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1900;
-          if (yych <= 0xE0)
-            goto yy1901;
-          goto yy1902;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1906;
-          if (yych <= 0xEF)
-            goto yy1902;
-          goto yy1903;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1904;
-          if (yych <= 0xF4)
-            goto yy1905;
-          goto yy1843;
-        }
-      }
-    }
-  yy1848:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= '\'')
-      goto yy1873;
-    if (yych <= '(')
-      goto yy1883;
-    if (yych <= ')')
-      goto yy1872;
-    goto yy1873;
-  yy1849:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    goto yy1873;
-  yy1850:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1849;
-  yy1851:
-    p = marker;
-    if (yyaccept <= 1) {
-      if (yyaccept == 0) {
-        goto yy1843;
-      } else {
-        goto yy1859;
-      }
-    } else {
-      goto yy1899;
-    }
-  yy1852:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1850;
-    goto yy1851;
-  yy1853:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1850;
-    goto yy1851;
-  yy1854:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1853;
-    goto yy1851;
-  yy1855:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1853;
-    goto yy1851;
-  yy1856:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x8F)
-      goto yy1853;
-    goto yy1851;
-  yy1857:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x9F)
-      goto yy1850;
-    goto yy1851;
-  yy1858:
-    yyaccept = 1;
-    yych = *(marker = ++p);
-    if (yych <= '(') {
-      if (yych <= ' ')
-        goto yy1859;
-      if (yych <= '\'')
-        goto yy1864;
-    } else {
-      if (yych <= 0x7F)
-        goto yy1864;
-      if (yych <= 0xC1)
-        goto yy1859;
-      if (yych <= 0xF4)
-        goto yy1864;
-    }
-  yy1859 : { return 0; }
-  yy1860:
-    yych = *++p;
-    goto yy1859;
-  yy1861:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 16) {
-      goto yy1861;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= ')') {
-        if (yych <= ' ')
-          goto yy1851;
-        if (yych >= ')')
-          goto yy1883;
-      } else {
-        if (yych <= 0x7F)
-          goto yy1863;
-        if (yych <= 0xC1)
-          goto yy1851;
-        if (yych <= 0xDF)
-          goto yy1865;
-        goto yy1866;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1871;
-        goto yy1867;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1868;
-        if (yych <= 0xF3)
-          goto yy1869;
-        if (yych <= 0xF4)
-          goto yy1870;
-        goto yy1851;
-      }
-    }
-  yy1863:
-    ++p;
-    yych = *p;
-  yy1864:
-    if (yybm[0 + yych] & 32) {
-      goto yy1863;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= '(')
-          goto yy1851;
-        if (yych <= ')')
-          goto yy1872;
-        goto yy1861;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1851;
-        if (yych >= 0xE0)
-          goto yy1866;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1871;
-        goto yy1867;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1868;
-        if (yych <= 0xF3)
-          goto yy1869;
-        if (yych <= 0xF4)
-          goto yy1870;
-        goto yy1851;
-      }
-    }
-  yy1865:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1863;
-    goto yy1851;
-  yy1866:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1865;
-    goto yy1851;
-  yy1867:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1865;
-    goto yy1851;
-  yy1868:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1867;
-    goto yy1851;
-  yy1869:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1867;
-    goto yy1851;
-  yy1870:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x8F)
-      goto yy1867;
-    goto yy1851;
-  yy1871:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x9F)
-      goto yy1865;
-    goto yy1851;
-  yy1872:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-  yy1873:
-    if (yych <= 0xC1) {
-      if (yych <= ')') {
-        if (yych <= ' ')
-          goto yy1843;
-        if (yych <= '\'')
-          goto yy1872;
-        if (yych <= '(')
-          goto yy1863;
-        goto yy1843;
-      } else {
-        if (yych == '\\')
-          goto yy1874;
-        if (yych <= 0x7F)
-          goto yy1872;
-        goto yy1843;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1876;
-        if (yych <= 0xE0)
-          goto yy1877;
-        if (yych <= 0xEC)
-          goto yy1878;
-        goto yy1882;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1878;
-          goto yy1879;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1880;
-          if (yych <= 0xF4)
-            goto yy1881;
-          goto yy1843;
-        }
-      }
-    }
-  yy1874:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-    if (yych <= 0xDF) {
-      if (yych <= '[') {
-        if (yych <= ' ')
-          goto yy1843;
-        if (yych == '(')
-          goto yy1883;
-        goto yy1872;
-      } else {
-        if (yych <= '\\')
-          goto yy1874;
-        if (yych <= 0x7F)
-          goto yy1872;
-        if (yych <= 0xC1)
-          goto yy1843;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy1877;
-        if (yych == 0xED)
-          goto yy1882;
-        goto yy1878;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1879;
-        if (yych <= 0xF3)
-          goto yy1880;
-        if (yych <= 0xF4)
-          goto yy1881;
-        goto yy1843;
-      }
-    }
-  yy1876:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1872;
-    goto yy1851;
-  yy1877:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1876;
-    goto yy1851;
-  yy1878:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1876;
-    goto yy1851;
-  yy1879:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1878;
-    goto yy1851;
-  yy1880:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1878;
-    goto yy1851;
-  yy1881:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x8F)
-      goto yy1878;
-    goto yy1851;
-  yy1882:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x9F)
-      goto yy1876;
-    goto yy1851;
-  yy1883:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-  yy1884:
-    if (yych <= 0xC1) {
-      if (yych <= ')') {
-        if (yych <= ' ')
-          goto yy1843;
-        if (yych <= '\'')
-          goto yy1883;
-        if (yych <= '(')
-          goto yy1863;
-        goto yy1872;
-      } else {
-        if (yych == '\\')
-          goto yy1885;
-        if (yych <= 0x7F)
-          goto yy1883;
-        goto yy1843;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1887;
-        if (yych <= 0xE0)
-          goto yy1888;
-        if (yych <= 0xEC)
-          goto yy1889;
-        goto yy1893;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1889;
-          goto yy1890;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1891;
-          if (yych <= 0xF4)
-            goto yy1892;
-          goto yy1843;
-        }
-      }
-    }
-  yy1885:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= ' ')
-          goto yy1843;
-        if (yych <= '[')
-          goto yy1883;
-        goto yy1885;
-      } else {
-        if (yych <= 0x7F)
-          goto yy1883;
-        if (yych <= 0xC1)
-          goto yy1843;
-        if (yych >= 0xE0)
-          goto yy1888;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1893;
-        goto yy1889;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1890;
-        if (yych <= 0xF3)
-          goto yy1891;
-        if (yych <= 0xF4)
-          goto yy1892;
-        goto yy1843;
-      }
-    }
-  yy1887:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1883;
-    goto yy1851;
-  yy1888:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1887;
-    goto yy1851;
-  yy1889:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1887;
-    goto yy1851;
-  yy1890:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1889;
-    goto yy1851;
-  yy1891:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1889;
-    goto yy1851;
-  yy1892:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x8F)
-      goto yy1889;
-    goto yy1851;
-  yy1893:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x9F)
-      goto yy1887;
-    goto yy1851;
-  yy1894:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-    if (yych <= '[') {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1843;
-          goto yy1909;
-        } else {
-          if (yych <= '\n')
-            goto yy1843;
-          if (yych <= '\f')
-            goto yy1909;
-          goto yy1843;
-        }
-      } else {
-        if (yych <= '(') {
-          if (yych <= ' ')
-            goto yy1909;
-          if (yych >= '(')
-            goto yy1932;
-        } else {
-          if (yych == '>')
-            goto yy1946;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1894;
-          if (yych >= 0x80)
-            goto yy1843;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1900;
-          if (yych <= 0xE0)
-            goto yy1901;
-          goto yy1902;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1906;
-          if (yych <= 0xEF)
-            goto yy1902;
-          goto yy1903;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1904;
-          if (yych <= 0xF4)
-            goto yy1905;
-          goto yy1843;
-        }
-      }
-    }
-  yy1896:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1896;
-    }
-    if (yych <= '>') {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1843;
-          goto yy1909;
-        } else {
-          if (yych <= '\n')
-            goto yy1843;
-          if (yych <= '\f')
-            goto yy1909;
-          goto yy1843;
-        }
-      } else {
-        if (yych <= '(') {
-          if (yych <= ' ')
-            goto yy1909;
-          goto yy1907;
-        } else {
-          if (yych <= ')')
-            goto yy1909;
-          if (yych <= '<')
-            goto yy1872;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1894;
-          goto yy1843;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1900;
-          if (yych <= 0xE0)
-            goto yy1901;
-          goto yy1902;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1906;
-          if (yych <= 0xEF)
-            goto yy1902;
-          goto yy1903;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1904;
-          if (yych <= 0xF4)
-            goto yy1905;
-          goto yy1843;
-        }
-      }
-    }
-  yy1898:
-    yyaccept = 2;
-    yych = *(marker = ++p);
-    if (yych <= ')') {
-      if (yych <= ' ')
-        goto yy1899;
-      if (yych <= '(')
-        goto yy1873;
-    } else {
-      if (yych <= 0x7F)
-        goto yy1873;
-      if (yych <= 0xC1)
-        goto yy1899;
-      if (yych <= 0xF4)
-        goto yy1873;
-    }
-  yy1899 : { return (bufsize_t)(p - start); }
-  yy1900:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1896;
-    goto yy1851;
-  yy1901:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1900;
-    goto yy1851;
-  yy1902:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1900;
-    goto yy1851;
-  yy1903:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1902;
-    goto yy1851;
-  yy1904:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1902;
-    goto yy1851;
-  yy1905:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x8F)
-      goto yy1902;
-    goto yy1851;
-  yy1906:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x9F)
-      goto yy1900;
-    goto yy1851;
-  yy1907:
-    ++p;
-    yych = *p;
-    if (yych <= '>') {
-      if (yych <= ' ') {
-        if (yych <= '\n') {
-          if (yych <= 0x00)
-            goto yy1851;
-          if (yych >= '\n')
-            goto yy1851;
-        } else {
-          if (yych == '\r')
-            goto yy1851;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= '\'')
-            goto yy1907;
-          if (yych >= ')')
-            goto yy1896;
-        } else {
-          if (yych == '<')
-            goto yy1863;
-          if (yych <= '=')
-            goto yy1907;
-          goto yy1922;
-        }
-      }
-    } else {
-      if (yych <= 0xE0) {
-        if (yych <= 0x7F) {
-          if (yych == '\\')
-            goto yy1923;
-          goto yy1907;
-        } else {
-          if (yych <= 0xC1)
-            goto yy1851;
-          if (yych <= 0xDF)
-            goto yy1925;
-          goto yy1926;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych == 0xED)
-            goto yy1931;
-          goto yy1927;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1928;
-          if (yych <= 0xF3)
-            goto yy1929;
-          if (yych <= 0xF4)
-            goto yy1930;
-          goto yy1851;
-        }
-      }
-    }
-  yy1909:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1909;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= '<')
-          goto yy1851;
-        if (yych >= '?')
-          goto yy1912;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1851;
-        if (yych <= 0xDF)
-          goto yy1914;
-        goto yy1915;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1920;
-        goto yy1916;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1917;
-        if (yych <= 0xF3)
-          goto yy1918;
-        if (yych <= 0xF4)
-          goto yy1919;
-        goto yy1851;
-      }
-    }
-  yy1911:
-    yych = *++p;
-    goto yy1899;
-  yy1912:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F) {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1851;
-          goto yy1909;
-        } else {
-          if (yych <= '\n')
-            goto yy1851;
-          if (yych <= '\f')
-            goto yy1909;
-          goto yy1851;
-        }
-      } else {
-        if (yych <= '>') {
-          if (yych <= '=')
-            goto yy1909;
-          goto yy1921;
-        } else {
-          if (yych == '\\')
-            goto yy1912;
-          goto yy1909;
-        }
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF) {
-          if (yych <= 0xC1)
-            goto yy1851;
-        } else {
-          if (yych <= 0xE0)
-            goto yy1915;
-          if (yych <= 0xEC)
-            goto yy1916;
-          goto yy1920;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1916;
-          goto yy1917;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1918;
-          if (yych <= 0xF4)
-            goto yy1919;
-          goto yy1851;
-        }
-      }
-    }
-  yy1914:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1909;
-    goto yy1851;
-  yy1915:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1914;
-    goto yy1851;
-  yy1916:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1914;
-    goto yy1851;
-  yy1917:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1916;
-    goto yy1851;
-  yy1918:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1916;
-    goto yy1851;
-  yy1919:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x8F)
-      goto yy1916;
-    goto yy1851;
-  yy1920:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x9F)
-      goto yy1914;
-    goto yy1851;
-  yy1921:
-    yyaccept = 2;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1909;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= '<')
-          goto yy1899;
-        if (yych <= '>')
-          goto yy1911;
-        goto yy1912;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1899;
-        if (yych <= 0xDF)
-          goto yy1914;
-        goto yy1915;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1920;
-        goto yy1916;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1917;
-        if (yych <= 0xF3)
-          goto yy1918;
-        if (yych <= 0xF4)
-          goto yy1919;
-        goto yy1899;
-      }
-    }
-  yy1922:
-    yyaccept = 2;
-    yych = *(marker = ++p);
-    if (yych <= '(') {
-      if (yych <= ' ')
-        goto yy1899;
-      if (yych <= '\'')
-        goto yy1864;
-      goto yy1899;
-    } else {
-      if (yych <= 0x7F)
-        goto yy1864;
-      if (yych <= 0xC1)
-        goto yy1899;
-      if (yych <= 0xF4)
-        goto yy1864;
-      goto yy1899;
-    }
-  yy1923:
-    ++p;
-    yych = *p;
-    if (yych <= '[') {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1851;
-          goto yy1909;
-        } else {
-          if (yych <= '\n')
-            goto yy1851;
-          if (yych <= '\f')
-            goto yy1909;
-          goto yy1851;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= ' ')
-            goto yy1909;
-          if (yych <= '(')
-            goto yy1907;
-          goto yy1932;
-        } else {
-          if (yych == '>')
-            goto yy1934;
-          goto yy1907;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1923;
-          if (yych <= 0x7F)
-            goto yy1907;
-          goto yy1851;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1925;
-          if (yych <= 0xE0)
-            goto yy1926;
-          goto yy1927;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1931;
-          if (yych <= 0xEF)
-            goto yy1927;
-          goto yy1928;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1929;
-          if (yych <= 0xF4)
-            goto yy1930;
-          goto yy1851;
-        }
-      }
-    }
-  yy1925:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1907;
-    goto yy1851;
-  yy1926:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1925;
-    goto yy1851;
-  yy1927:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1925;
-    goto yy1851;
-  yy1928:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1927;
-    goto yy1851;
-  yy1929:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1927;
-    goto yy1851;
-  yy1930:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x8F)
-      goto yy1927;
-    goto yy1851;
-  yy1931:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x9F)
-      goto yy1925;
-    goto yy1851;
-  yy1932:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-    if (yych <= '>') {
-      if (yych <= ' ') {
-        if (yych <= '\n') {
-          if (yych <= 0x00)
-            goto yy1843;
-          if (yych <= '\t')
-            goto yy1909;
-          goto yy1843;
-        } else {
-          if (yych == '\r')
-            goto yy1843;
-          goto yy1909;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= '\'')
-            goto yy1932;
-          if (yych <= '(')
-            goto yy1907;
-          goto yy1896;
-        } else {
-          if (yych == '<')
-            goto yy1883;
-          if (yych <= '=')
-            goto yy1932;
-          goto yy1935;
-        }
-      }
-    } else {
-      if (yych <= 0xE0) {
-        if (yych <= 0x7F) {
-          if (yych == '\\')
-            goto yy1936;
-          goto yy1932;
-        } else {
-          if (yych <= 0xC1)
-            goto yy1843;
-          if (yych <= 0xDF)
-            goto yy1938;
-          goto yy1939;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych == 0xED)
-            goto yy1944;
-          goto yy1940;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1941;
-          if (yych <= 0xF3)
-            goto yy1942;
-          if (yych <= 0xF4)
-            goto yy1943;
-          goto yy1843;
-        }
-      }
-    }
-  yy1934:
-    yyaccept = 2;
-    marker = ++p;
-    yych = *p;
-    if (yych <= '>') {
-      if (yych <= ' ') {
-        if (yych <= '\n') {
-          if (yych <= 0x00)
-            goto yy1899;
-          if (yych <= '\t')
-            goto yy1909;
-          goto yy1899;
-        } else {
-          if (yych == '\r')
-            goto yy1899;
-          goto yy1909;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= '\'')
-            goto yy1907;
-          if (yych <= '(')
-            goto yy1909;
-          goto yy1896;
-        } else {
-          if (yych == '<')
-            goto yy1863;
-          if (yych <= '=')
-            goto yy1907;
-          goto yy1922;
-        }
-      }
-    } else {
-      if (yych <= 0xE0) {
-        if (yych <= 0x7F) {
-          if (yych == '\\')
-            goto yy1923;
-          goto yy1907;
-        } else {
-          if (yych <= 0xC1)
-            goto yy1899;
-          if (yych <= 0xDF)
-            goto yy1925;
-          goto yy1926;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych == 0xED)
-            goto yy1931;
-          goto yy1927;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1928;
-          if (yych <= 0xF3)
-            goto yy1929;
-          if (yych <= 0xF4)
-            goto yy1930;
-          goto yy1899;
-        }
-      }
-    }
-  yy1935:
-    yyaccept = 2;
-    yych = *(marker = ++p);
-    if (yych <= ' ')
-      goto yy1899;
-    if (yych <= 0x7F)
-      goto yy1884;
-    if (yych <= 0xC1)
-      goto yy1899;
-    if (yych <= 0xF4)
-      goto yy1884;
-    goto yy1899;
-  yy1936:
-    yyaccept = 0;
-    marker = ++p;
-    yych = *p;
-    if (yych <= '\\') {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1843;
-          goto yy1909;
-        } else {
-          if (yych <= '\n')
-            goto yy1843;
-          if (yych <= '\f')
-            goto yy1909;
-          goto yy1843;
-        }
-      } else {
-        if (yych <= '=') {
-          if (yych <= ' ')
-            goto yy1909;
-          goto yy1932;
-        } else {
-          if (yych <= '>')
-            goto yy1945;
-          if (yych <= '[')
-            goto yy1932;
-          goto yy1936;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= 0x7F)
-            goto yy1932;
-          goto yy1843;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1938;
-          if (yych <= 0xE0)
-            goto yy1939;
-          goto yy1940;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1944;
-          if (yych <= 0xEF)
-            goto yy1940;
-          goto yy1941;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1942;
-          if (yych <= 0xF4)
-            goto yy1943;
-          goto yy1843;
-        }
-      }
-    }
-  yy1938:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1932;
-    goto yy1851;
-  yy1939:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1938;
-    goto yy1851;
-  yy1940:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1938;
-    goto yy1851;
-  yy1941:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1940;
-    goto yy1851;
-  yy1942:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0xBF)
-      goto yy1940;
-    goto yy1851;
-  yy1943:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x8F)
-      goto yy1940;
-    goto yy1851;
-  yy1944:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1851;
-    if (yych <= 0x9F)
-      goto yy1938;
-    goto yy1851;
-  yy1945:
-    yyaccept = 2;
-    marker = ++p;
-    yych = *p;
-    if (yych <= '>') {
-      if (yych <= ' ') {
-        if (yych <= '\n') {
-          if (yych <= 0x00)
-            goto yy1899;
-          if (yych <= '\t')
-            goto yy1909;
-          goto yy1899;
-        } else {
-          if (yych == '\r')
-            goto yy1899;
-          goto yy1909;
-        }
-      } else {
-        if (yych <= ')') {
-          if (yych <= '\'')
-            goto yy1932;
-          if (yych <= '(')
-            goto yy1907;
-          goto yy1896;
-        } else {
-          if (yych == '<')
-            goto yy1883;
-          if (yych <= '=')
-            goto yy1932;
-          goto yy1935;
-        }
-      }
-    } else {
-      if (yych <= 0xE0) {
-        if (yych <= 0x7F) {
-          if (yych == '\\')
-            goto yy1936;
-          goto yy1932;
-        } else {
-          if (yych <= 0xC1)
-            goto yy1899;
-          if (yych <= 0xDF)
-            goto yy1938;
-          goto yy1939;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych == 0xED)
-            goto yy1944;
-          goto yy1940;
-        } else {
-          if (yych <= 0xF0)
-            goto yy1941;
-          if (yych <= 0xF3)
-            goto yy1942;
-          if (yych <= 0xF4)
-            goto yy1943;
-          goto yy1899;
-        }
-      }
-    }
-  yy1946:
-    yyaccept = 2;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1896;
-    }
-    if (yych <= '>') {
-      if (yych <= '\r') {
-        if (yych <= '\t') {
-          if (yych <= 0x00)
-            goto yy1899;
-          goto yy1909;
-        } else {
-          if (yych <= '\n')
-            goto yy1899;
-          if (yych <= '\f')
-            goto yy1909;
-          goto yy1899;
-        }
-      } else {
-        if (yych <= '(') {
-          if (yych <= ' ')
-            goto yy1909;
-          goto yy1907;
-        } else {
-          if (yych <= ')')
-            goto yy1909;
-          if (yych <= '<')
-            goto yy1872;
-          goto yy1898;
-        }
-      }
-    } else {
-      if (yych <= 0xEC) {
-        if (yych <= 0xC1) {
-          if (yych <= '\\')
-            goto yy1894;
-          goto yy1899;
-        } else {
-          if (yych <= 0xDF)
-            goto yy1900;
-          if (yych <= 0xE0)
-            goto yy1901;
-          goto yy1902;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xED)
-            goto yy1906;
-          if (yych <= 0xEF)
-            goto yy1902;
-          goto yy1903;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1904;
-          if (yych <= 0xF4)
-            goto yy1905;
-          goto yy1899;
-        }
-      }
-    }
-  }
-}
-
-// 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 yy1949;
-        if (yych <= '!')
-          goto yy1953;
-        goto yy1950;
-      } else {
-        if (yych <= '\'') {
-          if (yych <= '&')
-            goto yy1953;
-          goto yy1951;
-        } else {
-          if (yych <= '(')
-            goto yy1952;
-          if (yych <= 0x7F)
-            goto yy1953;
-        }
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy1954;
-        if (yych <= 0xE0)
-          goto yy1956;
-        if (yych <= 0xEC)
-          goto yy1957;
-        goto yy1961;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy1957;
-          goto yy1958;
-        } else {
-          if (yych <= 0xF3)
-            goto yy1959;
-          if (yych <= 0xF4)
-            goto yy1960;
-        }
-      }
-    }
-  yy1949 : { return 0; }
-  yy1950:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x00)
-      goto yy1949;
-    if (yych <= 0x7F)
-      goto yy1993;
-    if (yych <= 0xC1)
-      goto yy1949;
-    if (yych <= 0xF4)
-      goto yy1993;
-    goto yy1949;
-  yy1951:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x00)
-      goto yy1949;
-    if (yych <= 0x7F)
-      goto yy1979;
-    if (yych <= 0xC1)
-      goto yy1949;
-    if (yych <= 0xF4)
-      goto yy1979;
-    goto yy1949;
-  yy1952:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych <= 0x00)
-      goto yy1949;
-    if (yych <= 0x7F)
-      goto yy1965;
-    if (yych <= 0xC1)
-      goto yy1949;
-    if (yych <= 0xF4)
-      goto yy1965;
-    goto yy1949;
-  yy1953:
-    yych = *++p;
-    goto yy1949;
-  yy1954:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1953;
-  yy1955:
-    p = marker;
-    if (yyaccept <= 1) {
-      if (yyaccept == 0) {
-        goto yy1949;
-      } else {
-        goto yy1974;
-      }
-    } else {
-      if (yyaccept == 2) {
-        goto yy1988;
-      } else {
-        goto yy2002;
-      }
-    }
-  yy1956:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1954;
-    goto yy1955;
-  yy1957:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1954;
-    goto yy1955;
-  yy1958:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1957;
-    goto yy1955;
-  yy1959:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1957;
-    goto yy1955;
-  yy1960:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0x8F)
-      goto yy1957;
-    goto yy1955;
-  yy1961:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0x9F)
-      goto yy1954;
-    goto yy1955;
-  yy1962:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1964;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1955;
-        if (yych <= ')')
-          goto yy1975;
-        goto yy1962;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1955;
-        if (yych <= 0xDF)
-          goto yy1966;
-        goto yy1967;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1972;
-        goto yy1968;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1969;
-        if (yych <= 0xF3)
-          goto yy1970;
-        if (yych <= 0xF4)
-          goto yy1971;
-        goto yy1955;
-      }
-    }
-  yy1964:
-    ++p;
-    yych = *p;
-  yy1965:
-    if (yybm[0 + yych] & 32) {
-      goto yy1964;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1955;
-        if (yych <= ')')
-          goto yy1973;
-        goto yy1962;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1955;
-        if (yych >= 0xE0)
-          goto yy1967;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1972;
-        goto yy1968;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1969;
-        if (yych <= 0xF3)
-          goto yy1970;
-        if (yych <= 0xF4)
-          goto yy1971;
-        goto yy1955;
-      }
-    }
-  yy1966:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1964;
-    goto yy1955;
-  yy1967:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1966;
-    goto yy1955;
-  yy1968:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1966;
-    goto yy1955;
-  yy1969:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1968;
-    goto yy1955;
-  yy1970:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1968;
-    goto yy1955;
-  yy1971:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0x8F)
-      goto yy1968;
-    goto yy1955;
-  yy1972:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0x9F)
-      goto yy1966;
-    goto yy1955;
-  yy1973:
-    ++p;
-  yy1974 : { return (bufsize_t)(p - start); }
-  yy1975:
-    yyaccept = 1;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy1964;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1974;
-        if (yych <= ')')
-          goto yy1973;
-        goto yy1962;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1974;
-        if (yych <= 0xDF)
-          goto yy1966;
-        goto yy1967;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1972;
-        goto yy1968;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1969;
-        if (yych <= 0xF3)
-          goto yy1970;
-        if (yych <= 0xF4)
-          goto yy1971;
-        goto yy1974;
-      }
-    }
-  yy1976:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1978;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1955;
-        if (yych <= '\'')
-          goto yy1989;
-        goto yy1976;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1955;
-        if (yych <= 0xDF)
-          goto yy1980;
-        goto yy1981;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1986;
-        goto yy1982;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1983;
-        if (yych <= 0xF3)
-          goto yy1984;
-        if (yych <= 0xF4)
-          goto yy1985;
-        goto yy1955;
-      }
-    }
-  yy1978:
-    ++p;
-    yych = *p;
-  yy1979:
-    if (yybm[0 + yych] & 64) {
-      goto yy1978;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1955;
-        if (yych <= '\'')
-          goto yy1987;
-        goto yy1976;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1955;
-        if (yych >= 0xE0)
-          goto yy1981;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1986;
-        goto yy1982;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1983;
-        if (yych <= 0xF3)
-          goto yy1984;
-        if (yych <= 0xF4)
-          goto yy1985;
-        goto yy1955;
-      }
-    }
-  yy1980:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1978;
-    goto yy1955;
-  yy1981:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1980;
-    goto yy1955;
-  yy1982:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1980;
-    goto yy1955;
-  yy1983:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1982;
-    goto yy1955;
-  yy1984:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1982;
-    goto yy1955;
-  yy1985:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0x8F)
-      goto yy1982;
-    goto yy1955;
-  yy1986:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0x9F)
-      goto yy1980;
-    goto yy1955;
-  yy1987:
-    ++p;
-  yy1988 : { return (bufsize_t)(p - start); }
-  yy1989:
-    yyaccept = 2;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy1978;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1988;
-        if (yych <= '\'')
-          goto yy1987;
-        goto yy1976;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1988;
-        if (yych <= 0xDF)
-          goto yy1980;
-        goto yy1981;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy1986;
-        goto yy1982;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1983;
-        if (yych <= 0xF3)
-          goto yy1984;
-        if (yych <= 0xF4)
-          goto yy1985;
-        goto yy1988;
-      }
-    }
-  yy1990:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1992;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1955;
-        if (yych <= '"')
-          goto yy2003;
-        goto yy1990;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1955;
-        if (yych <= 0xDF)
-          goto yy1994;
-        goto yy1995;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2000;
-        goto yy1996;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1997;
-        if (yych <= 0xF3)
-          goto yy1998;
-        if (yych <= 0xF4)
-          goto yy1999;
-        goto yy1955;
-      }
-    }
-  yy1992:
-    ++p;
-    yych = *p;
-  yy1993:
-    if (yybm[0 + yych] & 128) {
-      goto yy1992;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy1955;
-        if (yych <= '"')
-          goto yy2001;
-        goto yy1990;
-      } else {
-        if (yych <= 0xC1)
-          goto yy1955;
-        if (yych >= 0xE0)
-          goto yy1995;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2000;
-        goto yy1996;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1997;
-        if (yych <= 0xF3)
-          goto yy1998;
-        if (yych <= 0xF4)
-          goto yy1999;
-        goto yy1955;
-      }
-    }
-  yy1994:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1992;
-    goto yy1955;
-  yy1995:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1994;
-    goto yy1955;
-  yy1996:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1994;
-    goto yy1955;
-  yy1997:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1996;
-    goto yy1955;
-  yy1998:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0xBF)
-      goto yy1996;
-    goto yy1955;
-  yy1999:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0x8F)
-      goto yy1996;
-    goto yy1955;
-  yy2000:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy1955;
-    if (yych <= 0x9F)
-      goto yy1994;
-    goto yy1955;
-  yy2001:
-    ++p;
-  yy2002 : { return (bufsize_t)(p - start); }
-  yy2003:
-    yyaccept = 3;
-    marker = ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy1992;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '\\') {
-        if (yych <= 0x00)
-          goto yy2002;
-        if (yych <= '"')
-          goto yy2001;
-        goto yy1990;
-      } else {
-        if (yych <= 0xC1)
-          goto yy2002;
-        if (yych <= 0xDF)
-          goto yy1994;
-        goto yy1995;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2000;
-        goto yy1996;
-      } else {
-        if (yych <= 0xF0)
-          goto yy1997;
-        if (yych <= 0xF3)
-          goto yy1998;
-        if (yych <= 0xF4)
-          goto yy1999;
-        goto yy2002;
-      }
-    }
-  }
-}
-
-// 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 yy2010;
-        if (yych == '\n')
-          goto yy2008;
-        goto yy2007;
-      } else {
-        if (yych == ' ')
-          goto yy2007;
-        if (yych <= 0x7F)
-          goto yy2010;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy2012;
-        if (yych <= 0xE0)
-          goto yy2014;
-        if (yych <= 0xEC)
-          goto yy2015;
-        goto yy2019;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy2015;
-          goto yy2016;
-        } else {
-          if (yych <= 0xF3)
-            goto yy2017;
-          if (yych <= 0xF4)
-            goto yy2018;
-        }
-      }
-    }
-  yy2006 : { return (bufsize_t)(p - start); }
-  yy2007:
-    yych = *++p;
-    goto yy2009;
-  yy2008:
-    ++p;
-    yych = *p;
-  yy2009:
-    if (yybm[0 + yych] & 128) {
-      goto yy2008;
-    }
-    goto yy2006;
-  yy2010:
-    ++p;
-    { return 0; }
-  yy2012:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2013;
-    if (yych <= 0xBF)
-      goto yy2010;
-  yy2013:
-    p = marker;
-    goto yy2006;
-  yy2014:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2013;
-    if (yych <= 0xBF)
-      goto yy2012;
-    goto yy2013;
-  yy2015:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2013;
-    if (yych <= 0xBF)
-      goto yy2012;
-    goto yy2013;
-  yy2016:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2013;
-    if (yych <= 0xBF)
-      goto yy2015;
-    goto yy2013;
-  yy2017:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2013;
-    if (yych <= 0xBF)
-      goto yy2015;
-    goto yy2013;
-  yy2018:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2013;
-    if (yych <= 0x8F)
-      goto yy2015;
-    goto yy2013;
-  yy2019:
-    ++p;
-    if ((yych = *p) <= 0x7F)
-      goto yy2013;
-    if (yych <= 0x9F)
-      goto yy2012;
-    goto yy2013;
-  }
-}
-
-// Match ATX heading start.
-bufsize_t _scan_atx_heading_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 yy2024;
-      } else {
-        if (yych <= '#')
-          goto yy2023;
-        if (yych <= 0x7F)
-          goto yy2024;
-        if (yych >= 0xC2)
-          goto yy2025;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy2027;
-        if (yych == 0xED)
-          goto yy2032;
-        goto yy2028;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2029;
-        if (yych <= 0xF3)
-          goto yy2030;
-        if (yych <= 0xF4)
-          goto yy2031;
-      }
-    }
-  yy2022 : { return 0; }
-  yy2023:
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 128) {
-      goto yy2035;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2033;
-      goto yy2022;
-    } else {
-      if (yych <= '\r')
-        goto yy2033;
-      if (yych == '#')
-        goto yy2037;
-      goto yy2022;
-    }
-  yy2024:
-    yych = *++p;
-    goto yy2022;
-  yy2025:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2026;
-    if (yych <= 0xBF)
-      goto yy2024;
-  yy2026:
-    p = marker;
-    goto yy2022;
-  yy2027:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2026;
-    if (yych <= 0xBF)
-      goto yy2025;
-    goto yy2026;
-  yy2028:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2026;
-    if (yych <= 0xBF)
-      goto yy2025;
-    goto yy2026;
-  yy2029:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2026;
-    if (yych <= 0xBF)
-      goto yy2028;
-    goto yy2026;
-  yy2030:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2026;
-    if (yych <= 0xBF)
-      goto yy2028;
-    goto yy2026;
-  yy2031:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2026;
-    if (yych <= 0x8F)
-      goto yy2028;
-    goto yy2026;
-  yy2032:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2026;
-    if (yych <= 0x9F)
-      goto yy2025;
-    goto yy2026;
-  yy2033:
-    ++p;
-  yy2034 : { return (bufsize_t)(p - start); }
-  yy2035:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2035;
-    }
-    goto yy2034;
-  yy2037:
-    yych = *++p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2035;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2033;
-      goto yy2026;
-    } else {
-      if (yych <= '\r')
-        goto yy2033;
-      if (yych != '#')
-        goto yy2026;
-    }
-    yych = *++p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2035;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2033;
-      goto yy2026;
-    } else {
-      if (yych <= '\r')
-        goto yy2033;
-      if (yych != '#')
-        goto yy2026;
-    }
-    yych = *++p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2035;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2033;
-      goto yy2026;
-    } else {
-      if (yych <= '\r')
-        goto yy2033;
-      if (yych != '#')
-        goto yy2026;
-    }
-    yych = *++p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2035;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2033;
-      goto yy2026;
-    } else {
-      if (yych <= '\r')
-        goto yy2033;
-      if (yych != '#')
-        goto yy2026;
-    }
-    ++p;
-    if (yybm[0 + (yych = *p)] & 128) {
-      goto yy2035;
-    }
-    if (yych == '\n')
-      goto yy2033;
-    if (yych == '\r')
-      goto yy2033;
-    goto yy2026;
-  }
-}
-
-// Match setext heading line.  Return 1 for level-1 heading,
-// 2 for level-2, 0 for no match.
-bufsize_t _scan_setext_heading_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 yy2044;
-        if (yych <= ',')
-          goto yy2047;
-        goto yy2046;
-      } else {
-        if (yych == '=')
-          goto yy2045;
-        if (yych <= 0x7F)
-          goto yy2047;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy2048;
-        if (yych <= 0xE0)
-          goto yy2050;
-        if (yych <= 0xEC)
-          goto yy2051;
-        goto yy2055;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy2051;
-          goto yy2052;
-        } else {
-          if (yych <= 0xF3)
-            goto yy2053;
-          if (yych <= 0xF4)
-            goto yy2054;
-        }
-      }
-    }
-  yy2044 : { return 0; }
-  yy2045:
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 128) {
-      goto yy2066;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2064;
-      goto yy2044;
-    } else {
-      if (yych <= '\r')
-        goto yy2064;
-      if (yych == ' ')
-        goto yy2062;
-      goto yy2044;
-    }
-  yy2046:
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 32) {
-      goto yy2056;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2058;
-      goto yy2044;
-    } else {
-      if (yych <= '\r')
-        goto yy2058;
-      if (yych == '-')
-        goto yy2060;
-      goto yy2044;
-    }
-  yy2047:
-    yych = *++p;
-    goto yy2044;
-  yy2048:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2049;
-    if (yych <= 0xBF)
-      goto yy2047;
-  yy2049:
-    p = marker;
-    goto yy2044;
-  yy2050:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2049;
-    if (yych <= 0xBF)
-      goto yy2048;
-    goto yy2049;
-  yy2051:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2049;
-    if (yych <= 0xBF)
-      goto yy2048;
-    goto yy2049;
-  yy2052:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2049;
-    if (yych <= 0xBF)
-      goto yy2051;
-    goto yy2049;
-  yy2053:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2049;
-    if (yych <= 0xBF)
-      goto yy2051;
-    goto yy2049;
-  yy2054:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2049;
-    if (yych <= 0x8F)
-      goto yy2051;
-    goto yy2049;
-  yy2055:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2049;
-    if (yych <= 0x9F)
-      goto yy2048;
-    goto yy2049;
-  yy2056:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy2056;
-    }
-    if (yych == '\n')
-      goto yy2058;
-    if (yych != '\r')
-      goto yy2049;
-  yy2058:
-    ++p;
-    { return 2; }
-  yy2060:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy2056;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2058;
-      goto yy2049;
-    } else {
-      if (yych <= '\r')
-        goto yy2058;
-      if (yych == '-')
-        goto yy2060;
-      goto yy2049;
-    }
-  yy2062:
-    ++p;
-    yych = *p;
-    if (yych <= '\f') {
-      if (yych != '\n')
-        goto yy2049;
-    } else {
-      if (yych <= '\r')
-        goto yy2064;
-      if (yych == ' ')
-        goto yy2062;
-      goto yy2049;
-    }
-  yy2064:
-    ++p;
-    { return 1; }
-  yy2066:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2066;
-    }
-    if (yych <= '\f') {
-      if (yych == '\n')
-        goto yy2064;
-      goto yy2049;
-    } else {
-      if (yych <= '\r')
-        goto yy2064;
-      if (yych == ' ')
-        goto yy2062;
-      goto yy2049;
-    }
-  }
-}
-
-// Scan a thematic break 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_thematic_break(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, 16, 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, 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, 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 yy2070;
-        if (yych <= ')')
-          goto yy2074;
-        goto yy2071;
-      } else {
-        if (yych <= '-') {
-          if (yych <= ',')
-            goto yy2074;
-          goto yy2073;
-        } else {
-          if (yych == '_')
-            goto yy2072;
-          goto yy2074;
-        }
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF) {
-          if (yych >= 0xC2)
-            goto yy2075;
-        } else {
-          if (yych <= 0xE0)
-            goto yy2077;
-          if (yych <= 0xEC)
-            goto yy2078;
-          goto yy2082;
-        }
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy2078;
-          goto yy2079;
-        } else {
-          if (yych <= 0xF3)
-            goto yy2080;
-          if (yych <= 0xF4)
-            goto yy2081;
-        }
-      }
-    }
-  yy2070 : { return 0; }
-  yy2071:
-    yych = *(marker = ++p);
-    if (yych == ' ')
-      goto yy2107;
-    if (yych == '*')
-      goto yy2109;
-    goto yy2070;
-  yy2072:
-    yych = *(marker = ++p);
-    if (yych == ' ')
-      goto yy2095;
-    if (yych == '_')
-      goto yy2097;
-    goto yy2070;
-  yy2073:
-    yych = *(marker = ++p);
-    if (yybm[0 + yych] & 8) {
-      goto yy2083;
-    }
-    if (yych == '-')
-      goto yy2085;
-    goto yy2070;
-  yy2074:
-    yych = *++p;
-    goto yy2070;
-  yy2075:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2076;
-    if (yych <= 0xBF)
-      goto yy2074;
-  yy2076:
-    p = marker;
-    goto yy2070;
-  yy2077:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2076;
-    if (yych <= 0xBF)
-      goto yy2075;
-    goto yy2076;
-  yy2078:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2076;
-    if (yych <= 0xBF)
-      goto yy2075;
-    goto yy2076;
-  yy2079:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2076;
-    if (yych <= 0xBF)
-      goto yy2078;
-    goto yy2076;
-  yy2080:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2076;
-    if (yych <= 0xBF)
-      goto yy2078;
-    goto yy2076;
-  yy2081:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2076;
-    if (yych <= 0x8F)
-      goto yy2078;
-    goto yy2076;
-  yy2082:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2076;
-    if (yych <= 0x9F)
-      goto yy2075;
-    goto yy2076;
-  yy2083:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 8) {
-      goto yy2083;
-    }
-    if (yych != '-')
-      goto yy2076;
-  yy2085:
-    ++p;
-    yych = *p;
-    if (yych == ' ')
-      goto yy2085;
-    if (yych != '-')
-      goto yy2076;
-  yy2087:
-    ++p;
-    yych = *p;
-    if (yych <= '\r') {
-      if (yych <= '\t') {
-        if (yych <= 0x08)
-          goto yy2076;
-      } else {
-        if (yych <= '\n')
-          goto yy2091;
-        if (yych <= '\f')
-          goto yy2076;
-        goto yy2091;
-      }
-    } else {
-      if (yych <= ' ') {
-        if (yych <= 0x1F)
-          goto yy2076;
-        goto yy2087;
-      } else {
-        if (yych == '-')
-          goto yy2093;
-        goto yy2076;
-      }
-    }
-  yy2089:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 16) {
-      goto yy2089;
-    }
-    if (yych <= 0x08)
-      goto yy2076;
-    if (yych <= '\n')
-      goto yy2091;
-    if (yych != '\r')
-      goto yy2076;
-  yy2091:
-    ++p;
-    { return (bufsize_t)(p - start); }
-  yy2093:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy2093;
-    }
-    if (yych <= '\n') {
-      if (yych <= 0x08)
-        goto yy2076;
-      if (yych <= '\t')
-        goto yy2089;
-      goto yy2091;
-    } else {
-      if (yych == '\r')
-        goto yy2091;
-      goto yy2076;
-    }
-  yy2095:
-    ++p;
-    yych = *p;
-    if (yych == ' ')
-      goto yy2095;
-    if (yych != '_')
-      goto yy2076;
-  yy2097:
-    ++p;
-    yych = *p;
-    if (yych == ' ')
-      goto yy2097;
-    if (yych != '_')
-      goto yy2076;
-  yy2099:
-    ++p;
-    yych = *p;
-    if (yych <= '\r') {
-      if (yych <= '\t') {
-        if (yych <= 0x08)
-          goto yy2076;
-      } else {
-        if (yych <= '\n')
-          goto yy2103;
-        if (yych <= '\f')
-          goto yy2076;
-        goto yy2103;
-      }
-    } else {
-      if (yych <= ' ') {
-        if (yych <= 0x1F)
-          goto yy2076;
-        goto yy2099;
-      } else {
-        if (yych == '_')
-          goto yy2105;
-        goto yy2076;
-      }
-    }
-  yy2101:
-    ++p;
-    yych = *p;
-    if (yych <= '\f') {
-      if (yych <= 0x08)
-        goto yy2076;
-      if (yych <= '\t')
-        goto yy2101;
-      if (yych >= '\v')
-        goto yy2076;
-    } else {
-      if (yych <= '\r')
-        goto yy2103;
-      if (yych == ' ')
-        goto yy2101;
-      goto yy2076;
-    }
-  yy2103:
-    ++p;
-    { return (bufsize_t)(p - start); }
-  yy2105:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy2105;
-    }
-    if (yych <= '\n') {
-      if (yych <= 0x08)
-        goto yy2076;
-      if (yych <= '\t')
-        goto yy2101;
-      goto yy2103;
-    } else {
-      if (yych == '\r')
-        goto yy2103;
-      goto yy2076;
-    }
-  yy2107:
-    ++p;
-    yych = *p;
-    if (yych == ' ')
-      goto yy2107;
-    if (yych != '*')
-      goto yy2076;
-  yy2109:
-    ++p;
-    yych = *p;
-    if (yych == ' ')
-      goto yy2109;
-    if (yych != '*')
-      goto yy2076;
-  yy2111:
-    ++p;
-    yych = *p;
-    if (yych <= '\r') {
-      if (yych <= '\t') {
-        if (yych <= 0x08)
-          goto yy2076;
-      } else {
-        if (yych <= '\n')
-          goto yy2115;
-        if (yych <= '\f')
-          goto yy2076;
-        goto yy2115;
-      }
-    } else {
-      if (yych <= ' ') {
-        if (yych <= 0x1F)
-          goto yy2076;
-        goto yy2111;
-      } else {
-        if (yych == '*')
-          goto yy2117;
-        goto yy2076;
-      }
-    }
-  yy2113:
-    ++p;
-    yych = *p;
-    if (yych <= '\f') {
-      if (yych <= 0x08)
-        goto yy2076;
-      if (yych <= '\t')
-        goto yy2113;
-      if (yych >= '\v')
-        goto yy2076;
-    } else {
-      if (yych <= '\r')
-        goto yy2115;
-      if (yych == ' ')
-        goto yy2113;
-      goto yy2076;
-    }
-  yy2115:
-    ++p;
-    { return (bufsize_t)(p - start); }
-  yy2117:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2117;
-    }
-    if (yych <= '\n') {
-      if (yych <= 0x08)
-        goto yy2076;
-      if (yych <= '\t')
-        goto yy2113;
-      goto yy2115;
-    } else {
-      if (yych == '\r')
-        goto yy2115;
-      goto yy2076;
-    }
-  }
-}
-
-// 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 yy2121;
-        if (yych <= '_')
-          goto yy2124;
-        goto yy2122;
-      } else {
-        if (yych == '~')
-          goto yy2123;
-        if (yych <= 0x7F)
-          goto yy2124;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy2125;
-        if (yych <= 0xE0)
-          goto yy2127;
-        if (yych <= 0xEC)
-          goto yy2128;
-        goto yy2132;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy2128;
-          goto yy2129;
-        } else {
-          if (yych <= 0xF3)
-            goto yy2130;
-          if (yych <= 0xF4)
-            goto yy2131;
-        }
-      }
-    }
-  yy2121 : { return 0; }
-  yy2122:
-    yych = *(marker = ++p);
-    if (yych == '`')
-      goto yy2147;
-    goto yy2121;
-  yy2123:
-    yych = *(marker = ++p);
-    if (yych == '~')
-      goto yy2133;
-    goto yy2121;
-  yy2124:
-    yych = *++p;
-    goto yy2121;
-  yy2125:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2124;
-  yy2126:
-    p = marker;
-    goto yy2121;
-  yy2127:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2125;
-    goto yy2126;
-  yy2128:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2125;
-    goto yy2126;
-  yy2129:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2128;
-    goto yy2126;
-  yy2130:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2128;
-    goto yy2126;
-  yy2131:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0x8F)
-      goto yy2128;
-    goto yy2126;
-  yy2132:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0x9F)
-      goto yy2125;
-    goto yy2126;
-  yy2133:
-    yych = *++p;
-    if (yybm[0 + yych] & 16) {
-      goto yy2134;
-    }
-    goto yy2126;
-  yy2134:
-    ++p;
-    yych = *p;
-    marker = p;
-    if (yybm[0 + yych] & 32) {
-      goto yy2136;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '~') {
-        if (yych <= 0x00)
-          goto yy2126;
-        if (yych <= '\r')
-          goto yy2145;
-        goto yy2134;
-      } else {
-        if (yych <= 0xC1)
-          goto yy2126;
-        if (yych <= 0xDF)
-          goto yy2138;
-        goto yy2139;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2144;
-        goto yy2140;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2141;
-        if (yych <= 0xF3)
-          goto yy2142;
-        if (yych <= 0xF4)
-          goto yy2143;
-        goto yy2126;
-      }
-    }
-  yy2136:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 32) {
-      goto yy2136;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy2126;
-        if (yych <= '\r')
-          goto yy2145;
-        goto yy2126;
-      } else {
-        if (yych <= 0xDF)
-          goto yy2138;
-        if (yych <= 0xE0)
-          goto yy2139;
-        goto yy2140;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy2144;
-        if (yych <= 0xEF)
-          goto yy2140;
-        goto yy2141;
-      } else {
-        if (yych <= 0xF3)
-          goto yy2142;
-        if (yych <= 0xF4)
-          goto yy2143;
-        goto yy2126;
-      }
-    }
-  yy2138:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2136;
-    goto yy2126;
-  yy2139:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2138;
-    goto yy2126;
-  yy2140:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2138;
-    goto yy2126;
-  yy2141:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2140;
-    goto yy2126;
-  yy2142:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2140;
-    goto yy2126;
-  yy2143:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0x8F)
-      goto yy2140;
-    goto yy2126;
-  yy2144:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0x9F)
-      goto yy2138;
-    goto yy2126;
-  yy2145:
-    ++p;
-    p = marker;
-    { return (bufsize_t)(p - start); }
-  yy2147:
-    yych = *++p;
-    if (yybm[0 + yych] & 64) {
-      goto yy2148;
-    }
-    goto yy2126;
-  yy2148:
-    ++p;
-    yych = *p;
-    marker = p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2150;
-    }
-    if (yych <= 0xE0) {
-      if (yych <= '`') {
-        if (yych <= 0x00)
-          goto yy2126;
-        if (yych <= '\r')
-          goto yy2159;
-        goto yy2148;
-      } else {
-        if (yych <= 0xC1)
-          goto yy2126;
-        if (yych <= 0xDF)
-          goto yy2152;
-        goto yy2153;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych == 0xED)
-          goto yy2158;
-        goto yy2154;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2155;
-        if (yych <= 0xF3)
-          goto yy2156;
-        if (yych <= 0xF4)
-          goto yy2157;
-        goto yy2126;
-      }
-    }
-  yy2150:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2150;
-    }
-    if (yych <= 0xEC) {
-      if (yych <= 0xC1) {
-        if (yych <= 0x00)
-          goto yy2126;
-        if (yych <= '\r')
-          goto yy2159;
-        goto yy2126;
-      } else {
-        if (yych <= 0xDF)
-          goto yy2152;
-        if (yych <= 0xE0)
-          goto yy2153;
-        goto yy2154;
-      }
-    } else {
-      if (yych <= 0xF0) {
-        if (yych <= 0xED)
-          goto yy2158;
-        if (yych <= 0xEF)
-          goto yy2154;
-        goto yy2155;
-      } else {
-        if (yych <= 0xF3)
-          goto yy2156;
-        if (yych <= 0xF4)
-          goto yy2157;
-        goto yy2126;
-      }
-    }
-  yy2152:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2150;
-    goto yy2126;
-  yy2153:
-    ++p;
-    yych = *p;
-    if (yych <= 0x9F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2152;
-    goto yy2126;
-  yy2154:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2152;
-    goto yy2126;
-  yy2155:
-    ++p;
-    yych = *p;
-    if (yych <= 0x8F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2154;
-    goto yy2126;
-  yy2156:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0xBF)
-      goto yy2154;
-    goto yy2126;
-  yy2157:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0x8F)
-      goto yy2154;
-    goto yy2126;
-  yy2158:
-    ++p;
-    yych = *p;
-    if (yych <= 0x7F)
-      goto yy2126;
-    if (yych <= 0x9F)
-      goto yy2152;
-    goto yy2126;
-  yy2159:
-    ++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 yy2163;
-        if (yych <= '_')
-          goto yy2166;
-        goto yy2164;
-      } else {
-        if (yych == '~')
-          goto yy2165;
-        if (yych <= 0x7F)
-          goto yy2166;
-      }
-    } else {
-      if (yych <= 0xED) {
-        if (yych <= 0xDF)
-          goto yy2167;
-        if (yych <= 0xE0)
-          goto yy2169;
-        if (yych <= 0xEC)
-          goto yy2170;
-        goto yy2174;
-      } else {
-        if (yych <= 0xF0) {
-          if (yych <= 0xEF)
-            goto yy2170;
-          goto yy2171;
-        } else {
-          if (yych <= 0xF3)
-            goto yy2172;
-          if (yych <= 0xF4)
-            goto yy2173;
-        }
-      }
-    }
-  yy2163 : { return 0; }
-  yy2164:
-    yych = *(marker = ++p);
-    if (yych == '`')
-      goto yy2182;
-    goto yy2163;
-  yy2165:
-    yych = *(marker = ++p);
-    if (yych == '~')
-      goto yy2175;
-    goto yy2163;
-  yy2166:
-    yych = *++p;
-    goto yy2163;
-  yy2167:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2168;
-    if (yych <= 0xBF)
-      goto yy2166;
-  yy2168:
-    p = marker;
-    goto yy2163;
-  yy2169:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2168;
-    if (yych <= 0xBF)
-      goto yy2167;
-    goto yy2168;
-  yy2170:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2168;
-    if (yych <= 0xBF)
-      goto yy2167;
-    goto yy2168;
-  yy2171:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2168;
-    if (yych <= 0xBF)
-      goto yy2170;
-    goto yy2168;
-  yy2172:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2168;
-    if (yych <= 0xBF)
-      goto yy2170;
-    goto yy2168;
-  yy2173:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2168;
-    if (yych <= 0x8F)
-      goto yy2170;
-    goto yy2168;
-  yy2174:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2168;
-    if (yych <= 0x9F)
-      goto yy2167;
-    goto yy2168;
-  yy2175:
-    yych = *++p;
-    if (yybm[0 + yych] & 32) {
-      goto yy2176;
-    }
-    goto yy2168;
-  yy2176:
-    ++p;
-    yych = *p;
-    marker = p;
-    if (yybm[0 + yych] & 64) {
-      goto yy2178;
-    }
-    if (yych <= '\f') {
-      if (yych <= 0x08)
-        goto yy2168;
-      if (yych <= '\n')
-        goto yy2180;
-      goto yy2168;
-    } else {
-      if (yych <= '\r')
-        goto yy2180;
-      if (yych == '~')
-        goto yy2176;
-      goto yy2168;
-    }
-  yy2178:
-    ++p;
-    yych = *p;
-    if (yybm[0 + yych] & 64) {
-      goto yy2178;
-    }
-    if (yych <= 0x08)
-      goto yy2168;
-    if (yych <= '\n')
-      goto yy2180;
-    if (yych != '\r')
-      goto yy2168;
-  yy2180:
-    ++p;
-    p = marker;
-    { return (bufsize_t)(p - start); }
-  yy2182:
-    yych = *++p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2183;
-    }
-    goto yy2168;
-  yy2183:
-    ++p;
-    yych = *p;
-    marker = p;
-    if (yybm[0 + yych] & 128) {
-      goto yy2183;
-    }
-    if (yych <= '\f') {
-      if (yych <= 0x08)
-        goto yy2168;
-      if (yych <= '\t')
-        goto yy2185;
-      if (yych <= '\n')
-        goto yy2187;
-      goto yy2168;
-    } else {
-      if (yych <= '\r')
-        goto yy2187;
-      if (yych != ' ')
-        goto yy2168;
-    }
-  yy2185:
-    ++p;
-    yych = *p;
-    if (yych <= '\f') {
-      if (yych <= 0x08)
-        goto yy2168;
-      if (yych <= '\t')
-        goto yy2185;
-      if (yych >= '\v')
-        goto yy2168;
-    } else {
-      if (yych <= '\r')
-        goto yy2187;
-      if (yych == ' ')
-        goto yy2185;
-      goto yy2168;
-    }
-  yy2187:
-    ++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 yy2193;
-      } else {
-        if (yych <= '&')
-          goto yy2192;
-        if (yych <= 0x7F)
-          goto yy2193;
-        if (yych >= 0xC2)
-          goto yy2194;
-      }
-    } else {
-      if (yych <= 0xEF) {
-        if (yych <= 0xE0)
-          goto yy2196;
-        if (yych == 0xED)
-          goto yy2201;
-        goto yy2197;
-      } else {
-        if (yych <= 0xF0)
-          goto yy2198;
-        if (yych <= 0xF3)
-          goto yy2199;
-        if (yych <= 0xF4)
-          goto yy2200;
-      }
-    }
-  yy2191 : { return 0; }
-  yy2192:
-    yych = *(marker = ++p);
-    if (yych <= '@') {
-      if (yych == '#')
-        goto yy2202;
-      goto yy2191;
-    } else {
-      if (yych <= 'Z')
-        goto yy2203;
-      if (yych <= '`')
-        goto yy2191;
-      if (yych <= 'z')
-        goto yy2203;
-      goto yy2191;
-    }
-  yy2193:
-    yych = *++p;
-    goto yy2191;
-  yy2194:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2195;
-    if (yych <= 0xBF)
-      goto yy2193;
-  yy2195:
-    p = marker;
-    goto yy2191;
-  yy2196:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2195;
-    if (yych <= 0xBF)
-      goto yy2194;
-    goto yy2195;
-  yy2197:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2195;
-    if (yych <= 0xBF)
-      goto yy2194;
-    goto yy2195;
-  yy2198:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2195;
-    if (yych <= 0xBF)
-      goto yy2197;
-    goto yy2195;
-  yy2199:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2195;
-    if (yych <= 0xBF)
-      goto yy2197;
-    goto yy2195;
-  yy2200:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2195;
-    if (yych <= 0x8F)
-      goto yy2197;
-    goto yy2195;
-  yy2201:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2195;
-    if (yych <= 0x9F)
-      goto yy2194;
-    goto yy2195;
-  yy2202:
-    yych = *++p;
-    if (yych <= 'W') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2238;
-      goto yy2195;
-    } else {
-      if (yych <= 'X')
-        goto yy2237;
-      if (yych == 'x')
-        goto yy2237;
-      goto yy2195;
-    }
-  yy2203:
-    yych = *++p;
-    if (yych <= '@') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych >= ':')
-        goto yy2195;
-    } else {
-      if (yych <= 'Z')
-        goto yy2204;
-      if (yych <= '`')
-        goto yy2195;
-      if (yych >= '{')
-        goto yy2195;
-    }
-  yy2204:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2207;
-      if (yych <= ':')
-        goto yy2195;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-        goto yy2207;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych <= 'z')
-          goto yy2207;
-        goto yy2195;
-      }
-    }
-  yy2205:
-    ++p;
-    { return (bufsize_t)(p - start); }
-  yy2207:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2208;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2208:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2209;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2209:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2210;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2210:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2211;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2211:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2212;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2212:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2213;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2213:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2214;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2214:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2215;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2215:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2216;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2216:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2217;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2217:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2218;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2218:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2219;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2219:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2220;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2220:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2221;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2221:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2222;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2222:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2223;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2223:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2224;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2224:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2225;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2225:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2226;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2226:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2227;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2227:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2228;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2228:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2229;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2229:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2230;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2230:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2231;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2231:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2232;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2232:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2233;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2233:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2234;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2234:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2235;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2235:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2236;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'Z') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= '{')
-          goto yy2195;
-      }
-    }
-  yy2236:
-    yych = *++p;
-    if (yych == ';')
-      goto yy2205;
-    goto yy2195;
-  yy2237:
-    yych = *++p;
-    if (yych <= '@') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2245;
-      goto yy2195;
-    } else {
-      if (yych <= 'F')
-        goto yy2245;
-      if (yych <= '`')
-        goto yy2195;
-      if (yych <= 'f')
-        goto yy2245;
-      goto yy2195;
-    }
-  yy2238:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2195;
-    if (yych <= '9')
-      goto yy2239;
-    if (yych == ';')
-      goto yy2205;
-    goto yy2195;
-  yy2239:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2195;
-    if (yych <= '9')
-      goto yy2240;
-    if (yych == ';')
-      goto yy2205;
-    goto yy2195;
-  yy2240:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2195;
-    if (yych <= '9')
-      goto yy2241;
-    if (yych == ';')
-      goto yy2205;
-    goto yy2195;
-  yy2241:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2195;
-    if (yych <= '9')
-      goto yy2242;
-    if (yych == ';')
-      goto yy2205;
-    goto yy2195;
-  yy2242:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2195;
-    if (yych <= '9')
-      goto yy2243;
-    if (yych == ';')
-      goto yy2205;
-    goto yy2195;
-  yy2243:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2195;
-    if (yych <= '9')
-      goto yy2244;
-    if (yych == ';')
-      goto yy2205;
-    goto yy2195;
-  yy2244:
-    yych = *++p;
-    if (yych <= '/')
-      goto yy2195;
-    if (yych <= '9')
-      goto yy2236;
-    if (yych == ';')
-      goto yy2205;
-    goto yy2195;
-  yy2245:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2246;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= 'g')
-          goto yy2195;
-      }
-    }
-  yy2246:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2247;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= 'g')
-          goto yy2195;
-      }
-    }
-  yy2247:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2248;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= 'g')
-          goto yy2195;
-      }
-    }
-  yy2248:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2249;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= 'g')
-          goto yy2195;
-      }
-    }
-  yy2249:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2250;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= 'g')
-          goto yy2195;
-      }
-    }
-  yy2250:
-    yych = *++p;
-    if (yych <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2251;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2195;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych >= 'g')
-          goto yy2195;
-      }
-    }
-  yy2251:
-    ++p;
-    if ((yych = *p) <= ';') {
-      if (yych <= '/')
-        goto yy2195;
-      if (yych <= '9')
-        goto yy2236;
-      if (yych <= ':')
-        goto yy2195;
-      goto yy2205;
-    } else {
-      if (yych <= 'F') {
-        if (yych <= '@')
-          goto yy2195;
-        goto yy2236;
-      } else {
-        if (yych <= '`')
-          goto yy2195;
-        if (yych <= 'f')
-          goto yy2236;
-        goto yy2195;
-      }
-    }
-  }
-}
-
-// 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 yy2259;
-        } else {
-          if (yych <= 'D')
-            goto yy2255;
-          if (yych == 'F')
-            goto yy2258;
-          goto yy2259;
-        }
-      } else {
-        if (yych <= 'V') {
-          if (yych <= 'J')
-            goto yy2256;
-          if (yych <= 'U')
-            goto yy2259;
-          goto yy2257;
-        } else {
-          if (yych == 'd')
-            goto yy2255;
-          if (yych <= 'e')
-            goto yy2259;
-          goto yy2258;
-        }
-      }
-    } else {
-      if (yych <= 0xDF) {
-        if (yych <= 'u') {
-          if (yych == 'j')
-            goto yy2256;
-          goto yy2259;
-        } else {
-          if (yych <= 'v')
-            goto yy2257;
-          if (yych <= 0x7F)
-            goto yy2259;
-          if (yych >= 0xC2)
-            goto yy2260;
-        }
-      } else {
-        if (yych <= 0xEF) {
-          if (yych <= 0xE0)
-            goto yy2262;
-          if (yych == 0xED)
-            goto yy2267;
-          goto yy2263;
-        } else {
-          if (yych <= 0xF0)
-            goto yy2264;
-          if (yych <= 0xF3)
-            goto yy2265;
-          if (yych <= 0xF4)
-            goto yy2266;
-        }
-      }
-    }
-  yy2254 : { return 0; }
-  yy2255:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych == 'A')
-      goto yy2289;
-    if (yych == 'a')
-      goto yy2289;
-    goto yy2254;
-  yy2256:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych == 'A')
-      goto yy2280;
-    if (yych == 'a')
-      goto yy2280;
-    goto yy2254;
-  yy2257:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych == 'B')
-      goto yy2273;
-    if (yych == 'b')
-      goto yy2273;
-    goto yy2254;
-  yy2258:
-    yyaccept = 0;
-    yych = *(marker = ++p);
-    if (yych == 'I')
-      goto yy2268;
-    if (yych == 'i')
-      goto yy2268;
-    goto yy2254;
-  yy2259:
-    yych = *++p;
-    goto yy2254;
-  yy2260:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2261;
-    if (yych <= 0xBF)
-      goto yy2259;
-  yy2261:
-    p = marker;
-    if (yyaccept == 0) {
-      goto yy2254;
-    } else {
-      goto yy2272;
-    }
-  yy2262:
-    yych = *++p;
-    if (yych <= 0x9F)
-      goto yy2261;
-    if (yych <= 0xBF)
-      goto yy2260;
-    goto yy2261;
-  yy2263:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2261;
-    if (yych <= 0xBF)
-      goto yy2260;
-    goto yy2261;
-  yy2264:
-    yych = *++p;
-    if (yych <= 0x8F)
-      goto yy2261;
-    if (yych <= 0xBF)
-      goto yy2263;
-    goto yy2261;
-  yy2265:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2261;
-    if (yych <= 0xBF)
-      goto yy2263;
-    goto yy2261;
-  yy2266:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2261;
-    if (yych <= 0x8F)
-      goto yy2263;
-    goto yy2261;
-  yy2267:
-    yych = *++p;
-    if (yych <= 0x7F)
-      goto yy2261;
-    if (yych <= 0x9F)
-      goto yy2260;
-    goto yy2261;
-  yy2268:
-    yych = *++p;
-    if (yych == 'L')
-      goto yy2269;
-    if (yych != 'l')
-      goto yy2261;
-  yy2269:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy2270;
-    if (yych != 'e')
-      goto yy2261;
-  yy2270:
-    yych = *++p;
-    if (yych != ':')
-      goto yy2261;
-  yy2271:
-    ++p;
-  yy2272 : { return (bufsize_t)(p - start); }
-  yy2273:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy2274;
-    if (yych != 's')
-      goto yy2261;
-  yy2274:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy2275;
-    if (yych != 'c')
-      goto yy2261;
-  yy2275:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy2276;
-    if (yych != 'r')
-      goto yy2261;
-  yy2276:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy2277;
-    if (yych != 'i')
-      goto yy2261;
-  yy2277:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy2278;
-    if (yych != 'p')
-      goto yy2261;
-  yy2278:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy2279;
-    if (yych != 't')
-      goto yy2261;
-  yy2279:
-    yych = *++p;
-    if (yych == ':')
-      goto yy2271;
-    goto yy2261;
-  yy2280:
-    yych = *++p;
-    if (yych == 'V')
-      goto yy2281;
-    if (yych != 'v')
-      goto yy2261;
-  yy2281:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy2282;
-    if (yych != 'a')
-      goto yy2261;
-  yy2282:
-    yych = *++p;
-    if (yych == 'S')
-      goto yy2283;
-    if (yych != 's')
-      goto yy2261;
-  yy2283:
-    yych = *++p;
-    if (yych == 'C')
-      goto yy2284;
-    if (yych != 'c')
-      goto yy2261;
-  yy2284:
-    yych = *++p;
-    if (yych == 'R')
-      goto yy2285;
-    if (yych != 'r')
-      goto yy2261;
-  yy2285:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy2286;
-    if (yych != 'i')
-      goto yy2261;
-  yy2286:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy2287;
-    if (yych != 'p')
-      goto yy2261;
-  yy2287:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy2288;
-    if (yych != 't')
-      goto yy2261;
-  yy2288:
-    yych = *++p;
-    if (yych == ':')
-      goto yy2271;
-    goto yy2261;
-  yy2289:
-    yych = *++p;
-    if (yych == 'T')
-      goto yy2290;
-    if (yych != 't')
-      goto yy2261;
-  yy2290:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy2291;
-    if (yych != 'a')
-      goto yy2261;
-  yy2291:
-    yych = *++p;
-    if (yych != ':')
-      goto yy2261;
-    yyaccept = 1;
-    yych = *(marker = ++p);
-    if (yych == 'I')
-      goto yy2293;
-    if (yych != 'i')
-      goto yy2272;
-  yy2293:
-    yych = *++p;
-    if (yych == 'M')
-      goto yy2294;
-    if (yych != 'm')
-      goto yy2261;
-  yy2294:
-    yych = *++p;
-    if (yych == 'A')
-      goto yy2295;
-    if (yych != 'a')
-      goto yy2261;
-  yy2295:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy2296;
-    if (yych != 'g')
-      goto yy2261;
-  yy2296:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy2297;
-    if (yych != 'e')
-      goto yy2261;
-  yy2297:
-    yych = *++p;
-    if (yych != '/')
-      goto yy2261;
-    yych = *++p;
-    if (yych <= 'W') {
-      if (yych <= 'J') {
-        if (yych == 'G')
-          goto yy2300;
-        if (yych <= 'I')
-          goto yy2261;
-        goto yy2301;
-      } else {
-        if (yych == 'P')
-          goto yy2299;
-        if (yych <= 'V')
-          goto yy2261;
-        goto yy2302;
-      }
-    } else {
-      if (yych <= 'j') {
-        if (yych == 'g')
-          goto yy2300;
-        if (yych <= 'i')
-          goto yy2261;
-        goto yy2301;
-      } else {
-        if (yych <= 'p') {
-          if (yych <= 'o')
-            goto yy2261;
-        } else {
-          if (yych == 'w')
-            goto yy2302;
-          goto yy2261;
-        }
-      }
-    }
-  yy2299:
-    yych = *++p;
-    if (yych == 'N')
-      goto yy2310;
-    if (yych == 'n')
-      goto yy2310;
-    goto yy2261;
-  yy2300:
-    yych = *++p;
-    if (yych == 'I')
-      goto yy2309;
-    if (yych == 'i')
-      goto yy2309;
-    goto yy2261;
-  yy2301:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy2307;
-    if (yych == 'p')
-      goto yy2307;
-    goto yy2261;
-  yy2302:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy2303;
-    if (yych != 'e')
-      goto yy2261;
-  yy2303:
-    yych = *++p;
-    if (yych == 'B')
-      goto yy2304;
-    if (yych != 'b')
-      goto yy2261;
-  yy2304:
-    yych = *++p;
-    if (yych == 'P')
-      goto yy2305;
-    if (yych != 'p')
-      goto yy2261;
-  yy2305:
-    ++p;
-    { return 0; }
-  yy2307:
-    yych = *++p;
-    if (yych == 'E')
-      goto yy2308;
-    if (yych != 'e')
-      goto yy2261;
-  yy2308:
-    yych = *++p;
-    if (yych == 'G')
-      goto yy2305;
-    if (yych == 'g')
-      goto yy2305;
-    goto yy2261;
-  yy2309:
-    yych = *++p;
-    if (yych == 'F')
-      goto yy2305;
-    if (yych == 'f')
-      goto yy2305;
-    goto yy2261;
-  yy2310:
-    ++p;
-    if ((yych = *p) == 'G')
-      goto yy2305;
-    if (yych == 'g')
-      goto yy2305;
-    goto yy2261;
+/* 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;
+
+  if (ptr == NULL || offset > c->len) {
+    return 0;
+  } else {
+    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 <= 0x7F) {
+      if (yych <= ' ') {
+        if (yych == '\n')
+          goto yy2;
+        if (yych <= 0x1F)
+          goto yy4;
+        goto yy3;
+      } else {
+        if (yych <= 'Z') {
+          if (yych <= '@')
+            goto yy4;
+          goto yy3;
+        } else {
+          if (yych <= '`')
+            goto yy4;
+          if (yych <= 'z')
+            goto yy3;
+          goto yy4;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF) {
+          if (yych >= 0xC2)
+            goto yy5;
+        } else {
+          if (yych <= 0xE0)
+            goto yy7;
+          if (yych <= 0xEC)
+            goto yy8;
+          goto yy12;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy8;
+          goto yy9;
+        } else {
+          if (yych <= 0xF3)
+            goto yy10;
+          if (yych <= 0xF4)
+            goto yy11;
+        }
+      }
+    }
+  yy2 : { return 0; }
+  yy3:
+    yych = *(marker = ++p);
+    if (yych <= '.') {
+      if (yych == '+')
+        goto yy13;
+      if (yych <= ',')
+        goto yy2;
+      goto yy13;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy2;
+        goto yy13;
+      } else {
+        if (yych <= '`')
+          goto yy2;
+        if (yych <= 'z')
+          goto yy13;
+        goto yy2;
+      }
+    }
+  yy4:
+    yych = *++p;
+    goto yy2;
+  yy5:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy6;
+    if (yych <= 0xBF)
+      goto yy4;
+  yy6:
+    p = marker;
+    goto yy2;
+  yy7:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy6;
+    if (yych <= 0xBF)
+      goto yy5;
+    goto yy6;
+  yy8:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy6;
+    if (yych <= 0xBF)
+      goto yy5;
+    goto yy6;
+  yy9:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy6;
+    if (yych <= 0xBF)
+      goto yy8;
+    goto yy6;
+  yy10:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy6;
+    if (yych <= 0xBF)
+      goto yy8;
+    goto yy6;
+  yy11:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy6;
+    if (yych <= 0x8F)
+      goto yy8;
+    goto yy6;
+  yy12:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy6;
+    if (yych <= 0x9F)
+      goto yy5;
+    goto yy6;
+  yy13:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+        goto yy16;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych <= '.')
+          goto yy16;
+        goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+        goto yy16;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych <= 'z')
+          goto yy16;
+        goto yy6;
+      }
+    }
+  yy14:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy16:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy6;
+      } else {
+        if (yych <= ',')
+          goto yy6;
+        if (yych >= '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy14;
+        if (yych <= '@')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy6;
+        if (yych >= '{')
+          goto yy6;
+      }
+    }
+    ++p;
+    if ((yych = *p) == ':')
+      goto yy14;
+    goto yy6;
+  }
+}
+
+// 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 <= 0x7F) {
+      if (yych <= ' ') {
+        if (yych == '\n')
+          goto yy48;
+        if (yych <= 0x1F)
+          goto yy50;
+        goto yy49;
+      } else {
+        if (yych <= 'Z') {
+          if (yych <= '@')
+            goto yy50;
+          goto yy49;
+        } else {
+          if (yych <= '`')
+            goto yy50;
+          if (yych <= 'z')
+            goto yy49;
+          goto yy50;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF) {
+          if (yych >= 0xC2)
+            goto yy51;
+        } else {
+          if (yych <= 0xE0)
+            goto yy53;
+          if (yych <= 0xEC)
+            goto yy54;
+          goto yy58;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy54;
+          goto yy55;
+        } else {
+          if (yych <= 0xF3)
+            goto yy56;
+          if (yych <= 0xF4)
+            goto yy57;
+        }
+      }
+    }
+  yy48 : { return 0; }
+  yy49:
+    yych = *(marker = ++p);
+    if (yych <= '.') {
+      if (yych == '+')
+        goto yy59;
+      if (yych <= ',')
+        goto yy48;
+      goto yy59;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy48;
+        goto yy59;
+      } else {
+        if (yych <= '`')
+          goto yy48;
+        if (yych <= 'z')
+          goto yy59;
+        goto yy48;
+      }
+    }
+  yy50:
+    yych = *++p;
+    goto yy48;
+  yy51:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy52;
+    if (yych <= 0xBF)
+      goto yy50;
+  yy52:
+    p = marker;
+    goto yy48;
+  yy53:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy52;
+    if (yych <= 0xBF)
+      goto yy51;
+    goto yy52;
+  yy54:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy52;
+    if (yych <= 0xBF)
+      goto yy51;
+    goto yy52;
+  yy55:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy52;
+    if (yych <= 0xBF)
+      goto yy54;
+    goto yy52;
+  yy56:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy52;
+    if (yych <= 0xBF)
+      goto yy54;
+    goto yy52;
+  yy57:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy52;
+    if (yych <= 0x8F)
+      goto yy54;
+    goto yy52;
+  yy58:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy52;
+    if (yych <= 0x9F)
+      goto yy51;
+    goto yy52;
+  yy59:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+        goto yy62;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych <= '.')
+          goto yy62;
+        goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+        goto yy62;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych <= 'z')
+          goto yy62;
+        goto yy52;
+      }
+    }
+  yy60:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy60;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '<')
+          goto yy52;
+        if (yych <= '>')
+          goto yy99;
+        goto yy52;
+      } else {
+        if (yych <= 0xDF)
+          goto yy92;
+        if (yych <= 0xE0)
+          goto yy93;
+        goto yy94;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy98;
+        if (yych <= 0xEF)
+          goto yy94;
+        goto yy95;
+      } else {
+        if (yych <= 0xF3)
+          goto yy96;
+        if (yych <= 0xF4)
+          goto yy97;
+        goto yy52;
+      }
+    }
+  yy62:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy52;
+      } else {
+        if (yych <= ',')
+          goto yy52;
+        if (yych >= '/')
+          goto yy52;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy60;
+        if (yych <= '@')
+          goto yy52;
+      } else {
+        if (yych <= '`')
+          goto yy52;
+        if (yych >= '{')
+          goto yy52;
+      }
+    }
+    yych = *++p;
+    if (yych == ':')
+      goto yy60;
+    goto yy52;
+  yy92:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy52;
+    if (yych <= 0xBF)
+      goto yy60;
+    goto yy52;
+  yy93:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy52;
+    if (yych <= 0xBF)
+      goto yy92;
+    goto yy52;
+  yy94:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy52;
+    if (yych <= 0xBF)
+      goto yy92;
+    goto yy52;
+  yy95:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy52;
+    if (yych <= 0xBF)
+      goto yy94;
+    goto yy52;
+  yy96:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy52;
+    if (yych <= 0xBF)
+      goto yy94;
+    goto yy52;
+  yy97:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy52;
+    if (yych <= 0x8F)
+      goto yy94;
+    goto yy52;
+  yy98:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy52;
+    if (yych <= 0x9F)
+      goto yy92;
+    goto yy52;
+  yy99:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  }
+}
+
+// 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 yy105;
+        } else {
+          if (yych == '"')
+            goto yy105;
+          if (yych <= '\'')
+            goto yy104;
+          goto yy105;
+        }
+      } else {
+        if (yych <= '9') {
+          if (yych == ',')
+            goto yy105;
+          goto yy104;
+        } else {
+          if (yych == '=')
+            goto yy104;
+          if (yych <= '>')
+            goto yy105;
+          goto yy104;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= ']') {
+          if (yych <= '@')
+            goto yy105;
+          if (yych <= 'Z')
+            goto yy104;
+          goto yy105;
+        } else {
+          if (yych <= '~')
+            goto yy104;
+          if (yych <= 0x7F)
+            goto yy105;
+          if (yych >= 0xC2)
+            goto yy106;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy108;
+          if (yych == 0xED)
+            goto yy113;
+          goto yy109;
+        } else {
+          if (yych <= 0xF0)
+            goto yy110;
+          if (yych <= 0xF3)
+            goto yy111;
+          if (yych <= 0xF4)
+            goto yy112;
+        }
+      }
+    }
+  yy103 : { return 0; }
+  yy104:
+    yych = *(marker = ++p);
+    if (yych <= ',') {
+      if (yych <= '"') {
+        if (yych == '!')
+          goto yy116;
+        goto yy103;
+      } else {
+        if (yych <= '\'')
+          goto yy116;
+        if (yych <= ')')
+          goto yy103;
+        if (yych <= '+')
+          goto yy116;
+        goto yy103;
+      }
+    } else {
+      if (yych <= '>') {
+        if (yych <= '9')
+          goto yy116;
+        if (yych == '=')
+          goto yy116;
+        goto yy103;
+      } else {
+        if (yych <= 'Z')
+          goto yy116;
+        if (yych <= ']')
+          goto yy103;
+        if (yych <= '~')
+          goto yy116;
+        goto yy103;
+      }
+    }
+  yy105:
+    yych = *++p;
+    goto yy103;
+  yy106:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy107;
+    if (yych <= 0xBF)
+      goto yy105;
+  yy107:
+    p = marker;
+    goto yy103;
+  yy108:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy107;
+    if (yych <= 0xBF)
+      goto yy106;
+    goto yy107;
+  yy109:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy107;
+    if (yych <= 0xBF)
+      goto yy106;
+    goto yy107;
+  yy110:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy107;
+    if (yych <= 0xBF)
+      goto yy109;
+    goto yy107;
+  yy111:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy107;
+    if (yych <= 0xBF)
+      goto yy109;
+    goto yy107;
+  yy112:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy107;
+    if (yych <= 0x8F)
+      goto yy109;
+    goto yy107;
+  yy113:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy107;
+    if (yych <= 0x9F)
+      goto yy106;
+    goto yy107;
+  yy114:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy107;
+      if (yych <= '9')
+        goto yy117;
+      goto yy107;
+    } else {
+      if (yych <= 'Z')
+        goto yy117;
+      if (yych <= '`')
+        goto yy107;
+      if (yych <= 'z')
+        goto yy117;
+      goto yy107;
+    }
+  yy115:
+    ++p;
+    yych = *p;
+  yy116:
+    if (yybm[0 + yych] & 128) {
+      goto yy115;
+    }
+    if (yych <= '>')
+      goto yy107;
+    if (yych <= '@')
+      goto yy114;
+    goto yy107;
+  yy117:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy119;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy119;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy119;
+        goto yy107;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy247;
+      if (yych <= '/')
+        goto yy107;
+      goto yy248;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy248;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy248;
+        goto yy107;
+      }
+    }
+  yy119:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych <= '-')
+          goto yy247;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy248;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy248;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy248;
+        goto yy107;
+      }
+    }
+  yy120:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy107;
+      if (yych <= '9')
+        goto yy123;
+      goto yy107;
+    } else {
+      if (yych <= 'Z')
+        goto yy123;
+      if (yych <= '`')
+        goto yy107;
+      if (yych <= 'z')
+        goto yy123;
+      goto yy107;
+    }
+  yy121:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy123:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy125;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy125;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy125;
+        goto yy107;
+      }
+    }
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy126;
+      if (yych <= '/')
+        goto yy107;
+      goto yy127;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy127;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy127;
+        goto yy107;
+      }
+    }
+  yy125:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy127;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy127;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy127;
+        goto yy107;
+      }
+    }
+  yy126:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy128;
+      if (yych <= '/')
+        goto yy107;
+      goto yy129;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy129;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy129;
+        goto yy107;
+      }
+    }
+  yy127:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy129;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy129;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy129;
+        goto yy107;
+      }
+    }
+  yy128:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy130;
+      if (yych <= '/')
+        goto yy107;
+      goto yy131;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy131;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy131;
+        goto yy107;
+      }
+    }
+  yy129:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy131;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy131;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy131;
+        goto yy107;
+      }
+    }
+  yy130:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy132;
+      if (yych <= '/')
+        goto yy107;
+      goto yy133;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy133;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy133;
+        goto yy107;
+      }
+    }
+  yy131:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy133;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy133;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy133;
+        goto yy107;
+      }
+    }
+  yy132:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy134;
+      if (yych <= '/')
+        goto yy107;
+      goto yy135;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy135;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy135;
+        goto yy107;
+      }
+    }
+  yy133:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy135;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy135;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy135;
+        goto yy107;
+      }
+    }
+  yy134:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy136;
+      if (yych <= '/')
+        goto yy107;
+      goto yy137;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy137;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy137;
+        goto yy107;
+      }
+    }
+  yy135:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy137;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy137;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy137;
+        goto yy107;
+      }
+    }
+  yy136:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy138;
+      if (yych <= '/')
+        goto yy107;
+      goto yy139;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy139;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy139;
+        goto yy107;
+      }
+    }
+  yy137:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy139;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy139;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy139;
+        goto yy107;
+      }
+    }
+  yy138:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy140;
+      if (yych <= '/')
+        goto yy107;
+      goto yy141;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy141;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy141;
+        goto yy107;
+      }
+    }
+  yy139:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy141;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy141;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy141;
+        goto yy107;
+      }
+    }
+  yy140:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy142;
+      if (yych <= '/')
+        goto yy107;
+      goto yy143;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy143;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy143;
+        goto yy107;
+      }
+    }
+  yy141:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy143;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy143;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy143;
+        goto yy107;
+      }
+    }
+  yy142:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy144;
+      if (yych <= '/')
+        goto yy107;
+      goto yy145;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy145;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy145;
+        goto yy107;
+      }
+    }
+  yy143:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy145;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy145;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy145;
+        goto yy107;
+      }
+    }
+  yy144:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy146;
+      if (yych <= '/')
+        goto yy107;
+      goto yy147;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy147;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy147;
+        goto yy107;
+      }
+    }
+  yy145:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy147;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy147;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy147;
+        goto yy107;
+      }
+    }
+  yy146:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy148;
+      if (yych <= '/')
+        goto yy107;
+      goto yy149;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy149;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy149;
+        goto yy107;
+      }
+    }
+  yy147:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy149;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy149;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy149;
+        goto yy107;
+      }
+    }
+  yy148:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy150;
+      if (yych <= '/')
+        goto yy107;
+      goto yy151;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy151;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy151;
+        goto yy107;
+      }
+    }
+  yy149:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy151;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy151;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy151;
+        goto yy107;
+      }
+    }
+  yy150:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy152;
+      if (yych <= '/')
+        goto yy107;
+      goto yy153;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy153;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy153;
+        goto yy107;
+      }
+    }
+  yy151:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy153;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy153;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy153;
+        goto yy107;
+      }
+    }
+  yy152:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy154;
+      if (yych <= '/')
+        goto yy107;
+      goto yy155;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy155;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy155;
+        goto yy107;
+      }
+    }
+  yy153:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy155;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy155;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy155;
+        goto yy107;
+      }
+    }
+  yy154:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy156;
+      if (yych <= '/')
+        goto yy107;
+      goto yy157;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy157;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy157;
+        goto yy107;
+      }
+    }
+  yy155:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy157;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy157;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy157;
+        goto yy107;
+      }
+    }
+  yy156:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy158;
+      if (yych <= '/')
+        goto yy107;
+      goto yy159;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy159;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy159;
+        goto yy107;
+      }
+    }
+  yy157:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy159;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy159;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy159;
+        goto yy107;
+      }
+    }
+  yy158:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy160;
+      if (yych <= '/')
+        goto yy107;
+      goto yy161;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy161;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy161;
+        goto yy107;
+      }
+    }
+  yy159:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy161;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy161;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy161;
+        goto yy107;
+      }
+    }
+  yy160:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy162;
+      if (yych <= '/')
+        goto yy107;
+      goto yy163;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy163;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy163;
+        goto yy107;
+      }
+    }
+  yy161:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy163;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy163;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy163;
+        goto yy107;
+      }
+    }
+  yy162:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy164;
+      if (yych <= '/')
+        goto yy107;
+      goto yy165;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy165;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy165;
+        goto yy107;
+      }
+    }
+  yy163:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy165;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy165;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy165;
+        goto yy107;
+      }
+    }
+  yy164:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy166;
+      if (yych <= '/')
+        goto yy107;
+      goto yy167;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy167;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy167;
+        goto yy107;
+      }
+    }
+  yy165:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy167;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy167;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy167;
+        goto yy107;
+      }
+    }
+  yy166:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy168;
+      if (yych <= '/')
+        goto yy107;
+      goto yy169;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy169;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy169;
+        goto yy107;
+      }
+    }
+  yy167:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy169;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy169;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy169;
+        goto yy107;
+      }
+    }
+  yy168:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy170;
+      if (yych <= '/')
+        goto yy107;
+      goto yy171;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy171;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy171;
+        goto yy107;
+      }
+    }
+  yy169:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy171;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy171;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy171;
+        goto yy107;
+      }
+    }
+  yy170:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy172;
+      if (yych <= '/')
+        goto yy107;
+      goto yy173;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy173;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy173;
+        goto yy107;
+      }
+    }
+  yy171:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy173;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy173;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy173;
+        goto yy107;
+      }
+    }
+  yy172:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy174;
+      if (yych <= '/')
+        goto yy107;
+      goto yy175;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy175;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy175;
+        goto yy107;
+      }
+    }
+  yy173:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy175;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy175;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy175;
+        goto yy107;
+      }
+    }
+  yy174:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy176;
+      if (yych <= '/')
+        goto yy107;
+      goto yy177;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy177;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy177;
+        goto yy107;
+      }
+    }
+  yy175:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy177;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy177;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy177;
+        goto yy107;
+      }
+    }
+  yy176:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy178;
+      if (yych <= '/')
+        goto yy107;
+      goto yy179;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy179;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy179;
+        goto yy107;
+      }
+    }
+  yy177:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy179;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy179;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy179;
+        goto yy107;
+      }
+    }
+  yy178:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy180;
+      if (yych <= '/')
+        goto yy107;
+      goto yy181;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy181;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy181;
+        goto yy107;
+      }
+    }
+  yy179:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy181;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy181;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy181;
+        goto yy107;
+      }
+    }
+  yy180:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy182;
+      if (yych <= '/')
+        goto yy107;
+      goto yy183;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy183;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy183;
+        goto yy107;
+      }
+    }
+  yy181:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy183;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy183;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy183;
+        goto yy107;
+      }
+    }
+  yy182:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy184;
+      if (yych <= '/')
+        goto yy107;
+      goto yy185;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy185;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy185;
+        goto yy107;
+      }
+    }
+  yy183:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy185;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy185;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy185;
+        goto yy107;
+      }
+    }
+  yy184:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy186;
+      if (yych <= '/')
+        goto yy107;
+      goto yy187;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy187;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy187;
+        goto yy107;
+      }
+    }
+  yy185:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy187;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy187;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy187;
+        goto yy107;
+      }
+    }
+  yy186:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy188;
+      if (yych <= '/')
+        goto yy107;
+      goto yy189;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy189;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy189;
+        goto yy107;
+      }
+    }
+  yy187:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy189;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy189;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy189;
+        goto yy107;
+      }
+    }
+  yy188:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy190;
+      if (yych <= '/')
+        goto yy107;
+      goto yy191;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy191;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy191;
+        goto yy107;
+      }
+    }
+  yy189:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy191;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy191;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy191;
+        goto yy107;
+      }
+    }
+  yy190:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy192;
+      if (yych <= '/')
+        goto yy107;
+      goto yy193;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy193;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy193;
+        goto yy107;
+      }
+    }
+  yy191:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy193;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy193;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy193;
+        goto yy107;
+      }
+    }
+  yy192:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy194;
+      if (yych <= '/')
+        goto yy107;
+      goto yy195;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy195;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy195;
+        goto yy107;
+      }
+    }
+  yy193:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy195;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy195;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy195;
+        goto yy107;
+      }
+    }
+  yy194:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy196;
+      if (yych <= '/')
+        goto yy107;
+      goto yy197;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy197;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy197;
+        goto yy107;
+      }
+    }
+  yy195:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy197;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy197;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy197;
+        goto yy107;
+      }
+    }
+  yy196:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy198;
+      if (yych <= '/')
+        goto yy107;
+      goto yy199;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy199;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy199;
+        goto yy107;
+      }
+    }
+  yy197:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy199;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy199;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy199;
+        goto yy107;
+      }
+    }
+  yy198:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy200;
+      if (yych <= '/')
+        goto yy107;
+      goto yy201;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy201;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy201;
+        goto yy107;
+      }
+    }
+  yy199:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy201;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy201;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy201;
+        goto yy107;
+      }
+    }
+  yy200:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy202;
+      if (yych <= '/')
+        goto yy107;
+      goto yy203;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy203;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy203;
+        goto yy107;
+      }
+    }
+  yy201:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy203;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy203;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy203;
+        goto yy107;
+      }
+    }
+  yy202:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy204;
+      if (yych <= '/')
+        goto yy107;
+      goto yy205;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy205;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy205;
+        goto yy107;
+      }
+    }
+  yy203:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy205;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy205;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy205;
+        goto yy107;
+      }
+    }
+  yy204:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy206;
+      if (yych <= '/')
+        goto yy107;
+      goto yy207;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy207;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy207;
+        goto yy107;
+      }
+    }
+  yy205:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy207;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy207;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy207;
+        goto yy107;
+      }
+    }
+  yy206:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy208;
+      if (yych <= '/')
+        goto yy107;
+      goto yy209;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy209;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy209;
+        goto yy107;
+      }
+    }
+  yy207:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy209;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy209;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy209;
+        goto yy107;
+      }
+    }
+  yy208:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy210;
+      if (yych <= '/')
+        goto yy107;
+      goto yy211;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy211;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy211;
+        goto yy107;
+      }
+    }
+  yy209:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy211;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy211;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy211;
+        goto yy107;
+      }
+    }
+  yy210:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy212;
+      if (yych <= '/')
+        goto yy107;
+      goto yy213;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy213;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy213;
+        goto yy107;
+      }
+    }
+  yy211:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy213;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy213;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy213;
+        goto yy107;
+      }
+    }
+  yy212:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy214;
+      if (yych <= '/')
+        goto yy107;
+      goto yy215;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy215;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy215;
+        goto yy107;
+      }
+    }
+  yy213:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy215;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy215;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy215;
+        goto yy107;
+      }
+    }
+  yy214:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy216;
+      if (yych <= '/')
+        goto yy107;
+      goto yy217;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy217;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy217;
+        goto yy107;
+      }
+    }
+  yy215:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy217;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy217;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy217;
+        goto yy107;
+      }
+    }
+  yy216:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy218;
+      if (yych <= '/')
+        goto yy107;
+      goto yy219;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy219;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy219;
+        goto yy107;
+      }
+    }
+  yy217:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy219;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy219;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy219;
+        goto yy107;
+      }
+    }
+  yy218:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy220;
+      if (yych <= '/')
+        goto yy107;
+      goto yy221;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy221;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy221;
+        goto yy107;
+      }
+    }
+  yy219:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy221;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy221;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy221;
+        goto yy107;
+      }
+    }
+  yy220:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy222;
+      if (yych <= '/')
+        goto yy107;
+      goto yy223;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy223;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy223;
+        goto yy107;
+      }
+    }
+  yy221:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy223;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy223;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy223;
+        goto yy107;
+      }
+    }
+  yy222:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy224;
+      if (yych <= '/')
+        goto yy107;
+      goto yy225;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy225;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy225;
+        goto yy107;
+      }
+    }
+  yy223:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy225;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy225;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy225;
+        goto yy107;
+      }
+    }
+  yy224:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy226;
+      if (yych <= '/')
+        goto yy107;
+      goto yy227;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy227;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy227;
+        goto yy107;
+      }
+    }
+  yy225:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy227;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy227;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy227;
+        goto yy107;
+      }
+    }
+  yy226:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy228;
+      if (yych <= '/')
+        goto yy107;
+      goto yy229;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy229;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy229;
+        goto yy107;
+      }
+    }
+  yy227:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy229;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy229;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy229;
+        goto yy107;
+      }
+    }
+  yy228:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy230;
+      if (yych <= '/')
+        goto yy107;
+      goto yy231;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy231;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy231;
+        goto yy107;
+      }
+    }
+  yy229:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy231;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy231;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy231;
+        goto yy107;
+      }
+    }
+  yy230:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy232;
+      if (yych <= '/')
+        goto yy107;
+      goto yy233;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy233;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy233;
+        goto yy107;
+      }
+    }
+  yy231:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy233;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy233;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy233;
+        goto yy107;
+      }
+    }
+  yy232:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy234;
+      if (yych <= '/')
+        goto yy107;
+      goto yy235;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy235;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy235;
+        goto yy107;
+      }
+    }
+  yy233:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy235;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy235;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy235;
+        goto yy107;
+      }
+    }
+  yy234:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy236;
+      if (yych <= '/')
+        goto yy107;
+      goto yy237;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy237;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy237;
+        goto yy107;
+      }
+    }
+  yy235:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy237;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy237;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy237;
+        goto yy107;
+      }
+    }
+  yy236:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy238;
+      if (yych <= '/')
+        goto yy107;
+      goto yy239;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy239;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy239;
+        goto yy107;
+      }
+    }
+  yy237:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy239;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy239;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy239;
+        goto yy107;
+      }
+    }
+  yy238:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy240;
+      if (yych <= '/')
+        goto yy107;
+      goto yy241;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy241;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy241;
+        goto yy107;
+      }
+    }
+  yy239:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy241;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy241;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy241;
+        goto yy107;
+      }
+    }
+  yy240:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy242;
+      if (yych <= '/')
+        goto yy107;
+      goto yy243;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy243;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy243;
+        goto yy107;
+      }
+    }
+  yy241:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy243;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy243;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy243;
+        goto yy107;
+      }
+    }
+  yy242:
+    ++p;
+    yych = *p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy244;
+      if (yych <= '/')
+        goto yy107;
+      goto yy245;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy245;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy245;
+        goto yy107;
+      }
+    }
+  yy243:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy245;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy245;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy245;
+        goto yy107;
+      }
+    }
+  yy244:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy107;
+      if (yych <= '9')
+        goto yy246;
+      goto yy107;
+    } else {
+      if (yych <= 'Z')
+        goto yy246;
+      if (yych <= '`')
+        goto yy107;
+      if (yych <= 'z')
+        goto yy246;
+      goto yy107;
+    }
+  yy245:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= '-')
+          goto yy107;
+        goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych >= ':')
+          goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych >= '{')
+          goto yy107;
+      }
+    }
+  yy246:
+    ++p;
+    yych = *p;
+    if (yych == '.')
+      goto yy120;
+    if (yych == '>')
+      goto yy121;
+    goto yy107;
+  yy247:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy249;
+      if (yych <= '/')
+        goto yy107;
+      goto yy250;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy250;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy250;
+        goto yy107;
+      }
+    }
+  yy248:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy250;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy250;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy250;
+        goto yy107;
+      }
+    }
+  yy249:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy251;
+      if (yych <= '/')
+        goto yy107;
+      goto yy252;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy252;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy252;
+        goto yy107;
+      }
+    }
+  yy250:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy252;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy252;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy252;
+        goto yy107;
+      }
+    }
+  yy251:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy253;
+      if (yych <= '/')
+        goto yy107;
+      goto yy254;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy254;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy254;
+        goto yy107;
+      }
+    }
+  yy252:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy254;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy254;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy254;
+        goto yy107;
+      }
+    }
+  yy253:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy255;
+      if (yych <= '/')
+        goto yy107;
+      goto yy256;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy256;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy256;
+        goto yy107;
+      }
+    }
+  yy254:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy256;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy256;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy256;
+        goto yy107;
+      }
+    }
+  yy255:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy257;
+      if (yych <= '/')
+        goto yy107;
+      goto yy258;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy258;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy258;
+        goto yy107;
+      }
+    }
+  yy256:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy258;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy258;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy258;
+        goto yy107;
+      }
+    }
+  yy257:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy259;
+      if (yych <= '/')
+        goto yy107;
+      goto yy260;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy260;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy260;
+        goto yy107;
+      }
+    }
+  yy258:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy260;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy260;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy260;
+        goto yy107;
+      }
+    }
+  yy259:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy261;
+      if (yych <= '/')
+        goto yy107;
+      goto yy262;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy262;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy262;
+        goto yy107;
+      }
+    }
+  yy260:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy262;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy262;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy262;
+        goto yy107;
+      }
+    }
+  yy261:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy263;
+      if (yych <= '/')
+        goto yy107;
+      goto yy264;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy264;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy264;
+        goto yy107;
+      }
+    }
+  yy262:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy264;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy264;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy264;
+        goto yy107;
+      }
+    }
+  yy263:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy265;
+      if (yych <= '/')
+        goto yy107;
+      goto yy266;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy266;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy266;
+        goto yy107;
+      }
+    }
+  yy264:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy266;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy266;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy266;
+        goto yy107;
+      }
+    }
+  yy265:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy267;
+      if (yych <= '/')
+        goto yy107;
+      goto yy268;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy268;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy268;
+        goto yy107;
+      }
+    }
+  yy266:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy268;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy268;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy268;
+        goto yy107;
+      }
+    }
+  yy267:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy269;
+      if (yych <= '/')
+        goto yy107;
+      goto yy270;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy270;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy270;
+        goto yy107;
+      }
+    }
+  yy268:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy270;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy270;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy270;
+        goto yy107;
+      }
+    }
+  yy269:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy271;
+      if (yych <= '/')
+        goto yy107;
+      goto yy272;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy272;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy272;
+        goto yy107;
+      }
+    }
+  yy270:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy272;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy272;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy272;
+        goto yy107;
+      }
+    }
+  yy271:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy273;
+      if (yych <= '/')
+        goto yy107;
+      goto yy274;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy274;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy274;
+        goto yy107;
+      }
+    }
+  yy272:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy274;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy274;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy274;
+        goto yy107;
+      }
+    }
+  yy273:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy275;
+      if (yych <= '/')
+        goto yy107;
+      goto yy276;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy276;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy276;
+        goto yy107;
+      }
+    }
+  yy274:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy276;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy276;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy276;
+        goto yy107;
+      }
+    }
+  yy275:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy277;
+      if (yych <= '/')
+        goto yy107;
+      goto yy278;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy278;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy278;
+        goto yy107;
+      }
+    }
+  yy276:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy278;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy278;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy278;
+        goto yy107;
+      }
+    }
+  yy277:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy279;
+      if (yych <= '/')
+        goto yy107;
+      goto yy280;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy280;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy280;
+        goto yy107;
+      }
+    }
+  yy278:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy280;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy280;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy280;
+        goto yy107;
+      }
+    }
+  yy279:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy281;
+      if (yych <= '/')
+        goto yy107;
+      goto yy282;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy282;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy282;
+        goto yy107;
+      }
+    }
+  yy280:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy282;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy282;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy282;
+        goto yy107;
+      }
+    }
+  yy281:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy283;
+      if (yych <= '/')
+        goto yy107;
+      goto yy284;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy284;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy284;
+        goto yy107;
+      }
+    }
+  yy282:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy284;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy284;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy284;
+        goto yy107;
+      }
+    }
+  yy283:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy285;
+      if (yych <= '/')
+        goto yy107;
+      goto yy286;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy286;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy286;
+        goto yy107;
+      }
+    }
+  yy284:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy286;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy286;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy286;
+        goto yy107;
+      }
+    }
+  yy285:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy287;
+      if (yych <= '/')
+        goto yy107;
+      goto yy288;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy288;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy288;
+        goto yy107;
+      }
+    }
+  yy286:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy288;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy288;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy288;
+        goto yy107;
+      }
+    }
+  yy287:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy289;
+      if (yych <= '/')
+        goto yy107;
+      goto yy290;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy290;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy290;
+        goto yy107;
+      }
+    }
+  yy288:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy290;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy290;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy290;
+        goto yy107;
+      }
+    }
+  yy289:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy291;
+      if (yych <= '/')
+        goto yy107;
+      goto yy292;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy292;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy292;
+        goto yy107;
+      }
+    }
+  yy290:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy292;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy292;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy292;
+        goto yy107;
+      }
+    }
+  yy291:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy293;
+      if (yych <= '/')
+        goto yy107;
+      goto yy294;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy294;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy294;
+        goto yy107;
+      }
+    }
+  yy292:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy294;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy294;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy294;
+        goto yy107;
+      }
+    }
+  yy293:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy295;
+      if (yych <= '/')
+        goto yy107;
+      goto yy296;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy296;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy296;
+        goto yy107;
+      }
+    }
+  yy294:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy296;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy296;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy296;
+        goto yy107;
+      }
+    }
+  yy295:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy297;
+      if (yych <= '/')
+        goto yy107;
+      goto yy298;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy298;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy298;
+        goto yy107;
+      }
+    }
+  yy296:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy298;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy298;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy298;
+        goto yy107;
+      }
+    }
+  yy297:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy299;
+      if (yych <= '/')
+        goto yy107;
+      goto yy300;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy300;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy300;
+        goto yy107;
+      }
+    }
+  yy298:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy300;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy300;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy300;
+        goto yy107;
+      }
+    }
+  yy299:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy301;
+      if (yych <= '/')
+        goto yy107;
+      goto yy302;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy302;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy302;
+        goto yy107;
+      }
+    }
+  yy300:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy302;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy302;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy302;
+        goto yy107;
+      }
+    }
+  yy301:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy303;
+      if (yych <= '/')
+        goto yy107;
+      goto yy304;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy304;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy304;
+        goto yy107;
+      }
+    }
+  yy302:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy304;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy304;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy304;
+        goto yy107;
+      }
+    }
+  yy303:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy305;
+      if (yych <= '/')
+        goto yy107;
+      goto yy306;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy306;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy306;
+        goto yy107;
+      }
+    }
+  yy304:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy306;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy306;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy306;
+        goto yy107;
+      }
+    }
+  yy305:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy307;
+      if (yych <= '/')
+        goto yy107;
+      goto yy308;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy308;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy308;
+        goto yy107;
+      }
+    }
+  yy306:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy308;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy308;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy308;
+        goto yy107;
+      }
+    }
+  yy307:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy309;
+      if (yych <= '/')
+        goto yy107;
+      goto yy310;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy310;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy310;
+        goto yy107;
+      }
+    }
+  yy308:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy310;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy310;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy310;
+        goto yy107;
+      }
+    }
+  yy309:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy311;
+      if (yych <= '/')
+        goto yy107;
+      goto yy312;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy312;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy312;
+        goto yy107;
+      }
+    }
+  yy310:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy312;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy312;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy312;
+        goto yy107;
+      }
+    }
+  yy311:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy313;
+      if (yych <= '/')
+        goto yy107;
+      goto yy314;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy314;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy314;
+        goto yy107;
+      }
+    }
+  yy312:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy314;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy314;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy314;
+        goto yy107;
+      }
+    }
+  yy313:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy315;
+      if (yych <= '/')
+        goto yy107;
+      goto yy316;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy316;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy316;
+        goto yy107;
+      }
+    }
+  yy314:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy316;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy316;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy316;
+        goto yy107;
+      }
+    }
+  yy315:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy317;
+      if (yych <= '/')
+        goto yy107;
+      goto yy318;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy318;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy318;
+        goto yy107;
+      }
+    }
+  yy316:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy318;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy318;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy318;
+        goto yy107;
+      }
+    }
+  yy317:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy319;
+      if (yych <= '/')
+        goto yy107;
+      goto yy320;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy320;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy320;
+        goto yy107;
+      }
+    }
+  yy318:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy320;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy320;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy320;
+        goto yy107;
+      }
+    }
+  yy319:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy321;
+      if (yych <= '/')
+        goto yy107;
+      goto yy322;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy322;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy322;
+        goto yy107;
+      }
+    }
+  yy320:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy322;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy322;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy322;
+        goto yy107;
+      }
+    }
+  yy321:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy323;
+      if (yych <= '/')
+        goto yy107;
+      goto yy324;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy324;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy324;
+        goto yy107;
+      }
+    }
+  yy322:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy324;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy324;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy324;
+        goto yy107;
+      }
+    }
+  yy323:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy325;
+      if (yych <= '/')
+        goto yy107;
+      goto yy326;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy326;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy326;
+        goto yy107;
+      }
+    }
+  yy324:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy326;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy326;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy326;
+        goto yy107;
+      }
+    }
+  yy325:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy327;
+      if (yych <= '/')
+        goto yy107;
+      goto yy328;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy328;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy328;
+        goto yy107;
+      }
+    }
+  yy326:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy328;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy328;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy328;
+        goto yy107;
+      }
+    }
+  yy327:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy329;
+      if (yych <= '/')
+        goto yy107;
+      goto yy330;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy330;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy330;
+        goto yy107;
+      }
+    }
+  yy328:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy330;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy330;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy330;
+        goto yy107;
+      }
+    }
+  yy329:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy331;
+      if (yych <= '/')
+        goto yy107;
+      goto yy332;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy332;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy332;
+        goto yy107;
+      }
+    }
+  yy330:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy332;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy332;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy332;
+        goto yy107;
+      }
+    }
+  yy331:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy333;
+      if (yych <= '/')
+        goto yy107;
+      goto yy334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy334;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy334;
+        goto yy107;
+      }
+    }
+  yy332:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy334;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy334;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy334;
+        goto yy107;
+      }
+    }
+  yy333:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy335;
+      if (yych <= '/')
+        goto yy107;
+      goto yy336;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy336;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy336;
+        goto yy107;
+      }
+    }
+  yy334:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy336;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy336;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy336;
+        goto yy107;
+      }
+    }
+  yy335:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy337;
+      if (yych <= '/')
+        goto yy107;
+      goto yy338;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy338;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy338;
+        goto yy107;
+      }
+    }
+  yy336:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy338;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy338;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy338;
+        goto yy107;
+      }
+    }
+  yy337:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy339;
+      if (yych <= '/')
+        goto yy107;
+      goto yy340;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy340;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy340;
+        goto yy107;
+      }
+    }
+  yy338:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy340;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy340;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy340;
+        goto yy107;
+      }
+    }
+  yy339:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy341;
+      if (yych <= '/')
+        goto yy107;
+      goto yy342;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy342;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy342;
+        goto yy107;
+      }
+    }
+  yy340:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy342;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy342;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy342;
+        goto yy107;
+      }
+    }
+  yy341:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy343;
+      if (yych <= '/')
+        goto yy107;
+      goto yy344;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy344;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy344;
+        goto yy107;
+      }
+    }
+  yy342:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy344;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy344;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy344;
+        goto yy107;
+      }
+    }
+  yy343:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy345;
+      if (yych <= '/')
+        goto yy107;
+      goto yy346;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy346;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy346;
+        goto yy107;
+      }
+    }
+  yy344:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy346;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy346;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy346;
+        goto yy107;
+      }
+    }
+  yy345:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy347;
+      if (yych <= '/')
+        goto yy107;
+      goto yy348;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy348;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy348;
+        goto yy107;
+      }
+    }
+  yy346:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy348;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy348;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy348;
+        goto yy107;
+      }
+    }
+  yy347:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy349;
+      if (yych <= '/')
+        goto yy107;
+      goto yy350;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy350;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy350;
+        goto yy107;
+      }
+    }
+  yy348:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy350;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy350;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy350;
+        goto yy107;
+      }
+    }
+  yy349:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy351;
+      if (yych <= '/')
+        goto yy107;
+      goto yy352;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy352;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy352;
+        goto yy107;
+      }
+    }
+  yy350:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy352;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy352;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy352;
+        goto yy107;
+      }
+    }
+  yy351:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy353;
+      if (yych <= '/')
+        goto yy107;
+      goto yy354;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy354;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy354;
+        goto yy107;
+      }
+    }
+  yy352:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy354;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy354;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy354;
+        goto yy107;
+      }
+    }
+  yy353:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy355;
+      if (yych <= '/')
+        goto yy107;
+      goto yy356;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy356;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy356;
+        goto yy107;
+      }
+    }
+  yy354:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy356;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy356;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy356;
+        goto yy107;
+      }
+    }
+  yy355:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy357;
+      if (yych <= '/')
+        goto yy107;
+      goto yy358;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy358;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy358;
+        goto yy107;
+      }
+    }
+  yy356:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy358;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy358;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy358;
+        goto yy107;
+      }
+    }
+  yy357:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy359;
+      if (yych <= '/')
+        goto yy107;
+      goto yy360;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy360;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy360;
+        goto yy107;
+      }
+    }
+  yy358:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy360;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy360;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy360;
+        goto yy107;
+      }
+    }
+  yy359:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy361;
+      if (yych <= '/')
+        goto yy107;
+      goto yy362;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy362;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy362;
+        goto yy107;
+      }
+    }
+  yy360:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy362;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy362;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy362;
+        goto yy107;
+      }
+    }
+  yy361:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy363;
+      if (yych <= '/')
+        goto yy107;
+      goto yy364;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy364;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy364;
+        goto yy107;
+      }
+    }
+  yy362:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy364;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy364;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy364;
+        goto yy107;
+      }
+    }
+  yy363:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy365;
+      if (yych <= '/')
+        goto yy107;
+      goto yy366;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy107;
+        goto yy366;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy366;
+        goto yy107;
+      }
+    }
+  yy364:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy107;
+        if (yych >= '.')
+          goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy366;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy366;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy366;
+        goto yy107;
+      }
+    }
+  yy365:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy107;
+      if (yych <= '9')
+        goto yy246;
+      goto yy107;
+    } else {
+      if (yych <= 'Z')
+        goto yy246;
+      if (yych <= '`')
+        goto yy107;
+      if (yych <= 'z')
+        goto yy246;
+      goto yy107;
+    }
+  yy366:
+    ++p;
+    if ((yych = *p) <= '=') {
+      if (yych <= '.') {
+        if (yych <= '-')
+          goto yy107;
+        goto yy120;
+      } else {
+        if (yych <= '/')
+          goto yy107;
+        if (yych <= '9')
+          goto yy246;
+        goto yy107;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy121;
+        if (yych <= '@')
+          goto yy107;
+        goto yy246;
+      } else {
+        if (yych <= '`')
+          goto yy107;
+        if (yych <= 'z')
+          goto yy246;
+        goto yy107;
+      }
+    }
+  }
+}
+
+// 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 yy374;
+        } else {
+          if (yych == '!')
+            goto yy372;
+          goto yy374;
+        }
+      } else {
+        if (yych <= '?') {
+          if (yych <= '/')
+            goto yy371;
+          if (yych <= '>')
+            goto yy374;
+          goto yy373;
+        } else {
+          if (yych <= '@')
+            goto yy374;
+          if (yych <= 'Z')
+            goto yy370;
+          goto yy374;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= 'z')
+            goto yy370;
+          if (yych <= 0x7F)
+            goto yy374;
+        } else {
+          if (yych <= 0xDF)
+            goto yy375;
+          if (yych <= 0xE0)
+            goto yy377;
+          goto yy378;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy382;
+          if (yych <= 0xEF)
+            goto yy378;
+          goto yy379;
+        } else {
+          if (yych <= 0xF3)
+            goto yy380;
+          if (yych <= 0xF4)
+            goto yy381;
+        }
+      }
+    }
+  yy369 : { return 0; }
+  yy370:
+    yych = *(marker = ++p);
+    if (yych <= '/') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy369;
+        if (yych <= '\r')
+          goto yy474;
+        if (yych <= 0x1F)
+          goto yy369;
+        goto yy474;
+      } else {
+        if (yych == '-')
+          goto yy472;
+        if (yych <= '.')
+          goto yy369;
+        goto yy476;
+      }
+    } else {
+      if (yych <= '@') {
+        if (yych <= '9')
+          goto yy472;
+        if (yych == '>')
+          goto yy393;
+        goto yy369;
+      } else {
+        if (yych <= 'Z')
+          goto yy472;
+        if (yych <= '`')
+          goto yy369;
+        if (yych <= 'z')
+          goto yy472;
+        goto yy369;
+      }
+    }
+  yy371:
+    yych = *(marker = ++p);
+    if (yych <= '@')
+      goto yy369;
+    if (yych <= 'Z')
+      goto yy468;
+    if (yych <= '`')
+      goto yy369;
+    if (yych <= 'z')
+      goto yy468;
+    goto yy369;
+  yy372:
+    yych = *(marker = ++p);
+    if (yybm[256 + yych] & 64) {
+      goto yy403;
+    }
+    if (yych == '-')
+      goto yy405;
+    if (yych <= '@')
+      goto yy369;
+    if (yych <= '[')
+      goto yy402;
+    goto yy369;
+  yy373:
+    yych = *(marker = ++p);
+    if (yych <= 0x00)
+      goto yy369;
+    if (yych <= 0x7F)
+      goto yy384;
+    if (yych <= 0xC1)
+      goto yy369;
+    if (yych <= 0xF4)
+      goto yy384;
+    goto yy369;
+  yy374:
+    yych = *++p;
+    goto yy369;
+  yy375:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy374;
+  yy376:
+    p = marker;
+    goto yy369;
+  yy377:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy375;
+    goto yy376;
+  yy378:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy375;
+    goto yy376;
+  yy379:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy378;
+    goto yy376;
+  yy380:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy378;
+    goto yy376;
+  yy381:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x8F)
+      goto yy378;
+    goto yy376;
+  yy382:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x9F)
+      goto yy375;
+    goto yy376;
+  yy383:
+    ++p;
+    yych = *p;
+  yy384:
+    if (yybm[256 + yych] & 32) {
+      goto yy383;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych <= '?')
+          goto yy392;
+        goto yy376;
+      } else {
+        if (yych <= 0xDF)
+          goto yy385;
+        if (yych <= 0xE0)
+          goto yy386;
+        goto yy387;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy391;
+        if (yych <= 0xEF)
+          goto yy387;
+        goto yy388;
+      } else {
+        if (yych <= 0xF3)
+          goto yy389;
+        if (yych <= 0xF4)
+          goto yy390;
+        goto yy376;
+      }
+    }
+  yy385:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy383;
+    goto yy376;
+  yy386:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy385;
+    goto yy376;
+  yy387:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy385;
+    goto yy376;
+  yy388:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy387;
+    goto yy376;
+  yy389:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy387;
+    goto yy376;
+  yy390:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x8F)
+      goto yy387;
+    goto yy376;
+  yy391:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x9F)
+      goto yy385;
+    goto yy376;
+  yy392:
+    ++p;
+    yych = *p;
+    if (yych <= 0xE0) {
+      if (yych <= '>') {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych <= '=')
+          goto yy383;
+      } else {
+        if (yych <= 0x7F)
+          goto yy383;
+        if (yych <= 0xC1)
+          goto yy376;
+        if (yych <= 0xDF)
+          goto yy395;
+        goto yy396;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy401;
+        goto yy397;
+      } else {
+        if (yych <= 0xF0)
+          goto yy398;
+        if (yych <= 0xF3)
+          goto yy399;
+        if (yych <= 0xF4)
+          goto yy400;
+        goto yy376;
+      }
+    }
+  yy393:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy395:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy383;
+    goto yy376;
+  yy396:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy395;
+    goto yy376;
+  yy397:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy395;
+    goto yy376;
+  yy398:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy397;
+    goto yy376;
+  yy399:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy397;
+    goto yy376;
+  yy400:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x8F)
+      goto yy397;
+    goto yy376;
+  yy401:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x9F)
+      goto yy395;
+    goto yy376;
+  yy402:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy438;
+    if (yych == 'c')
+      goto yy438;
+    goto yy376;
+  yy403:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 1) {
+      goto yy427;
+    }
+    if (yych <= '@')
+      goto yy376;
+    if (yych <= 'Z')
+      goto yy403;
+    goto yy376;
+  yy405:
+    yych = *++p;
+    if (yych != '-')
+      goto yy376;
+    yych = *++p;
+    if (yych <= 0xE0) {
+      if (yych <= '=') {
+        if (yych != '-')
+          goto yy409;
+      } else {
+        if (yych <= '>')
+          goto yy376;
+        if (yych <= 0xC1)
+          goto yy409;
+        if (yych <= 0xDF)
+          goto yy410;
+        goto yy411;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy416;
+        goto yy412;
+      } else {
+        if (yych <= 0xF0)
+          goto yy413;
+        if (yych <= 0xF3)
+          goto yy414;
+        if (yych <= 0xF4)
+          goto yy415;
+        goto yy409;
+      }
+    }
+    yych = *++p;
+    if (yych <= 0xE0) {
+      if (yych <= '=') {
+        if (yych == '-')
+          goto yy426;
+        goto yy409;
+      } else {
+        if (yych <= '>')
+          goto yy376;
+        if (yych <= 0xC1)
+          goto yy409;
+        if (yych <= 0xDF)
+          goto yy410;
+        goto yy411;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy416;
+        goto yy412;
+      } else {
+        if (yych <= 0xF0)
+          goto yy413;
+        if (yych <= 0xF3)
+          goto yy414;
+        if (yych <= 0xF4)
+          goto yy415;
+        goto yy409;
+      }
+    }
+  yy408:
+    ++p;
+    yych = *p;
+  yy409:
+    if (yybm[256 + yych] & 128) {
+      goto yy408;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych <= '-')
+          goto yy417;
+        goto yy376;
+      } else {
+        if (yych <= 0xDF)
+          goto yy418;
+        if (yych <= 0xE0)
+          goto yy419;
+        goto yy420;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy424;
+        if (yych <= 0xEF)
+          goto yy420;
+        goto yy421;
+      } else {
+        if (yych <= 0xF3)
+          goto yy422;
+        if (yych <= 0xF4)
+          goto yy423;
+        goto yy376;
+      }
+    }
+  yy410:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy408;
+    goto yy376;
+  yy411:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy410;
+    goto yy376;
+  yy412:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy410;
+    goto yy376;
+  yy413:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy412;
+    goto yy376;
+  yy414:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy412;
+    goto yy376;
+  yy415:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x8F)
+      goto yy412;
+    goto yy376;
+  yy416:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x9F)
+      goto yy410;
+    goto yy376;
+  yy417:
+    ++p;
+    yych = *p;
+    if (yybm[256 + yych] & 128) {
+      goto yy408;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych <= '-')
+          goto yy425;
+        goto yy376;
+      } else {
+        if (yych <= 0xDF)
+          goto yy418;
+        if (yych <= 0xE0)
+          goto yy419;
+        goto yy420;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy424;
+        if (yych <= 0xEF)
+          goto yy420;
+        goto yy421;
+      } else {
+        if (yych <= 0xF3)
+          goto yy422;
+        if (yych <= 0xF4)
+          goto yy423;
+        goto yy376;
+      }
+    }
+  yy418:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy408;
+    goto yy376;
+  yy419:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy418;
+    goto yy376;
+  yy420:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy418;
+    goto yy376;
+  yy421:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy420;
+    goto yy376;
+  yy422:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy420;
+    goto yy376;
+  yy423:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x8F)
+      goto yy420;
+    goto yy376;
+  yy424:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x9F)
+      goto yy418;
+    goto yy376;
+  yy425:
+    yych = *++p;
+    if (yych == '>')
+      goto yy393;
+    goto yy376;
+  yy426:
+    yych = *++p;
+    if (yych == '>')
+      goto yy393;
+    goto yy376;
+  yy427:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 1) {
+      goto yy427;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '>') {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych >= '>')
+          goto yy393;
+      } else {
+        if (yych <= 0x7F)
+          goto yy429;
+        if (yych <= 0xC1)
+          goto yy376;
+        if (yych <= 0xDF)
+          goto yy431;
+        goto yy432;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy437;
+        goto yy433;
+      } else {
+        if (yych <= 0xF0)
+          goto yy434;
+        if (yych <= 0xF3)
+          goto yy435;
+        if (yych <= 0xF4)
+          goto yy436;
+        goto yy376;
+      }
+    }
+  yy429:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 2) {
+      goto yy429;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych <= '>')
+          goto yy393;
+        goto yy376;
+      } else {
+        if (yych <= 0xDF)
+          goto yy431;
+        if (yych <= 0xE0)
+          goto yy432;
+        goto yy433;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy437;
+        if (yych <= 0xEF)
+          goto yy433;
+        goto yy434;
+      } else {
+        if (yych <= 0xF3)
+          goto yy435;
+        if (yych <= 0xF4)
+          goto yy436;
+        goto yy376;
+      }
+    }
+  yy431:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy429;
+    goto yy376;
+  yy432:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy431;
+    goto yy376;
+  yy433:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy431;
+    goto yy376;
+  yy434:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy433;
+    goto yy376;
+  yy435:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy433;
+    goto yy376;
+  yy436:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x8F)
+      goto yy433;
+    goto yy376;
+  yy437:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x9F)
+      goto yy431;
+    goto yy376;
+  yy438:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy439;
+    if (yych != 'd')
+      goto yy376;
+  yy439:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy440;
+    if (yych != 'a')
+      goto yy376;
+  yy440:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy441;
+    if (yych != 't')
+      goto yy376;
+  yy441:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy442;
+    if (yych != 'a')
+      goto yy376;
+  yy442:
+    yych = *++p;
+    if (yych != '[')
+      goto yy376;
+  yy443:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 4) {
+      goto yy443;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych <= ']')
+          goto yy452;
+        goto yy376;
+      } else {
+        if (yych <= 0xDF)
+          goto yy445;
+        if (yych <= 0xE0)
+          goto yy446;
+        goto yy447;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy451;
+        if (yych <= 0xEF)
+          goto yy447;
+        goto yy448;
+      } else {
+        if (yych <= 0xF3)
+          goto yy449;
+        if (yych <= 0xF4)
+          goto yy450;
+        goto yy376;
+      }
+    }
+  yy445:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy443;
+    goto yy376;
+  yy446:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy445;
+    goto yy376;
+  yy447:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy445;
+    goto yy376;
+  yy448:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy447;
+    goto yy376;
+  yy449:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy447;
+    goto yy376;
+  yy450:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x8F)
+      goto yy447;
+    goto yy376;
+  yy451:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x9F)
+      goto yy445;
+    goto yy376;
+  yy452:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 4) {
+      goto yy443;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych >= '^')
+          goto yy376;
+      } else {
+        if (yych <= 0xDF)
+          goto yy454;
+        if (yych <= 0xE0)
+          goto yy455;
+        goto yy456;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy460;
+        if (yych <= 0xEF)
+          goto yy456;
+        goto yy457;
+      } else {
+        if (yych <= 0xF3)
+          goto yy458;
+        if (yych <= 0xF4)
+          goto yy459;
+        goto yy376;
+      }
+    }
+    ++p;
+    yych = *p;
+    if (yych <= 0xE0) {
+      if (yych <= '>') {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych <= '=')
+          goto yy443;
+        goto yy393;
+      } else {
+        if (yych <= 0x7F)
+          goto yy443;
+        if (yych <= 0xC1)
+          goto yy376;
+        if (yych <= 0xDF)
+          goto yy461;
+        goto yy462;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy467;
+        goto yy463;
+      } else {
+        if (yych <= 0xF0)
+          goto yy464;
+        if (yych <= 0xF3)
+          goto yy465;
+        if (yych <= 0xF4)
+          goto yy466;
+        goto yy376;
+      }
+    }
+  yy454:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy443;
+    goto yy376;
+  yy455:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy454;
+    goto yy376;
+  yy456:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy454;
+    goto yy376;
+  yy457:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy456;
+    goto yy376;
+  yy458:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy456;
+    goto yy376;
+  yy459:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x8F)
+      goto yy456;
+    goto yy376;
+  yy460:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x9F)
+      goto yy454;
+    goto yy376;
+  yy461:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy443;
+    goto yy376;
+  yy462:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy461;
+    goto yy376;
+  yy463:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy461;
+    goto yy376;
+  yy464:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy463;
+    goto yy376;
+  yy465:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy463;
+    goto yy376;
+  yy466:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x8F)
+      goto yy463;
+    goto yy376;
+  yy467:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x9F)
+      goto yy461;
+    goto yy376;
+  yy468:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 8) {
+      goto yy468;
+    }
+    if (yych <= 0x1F) {
+      if (yych <= 0x08)
+        goto yy376;
+      if (yych >= 0x0E)
+        goto yy376;
+    } else {
+      if (yych <= ' ')
+        goto yy470;
+      if (yych == '>')
+        goto yy393;
+      goto yy376;
+    }
+  yy470:
+    ++p;
+    yych = *p;
+    if (yych <= 0x1F) {
+      if (yych <= 0x08)
+        goto yy376;
+      if (yych <= '\r')
+        goto yy470;
+      goto yy376;
+    } else {
+      if (yych <= ' ')
+        goto yy470;
+      if (yych == '>')
+        goto yy393;
+      goto yy376;
+    }
+  yy472:
+    ++p;
+    yych = *p;
+    if (yych <= '/') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy376;
+        if (yych <= '\r')
+          goto yy474;
+        if (yych <= 0x1F)
+          goto yy376;
+      } else {
+        if (yych == '-')
+          goto yy472;
+        if (yych <= '.')
+          goto yy376;
+        goto yy476;
+      }
+    } else {
+      if (yych <= '@') {
+        if (yych <= '9')
+          goto yy472;
+        if (yych == '>')
+          goto yy393;
+        goto yy376;
+      } else {
+        if (yych <= 'Z')
+          goto yy472;
+        if (yych <= '`')
+          goto yy376;
+        if (yych <= 'z')
+          goto yy472;
+        goto yy376;
+      }
+    }
+  yy474:
+    ++p;
+    yych = *p;
+    if (yych <= ':') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy376;
+        if (yych <= '\r')
+          goto yy474;
+        if (yych <= 0x1F)
+          goto yy376;
+        goto yy474;
+      } else {
+        if (yych == '/')
+          goto yy476;
+        if (yych <= '9')
+          goto yy376;
+        goto yy477;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych == '>')
+          goto yy393;
+        if (yych <= '@')
+          goto yy376;
+        goto yy477;
+      } else {
+        if (yych <= '_') {
+          if (yych <= '^')
+            goto yy376;
+          goto yy477;
+        } else {
+          if (yych <= '`')
+            goto yy376;
+          if (yych <= 'z')
+            goto yy477;
+          goto yy376;
+        }
+      }
+    }
+  yy476:
+    yych = *++p;
+    if (yych == '>')
+      goto yy393;
+    goto yy376;
+  yy477:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 16) {
+      goto yy477;
+    }
+    if (yych <= ',') {
+      if (yych <= '\r') {
+        if (yych <= 0x08)
+          goto yy376;
+      } else {
+        if (yych != ' ')
+          goto yy376;
+      }
+    } else {
+      if (yych <= '<') {
+        if (yych <= '/')
+          goto yy476;
+        goto yy376;
+      } else {
+        if (yych <= '=')
+          goto yy481;
+        if (yych <= '>')
+          goto yy393;
+        goto yy376;
+      }
+    }
+  yy479:
+    ++p;
+    yych = *p;
+    if (yych <= '<') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy376;
+        if (yych <= '\r')
+          goto yy479;
+        if (yych <= 0x1F)
+          goto yy376;
+        goto yy479;
+      } else {
+        if (yych <= '/') {
+          if (yych <= '.')
+            goto yy376;
+          goto yy476;
+        } else {
+          if (yych == ':')
+            goto yy477;
+          goto yy376;
+        }
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '=')
+          goto yy481;
+        if (yych <= '>')
+          goto yy393;
+        if (yych <= '@')
+          goto yy376;
+        goto yy477;
+      } else {
+        if (yych <= '_') {
+          if (yych <= '^')
+            goto yy376;
+          goto yy477;
+        } else {
+          if (yych <= '`')
+            goto yy376;
+          if (yych <= 'z')
+            goto yy477;
+          goto yy376;
+        }
+      }
+    }
+  yy481:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy483;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '"') {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych >= '!')
+          goto yy494;
+      } else {
+        if (yych <= '\'')
+          goto yy492;
+        if (yych <= 0xC1)
+          goto yy376;
+        if (yych <= 0xDF)
+          goto yy485;
+        goto yy486;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy491;
+        goto yy487;
+      } else {
+        if (yych <= 0xF0)
+          goto yy488;
+        if (yych <= 0xF3)
+          goto yy489;
+        if (yych <= 0xF4)
+          goto yy490;
+        goto yy376;
+      }
+    }
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy483;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '\'') {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych <= ' ')
+          goto yy517;
+        if (yych <= '"')
+          goto yy494;
+        goto yy492;
+      } else {
+        if (yych == '>')
+          goto yy393;
+        if (yych <= 0xC1)
+          goto yy376;
+        goto yy485;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy486;
+        if (yych == 0xED)
+          goto yy491;
+        goto yy487;
+      } else {
+        if (yych <= 0xF0)
+          goto yy488;
+        if (yych <= 0xF3)
+          goto yy489;
+        if (yych <= 0xF4)
+          goto yy490;
+        goto yy376;
+      }
+    }
+  yy483:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy483;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '=') {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych <= ' ')
+          goto yy511;
+        goto yy376;
+      } else {
+        if (yych <= '>')
+          goto yy393;
+        if (yych <= 0xC1)
+          goto yy376;
+        if (yych >= 0xE0)
+          goto yy486;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy491;
+        goto yy487;
+      } else {
+        if (yych <= 0xF0)
+          goto yy488;
+        if (yych <= 0xF3)
+          goto yy489;
+        if (yych <= 0xF4)
+          goto yy490;
+        goto yy376;
+      }
+    }
+  yy485:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy483;
+    goto yy376;
+  yy486:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy485;
+    goto yy376;
+  yy487:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy485;
+    goto yy376;
+  yy488:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy487;
+    goto yy376;
+  yy489:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy487;
+    goto yy376;
+  yy490:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x8F)
+      goto yy487;
+    goto yy376;
+  yy491:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x9F)
+      goto yy485;
+    goto yy376;
+  yy492:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy492;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych <= '\'')
+          goto yy503;
+        goto yy376;
+      } else {
+        if (yych <= 0xDF)
+          goto yy504;
+        if (yych <= 0xE0)
+          goto yy505;
+        goto yy506;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy510;
+        if (yych <= 0xEF)
+          goto yy506;
+        goto yy507;
+      } else {
+        if (yych <= 0xF3)
+          goto yy508;
+        if (yych <= 0xF4)
+          goto yy509;
+        goto yy376;
+      }
+    }
+  yy494:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy494;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy376;
+        if (yych <= '"')
+          goto yy503;
+        goto yy376;
+      } else {
+        if (yych <= 0xDF)
+          goto yy496;
+        if (yych <= 0xE0)
+          goto yy497;
+        goto yy498;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy502;
+        if (yych <= 0xEF)
+          goto yy498;
+        goto yy499;
+      } else {
+        if (yych <= 0xF3)
+          goto yy500;
+        if (yych <= 0xF4)
+          goto yy501;
+        goto yy376;
+      }
+    }
+  yy496:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy494;
+    goto yy376;
+  yy497:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy496;
+    goto yy376;
+  yy498:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy496;
+    goto yy376;
+  yy499:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy498;
+    goto yy376;
+  yy500:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy498;
+    goto yy376;
+  yy501:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x8F)
+      goto yy498;
+    goto yy376;
+  yy502:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x9F)
+      goto yy496;
+    goto yy376;
+  yy503:
+    ++p;
+    yych = *p;
+    if (yych <= ' ') {
+      if (yych <= 0x08)
+        goto yy376;
+      if (yych <= '\r')
+        goto yy474;
+      if (yych <= 0x1F)
+        goto yy376;
+      goto yy474;
+    } else {
+      if (yych <= '/') {
+        if (yych <= '.')
+          goto yy376;
+        goto yy476;
+      } else {
+        if (yych == '>')
+          goto yy393;
+        goto yy376;
+      }
+    }
+  yy504:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy492;
+    goto yy376;
+  yy505:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy504;
+    goto yy376;
+  yy506:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy504;
+    goto yy376;
+  yy507:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy506;
+    goto yy376;
+  yy508:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0xBF)
+      goto yy506;
+    goto yy376;
+  yy509:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x8F)
+      goto yy506;
+    goto yy376;
+  yy510:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy376;
+    if (yych <= 0x9F)
+      goto yy504;
+    goto yy376;
+  yy511:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '"') {
+        if (yych <= '\r') {
+          if (yych <= 0x00)
+            goto yy376;
+          if (yych <= 0x08)
+            goto yy483;
+          goto yy511;
+        } else {
+          if (yych == ' ')
+            goto yy511;
+          if (yych <= '!')
+            goto yy483;
+          goto yy376;
+        }
+      } else {
+        if (yych <= ':') {
+          if (yych == '\'')
+            goto yy376;
+          if (yych <= '9')
+            goto yy483;
+        } else {
+          if (yych <= ';')
+            goto yy483;
+          if (yych <= '=')
+            goto yy376;
+          if (yych <= '>')
+            goto yy393;
+          goto yy483;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= '`') {
+          if (yych <= 'Z')
+            goto yy513;
+          if (yych <= '^')
+            goto yy483;
+          if (yych >= '`')
+            goto yy376;
+        } else {
+          if (yych <= 'z')
+            goto yy513;
+          if (yych <= 0x7F)
+            goto yy483;
+          if (yych <= 0xC1)
+            goto yy376;
+          goto yy485;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy486;
+          if (yych == 0xED)
+            goto yy491;
+          goto yy487;
+        } else {
+          if (yych <= 0xF0)
+            goto yy488;
+          if (yych <= 0xF3)
+            goto yy489;
+          if (yych <= 0xF4)
+            goto yy490;
+          goto yy376;
+        }
+      }
+    }
+  yy513:
+    ++p;
+    yych = *p;
+    if (yych <= '>') {
+      if (yych <= '&') {
+        if (yych <= 0x1F) {
+          if (yych <= 0x00)
+            goto yy376;
+          if (yych <= 0x08)
+            goto yy483;
+          if (yych >= 0x0E)
+            goto yy483;
+        } else {
+          if (yych <= ' ')
+            goto yy515;
+          if (yych == '"')
+            goto yy376;
+          goto yy483;
+        }
+      } else {
+        if (yych <= '/') {
+          if (yych <= '\'')
+            goto yy376;
+          if (yych <= ',')
+            goto yy483;
+          if (yych <= '.')
+            goto yy513;
+          goto yy483;
+        } else {
+          if (yych <= ';') {
+            if (yych <= ':')
+              goto yy513;
+            goto yy483;
+          } else {
+            if (yych <= '<')
+              goto yy376;
+            if (yych <= '=')
+              goto yy481;
+            goto yy393;
+          }
+        }
+      }
+    } else {
+      if (yych <= 0xC1) {
+        if (yych <= '_') {
+          if (yych <= '@')
+            goto yy483;
+          if (yych <= 'Z')
+            goto yy513;
+          if (yych <= '^')
+            goto yy483;
+          goto yy513;
+        } else {
+          if (yych <= '`')
+            goto yy376;
+          if (yych <= 'z')
+            goto yy513;
+          if (yych <= 0x7F)
+            goto yy483;
+          goto yy376;
+        }
+      } else {
+        if (yych <= 0xED) {
+          if (yych <= 0xDF)
+            goto yy485;
+          if (yych <= 0xE0)
+            goto yy486;
+          if (yych <= 0xEC)
+            goto yy487;
+          goto yy491;
+        } else {
+          if (yych <= 0xF0) {
+            if (yych <= 0xEF)
+              goto yy487;
+            goto yy488;
+          } else {
+            if (yych <= 0xF3)
+              goto yy489;
+            if (yych <= 0xF4)
+              goto yy490;
+            goto yy376;
+          }
+        }
+      }
+    }
+  yy515:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '&') {
+        if (yych <= 0x1F) {
+          if (yych <= 0x00)
+            goto yy376;
+          if (yych <= 0x08)
+            goto yy483;
+          if (yych <= '\r')
+            goto yy515;
+          goto yy483;
+        } else {
+          if (yych <= ' ')
+            goto yy515;
+          if (yych == '"')
+            goto yy376;
+          goto yy483;
+        }
+      } else {
+        if (yych <= ';') {
+          if (yych <= '\'')
+            goto yy376;
+          if (yych == ':')
+            goto yy513;
+          goto yy483;
+        } else {
+          if (yych <= '<')
+            goto yy376;
+          if (yych <= '=')
+            goto yy481;
+          if (yych <= '>')
+            goto yy393;
+          goto yy483;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= '`') {
+          if (yych <= 'Z')
+            goto yy513;
+          if (yych <= '^')
+            goto yy483;
+          if (yych <= '_')
+            goto yy513;
+          goto yy376;
+        } else {
+          if (yych <= 'z')
+            goto yy513;
+          if (yych <= 0x7F)
+            goto yy483;
+          if (yych <= 0xC1)
+            goto yy376;
+          goto yy485;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy486;
+          if (yych == 0xED)
+            goto yy491;
+          goto yy487;
+        } else {
+          if (yych <= 0xF0)
+            goto yy488;
+          if (yych <= 0xF3)
+            goto yy489;
+          if (yych <= 0xF4)
+            goto yy490;
+          goto yy376;
+        }
+      }
+    }
+  yy517:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '"') {
+        if (yych <= '\r') {
+          if (yych <= 0x00)
+            goto yy376;
+          if (yych <= 0x08)
+            goto yy483;
+          goto yy517;
+        } else {
+          if (yych == ' ')
+            goto yy517;
+          if (yych <= '!')
+            goto yy483;
+          goto yy494;
+        }
+      } else {
+        if (yych <= ':') {
+          if (yych == '\'')
+            goto yy492;
+          if (yych <= '9')
+            goto yy483;
+          goto yy513;
+        } else {
+          if (yych <= ';')
+            goto yy483;
+          if (yych <= '=')
+            goto yy376;
+          if (yych <= '>')
+            goto yy393;
+          goto yy483;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= '`') {
+          if (yych <= 'Z')
+            goto yy513;
+          if (yych <= '^')
+            goto yy483;
+          if (yych <= '_')
+            goto yy513;
+          goto yy376;
+        } else {
+          if (yych <= 'z')
+            goto yy513;
+          if (yych <= 0x7F)
+            goto yy483;
+          if (yych <= 0xC1)
+            goto yy376;
+          goto yy485;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy486;
+          if (yych == 0xED)
+            goto yy491;
+          goto yy487;
+        } else {
+          if (yych <= 0xF0)
+            goto yy488;
+          if (yych <= 0xF3)
+            goto yy489;
+          if (yych <= 0xF4)
+            goto yy490;
+          goto yy376;
+        }
+      }
+    }
+  }
+}
+
+// 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 yy523;
+      } else {
+        if (yych <= '<')
+          goto yy522;
+        if (yych <= 0x7F)
+          goto yy523;
+        if (yych >= 0xC2)
+          goto yy524;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy526;
+        if (yych == 0xED)
+          goto yy531;
+        goto yy527;
+      } else {
+        if (yych <= 0xF0)
+          goto yy528;
+        if (yych <= 0xF3)
+          goto yy529;
+        if (yych <= 0xF4)
+          goto yy530;
+      }
+    }
+  yy521 : { return 0; }
+  yy522:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case '!':
+      goto yy548;
+    case '/':
+      goto yy532;
+    case '?':
+      goto yy549;
+    case 'A':
+    case 'a':
+      goto yy534;
+    case 'B':
+    case 'b':
+      goto yy535;
+    case 'C':
+    case 'c':
+      goto yy536;
+    case 'D':
+    case 'd':
+      goto yy537;
+    case 'F':
+    case 'f':
+      goto yy538;
+    case 'H':
+    case 'h':
+      goto yy539;
+    case 'I':
+    case 'i':
+      goto yy540;
+    case 'L':
+    case 'l':
+      goto yy541;
+    case 'M':
+    case 'm':
+      goto yy542;
+    case 'N':
+    case 'n':
+      goto yy543;
+    case 'O':
+    case 'o':
+      goto yy544;
+    case 'P':
+    case 'p':
+      goto yy533;
+    case 'S':
+    case 's':
+      goto yy545;
+    case 'T':
+    case 't':
+      goto yy546;
+    case 'U':
+    case 'u':
+      goto yy547;
+    default:
+      goto yy521;
+    }
+  yy523:
+    yych = *++p;
+    goto yy521;
+  yy524:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy525;
+    if (yych <= 0xBF)
+      goto yy523;
+  yy525:
+    p = marker;
+    goto yy521;
+  yy526:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy525;
+    if (yych <= 0xBF)
+      goto yy524;
+    goto yy525;
+  yy527:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy525;
+    if (yych <= 0xBF)
+      goto yy524;
+    goto yy525;
+  yy528:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy525;
+    if (yych <= 0xBF)
+      goto yy527;
+    goto yy525;
+  yy529:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy525;
+    if (yych <= 0xBF)
+      goto yy527;
+    goto yy525;
+  yy530:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy525;
+    if (yych <= 0x8F)
+      goto yy527;
+    goto yy525;
+  yy531:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy525;
+    if (yych <= 0x9F)
+      goto yy524;
+    goto yy525;
+  yy532:
+    yych = *++p;
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy534;
+    case 'B':
+    case 'b':
+      goto yy535;
+    case 'C':
+    case 'c':
+      goto yy536;
+    case 'D':
+    case 'd':
+      goto yy537;
+    case 'F':
+    case 'f':
+      goto yy538;
+    case 'H':
+    case 'h':
+      goto yy539;
+    case 'I':
+    case 'i':
+      goto yy540;
+    case 'L':
+    case 'l':
+      goto yy541;
+    case 'M':
+    case 'm':
+      goto yy542;
+    case 'N':
+    case 'n':
+      goto yy543;
+    case 'O':
+    case 'o':
+      goto yy544;
+    case 'P':
+    case 'p':
+      goto yy733;
+    case 'S':
+    case 's':
+      goto yy734;
+    case 'T':
+    case 't':
+      goto yy546;
+    case 'U':
+    case 'u':
+      goto yy547;
+    default:
+      goto yy525;
+    }
+  yy533:
+    yych = *++p;
+    if (yych <= '>') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy525;
+        if (yych <= '\r')
+          goto yy565;
+        if (yych <= 0x1F)
+          goto yy525;
+        goto yy565;
+      } else {
+        if (yych == '/')
+          goto yy567;
+        if (yych <= '=')
+          goto yy525;
+        goto yy565;
+      }
+    } else {
+      if (yych <= 'R') {
+        if (yych == 'A')
+          goto yy730;
+        if (yych <= 'Q')
+          goto yy525;
+        goto yy729;
+      } else {
+        if (yych <= 'a') {
+          if (yych <= '`')
+            goto yy525;
+          goto yy730;
+        } else {
+          if (yych == 'r')
+            goto yy729;
+          goto yy525;
+        }
+      }
+    }
+  yy534:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych <= 'D') {
+        if (yych <= 'C')
+          goto yy525;
+        goto yy718;
+      } else {
+        if (yych <= 'Q')
+          goto yy525;
+        if (yych <= 'R')
+          goto yy717;
+        goto yy716;
+      }
+    } else {
+      if (yych <= 'q') {
+        if (yych == 'd')
+          goto yy718;
+        goto yy525;
+      } else {
+        if (yych <= 'r')
+          goto yy717;
+        if (yych <= 's')
+          goto yy716;
+        goto yy525;
+      }
+    }
+  yy535:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych <= 'K') {
+        if (yych == 'A')
+          goto yy702;
+        goto yy525;
+      } else {
+        if (yych <= 'L')
+          goto yy701;
+        if (yych <= 'N')
+          goto yy525;
+        goto yy700;
+      }
+    } else {
+      if (yych <= 'k') {
+        if (yych == 'a')
+          goto yy702;
+        goto yy525;
+      } else {
+        if (yych <= 'l')
+          goto yy701;
+        if (yych == 'o')
+          goto yy700;
+        goto yy525;
+      }
+    }
+  yy536:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych <= 'D') {
+        if (yych == 'A')
+          goto yy687;
+        goto yy525;
+      } else {
+        if (yych <= 'E')
+          goto yy686;
+        if (yych <= 'N')
+          goto yy525;
+        goto yy685;
+      }
+    } else {
+      if (yych <= 'd') {
+        if (yych == 'a')
+          goto yy687;
+        goto yy525;
+      } else {
+        if (yych <= 'e')
+          goto yy686;
+        if (yych == 'o')
+          goto yy685;
+        goto yy525;
+      }
+    }
+  yy537:
+    yych = *++p;
+    switch (yych) {
+    case 'D':
+    case 'L':
+    case 'T':
+    case 'd':
+    case 'l':
+    case 't':
+      goto yy564;
+    case 'E':
+    case 'e':
+      goto yy677;
+    case 'I':
+    case 'i':
+      goto yy676;
+    default:
+      goto yy525;
+    }
+  yy538:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych <= 'N') {
+        if (yych == 'I')
+          goto yy652;
+        goto yy525;
+      } else {
+        if (yych <= 'O')
+          goto yy651;
+        if (yych <= 'Q')
+          goto yy525;
+        goto yy650;
+      }
+    } else {
+      if (yych <= 'n') {
+        if (yych == 'i')
+          goto yy652;
+        goto yy525;
+      } else {
+        if (yych <= 'o')
+          goto yy651;
+        if (yych == 'r')
+          goto yy650;
+        goto yy525;
+      }
+    }
+  yy539:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych <= 'D') {
+        if (yych == '1')
+          goto yy564;
+        goto yy525;
+      } else {
+        if (yych <= 'E')
+          goto yy645;
+        if (yych == 'R')
+          goto yy564;
+        goto yy525;
+      }
+    } else {
+      if (yych <= 'q') {
+        if (yych <= 'T')
+          goto yy644;
+        if (yych == 'e')
+          goto yy645;
+        goto yy525;
+      } else {
+        if (yych <= 'r')
+          goto yy564;
+        if (yych == 't')
+          goto yy644;
+        goto yy525;
+      }
+    }
+  yy540:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy640;
+    if (yych == 'f')
+      goto yy640;
+    goto yy525;
+  yy541:
+    yych = *++p;
+    if (yych <= 'I') {
+      if (yych == 'E')
+        goto yy635;
+      if (yych <= 'H')
+        goto yy525;
+      goto yy634;
+    } else {
+      if (yych <= 'e') {
+        if (yych <= 'd')
+          goto yy525;
+        goto yy635;
+      } else {
+        if (yych == 'i')
+          goto yy634;
+        goto yy525;
+      }
+    }
+  yy542:
+    yych = *++p;
+    if (yych <= 'E') {
+      if (yych == 'A')
+        goto yy626;
+      if (yych <= 'D')
+        goto yy525;
+      goto yy625;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy525;
+        goto yy626;
+      } else {
+        if (yych == 'e')
+          goto yy625;
+        goto yy525;
+      }
+    }
+  yy543:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych == 'A')
+        goto yy619;
+      if (yych <= 'N')
+        goto yy525;
+      goto yy618;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy525;
+        goto yy619;
+      } else {
+        if (yych == 'o')
+          goto yy618;
+        goto yy525;
+      }
+    }
+  yy544:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'L')
+        goto yy564;
+      if (yych <= 'O')
+        goto yy525;
+      goto yy610;
+    } else {
+      if (yych <= 'l') {
+        if (yych <= 'k')
+          goto yy525;
+        goto yy564;
+      } else {
+        if (yych == 'p')
+          goto yy610;
+        goto yy525;
+      }
+    }
+  yy545:
+    yych = *++p;
+    if (yych <= 'U') {
+      if (yych <= 'E') {
+        if (yych == 'C')
+          goto yy587;
+        if (yych <= 'D')
+          goto yy525;
+        goto yy590;
+      } else {
+        if (yych <= 'O') {
+          if (yych <= 'N')
+            goto yy525;
+          goto yy589;
+        } else {
+          if (yych <= 'S')
+            goto yy525;
+          if (yych <= 'T')
+            goto yy586;
+          goto yy588;
+        }
+      }
+    } else {
+      if (yych <= 'n') {
+        if (yych <= 'c') {
+          if (yych <= 'b')
+            goto yy525;
+          goto yy587;
+        } else {
+          if (yych == 'e')
+            goto yy590;
+          goto yy525;
+        }
+      } else {
+        if (yych <= 's') {
+          if (yych <= 'o')
+            goto yy589;
+          goto yy525;
+        } else {
+          if (yych <= 't')
+            goto yy586;
+          if (yych <= 'u')
+            goto yy588;
+          goto yy525;
+        }
+      }
+    }
+  yy546:
+    yych = *++p;
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy573;
+    case 'B':
+    case 'b':
+      goto yy572;
+    case 'D':
+    case 'd':
+      goto yy564;
+    case 'F':
+    case 'f':
+      goto yy571;
+    case 'H':
+    case 'h':
+      goto yy570;
+    case 'I':
+    case 'i':
+      goto yy569;
+    case 'R':
+    case 'r':
+      goto yy568;
+    default:
+      goto yy525;
+    }
+  yy547:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy564;
+    if (yych == 'l')
+      goto yy564;
+    goto yy525;
+  yy548:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych == '-')
+        goto yy551;
+      goto yy525;
+    } else {
+      if (yych <= 'Z')
+        goto yy552;
+      if (yych <= '[')
+        goto yy554;
+      goto yy525;
+    }
+  yy549:
+    ++p;
+    { return 3; }
+  yy551:
+    yych = *++p;
+    if (yych == '-')
+      goto yy562;
+    goto yy525;
+  yy552:
+    ++p;
+    { return 4; }
+  yy554:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy555;
+    if (yych != 'c')
+      goto yy525;
+  yy555:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy556;
+    if (yych != 'd')
+      goto yy525;
+  yy556:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy557;
+    if (yych != 'a')
+      goto yy525;
+  yy557:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy558;
+    if (yych != 't')
+      goto yy525;
+  yy558:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy559;
+    if (yych != 'a')
+      goto yy525;
+  yy559:
+    yych = *++p;
+    if (yych != '[')
+      goto yy525;
+    ++p;
+    { return 5; }
+  yy562:
+    ++p;
+    { return 2; }
+  yy564:
+    yych = *++p;
+    if (yych <= ' ') {
+      if (yych <= 0x08)
+        goto yy525;
+      if (yych <= '\r')
+        goto yy565;
+      if (yych <= 0x1F)
+        goto yy525;
+    } else {
+      if (yych <= '/') {
+        if (yych <= '.')
+          goto yy525;
+        goto yy567;
+      } else {
+        if (yych != '>')
+          goto yy525;
+      }
+    }
+  yy565:
+    ++p;
+    { return 6; }
+  yy567:
+    yych = *++p;
+    if (yych == '>')
+      goto yy565;
+    goto yy525;
+  yy568:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy525;
+        if (yych <= '\r')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= ' ')
+          goto yy565;
+        if (yych <= '.')
+          goto yy525;
+        goto yy567;
+      }
+    } else {
+      if (yych <= '@') {
+        if (yych == '>')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= 'A')
+          goto yy584;
+        if (yych == 'a')
+          goto yy584;
+        goto yy525;
+      }
+    }
+  yy569:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy582;
+    if (yych == 't')
+      goto yy582;
+    goto yy525;
+  yy570:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy525;
+        if (yych <= '\r')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= ' ')
+          goto yy565;
+        if (yych <= '.')
+          goto yy525;
+        goto yy567;
+      }
+    } else {
+      if (yych <= 'D') {
+        if (yych == '>')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= 'E')
+          goto yy580;
+        if (yych == 'e')
+          goto yy580;
+        goto yy525;
+      }
+    }
+  yy571:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy578;
+    if (yych == 'o')
+      goto yy578;
+    goto yy525;
+  yy572:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy576;
+    if (yych == 'o')
+      goto yy576;
+    goto yy525;
+  yy573:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy574;
+    if (yych != 'b')
+      goto yy525;
+  yy574:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy575;
+    if (yych != 'l')
+      goto yy525;
+  yy575:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy564;
+    if (yych == 'e')
+      goto yy564;
+    goto yy525;
+  yy576:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy577;
+    if (yych != 'd')
+      goto yy525;
+  yy577:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy564;
+    if (yych == 'y')
+      goto yy564;
+    goto yy525;
+  yy578:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy579;
+    if (yych != 'o')
+      goto yy525;
+  yy579:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy564;
+    if (yych == 't')
+      goto yy564;
+    goto yy525;
+  yy580:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy581;
+    if (yych != 'a')
+      goto yy525;
+  yy581:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy564;
+    if (yych == 'd')
+      goto yy564;
+    goto yy525;
+  yy582:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy583;
+    if (yych != 'l')
+      goto yy525;
+  yy583:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy564;
+    if (yych == 'e')
+      goto yy564;
+    goto yy525;
+  yy584:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy585;
+    if (yych != 'c')
+      goto yy525;
+  yy585:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy564;
+    if (yych == 'k')
+      goto yy564;
+    goto yy525;
+  yy586:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy608;
+    if (yych == 'y')
+      goto yy608;
+    goto yy525;
+  yy587:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy602;
+    if (yych == 'r')
+      goto yy602;
+    goto yy525;
+  yy588:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy598;
+    if (yych == 'm')
+      goto yy598;
+    goto yy525;
+  yy589:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy595;
+    if (yych == 'u')
+      goto yy595;
+    goto yy525;
+  yy590:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy591;
+    if (yych != 'c')
+      goto yy525;
+  yy591:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy592;
+    if (yych != 't')
+      goto yy525;
+  yy592:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy593;
+    if (yych != 'i')
+      goto yy525;
+  yy593:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy594;
+    if (yych != 'o')
+      goto yy525;
+  yy594:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy564;
+    if (yych == 'n')
+      goto yy564;
+    goto yy525;
+  yy595:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy596;
+    if (yych != 'r')
+      goto yy525;
+  yy596:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy597;
+    if (yych != 'c')
+      goto yy525;
+  yy597:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy564;
+    if (yych == 'e')
+      goto yy564;
+    goto yy525;
+  yy598:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy599;
+    if (yych != 'm')
+      goto yy525;
+  yy599:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy600;
+    if (yych != 'a')
+      goto yy525;
+  yy600:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy601;
+    if (yych != 'r')
+      goto yy525;
+  yy601:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy564;
+    if (yych == 'y')
+      goto yy564;
+    goto yy525;
+  yy602:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy603;
+    if (yych != 'i')
+      goto yy525;
+  yy603:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy604;
+    if (yych != 'p')
+      goto yy525;
+  yy604:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy605;
+    if (yych != 't')
+      goto yy525;
+  yy605:
+    yych = *++p;
+    if (yych <= 0x1F) {
+      if (yych <= 0x08)
+        goto yy525;
+      if (yych >= 0x0E)
+        goto yy525;
+    } else {
+      if (yych <= ' ')
+        goto yy606;
+      if (yych != '>')
+        goto yy525;
+    }
+  yy606:
+    ++p;
+    { return 1; }
+  yy608:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy609;
+    if (yych != 'l')
+      goto yy525;
+  yy609:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy605;
+    if (yych == 'e')
+      goto yy605;
+    goto yy525;
+  yy610:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy611;
+    if (yych != 't')
+      goto yy525;
+  yy611:
+    yych = *++p;
+    if (yych <= 'I') {
+      if (yych == 'G')
+        goto yy613;
+      if (yych <= 'H')
+        goto yy525;
+    } else {
+      if (yych <= 'g') {
+        if (yych <= 'f')
+          goto yy525;
+        goto yy613;
+      } else {
+        if (yych != 'i')
+          goto yy525;
+      }
+    }
+    yych = *++p;
+    if (yych == 'O')
+      goto yy617;
+    if (yych == 'o')
+      goto yy617;
+    goto yy525;
+  yy613:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy614;
+    if (yych != 'r')
+      goto yy525;
+  yy614:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy615;
+    if (yych != 'o')
+      goto yy525;
+  yy615:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy616;
+    if (yych != 'u')
+      goto yy525;
+  yy616:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy564;
+    if (yych == 'p')
+      goto yy564;
+    goto yy525;
+  yy617:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy564;
+    if (yych == 'n')
+      goto yy564;
+    goto yy525;
+  yy618:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy620;
+    if (yych == 'f')
+      goto yy620;
+    goto yy525;
+  yy619:
+    yych = *++p;
+    if (yych == 'V')
+      goto yy564;
+    if (yych == 'v')
+      goto yy564;
+    goto yy525;
+  yy620:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy621;
+    if (yych != 'r')
+      goto yy525;
+  yy621:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy622;
+    if (yych != 'a')
+      goto yy525;
+  yy622:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy623;
+    if (yych != 'm')
+      goto yy525;
+  yy623:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy624;
+    if (yych != 'e')
+      goto yy525;
+  yy624:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy564;
+    if (yych == 's')
+      goto yy564;
+    goto yy525;
+  yy625:
+    yych = *++p;
+    if (yych <= 'T') {
+      if (yych == 'N')
+        goto yy628;
+      if (yych <= 'S')
+        goto yy525;
+      goto yy629;
+    } else {
+      if (yych <= 'n') {
+        if (yych <= 'm')
+          goto yy525;
+        goto yy628;
+      } else {
+        if (yych == 't')
+          goto yy629;
+        goto yy525;
+      }
+    }
+  yy626:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy627;
+    if (yych != 'i')
+      goto yy525;
+  yy627:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy564;
+    if (yych == 'n')
+      goto yy564;
+    goto yy525;
+  yy628:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy630;
+    if (yych == 'u')
+      goto yy630;
+    goto yy525;
+  yy629:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy564;
+    if (yych == 'a')
+      goto yy564;
+    goto yy525;
+  yy630:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy525;
+        if (yych <= '\r')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= ' ')
+          goto yy565;
+        if (yych <= '.')
+          goto yy525;
+        goto yy567;
+      }
+    } else {
+      if (yych <= 'H') {
+        if (yych == '>')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= 'I')
+          goto yy631;
+        if (yych != 'i')
+          goto yy525;
+      }
+    }
+  yy631:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy632;
+    if (yych != 't')
+      goto yy525;
+  yy632:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy633;
+    if (yych != 'e')
+      goto yy525;
+  yy633:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy564;
+    if (yych == 'm')
+      goto yy564;
+    goto yy525;
+  yy634:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy525;
+        if (yych <= '\r')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= ' ')
+          goto yy565;
+        if (yych <= '.')
+          goto yy525;
+        goto yy567;
+      }
+    } else {
+      if (yych <= 'M') {
+        if (yych == '>')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= 'N')
+          goto yy639;
+        if (yych == 'n')
+          goto yy639;
+        goto yy525;
+      }
+    }
+  yy635:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy636;
+    if (yych != 'g')
+      goto yy525;
+  yy636:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy637;
+    if (yych != 'e')
+      goto yy525;
+  yy637:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy638;
+    if (yych != 'n')
+      goto yy525;
+  yy638:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy564;
+    if (yych == 'd')
+      goto yy564;
+    goto yy525;
+  yy639:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy564;
+    if (yych == 'k')
+      goto yy564;
+    goto yy525;
+  yy640:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy641;
+    if (yych != 'r')
+      goto yy525;
+  yy641:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy642;
+    if (yych != 'a')
+      goto yy525;
+  yy642:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy643;
+    if (yych != 'm')
+      goto yy525;
+  yy643:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy564;
+    if (yych == 'e')
+      goto yy564;
+    goto yy525;
+  yy644:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy649;
+    if (yych == 'm')
+      goto yy649;
+    goto yy525;
+  yy645:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy646;
+    if (yych != 'a')
+      goto yy525;
+  yy646:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy647;
+    if (yych != 'd')
+      goto yy525;
+  yy647:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy525;
+        if (yych <= '\r')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= ' ')
+          goto yy565;
+        if (yych <= '.')
+          goto yy525;
+        goto yy567;
+      }
+    } else {
+      if (yych <= 'D') {
+        if (yych == '>')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= 'E')
+          goto yy648;
+        if (yych != 'e')
+          goto yy525;
+      }
+    }
+  yy648:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy564;
+    if (yych == 'r')
+      goto yy564;
+    goto yy525;
+  yy649:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy564;
+    if (yych == 'l')
+      goto yy564;
+    goto yy525;
+  yy650:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy671;
+    if (yych == 'a')
+      goto yy671;
+    goto yy525;
+  yy651:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == 'O')
+        goto yy667;
+      if (yych <= 'Q')
+        goto yy525;
+      goto yy668;
+    } else {
+      if (yych <= 'o') {
+        if (yych <= 'n')
+          goto yy525;
+        goto yy667;
+      } else {
+        if (yych == 'r')
+          goto yy668;
+        goto yy525;
+      }
+    }
+  yy652:
+    yych = *++p;
+    if (yych <= 'G') {
+      if (yych == 'E')
+        goto yy653;
+      if (yych <= 'F')
+        goto yy525;
+      goto yy654;
+    } else {
+      if (yych <= 'e') {
+        if (yych <= 'd')
+          goto yy525;
+      } else {
+        if (yych == 'g')
+          goto yy654;
+        goto yy525;
+      }
+    }
+  yy653:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy663;
+    if (yych == 'l')
+      goto yy663;
+    goto yy525;
+  yy654:
+    yych = *++p;
+    if (yych <= 'U') {
+      if (yych == 'C')
+        goto yy656;
+      if (yych <= 'T')
+        goto yy525;
+    } else {
+      if (yych <= 'c') {
+        if (yych <= 'b')
+          goto yy525;
+        goto yy656;
+      } else {
+        if (yych != 'u')
+          goto yy525;
+      }
+    }
+    yych = *++p;
+    if (yych == 'R')
+      goto yy662;
+    if (yych == 'r')
+      goto yy662;
+    goto yy525;
+  yy656:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy657;
+    if (yych != 'a')
+      goto yy525;
+  yy657:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy658;
+    if (yych != 'p')
+      goto yy525;
+  yy658:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy659;
+    if (yych != 't')
+      goto yy525;
+  yy659:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy660;
+    if (yych != 'i')
+      goto yy525;
+  yy660:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy661;
+    if (yych != 'o')
+      goto yy525;
+  yy661:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy564;
+    if (yych == 'n')
+      goto yy564;
+    goto yy525;
+  yy662:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy564;
+    if (yych == 'e')
+      goto yy564;
+    goto yy525;
+  yy663:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy664;
+    if (yych != 'd')
+      goto yy525;
+  yy664:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy665;
+    if (yych != 's')
+      goto yy525;
+  yy665:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy666;
+    if (yych != 'e')
+      goto yy525;
+  yy666:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy564;
+    if (yych == 't')
+      goto yy564;
+    goto yy525;
+  yy667:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy669;
+    if (yych == 't')
+      goto yy669;
+    goto yy525;
+  yy668:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy564;
+    if (yych == 'm')
+      goto yy564;
+    goto yy525;
+  yy669:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy670;
+    if (yych != 'e')
+      goto yy525;
+  yy670:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy564;
+    if (yych == 'r')
+      goto yy564;
+    goto yy525;
+  yy671:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy672;
+    if (yych != 'm')
+      goto yy525;
+  yy672:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy673;
+    if (yych != 'e')
+      goto yy525;
+  yy673:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy525;
+        if (yych <= '\r')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= ' ')
+          goto yy565;
+        if (yych <= '.')
+          goto yy525;
+        goto yy567;
+      }
+    } else {
+      if (yych <= 'R') {
+        if (yych == '>')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= 'S')
+          goto yy674;
+        if (yych != 's')
+          goto yy525;
+      }
+    }
+  yy674:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy675;
+    if (yych != 'e')
+      goto yy525;
+  yy675:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy564;
+    if (yych == 't')
+      goto yy564;
+    goto yy525;
+  yy676:
+    yych = *++p;
+    if (yych <= 'V') {
+      if (yych <= 'Q') {
+        if (yych == 'A')
+          goto yy682;
+        goto yy525;
+      } else {
+        if (yych <= 'R')
+          goto yy564;
+        if (yych <= 'U')
+          goto yy525;
+        goto yy564;
+      }
+    } else {
+      if (yych <= 'q') {
+        if (yych == 'a')
+          goto yy682;
+        goto yy525;
+      } else {
+        if (yych <= 'r')
+          goto yy564;
+        if (yych == 'v')
+          goto yy564;
+        goto yy525;
+      }
+    }
+  yy677:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy678;
+    if (yych != 't')
+      goto yy525;
+  yy678:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy679;
+    if (yych != 'a')
+      goto yy525;
+  yy679:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy680;
+    if (yych != 'i')
+      goto yy525;
+  yy680:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy681;
+    if (yych != 'l')
+      goto yy525;
+  yy681:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy564;
+    if (yych == 's')
+      goto yy564;
+    goto yy525;
+  yy682:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy683;
+    if (yych != 'l')
+      goto yy525;
+  yy683:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy684;
+    if (yych != 'o')
+      goto yy525;
+  yy684:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy564;
+    if (yych == 'g')
+      goto yy564;
+    goto yy525;
+  yy685:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy695;
+    if (yych == 'l')
+      goto yy695;
+    goto yy525;
+  yy686:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy692;
+    if (yych == 'n')
+      goto yy692;
+    goto yy525;
+  yy687:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy688;
+    if (yych != 'p')
+      goto yy525;
+  yy688:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy689;
+    if (yych != 't')
+      goto yy525;
+  yy689:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy690;
+    if (yych != 'i')
+      goto yy525;
+  yy690:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy691;
+    if (yych != 'o')
+      goto yy525;
+  yy691:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy564;
+    if (yych == 'n')
+      goto yy564;
+    goto yy525;
+  yy692:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy693;
+    if (yych != 't')
+      goto yy525;
+  yy693:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy694;
+    if (yych != 'e')
+      goto yy525;
+  yy694:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy564;
+    if (yych == 'r')
+      goto yy564;
+    goto yy525;
+  yy695:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy525;
+        if (yych <= '\r')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= ' ')
+          goto yy565;
+        if (yych <= '.')
+          goto yy525;
+        goto yy567;
+      }
+    } else {
+      if (yych <= 'F') {
+        if (yych == '>')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= 'G')
+          goto yy696;
+        if (yych != 'g')
+          goto yy525;
+      }
+    }
+  yy696:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy697;
+    if (yych != 'r')
+      goto yy525;
+  yy697:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy698;
+    if (yych != 'o')
+      goto yy525;
+  yy698:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy699;
+    if (yych != 'u')
+      goto yy525;
+  yy699:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy564;
+    if (yych == 'p')
+      goto yy564;
+    goto yy525;
+  yy700:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy715;
+    if (yych == 'd')
+      goto yy715;
+    goto yy525;
+  yy701:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy708;
+    if (yych == 'o')
+      goto yy708;
+    goto yy525;
+  yy702:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy703;
+    if (yych != 's')
+      goto yy525;
+  yy703:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy704;
+    if (yych != 'e')
+      goto yy525;
+  yy704:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy525;
+        if (yych <= '\r')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= ' ')
+          goto yy565;
+        if (yych <= '.')
+          goto yy525;
+        goto yy567;
+      }
+    } else {
+      if (yych <= 'E') {
+        if (yych == '>')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= 'F')
+          goto yy705;
+        if (yych != 'f')
+          goto yy525;
+      }
+    }
+  yy705:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy706;
+    if (yych != 'o')
+      goto yy525;
+  yy706:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy707;
+    if (yych != 'n')
+      goto yy525;
+  yy707:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy564;
+    if (yych == 't')
+      goto yy564;
+    goto yy525;
+  yy708:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy709;
+    if (yych != 'c')
+      goto yy525;
+  yy709:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy710;
+    if (yych != 'k')
+      goto yy525;
+  yy710:
+    yych = *++p;
+    if (yych == 'Q')
+      goto yy711;
+    if (yych != 'q')
+      goto yy525;
+  yy711:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy712;
+    if (yych != 'u')
+      goto yy525;
+  yy712:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy713;
+    if (yych != 'o')
+      goto yy525;
+  yy713:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy714;
+    if (yych != 't')
+      goto yy525;
+  yy714:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy564;
+    if (yych == 'e')
+      goto yy564;
+    goto yy525;
+  yy715:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy564;
+    if (yych == 'y')
+      goto yy564;
+    goto yy525;
+  yy716:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy727;
+    if (yych == 'i')
+      goto yy727;
+    goto yy525;
+  yy717:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy723;
+    if (yych == 't')
+      goto yy723;
+    goto yy525;
+  yy718:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy719;
+    if (yych != 'd')
+      goto yy525;
+  yy719:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy720;
+    if (yych != 'r')
+      goto yy525;
+  yy720:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy721;
+    if (yych != 'e')
+      goto yy525;
+  yy721:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy722;
+    if (yych != 's')
+      goto yy525;
+  yy722:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy564;
+    if (yych == 's')
+      goto yy564;
+    goto yy525;
+  yy723:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy724;
+    if (yych != 'i')
+      goto yy525;
+  yy724:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy725;
+    if (yych != 'c')
+      goto yy525;
+  yy725:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy726;
+    if (yych != 'l')
+      goto yy525;
+  yy726:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy564;
+    if (yych == 'e')
+      goto yy564;
+    goto yy525;
+  yy727:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy728;
+    if (yych != 'd')
+      goto yy525;
+  yy728:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy564;
+    if (yych == 'e')
+      goto yy564;
+    goto yy525;
+  yy729:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy605;
+    if (yych == 'e')
+      goto yy605;
+    goto yy525;
+  yy730:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy731;
+    if (yych != 'r')
+      goto yy525;
+  yy731:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy732;
+    if (yych != 'a')
+      goto yy525;
+  yy732:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy564;
+    if (yych == 'm')
+      goto yy564;
+    goto yy525;
+  yy733:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy525;
+        if (yych <= '\r')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= ' ')
+          goto yy565;
+        if (yych <= '.')
+          goto yy525;
+        goto yy567;
+      }
+    } else {
+      if (yych <= '@') {
+        if (yych == '>')
+          goto yy565;
+        goto yy525;
+      } else {
+        if (yych <= 'A')
+          goto yy730;
+        if (yych == 'a')
+          goto yy730;
+        goto yy525;
+      }
+    }
+  yy734:
+    ++p;
+    if ((yych = *p) <= 'U') {
+      if (yych <= 'N') {
+        if (yych == 'E')
+          goto yy590;
+        goto yy525;
+      } else {
+        if (yych <= 'O')
+          goto yy589;
+        if (yych <= 'T')
+          goto yy525;
+        goto yy588;
+      }
+    } else {
+      if (yych <= 'n') {
+        if (yych == 'e')
+          goto yy590;
+        goto yy525;
+      } else {
+        if (yych <= 'o')
+          goto yy589;
+        if (yych == 'u')
+          goto yy588;
+        goto yy525;
+      }
+    }
+  }
+}
+
+// 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 yy739;
+      } else {
+        if (yych <= '<')
+          goto yy738;
+        if (yych <= 0x7F)
+          goto yy739;
+        if (yych >= 0xC2)
+          goto yy740;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy742;
+        if (yych == 0xED)
+          goto yy747;
+        goto yy743;
+      } else {
+        if (yych <= 0xF0)
+          goto yy744;
+        if (yych <= 0xF3)
+          goto yy745;
+        if (yych <= 0xF4)
+          goto yy746;
+      }
+    }
+  yy737 : { return 0; }
+  yy738:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '@') {
+      if (yych == '/')
+        goto yy750;
+      goto yy737;
+    } else {
+      if (yych <= 'Z')
+        goto yy748;
+      if (yych <= '`')
+        goto yy737;
+      if (yych <= 'z')
+        goto yy748;
+      goto yy737;
+    }
+  yy739:
+    yych = *++p;
+    goto yy737;
+  yy740:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy739;
+  yy741:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy737;
+    } else {
+      goto yy759;
+    }
+  yy742:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy740;
+    goto yy741;
+  yy743:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy740;
+    goto yy741;
+  yy744:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy743;
+    goto yy741;
+  yy745:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy743;
+    goto yy741;
+  yy746:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0x8F)
+      goto yy743;
+    goto yy741;
+  yy747:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0x9F)
+      goto yy740;
+    goto yy741;
+  yy748:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 1) {
+      goto yy748;
+    }
+    if (yych <= ' ') {
+      if (yych <= 0x08)
+        goto yy741;
+      if (yych <= '\r')
+        goto yy761;
+      if (yych <= 0x1F)
+        goto yy741;
+      goto yy761;
+    } else {
+      if (yych <= '/') {
+        if (yych <= '.')
+          goto yy741;
+        goto yy763;
+      } else {
+        if (yych == '>')
+          goto yy755;
+        goto yy741;
+      }
+    }
+  yy750:
+    yych = *++p;
+    if (yych <= '@')
+      goto yy741;
+    if (yych <= 'Z')
+      goto yy751;
+    if (yych <= '`')
+      goto yy741;
+    if (yych >= '{')
+      goto yy741;
+  yy751:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 2) {
+      goto yy753;
+    }
+    if (yych <= '=') {
+      if (yych <= '-') {
+        if (yych <= ',')
+          goto yy741;
+        goto yy751;
+      } else {
+        if (yych <= '/')
+          goto yy741;
+        if (yych <= '9')
+          goto yy751;
+        goto yy741;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy755;
+        if (yych <= '@')
+          goto yy741;
+        goto yy751;
+      } else {
+        if (yych <= '`')
+          goto yy741;
+        if (yych <= 'z')
+          goto yy751;
+        goto yy741;
+      }
+    }
+  yy753:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 2) {
+      goto yy753;
+    }
+    if (yych != '>')
+      goto yy741;
+  yy755:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 4) {
+      goto yy755;
+    }
+    if (yych <= 0x08)
+      goto yy741;
+    if (yych <= '\n')
+      goto yy757;
+    if (yych <= '\v')
+      goto yy741;
+    if (yych <= '\r')
+      goto yy760;
+    goto yy741;
+  yy757:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 4) {
+      goto yy755;
+    }
+    if (yych <= 0x08)
+      goto yy759;
+    if (yych <= '\n')
+      goto yy757;
+    if (yych <= '\v')
+      goto yy759;
+    if (yych <= '\r')
+      goto yy760;
+  yy759 : { return 7; }
+  yy760:
+    yych = *++p;
+    goto yy759;
+  yy761:
+    ++p;
+    yych = *p;
+    if (yych <= ':') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy741;
+        if (yych <= '\r')
+          goto yy761;
+        if (yych <= 0x1F)
+          goto yy741;
+        goto yy761;
+      } else {
+        if (yych == '/')
+          goto yy763;
+        if (yych <= '9')
+          goto yy741;
+        goto yy764;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych == '>')
+          goto yy755;
+        if (yych <= '@')
+          goto yy741;
+        goto yy764;
+      } else {
+        if (yych <= '_') {
+          if (yych <= '^')
+            goto yy741;
+          goto yy764;
+        } else {
+          if (yych <= '`')
+            goto yy741;
+          if (yych <= 'z')
+            goto yy764;
+          goto yy741;
+        }
+      }
+    }
+  yy763:
+    yych = *++p;
+    if (yych == '>')
+      goto yy755;
+    goto yy741;
+  yy764:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 16) {
+      goto yy764;
+    }
+    if (yych <= ',') {
+      if (yych <= '\r') {
+        if (yych <= 0x08)
+          goto yy741;
+      } else {
+        if (yych != ' ')
+          goto yy741;
+      }
+    } else {
+      if (yych <= '<') {
+        if (yych <= '/')
+          goto yy763;
+        goto yy741;
+      } else {
+        if (yych <= '=')
+          goto yy768;
+        if (yych <= '>')
+          goto yy755;
+        goto yy741;
+      }
+    }
+  yy766:
+    ++p;
+    yych = *p;
+    if (yych <= '<') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy741;
+        if (yych <= '\r')
+          goto yy766;
+        if (yych <= 0x1F)
+          goto yy741;
+        goto yy766;
+      } else {
+        if (yych <= '/') {
+          if (yych <= '.')
+            goto yy741;
+          goto yy763;
+        } else {
+          if (yych == ':')
+            goto yy764;
+          goto yy741;
+        }
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '=')
+          goto yy768;
+        if (yych <= '>')
+          goto yy755;
+        if (yych <= '@')
+          goto yy741;
+        goto yy764;
+      } else {
+        if (yych <= '_') {
+          if (yych <= '^')
+            goto yy741;
+          goto yy764;
+        } else {
+          if (yych <= '`')
+            goto yy741;
+          if (yych <= 'z')
+            goto yy764;
+          goto yy741;
+        }
+      }
+    }
+  yy768:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy770;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '"') {
+        if (yych <= 0x00)
+          goto yy741;
+        if (yych >= '!')
+          goto yy781;
+      } else {
+        if (yych <= '\'')
+          goto yy779;
+        if (yych <= 0xC1)
+          goto yy741;
+        if (yych <= 0xDF)
+          goto yy772;
+        goto yy773;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy778;
+        goto yy774;
+      } else {
+        if (yych <= 0xF0)
+          goto yy775;
+        if (yych <= 0xF3)
+          goto yy776;
+        if (yych <= 0xF4)
+          goto yy777;
+        goto yy741;
+      }
+    }
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy770;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '\'') {
+        if (yych <= 0x00)
+          goto yy741;
+        if (yych <= ' ')
+          goto yy804;
+        if (yych <= '"')
+          goto yy781;
+        goto yy779;
+      } else {
+        if (yych == '>')
+          goto yy755;
+        if (yych <= 0xC1)
+          goto yy741;
+        goto yy772;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy773;
+        if (yych == 0xED)
+          goto yy778;
+        goto yy774;
+      } else {
+        if (yych <= 0xF0)
+          goto yy775;
+        if (yych <= 0xF3)
+          goto yy776;
+        if (yych <= 0xF4)
+          goto yy777;
+        goto yy741;
+      }
+    }
+  yy770:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy770;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '=') {
+        if (yych <= 0x00)
+          goto yy741;
+        if (yych <= ' ')
+          goto yy798;
+        goto yy741;
+      } else {
+        if (yych <= '>')
+          goto yy755;
+        if (yych <= 0xC1)
+          goto yy741;
+        if (yych >= 0xE0)
+          goto yy773;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy778;
+        goto yy774;
+      } else {
+        if (yych <= 0xF0)
+          goto yy775;
+        if (yych <= 0xF3)
+          goto yy776;
+        if (yych <= 0xF4)
+          goto yy777;
+        goto yy741;
+      }
+    }
+  yy772:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy770;
+    goto yy741;
+  yy773:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy772;
+    goto yy741;
+  yy774:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy772;
+    goto yy741;
+  yy775:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy774;
+    goto yy741;
+  yy776:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy774;
+    goto yy741;
+  yy777:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0x8F)
+      goto yy774;
+    goto yy741;
+  yy778:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0x9F)
+      goto yy772;
+    goto yy741;
+  yy779:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy779;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy741;
+        if (yych <= '\'')
+          goto yy790;
+        goto yy741;
+      } else {
+        if (yych <= 0xDF)
+          goto yy791;
+        if (yych <= 0xE0)
+          goto yy792;
+        goto yy793;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy797;
+        if (yych <= 0xEF)
+          goto yy793;
+        goto yy794;
+      } else {
+        if (yych <= 0xF3)
+          goto yy795;
+        if (yych <= 0xF4)
+          goto yy796;
+        goto yy741;
+      }
+    }
+  yy781:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy781;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy741;
+        if (yych <= '"')
+          goto yy790;
+        goto yy741;
+      } else {
+        if (yych <= 0xDF)
+          goto yy783;
+        if (yych <= 0xE0)
+          goto yy784;
+        goto yy785;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy789;
+        if (yych <= 0xEF)
+          goto yy785;
+        goto yy786;
+      } else {
+        if (yych <= 0xF3)
+          goto yy787;
+        if (yych <= 0xF4)
+          goto yy788;
+        goto yy741;
+      }
+    }
+  yy783:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy781;
+    goto yy741;
+  yy784:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy783;
+    goto yy741;
+  yy785:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy783;
+    goto yy741;
+  yy786:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy785;
+    goto yy741;
+  yy787:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy785;
+    goto yy741;
+  yy788:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0x8F)
+      goto yy785;
+    goto yy741;
+  yy789:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0x9F)
+      goto yy783;
+    goto yy741;
+  yy790:
+    ++p;
+    yych = *p;
+    if (yych <= ' ') {
+      if (yych <= 0x08)
+        goto yy741;
+      if (yych <= '\r')
+        goto yy761;
+      if (yych <= 0x1F)
+        goto yy741;
+      goto yy761;
+    } else {
+      if (yych <= '/') {
+        if (yych <= '.')
+          goto yy741;
+        goto yy763;
+      } else {
+        if (yych == '>')
+          goto yy755;
+        goto yy741;
+      }
+    }
+  yy791:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy779;
+    goto yy741;
+  yy792:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy791;
+    goto yy741;
+  yy793:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy791;
+    goto yy741;
+  yy794:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy793;
+    goto yy741;
+  yy795:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0xBF)
+      goto yy793;
+    goto yy741;
+  yy796:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0x8F)
+      goto yy793;
+    goto yy741;
+  yy797:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy741;
+    if (yych <= 0x9F)
+      goto yy791;
+    goto yy741;
+  yy798:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '"') {
+        if (yych <= '\r') {
+          if (yych <= 0x00)
+            goto yy741;
+          if (yych <= 0x08)
+            goto yy770;
+          goto yy798;
+        } else {
+          if (yych == ' ')
+            goto yy798;
+          if (yych <= '!')
+            goto yy770;
+          goto yy741;
+        }
+      } else {
+        if (yych <= ':') {
+          if (yych == '\'')
+            goto yy741;
+          if (yych <= '9')
+            goto yy770;
+        } else {
+          if (yych <= ';')
+            goto yy770;
+          if (yych <= '=')
+            goto yy741;
+          if (yych <= '>')
+            goto yy755;
+          goto yy770;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= '`') {
+          if (yych <= 'Z')
+            goto yy800;
+          if (yych <= '^')
+            goto yy770;
+          if (yych >= '`')
+            goto yy741;
+        } else {
+          if (yych <= 'z')
+            goto yy800;
+          if (yych <= 0x7F)
+            goto yy770;
+          if (yych <= 0xC1)
+            goto yy741;
+          goto yy772;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy773;
+          if (yych == 0xED)
+            goto yy778;
+          goto yy774;
+        } else {
+          if (yych <= 0xF0)
+            goto yy775;
+          if (yych <= 0xF3)
+            goto yy776;
+          if (yych <= 0xF4)
+            goto yy777;
+          goto yy741;
+        }
+      }
+    }
+  yy800:
+    ++p;
+    yych = *p;
+    if (yych <= '>') {
+      if (yych <= '&') {
+        if (yych <= 0x1F) {
+          if (yych <= 0x00)
+            goto yy741;
+          if (yych <= 0x08)
+            goto yy770;
+          if (yych >= 0x0E)
+            goto yy770;
+        } else {
+          if (yych <= ' ')
+            goto yy802;
+          if (yych == '"')
+            goto yy741;
+          goto yy770;
+        }
+      } else {
+        if (yych <= '/') {
+          if (yych <= '\'')
+            goto yy741;
+          if (yych <= ',')
+            goto yy770;
+          if (yych <= '.')
+            goto yy800;
+          goto yy770;
+        } else {
+          if (yych <= ';') {
+            if (yych <= ':')
+              goto yy800;
+            goto yy770;
+          } else {
+            if (yych <= '<')
+              goto yy741;
+            if (yych <= '=')
+              goto yy768;
+            goto yy755;
+          }
+        }
+      }
+    } else {
+      if (yych <= 0xC1) {
+        if (yych <= '_') {
+          if (yych <= '@')
+            goto yy770;
+          if (yych <= 'Z')
+            goto yy800;
+          if (yych <= '^')
+            goto yy770;
+          goto yy800;
+        } else {
+          if (yych <= '`')
+            goto yy741;
+          if (yych <= 'z')
+            goto yy800;
+          if (yych <= 0x7F)
+            goto yy770;
+          goto yy741;
+        }
+      } else {
+        if (yych <= 0xED) {
+          if (yych <= 0xDF)
+            goto yy772;
+          if (yych <= 0xE0)
+            goto yy773;
+          if (yych <= 0xEC)
+            goto yy774;
+          goto yy778;
+        } else {
+          if (yych <= 0xF0) {
+            if (yych <= 0xEF)
+              goto yy774;
+            goto yy775;
+          } else {
+            if (yych <= 0xF3)
+              goto yy776;
+            if (yych <= 0xF4)
+              goto yy777;
+            goto yy741;
+          }
+        }
+      }
+    }
+  yy802:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '&') {
+        if (yych <= 0x1F) {
+          if (yych <= 0x00)
+            goto yy741;
+          if (yych <= 0x08)
+            goto yy770;
+          if (yych <= '\r')
+            goto yy802;
+          goto yy770;
+        } else {
+          if (yych <= ' ')
+            goto yy802;
+          if (yych == '"')
+            goto yy741;
+          goto yy770;
+        }
+      } else {
+        if (yych <= ';') {
+          if (yych <= '\'')
+            goto yy741;
+          if (yych == ':')
+            goto yy800;
+          goto yy770;
+        } else {
+          if (yych <= '<')
+            goto yy741;
+          if (yych <= '=')
+            goto yy768;
+          if (yych <= '>')
+            goto yy755;
+          goto yy770;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= '`') {
+          if (yych <= 'Z')
+            goto yy800;
+          if (yych <= '^')
+            goto yy770;
+          if (yych <= '_')
+            goto yy800;
+          goto yy741;
+        } else {
+          if (yych <= 'z')
+            goto yy800;
+          if (yych <= 0x7F)
+            goto yy770;
+          if (yych <= 0xC1)
+            goto yy741;
+          goto yy772;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy773;
+          if (yych == 0xED)
+            goto yy778;
+          goto yy774;
+        } else {
+          if (yych <= 0xF0)
+            goto yy775;
+          if (yych <= 0xF3)
+            goto yy776;
+          if (yych <= 0xF4)
+            goto yy777;
+          goto yy741;
+        }
+      }
+    }
+  yy804:
+    ++p;
+    yych = *p;
+    if (yych <= '@') {
+      if (yych <= '"') {
+        if (yych <= '\r') {
+          if (yych <= 0x00)
+            goto yy741;
+          if (yych <= 0x08)
+            goto yy770;
+          goto yy804;
+        } else {
+          if (yych == ' ')
+            goto yy804;
+          if (yych <= '!')
+            goto yy770;
+          goto yy781;
+        }
+      } else {
+        if (yych <= ':') {
+          if (yych == '\'')
+            goto yy779;
+          if (yych <= '9')
+            goto yy770;
+          goto yy800;
+        } else {
+          if (yych <= ';')
+            goto yy770;
+          if (yych <= '=')
+            goto yy741;
+          if (yych <= '>')
+            goto yy755;
+          goto yy770;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= '`') {
+          if (yych <= 'Z')
+            goto yy800;
+          if (yych <= '^')
+            goto yy770;
+          if (yych <= '_')
+            goto yy800;
+          goto yy741;
+        } else {
+          if (yych <= 'z')
+            goto yy800;
+          if (yych <= 0x7F)
+            goto yy770;
+          if (yych <= 0xC1)
+            goto yy741;
+          goto yy772;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy773;
+          if (yych == 0xED)
+            goto yy778;
+          goto yy774;
+        } else {
+          if (yych <= 0xF0)
+            goto yy775;
+          if (yych <= 0xF3)
+            goto yy776;
+          if (yych <= 0xF4)
+            goto yy777;
+          goto yy741;
+        }
+      }
+    }
+  }
+}
+
+// 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 yy809;
+      } else {
+        if (yych <= '<')
+          goto yy810;
+        if (yych <= 0x7F)
+          goto yy809;
+        if (yych >= 0xC2)
+          goto yy811;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy813;
+        if (yych == 0xED)
+          goto yy818;
+        goto yy814;
+      } else {
+        if (yych <= 0xF0)
+          goto yy815;
+        if (yych <= 0xF3)
+          goto yy816;
+        if (yych <= 0xF4)
+          goto yy817;
+      }
+    }
+  yy808 : { return 0; }
+  yy809:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy808;
+      goto yy823;
+    } else {
+      if (yych <= 0xC1)
+        goto yy808;
+      if (yych <= 0xF4)
+        goto yy823;
+      goto yy808;
+    }
+  yy810:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '/') {
+      if (yych == '\n')
+        goto yy808;
+      if (yych <= '.')
+        goto yy823;
+      goto yy819;
+    } else {
+      if (yych <= 0x7F)
+        goto yy823;
+      if (yych <= 0xC1)
+        goto yy808;
+      if (yych <= 0xF4)
+        goto yy823;
+      goto yy808;
+    }
+  yy811:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy812;
+    if (yych <= 0xBF)
+      goto yy809;
+  yy812:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy808;
+    } else {
+      goto yy840;
+    }
+  yy813:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy812;
+    if (yych <= 0xBF)
+      goto yy811;
+    goto yy812;
+  yy814:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy812;
+    if (yych <= 0xBF)
+      goto yy811;
+    goto yy812;
+  yy815:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy812;
+    if (yych <= 0xBF)
+      goto yy814;
+    goto yy812;
+  yy816:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy812;
+    if (yych <= 0xBF)
+      goto yy814;
+    goto yy812;
+  yy817:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy812;
+    if (yych <= 0x8F)
+      goto yy814;
+    goto yy812;
+  yy818:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy812;
+    if (yych <= 0x9F)
+      goto yy811;
+    goto yy812;
+  yy819:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 's') {
+      if (yych <= 'R') {
+        if (yych <= '\n') {
+          if (yych <= '\t')
+            goto yy822;
+          goto yy812;
+        } else {
+          if (yych == 'P')
+            goto yy831;
+          goto yy822;
+        }
+      } else {
+        if (yych <= 'o') {
+          if (yych <= 'S')
+            goto yy832;
+          goto yy822;
+        } else {
+          if (yych <= 'p')
+            goto yy831;
+          if (yych <= 'r')
+            goto yy822;
+          goto yy832;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= 0x7F)
+            goto yy822;
+          goto yy812;
+        } else {
+          if (yych <= 0xDF)
+            goto yy824;
+          if (yych <= 0xE0)
+            goto yy825;
+          goto yy826;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy830;
+          if (yych <= 0xEF)
+            goto yy826;
+          goto yy827;
+        } else {
+          if (yych <= 0xF3)
+            goto yy828;
+          if (yych <= 0xF4)
+            goto yy829;
+          goto yy812;
+        }
+      }
+    }
+  yy820:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '.') {
+        if (yych == '\n')
+          goto yy812;
+      } else {
+        if (yych <= '/')
+          goto yy819;
+        if (yych <= 0x7F)
+          goto yy822;
+        if (yych <= 0xC1)
+          goto yy812;
+        goto yy824;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy825;
+        if (yych == 0xED)
+          goto yy830;
+        goto yy826;
+      } else {
+        if (yych <= 0xF0)
+          goto yy827;
+        if (yych <= 0xF3)
+          goto yy828;
+        if (yych <= 0xF4)
+          goto yy829;
+        goto yy812;
+      }
+    }
+  yy822:
+    ++p;
+    yych = *p;
+  yy823:
+    if (yybm[0 + yych] & 128) {
+      goto yy822;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy812;
+        if (yych <= '<')
+          goto yy820;
+        goto yy812;
+      } else {
+        if (yych <= 0xDF)
+          goto yy824;
+        if (yych <= 0xE0)
+          goto yy825;
+        goto yy826;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy830;
+        if (yych <= 0xEF)
+          goto yy826;
+        goto yy827;
+      } else {
+        if (yych <= 0xF3)
+          goto yy828;
+        if (yych <= 0xF4)
+          goto yy829;
+        goto yy812;
+      }
+    }
+  yy824:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy812;
+    if (yych <= 0xBF)
+      goto yy822;
+    goto yy812;
+  yy825:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy812;
+    if (yych <= 0xBF)
+      goto yy824;
+    goto yy812;
+  yy826:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy812;
+    if (yych <= 0xBF)
+      goto yy824;
+    goto yy812;
+  yy827:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy812;
+    if (yych <= 0xBF)
+      goto yy826;
+    goto yy812;
+  yy828:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy812;
+    if (yych <= 0xBF)
+      goto yy826;
+    goto yy812;
+  yy829:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy812;
+    if (yych <= 0x8F)
+      goto yy826;
+    goto yy812;
+  yy830:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy812;
+    if (yych <= 0x9F)
+      goto yy824;
+    goto yy812;
+  yy831:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'R') {
+        if (yych == '\n')
+          goto yy812;
+        if (yych <= 'Q')
+          goto yy822;
+        goto yy843;
+      } else {
+        if (yych == 'r')
+          goto yy843;
+        if (yych <= 0x7F)
+          goto yy822;
+        goto yy812;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy824;
+        if (yych <= 0xE0)
+          goto yy825;
+        if (yych <= 0xEC)
+          goto yy826;
+        goto yy830;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy826;
+          goto yy827;
+        } else {
+          if (yych <= 0xF3)
+            goto yy828;
+          if (yych <= 0xF4)
+            goto yy829;
+          goto yy812;
+        }
+      }
+    }
+  yy832:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 't') {
+      if (yych <= 'S') {
+        if (yych <= '\n') {
+          if (yych <= '\t')
+            goto yy822;
+          goto yy812;
+        } else {
+          if (yych == 'C')
+            goto yy834;
+          goto yy822;
+        }
+      } else {
+        if (yych <= 'b') {
+          if (yych >= 'U')
+            goto yy822;
+        } else {
+          if (yych <= 'c')
+            goto yy834;
+          if (yych <= 's')
+            goto yy822;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= 0x7F)
+            goto yy822;
+          goto yy812;
+        } else {
+          if (yych <= 0xDF)
+            goto yy824;
+          if (yych <= 0xE0)
+            goto yy825;
+          goto yy826;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy830;
+          if (yych <= 0xEF)
+            goto yy826;
+          goto yy827;
+        } else {
+          if (yych <= 0xF3)
+            goto yy828;
+          if (yych <= 0xF4)
+            goto yy829;
+          goto yy812;
+        }
+      }
+    }
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'Y') {
+        if (yych == '\n')
+          goto yy812;
+        if (yych <= 'X')
+          goto yy822;
+        goto yy841;
+      } else {
+        if (yych == 'y')
+          goto yy841;
+        if (yych <= 0x7F)
+          goto yy822;
+        goto yy812;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy824;
+        if (yych <= 0xE0)
+          goto yy825;
+        if (yych <= 0xEC)
+          goto yy826;
+        goto yy830;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy826;
+          goto yy827;
+        } else {
+          if (yych <= 0xF3)
+            goto yy828;
+          if (yych <= 0xF4)
+            goto yy829;
+          goto yy812;
+        }
+      }
+    }
+  yy834:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'R') {
+        if (yych == '\n')
+          goto yy812;
+        if (yych <= 'Q')
+          goto yy822;
+      } else {
+        if (yych == 'r')
+          goto yy835;
+        if (yych <= 0x7F)
+          goto yy822;
+        goto yy812;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy824;
+        if (yych <= 0xE0)
+          goto yy825;
+        if (yych <= 0xEC)
+          goto yy826;
+        goto yy830;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy826;
+          goto yy827;
+        } else {
+          if (yych <= 0xF3)
+            goto yy828;
+          if (yych <= 0xF4)
+            goto yy829;
+          goto yy812;
+        }
+      }
+    }
+  yy835:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'I') {
+        if (yych == '\n')
+          goto yy812;
+        if (yych <= 'H')
+          goto yy822;
+      } else {
+        if (yych == 'i')
+          goto yy836;
+        if (yych <= 0x7F)
+          goto yy822;
+        goto yy812;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy824;
+        if (yych <= 0xE0)
+          goto yy825;
+        if (yych <= 0xEC)
+          goto yy826;
+        goto yy830;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy826;
+          goto yy827;
+        } else {
+          if (yych <= 0xF3)
+            goto yy828;
+          if (yych <= 0xF4)
+            goto yy829;
+          goto yy812;
+        }
+      }
+    }
+  yy836:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'P') {
+        if (yych == '\n')
+          goto yy812;
+        if (yych <= 'O')
+          goto yy822;
+      } else {
+        if (yych == 'p')
+          goto yy837;
+        if (yych <= 0x7F)
+          goto yy822;
+        goto yy812;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy824;
+        if (yych <= 0xE0)
+          goto yy825;
+        if (yych <= 0xEC)
+          goto yy826;
+        goto yy830;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy826;
+          goto yy827;
+        } else {
+          if (yych <= 0xF3)
+            goto yy828;
+          if (yych <= 0xF4)
+            goto yy829;
+          goto yy812;
+        }
+      }
+    }
+  yy837:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'T') {
+        if (yych == '\n')
+          goto yy812;
+        if (yych <= 'S')
+          goto yy822;
+      } else {
+        if (yych == 't')
+          goto yy838;
+        if (yych <= 0x7F)
+          goto yy822;
+        goto yy812;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy824;
+        if (yych <= 0xE0)
+          goto yy825;
+        if (yych <= 0xEC)
+          goto yy826;
+        goto yy830;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy826;
+          goto yy827;
+        } else {
+          if (yych <= 0xF3)
+            goto yy828;
+          if (yych <= 0xF4)
+            goto yy829;
+          goto yy812;
+        }
+      }
+    }
+  yy838:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych == '\n')
+          goto yy812;
+        goto yy822;
+      } else {
+        if (yych <= '>')
+          goto yy839;
+        if (yych <= 0x7F)
+          goto yy822;
+        if (yych <= 0xC1)
+          goto yy812;
+        goto yy824;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy825;
+        if (yych == 0xED)
+          goto yy830;
+        goto yy826;
+      } else {
+        if (yych <= 0xF0)
+          goto yy827;
+        if (yych <= 0xF3)
+          goto yy828;
+        if (yych <= 0xF4)
+          goto yy829;
+        goto yy812;
+      }
+    }
+  yy839:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy822;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy840;
+        if (yych <= '<')
+          goto yy820;
+      } else {
+        if (yych <= 0xDF)
+          goto yy824;
+        if (yych <= 0xE0)
+          goto yy825;
+        goto yy826;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy830;
+        if (yych <= 0xEF)
+          goto yy826;
+        goto yy827;
+      } else {
+        if (yych <= 0xF3)
+          goto yy828;
+        if (yych <= 0xF4)
+          goto yy829;
+      }
+    }
+  yy840 : { return (bufsize_t)(p - start); }
+  yy841:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'L') {
+        if (yych == '\n')
+          goto yy812;
+        if (yych <= 'K')
+          goto yy822;
+      } else {
+        if (yych == 'l')
+          goto yy842;
+        if (yych <= 0x7F)
+          goto yy822;
+        goto yy812;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy824;
+        if (yych <= 0xE0)
+          goto yy825;
+        if (yych <= 0xEC)
+          goto yy826;
+        goto yy830;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy826;
+          goto yy827;
+        } else {
+          if (yych <= 0xF3)
+            goto yy828;
+          if (yych <= 0xF4)
+            goto yy829;
+          goto yy812;
+        }
+      }
+    }
+  yy842:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'E') {
+        if (yych == '\n')
+          goto yy812;
+        if (yych <= 'D')
+          goto yy822;
+        goto yy838;
+      } else {
+        if (yych == 'e')
+          goto yy838;
+        if (yych <= 0x7F)
+          goto yy822;
+        goto yy812;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy824;
+        if (yych <= 0xE0)
+          goto yy825;
+        if (yych <= 0xEC)
+          goto yy826;
+        goto yy830;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy826;
+          goto yy827;
+        } else {
+          if (yych <= 0xF3)
+            goto yy828;
+          if (yych <= 0xF4)
+            goto yy829;
+          goto yy812;
+        }
+      }
+    }
+  yy843:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy820;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'E') {
+        if (yych == '\n')
+          goto yy812;
+        if (yych <= 'D')
+          goto yy822;
+        goto yy838;
+      } else {
+        if (yych == 'e')
+          goto yy838;
+        if (yych <= 0x7F)
+          goto yy822;
+        goto yy812;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy824;
+        if (yych <= 0xE0)
+          goto yy825;
+        if (yych <= 0xEC)
+          goto yy826;
+        goto yy830;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy826;
+          goto yy827;
+        } else {
+          if (yych <= 0xF3)
+            goto yy828;
+          if (yych <= 0xF4)
+            goto yy829;
+          goto yy812;
+        }
+      }
+    }
+  }
+}
+
+// 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 yy847;
+      } else {
+        if (yych <= '-')
+          goto yy848;
+        if (yych <= 0x7F)
+          goto yy847;
+        if (yych >= 0xC2)
+          goto yy849;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy851;
+        if (yych == 0xED)
+          goto yy856;
+        goto yy852;
+      } else {
+        if (yych <= 0xF0)
+          goto yy853;
+        if (yych <= 0xF3)
+          goto yy854;
+        if (yych <= 0xF4)
+          goto yy855;
+      }
+    }
+  yy846 : { return 0; }
+  yy847:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy846;
+      goto yy860;
+    } else {
+      if (yych <= 0xC1)
+        goto yy846;
+      if (yych <= 0xF4)
+        goto yy860;
+      goto yy846;
+    }
+  yy848:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy857;
+    }
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy846;
+      goto yy860;
+    } else {
+      if (yych <= 0xC1)
+        goto yy846;
+      if (yych <= 0xF4)
+        goto yy860;
+      goto yy846;
+    }
+  yy849:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy850;
+    if (yych <= 0xBF)
+      goto yy847;
+  yy850:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy846;
+    } else {
+      goto yy870;
+    }
+  yy851:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy850;
+    if (yych <= 0xBF)
+      goto yy849;
+    goto yy850;
+  yy852:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy850;
+    if (yych <= 0xBF)
+      goto yy849;
+    goto yy850;
+  yy853:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy850;
+    if (yych <= 0xBF)
+      goto yy852;
+    goto yy850;
+  yy854:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy850;
+    if (yych <= 0xBF)
+      goto yy852;
+    goto yy850;
+  yy855:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy850;
+    if (yych <= 0x8F)
+      goto yy852;
+    goto yy850;
+  yy856:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy850;
+    if (yych <= 0x9F)
+      goto yy849;
+    goto yy850;
+  yy857:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy857;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych == '\n')
+          goto yy850;
+      } else {
+        if (yych <= '>')
+          goto yy869;
+        if (yych <= 0x7F)
+          goto yy859;
+        if (yych <= 0xC1)
+          goto yy850;
+        goto yy861;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy862;
+        if (yych == 0xED)
+          goto yy867;
+        goto yy863;
+      } else {
+        if (yych <= 0xF0)
+          goto yy864;
+        if (yych <= 0xF3)
+          goto yy865;
+        if (yych <= 0xF4)
+          goto yy866;
+        goto yy850;
+      }
+    }
+  yy859:
+    ++p;
+    yych = *p;
+  yy860:
+    if (yybm[0 + yych] & 128) {
+      goto yy859;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy850;
+        if (yych <= '-')
+          goto yy868;
+        goto yy850;
+      } else {
+        if (yych <= 0xDF)
+          goto yy861;
+        if (yych <= 0xE0)
+          goto yy862;
+        goto yy863;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy867;
+        if (yych <= 0xEF)
+          goto yy863;
+        goto yy864;
+      } else {
+        if (yych <= 0xF3)
+          goto yy865;
+        if (yych <= 0xF4)
+          goto yy866;
+        goto yy850;
+      }
+    }
+  yy861:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy850;
+    if (yych <= 0xBF)
+      goto yy859;
+    goto yy850;
+  yy862:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy850;
+    if (yych <= 0xBF)
+      goto yy861;
+    goto yy850;
+  yy863:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy850;
+    if (yych <= 0xBF)
+      goto yy861;
+    goto yy850;
+  yy864:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy850;
+    if (yych <= 0xBF)
+      goto yy863;
+    goto yy850;
+  yy865:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy850;
+    if (yych <= 0xBF)
+      goto yy863;
+    goto yy850;
+  yy866:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy850;
+    if (yych <= 0x8F)
+      goto yy863;
+    goto yy850;
+  yy867:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy850;
+    if (yych <= 0x9F)
+      goto yy861;
+    goto yy850;
+  yy868:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy859;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy850;
+        if (yych <= '-')
+          goto yy857;
+        goto yy850;
+      } else {
+        if (yych <= 0xDF)
+          goto yy861;
+        if (yych <= 0xE0)
+          goto yy862;
+        goto yy863;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy867;
+        if (yych <= 0xEF)
+          goto yy863;
+        goto yy864;
+      } else {
+        if (yych <= 0xF3)
+          goto yy865;
+        if (yych <= 0xF4)
+          goto yy866;
+        goto yy850;
+      }
+    }
+  yy869:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy859;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy870;
+        if (yych <= '-')
+          goto yy868;
+      } else {
+        if (yych <= 0xDF)
+          goto yy861;
+        if (yych <= 0xE0)
+          goto yy862;
+        goto yy863;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy867;
+        if (yych <= 0xEF)
+          goto yy863;
+        goto yy864;
+      } else {
+        if (yych <= 0xF3)
+          goto yy865;
+        if (yych <= 0xF4)
+          goto yy866;
+      }
+    }
+  yy870 : { 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 yy874;
+      } else {
+        if (yych <= '?')
+          goto yy875;
+        if (yych <= 0x7F)
+          goto yy874;
+        if (yych >= 0xC2)
+          goto yy876;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy878;
+        if (yych == 0xED)
+          goto yy883;
+        goto yy879;
+      } else {
+        if (yych <= 0xF0)
+          goto yy880;
+        if (yych <= 0xF3)
+          goto yy881;
+        if (yych <= 0xF4)
+          goto yy882;
+      }
+    }
+  yy873 : { return 0; }
+  yy874:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy873;
+      goto yy889;
+    } else {
+      if (yych <= 0xC1)
+        goto yy873;
+      if (yych <= 0xF4)
+        goto yy889;
+      goto yy873;
+    }
+  yy875:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '>') {
+      if (yych == '\n')
+        goto yy873;
+      if (yych <= '=')
+        goto yy889;
+      goto yy884;
+    } else {
+      if (yych <= 0x7F)
+        goto yy889;
+      if (yych <= 0xC1)
+        goto yy873;
+      if (yych <= 0xF4)
+        goto yy889;
+      goto yy873;
+    }
+  yy876:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy877;
+    if (yych <= 0xBF)
+      goto yy874;
+  yy877:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy873;
+    } else {
+      goto yy885;
+    }
+  yy878:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy877;
+    if (yych <= 0xBF)
+      goto yy876;
+    goto yy877;
+  yy879:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy877;
+    if (yych <= 0xBF)
+      goto yy876;
+    goto yy877;
+  yy880:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy877;
+    if (yych <= 0xBF)
+      goto yy879;
+    goto yy877;
+  yy881:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy877;
+    if (yych <= 0xBF)
+      goto yy879;
+    goto yy877;
+  yy882:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy877;
+    if (yych <= 0x8F)
+      goto yy879;
+    goto yy877;
+  yy883:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy877;
+    if (yych <= 0x9F)
+      goto yy876;
+    goto yy877;
+  yy884:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy888;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy885;
+        if (yych <= '?')
+          goto yy886;
+      } else {
+        if (yych <= 0xDF)
+          goto yy890;
+        if (yych <= 0xE0)
+          goto yy891;
+        goto yy892;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy896;
+        if (yych <= 0xEF)
+          goto yy892;
+        goto yy893;
+      } else {
+        if (yych <= 0xF3)
+          goto yy894;
+        if (yych <= 0xF4)
+          goto yy895;
+      }
+    }
+  yy885 : { return (bufsize_t)(p - start); }
+  yy886:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy886;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych == '\n')
+          goto yy877;
+      } else {
+        if (yych <= '>')
+          goto yy884;
+        if (yych <= 0x7F)
+          goto yy888;
+        if (yych <= 0xC1)
+          goto yy877;
+        goto yy890;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy891;
+        if (yych == 0xED)
+          goto yy896;
+        goto yy892;
+      } else {
+        if (yych <= 0xF0)
+          goto yy893;
+        if (yych <= 0xF3)
+          goto yy894;
+        if (yych <= 0xF4)
+          goto yy895;
+        goto yy877;
+      }
+    }
+  yy888:
+    ++p;
+    yych = *p;
+  yy889:
+    if (yybm[0 + yych] & 128) {
+      goto yy888;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy877;
+        if (yych <= '?')
+          goto yy886;
+        goto yy877;
+      } else {
+        if (yych <= 0xDF)
+          goto yy890;
+        if (yych <= 0xE0)
+          goto yy891;
+        goto yy892;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy896;
+        if (yych <= 0xEF)
+          goto yy892;
+        goto yy893;
+      } else {
+        if (yych <= 0xF3)
+          goto yy894;
+        if (yych <= 0xF4)
+          goto yy895;
+        goto yy877;
+      }
+    }
+  yy890:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy877;
+    if (yych <= 0xBF)
+      goto yy888;
+    goto yy877;
+  yy891:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy877;
+    if (yych <= 0xBF)
+      goto yy890;
+    goto yy877;
+  yy892:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy877;
+    if (yych <= 0xBF)
+      goto yy890;
+    goto yy877;
+  yy893:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy877;
+    if (yych <= 0xBF)
+      goto yy892;
+    goto yy877;
+  yy894:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy877;
+    if (yych <= 0xBF)
+      goto yy892;
+    goto yy877;
+  yy895:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy877;
+    if (yych <= 0x8F)
+      goto yy892;
+    goto yy877;
+  yy896:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy877;
+    if (yych <= 0x9F)
+      goto yy890;
+    goto yy877;
+  }
+}
+
+// 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 yy900;
+      } else {
+        if (yych <= '>')
+          goto yy901;
+        if (yych <= 0x7F)
+          goto yy900;
+        if (yych >= 0xC2)
+          goto yy903;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy905;
+        if (yych == 0xED)
+          goto yy910;
+        goto yy906;
+      } else {
+        if (yych <= 0xF0)
+          goto yy907;
+        if (yych <= 0xF3)
+          goto yy908;
+        if (yych <= 0xF4)
+          goto yy909;
+      }
+    }
+  yy899 : { return 0; }
+  yy900:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy899;
+      goto yy914;
+    } else {
+      if (yych <= 0xC1)
+        goto yy899;
+      if (yych <= 0xF4)
+        goto yy914;
+      goto yy899;
+    }
+  yy901:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F) {
+      if (yych != '\n')
+        goto yy914;
+    } else {
+      if (yych <= 0xC1)
+        goto yy902;
+      if (yych <= 0xF4)
+        goto yy914;
+    }
+  yy902 : { return (bufsize_t)(p - start); }
+  yy903:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy904;
+    if (yych <= 0xBF)
+      goto yy900;
+  yy904:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy899;
+    } else {
+      goto yy902;
+    }
+  yy905:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy904;
+    if (yych <= 0xBF)
+      goto yy903;
+    goto yy904;
+  yy906:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy904;
+    if (yych <= 0xBF)
+      goto yy903;
+    goto yy904;
+  yy907:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy904;
+    if (yych <= 0xBF)
+      goto yy906;
+    goto yy904;
+  yy908:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy904;
+    if (yych <= 0xBF)
+      goto yy906;
+    goto yy904;
+  yy909:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy904;
+    if (yych <= 0x8F)
+      goto yy906;
+    goto yy904;
+  yy910:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy904;
+    if (yych <= 0x9F)
+      goto yy903;
+    goto yy904;
+  yy911:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy913;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy902;
+        if (yych <= '>')
+          goto yy911;
+        goto yy902;
+      } else {
+        if (yych <= 0xDF)
+          goto yy915;
+        if (yych <= 0xE0)
+          goto yy916;
+        goto yy917;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy921;
+        if (yych <= 0xEF)
+          goto yy917;
+        goto yy918;
+      } else {
+        if (yych <= 0xF3)
+          goto yy919;
+        if (yych <= 0xF4)
+          goto yy920;
+        goto yy902;
+      }
+    }
+  yy913:
+    ++p;
+    yych = *p;
+  yy914:
+    if (yybm[0 + yych] & 128) {
+      goto yy913;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy904;
+        if (yych <= '>')
+          goto yy911;
+        goto yy904;
+      } else {
+        if (yych <= 0xDF)
+          goto yy915;
+        if (yych <= 0xE0)
+          goto yy916;
+        goto yy917;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy921;
+        if (yych <= 0xEF)
+          goto yy917;
+        goto yy918;
+      } else {
+        if (yych <= 0xF3)
+          goto yy919;
+        if (yych <= 0xF4)
+          goto yy920;
+        goto yy904;
+      }
+    }
+  yy915:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy904;
+    if (yych <= 0xBF)
+      goto yy913;
+    goto yy904;
+  yy916:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy904;
+    if (yych <= 0xBF)
+      goto yy915;
+    goto yy904;
+  yy917:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy904;
+    if (yych <= 0xBF)
+      goto yy915;
+    goto yy904;
+  yy918:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy904;
+    if (yych <= 0xBF)
+      goto yy917;
+    goto yy904;
+  yy919:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy904;
+    if (yych <= 0xBF)
+      goto yy917;
+    goto yy904;
+  yy920:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy904;
+    if (yych <= 0x8F)
+      goto yy917;
+    goto yy904;
+  yy921:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy904;
+    if (yych <= 0x9F)
+      goto yy915;
+    goto yy904;
+  }
+}
+
+// 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 yy925;
+      } else {
+        if (yych <= ']')
+          goto yy926;
+        if (yych <= 0x7F)
+          goto yy925;
+        if (yych >= 0xC2)
+          goto yy927;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy929;
+        if (yych == 0xED)
+          goto yy934;
+        goto yy930;
+      } else {
+        if (yych <= 0xF0)
+          goto yy931;
+        if (yych <= 0xF3)
+          goto yy932;
+        if (yych <= 0xF4)
+          goto yy933;
+      }
+    }
+  yy924 : { return 0; }
+  yy925:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy924;
+      goto yy938;
+    } else {
+      if (yych <= 0xC1)
+        goto yy924;
+      if (yych <= 0xF4)
+        goto yy938;
+      goto yy924;
+    }
+  yy926:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy935;
+    }
+    if (yych <= 0x7F) {
+      if (yych == '\n')
+        goto yy924;
+      goto yy938;
+    } else {
+      if (yych <= 0xC1)
+        goto yy924;
+      if (yych <= 0xF4)
+        goto yy938;
+      goto yy924;
+    }
+  yy927:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy928;
+    if (yych <= 0xBF)
+      goto yy925;
+  yy928:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy924;
+    } else {
+      goto yy948;
+    }
+  yy929:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy928;
+    if (yych <= 0xBF)
+      goto yy927;
+    goto yy928;
+  yy930:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy928;
+    if (yych <= 0xBF)
+      goto yy927;
+    goto yy928;
+  yy931:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy928;
+    if (yych <= 0xBF)
+      goto yy930;
+    goto yy928;
+  yy932:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy928;
+    if (yych <= 0xBF)
+      goto yy930;
+    goto yy928;
+  yy933:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy928;
+    if (yych <= 0x8F)
+      goto yy930;
+    goto yy928;
+  yy934:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy928;
+    if (yych <= 0x9F)
+      goto yy927;
+    goto yy928;
+  yy935:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy935;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych == '\n')
+          goto yy928;
+      } else {
+        if (yych <= '>')
+          goto yy947;
+        if (yych <= 0x7F)
+          goto yy937;
+        if (yych <= 0xC1)
+          goto yy928;
+        goto yy939;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy940;
+        if (yych == 0xED)
+          goto yy945;
+        goto yy941;
+      } else {
+        if (yych <= 0xF0)
+          goto yy942;
+        if (yych <= 0xF3)
+          goto yy943;
+        if (yych <= 0xF4)
+          goto yy944;
+        goto yy928;
+      }
+    }
+  yy937:
+    ++p;
+    yych = *p;
+  yy938:
+    if (yybm[0 + yych] & 128) {
+      goto yy937;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy928;
+        if (yych <= ']')
+          goto yy946;
+        goto yy928;
+      } else {
+        if (yych <= 0xDF)
+          goto yy939;
+        if (yych <= 0xE0)
+          goto yy940;
+        goto yy941;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy945;
+        if (yych <= 0xEF)
+          goto yy941;
+        goto yy942;
+      } else {
+        if (yych <= 0xF3)
+          goto yy943;
+        if (yych <= 0xF4)
+          goto yy944;
+        goto yy928;
+      }
+    }
+  yy939:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy928;
+    if (yych <= 0xBF)
+      goto yy937;
+    goto yy928;
+  yy940:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy928;
+    if (yych <= 0xBF)
+      goto yy939;
+    goto yy928;
+  yy941:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy928;
+    if (yych <= 0xBF)
+      goto yy939;
+    goto yy928;
+  yy942:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy928;
+    if (yych <= 0xBF)
+      goto yy941;
+    goto yy928;
+  yy943:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy928;
+    if (yych <= 0xBF)
+      goto yy941;
+    goto yy928;
+  yy944:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy928;
+    if (yych <= 0x8F)
+      goto yy941;
+    goto yy928;
+  yy945:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy928;
+    if (yych <= 0x9F)
+      goto yy939;
+    goto yy928;
+  yy946:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy937;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy928;
+        if (yych <= ']')
+          goto yy935;
+        goto yy928;
+      } else {
+        if (yych <= 0xDF)
+          goto yy939;
+        if (yych <= 0xE0)
+          goto yy940;
+        goto yy941;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy945;
+        if (yych <= 0xEF)
+          goto yy941;
+        goto yy942;
+      } else {
+        if (yych <= 0xF3)
+          goto yy943;
+        if (yych <= 0xF4)
+          goto yy944;
+        goto yy928;
+      }
+    }
+  yy947:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy937;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy948;
+        if (yych <= ']')
+          goto yy946;
+      } else {
+        if (yych <= 0xDF)
+          goto yy939;
+        if (yych <= 0xE0)
+          goto yy940;
+        goto yy941;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy945;
+        if (yych <= 0xEF)
+          goto yy941;
+        goto yy942;
+      } else {
+        if (yych <= 0xF3)
+          goto yy943;
+        if (yych <= 0xF4)
+          goto yy944;
+      }
+    }
+  yy948 : { 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, 0,   8,   128, 128, 8,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 8,   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 yy952;
+          goto yy968;
+        } else {
+          if (yych <= '\r')
+            goto yy954;
+          if (yych <= 0x1F)
+            goto yy968;
+          goto yy954;
+        }
+      } else {
+        if (yych <= ')') {
+          if (yych <= '\'')
+            goto yy956;
+          if (yych <= '(')
+            goto yy966;
+          goto yy968;
+        } else {
+          if (yych == '<')
+            goto yy955;
+          goto yy956;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= '\\')
+            goto yy965;
+          if (yych <= 0x7F)
+            goto yy956;
+        } else {
+          if (yych <= 0xDF)
+            goto yy957;
+          if (yych <= 0xE0)
+            goto yy959;
+          goto yy960;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy964;
+          if (yych <= 0xEF)
+            goto yy960;
+          goto yy961;
+        } else {
+          if (yych <= 0xF3)
+            goto yy962;
+          if (yych <= 0xF4)
+            goto yy963;
+        }
+      }
+    }
+  yy951 : { return (bufsize_t)(p - start); }
+  yy952:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+  yy953:
+    if (yybm[0 + yych] & 8) {
+      goto yy952;
+    }
+    if (yych <= 0x7F) {
+      if (yych <= ')') {
+        if (yych <= 0x1F)
+          goto yy951;
+        if (yych <= '\'')
+          goto yy980;
+        if (yych <= '(')
+          goto yy971;
+        goto yy951;
+      } else {
+        if (yych <= '<') {
+          if (yych <= ';')
+            goto yy980;
+          goto yy1016;
+        } else {
+          if (yych == '\\')
+            goto yy982;
+          goto yy980;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF) {
+          if (yych <= 0xC1)
+            goto yy951;
+          goto yy983;
+        } else {
+          if (yych <= 0xE0)
+            goto yy984;
+          if (yych <= 0xEC)
+            goto yy985;
+          goto yy989;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy985;
+          goto yy986;
+        } else {
+          if (yych <= 0xF3)
+            goto yy987;
+          if (yych <= 0xF4)
+            goto yy988;
+          goto yy951;
+        }
+      }
+    }
+  yy954:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    goto yy953;
+  yy955:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy1016;
+    }
+    if (yych <= '>') {
+      if (yych <= '\r') {
+        if (yych <= 0x08) {
+          if (yych <= 0x00)
+            goto yy951;
+          goto yy1029;
+        } else {
+          if (yych <= '\n')
+            goto yy951;
+          if (yych <= '\f')
+            goto yy1029;
+          goto yy951;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= 0x1F)
+            goto yy1029;
+          if (yych <= ' ')
+            goto yy951;
+          goto yy1027;
+        } else {
+          if (yych <= ')')
+            goto yy1029;
+          if (yych <= '<')
+            goto yy980;
+          goto yy1018;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= '\\')
+            goto yy1015;
+          goto yy951;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1020;
+          if (yych <= 0xE0)
+            goto yy1021;
+          goto yy1022;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1026;
+          if (yych <= 0xEF)
+            goto yy1022;
+          goto yy1023;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1024;
+          if (yych <= 0xF4)
+            goto yy1025;
+          goto yy951;
+        }
+      }
+    }
+  yy956:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    goto yy981;
+  yy957:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy956;
+  yy958:
+    p = marker;
+    if (yyaccept <= 1) {
+      if (yyaccept == 0) {
+        goto yy951;
+      } else {
+        goto yy967;
+      }
+    } else {
+      goto yy1019;
+    }
+  yy959:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy957;
+    goto yy958;
+  yy960:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy957;
+    goto yy958;
+  yy961:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy960;
+    goto yy958;
+  yy962:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy960;
+    goto yy958;
+  yy963:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x8F)
+      goto yy960;
+    goto yy958;
+  yy964:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x9F)
+      goto yy957;
+    goto yy958;
+  yy965:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0xDF) {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy980;
+        if (yych <= '\r')
+          goto yy951;
+        goto yy980;
+      } else {
+        if (yych <= ' ')
+          goto yy951;
+        if (yych <= 0x7F)
+          goto yy980;
+        if (yych <= 0xC1)
+          goto yy951;
+        goto yy990;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy991;
+        if (yych == 0xED)
+          goto yy996;
+        goto yy992;
+      } else {
+        if (yych <= 0xF0)
+          goto yy993;
+        if (yych <= 0xF3)
+          goto yy994;
+        if (yych <= 0xF4)
+          goto yy995;
+        goto yy951;
+      }
+    }
+  yy966:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych <= '(') {
+      if (yych <= ' ')
+        goto yy967;
+      if (yych <= '\'')
+        goto yy972;
+    } else {
+      if (yych <= 0x7F)
+        goto yy972;
+      if (yych <= 0xC1)
+        goto yy967;
+      if (yych <= 0xF4)
+        goto yy972;
+    }
+  yy967 : { return 0; }
+  yy968:
+    yych = *++p;
+    goto yy967;
+  yy969:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 16) {
+      goto yy969;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= ')') {
+        if (yych <= ' ')
+          goto yy958;
+        if (yych >= ')')
+          goto yy997;
+      } else {
+        if (yych <= 0x7F)
+          goto yy971;
+        if (yych <= 0xC1)
+          goto yy958;
+        if (yych <= 0xDF)
+          goto yy973;
+        goto yy974;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy979;
+        goto yy975;
+      } else {
+        if (yych <= 0xF0)
+          goto yy976;
+        if (yych <= 0xF3)
+          goto yy977;
+        if (yych <= 0xF4)
+          goto yy978;
+        goto yy958;
+      }
+    }
+  yy971:
+    ++p;
+    yych = *p;
+  yy972:
+    if (yybm[0 + yych] & 32) {
+      goto yy971;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= '(')
+          goto yy958;
+        if (yych <= ')')
+          goto yy980;
+        goto yy969;
+      } else {
+        if (yych <= 0xC1)
+          goto yy958;
+        if (yych >= 0xE0)
+          goto yy974;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy979;
+        goto yy975;
+      } else {
+        if (yych <= 0xF0)
+          goto yy976;
+        if (yych <= 0xF3)
+          goto yy977;
+        if (yych <= 0xF4)
+          goto yy978;
+        goto yy958;
+      }
+    }
+  yy973:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy971;
+    goto yy958;
+  yy974:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy973;
+    goto yy958;
+  yy975:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy973;
+    goto yy958;
+  yy976:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy975;
+    goto yy958;
+  yy977:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy975;
+    goto yy958;
+  yy978:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x8F)
+      goto yy975;
+    goto yy958;
+  yy979:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x9F)
+      goto yy973;
+    goto yy958;
+  yy980:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+  yy981:
+    if (yych <= 0xC1) {
+      if (yych <= ')') {
+        if (yych <= ' ')
+          goto yy951;
+        if (yych <= '\'')
+          goto yy980;
+        if (yych <= '(')
+          goto yy971;
+        goto yy951;
+      } else {
+        if (yych == '\\')
+          goto yy982;
+        if (yych <= 0x7F)
+          goto yy980;
+        goto yy951;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy983;
+        if (yych <= 0xE0)
+          goto yy984;
+        if (yych <= 0xEC)
+          goto yy985;
+        goto yy989;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy985;
+          goto yy986;
+        } else {
+          if (yych <= 0xF3)
+            goto yy987;
+          if (yych <= 0xF4)
+            goto yy988;
+          goto yy951;
+        }
+      }
+    }
+  yy982:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= 0xDF) {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy980;
+        if (yych <= '\r')
+          goto yy951;
+        goto yy980;
+      } else {
+        if (yych <= ' ')
+          goto yy951;
+        if (yych <= 0x7F)
+          goto yy980;
+        if (yych <= 0xC1)
+          goto yy951;
+        goto yy990;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy991;
+        if (yych == 0xED)
+          goto yy996;
+        goto yy992;
+      } else {
+        if (yych <= 0xF0)
+          goto yy993;
+        if (yych <= 0xF3)
+          goto yy994;
+        if (yych <= 0xF4)
+          goto yy995;
+        goto yy951;
+      }
+    }
+  yy983:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy980;
+    goto yy958;
+  yy984:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy983;
+    goto yy958;
+  yy985:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy983;
+    goto yy958;
+  yy986:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy985;
+    goto yy958;
+  yy987:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy985;
+    goto yy958;
+  yy988:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x8F)
+      goto yy985;
+    goto yy958;
+  yy989:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x9F)
+      goto yy983;
+    goto yy958;
+  yy990:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy980;
+    goto yy958;
+  yy991:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy990;
+    goto yy958;
+  yy992:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy990;
+    goto yy958;
+  yy993:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy992;
+    goto yy958;
+  yy994:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy992;
+    goto yy958;
+  yy995:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x8F)
+      goto yy992;
+    goto yy958;
+  yy996:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x9F)
+      goto yy990;
+    goto yy958;
+  yy997:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+  yy998:
+    if (yych <= 0xC1) {
+      if (yych <= ')') {
+        if (yych <= ' ')
+          goto yy951;
+        if (yych <= '\'')
+          goto yy997;
+        if (yych <= '(')
+          goto yy971;
+        goto yy980;
+      } else {
+        if (yych == '\\')
+          goto yy999;
+        if (yych <= 0x7F)
+          goto yy997;
+        goto yy951;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1000;
+        if (yych <= 0xE0)
+          goto yy1001;
+        if (yych <= 0xEC)
+          goto yy1002;
+        goto yy1006;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1002;
+          goto yy1003;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1004;
+          if (yych <= 0xF4)
+            goto yy1005;
+          goto yy951;
+        }
+      }
+    }
+  yy999:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= 0xC1) {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy980;
+        if (yych <= '\r')
+          goto yy951;
+        if (yych <= 0x1F)
+          goto yy980;
+        goto yy951;
+      } else {
+        if (yych == '\\')
+          goto yy1007;
+        if (yych <= 0x7F)
+          goto yy997;
+        goto yy951;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1008;
+        if (yych <= 0xE0)
+          goto yy1009;
+        if (yych <= 0xEC)
+          goto yy1010;
+        goto yy1014;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1010;
+          goto yy1011;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1012;
+          if (yych <= 0xF4)
+            goto yy1013;
+          goto yy951;
+        }
+      }
+    }
+  yy1000:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy997;
+    goto yy958;
+  yy1001:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1000;
+    goto yy958;
+  yy1002:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1000;
+    goto yy958;
+  yy1003:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1002;
+    goto yy958;
+  yy1004:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1002;
+    goto yy958;
+  yy1005:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x8F)
+      goto yy1002;
+    goto yy958;
+  yy1006:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x9F)
+      goto yy1000;
+    goto yy958;
+  yy1007:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= 0xDF) {
+      if (yych <= '[') {
+        if (yych <= ' ')
+          goto yy951;
+        if (yych == '(')
+          goto yy971;
+        goto yy997;
+      } else {
+        if (yych <= '\\')
+          goto yy999;
+        if (yych <= 0x7F)
+          goto yy997;
+        if (yych <= 0xC1)
+          goto yy951;
+        goto yy1000;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1001;
+        if (yych == 0xED)
+          goto yy1006;
+        goto yy1002;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1003;
+        if (yych <= 0xF3)
+          goto yy1004;
+        if (yych <= 0xF4)
+          goto yy1005;
+        goto yy951;
+      }
+    }
+  yy1008:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy997;
+    goto yy958;
+  yy1009:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1008;
+    goto yy958;
+  yy1010:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1008;
+    goto yy958;
+  yy1011:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1010;
+    goto yy958;
+  yy1012:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1010;
+    goto yy958;
+  yy1013:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x8F)
+      goto yy1010;
+    goto yy958;
+  yy1014:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x9F)
+      goto yy1008;
+    goto yy958;
+  yy1015:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= '\\') {
+      if (yych <= '\r') {
+        if (yych <= 0x08) {
+          if (yych <= 0x00)
+            goto yy980;
+        } else {
+          if (yych <= '\n')
+            goto yy951;
+          if (yych <= '\f')
+            goto yy1029;
+          goto yy951;
+        }
+      } else {
+        if (yych <= '=') {
+          if (yych == ' ')
+            goto yy951;
+        } else {
+          if (yych <= '>')
+            goto yy1073;
+          if (yych >= '\\')
+            goto yy1074;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych >= 0x80)
+            goto yy951;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1075;
+          if (yych <= 0xE0)
+            goto yy1076;
+          goto yy1077;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1081;
+          if (yych <= 0xEF)
+            goto yy1077;
+          goto yy1078;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1079;
+          if (yych <= 0xF4)
+            goto yy1080;
+          goto yy951;
+        }
+      }
+    }
+  yy1016:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1016;
+    }
+    if (yych <= '>') {
+      if (yych <= '\r') {
+        if (yych <= 0x08) {
+          if (yych <= 0x00)
+            goto yy951;
+          goto yy1029;
+        } else {
+          if (yych <= '\n')
+            goto yy951;
+          if (yych <= '\f')
+            goto yy1029;
+          goto yy951;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= 0x1F)
+            goto yy1029;
+          if (yych <= ' ')
+            goto yy951;
+          goto yy1027;
+        } else {
+          if (yych <= ')')
+            goto yy1029;
+          if (yych <= '<')
+            goto yy980;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= '\\')
+            goto yy1015;
+          goto yy951;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1020;
+          if (yych <= 0xE0)
+            goto yy1021;
+          goto yy1022;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1026;
+          if (yych <= 0xEF)
+            goto yy1022;
+          goto yy1023;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1024;
+          if (yych <= 0xF4)
+            goto yy1025;
+          goto yy951;
+        }
+      }
+    }
+  yy1018:
+    yyaccept = 2;
+    yych = *(marker = ++p);
+    if (yych <= ')') {
+      if (yych <= ' ')
+        goto yy1019;
+      if (yych <= '(')
+        goto yy981;
+    } else {
+      if (yych <= 0x7F)
+        goto yy981;
+      if (yych <= 0xC1)
+        goto yy1019;
+      if (yych <= 0xF4)
+        goto yy981;
+    }
+  yy1019 : { return (bufsize_t)(p - start); }
+  yy1020:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1016;
+    goto yy958;
+  yy1021:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1020;
+    goto yy958;
+  yy1022:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1020;
+    goto yy958;
+  yy1023:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1022;
+    goto yy958;
+  yy1024:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1022;
+    goto yy958;
+  yy1025:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x8F)
+      goto yy1022;
+    goto yy958;
+  yy1026:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x9F)
+      goto yy1020;
+    goto yy958;
+  yy1027:
+    ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= 0x1F) {
+        if (yych <= '\n') {
+          if (yych <= 0x00)
+            goto yy958;
+          if (yych >= '\t')
+            goto yy958;
+        } else {
+          if (yych == '\r')
+            goto yy958;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= ' ')
+            goto yy958;
+          if (yych <= '\'')
+            goto yy1027;
+        } else {
+          if (yych <= ')')
+            goto yy1016;
+          if (yych == '<')
+            goto yy971;
+          goto yy1027;
+        }
+      }
+    } else {
+      if (yych <= 0xE0) {
+        if (yych <= '\\') {
+          if (yych <= '>')
+            goto yy1042;
+          if (yych <= '[')
+            goto yy1027;
+          goto yy1043;
+        } else {
+          if (yych <= 0x7F)
+            goto yy1027;
+          if (yych <= 0xC1)
+            goto yy958;
+          if (yych <= 0xDF)
+            goto yy1045;
+          goto yy1046;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych == 0xED)
+            goto yy1051;
+          goto yy1047;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1048;
+          if (yych <= 0xF3)
+            goto yy1049;
+          if (yych <= 0xF4)
+            goto yy1050;
+          goto yy958;
+        }
+      }
+    }
+  yy1029:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1029;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= '<')
+          goto yy958;
+        if (yych >= '?')
+          goto yy1032;
+      } else {
+        if (yych <= 0xC1)
+          goto yy958;
+        if (yych <= 0xDF)
+          goto yy1034;
+        goto yy1035;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1040;
+        goto yy1036;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1037;
+        if (yych <= 0xF3)
+          goto yy1038;
+        if (yych <= 0xF4)
+          goto yy1039;
+        goto yy958;
+      }
+    }
+  yy1031:
+    yych = *++p;
+    goto yy1019;
+  yy1032:
+    ++p;
+    yych = *p;
+    if (yych <= '\\') {
+      if (yych <= '\r') {
+        if (yych <= 0x08) {
+          if (yych <= 0x00)
+            goto yy958;
+          goto yy1029;
+        } else {
+          if (yych <= '\n')
+            goto yy958;
+          if (yych <= '\f')
+            goto yy1029;
+          goto yy958;
+        }
+      } else {
+        if (yych <= '=') {
+          if (yych == ' ')
+            goto yy958;
+          goto yy1029;
+        } else {
+          if (yych <= '>')
+            goto yy1041;
+          if (yych <= '[')
+            goto yy1029;
+          goto yy1032;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= 0x7F)
+            goto yy1029;
+          goto yy958;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1034;
+          if (yych <= 0xE0)
+            goto yy1035;
+          goto yy1036;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1040;
+          if (yych <= 0xEF)
+            goto yy1036;
+          goto yy1037;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1038;
+          if (yych <= 0xF4)
+            goto yy1039;
+          goto yy958;
+        }
+      }
+    }
+  yy1034:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1029;
+    goto yy958;
+  yy1035:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1034;
+    goto yy958;
+  yy1036:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1034;
+    goto yy958;
+  yy1037:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1036;
+    goto yy958;
+  yy1038:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1036;
+    goto yy958;
+  yy1039:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x8F)
+      goto yy1036;
+    goto yy958;
+  yy1040:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x9F)
+      goto yy1034;
+    goto yy958;
+  yy1041:
+    yyaccept = 2;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1029;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= '<')
+          goto yy1019;
+        if (yych <= '>')
+          goto yy1031;
+        goto yy1032;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1019;
+        if (yych <= 0xDF)
+          goto yy1034;
+        goto yy1035;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1040;
+        goto yy1036;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1037;
+        if (yych <= 0xF3)
+          goto yy1038;
+        if (yych <= 0xF4)
+          goto yy1039;
+        goto yy1019;
+      }
+    }
+  yy1042:
+    yyaccept = 2;
+    yych = *(marker = ++p);
+    if (yych <= '(') {
+      if (yych <= ' ')
+        goto yy1019;
+      if (yych <= '\'')
+        goto yy972;
+      goto yy1019;
+    } else {
+      if (yych <= 0x7F)
+        goto yy972;
+      if (yych <= 0xC1)
+        goto yy1019;
+      if (yych <= 0xF4)
+        goto yy972;
+      goto yy1019;
+    }
+  yy1043:
+    ++p;
+    yych = *p;
+    if (yych <= '[') {
+      if (yych <= 0x1F) {
+        if (yych <= '\n') {
+          if (yych <= 0x00)
+            goto yy958;
+          if (yych <= 0x08)
+            goto yy1029;
+          goto yy958;
+        } else {
+          if (yych == '\r')
+            goto yy958;
+          goto yy1029;
+        }
+      } else {
+        if (yych <= ')') {
+          if (yych <= ' ')
+            goto yy958;
+          if (yych <= '(')
+            goto yy1027;
+          goto yy1052;
+        } else {
+          if (yych == '>')
+            goto yy1054;
+          goto yy1027;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= '\\')
+            goto yy1043;
+          if (yych <= 0x7F)
+            goto yy1027;
+          goto yy958;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1045;
+          if (yych <= 0xE0)
+            goto yy1046;
+          goto yy1047;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1051;
+          if (yych <= 0xEF)
+            goto yy1047;
+          goto yy1048;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1049;
+          if (yych <= 0xF4)
+            goto yy1050;
+          goto yy958;
+        }
+      }
+    }
+  yy1045:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1027;
+    goto yy958;
+  yy1046:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1045;
+    goto yy958;
+  yy1047:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1045;
+    goto yy958;
+  yy1048:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1047;
+    goto yy958;
+  yy1049:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1047;
+    goto yy958;
+  yy1050:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x8F)
+      goto yy1047;
+    goto yy958;
+  yy1051:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x9F)
+      goto yy1045;
+    goto yy958;
+  yy1052:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= 0x1F) {
+        if (yych <= '\n') {
+          if (yych <= 0x00)
+            goto yy951;
+          if (yych <= 0x08)
+            goto yy1029;
+          goto yy951;
+        } else {
+          if (yych == '\r')
+            goto yy951;
+          goto yy1029;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= ' ')
+            goto yy951;
+          if (yych <= '\'')
+            goto yy1052;
+          goto yy1027;
+        } else {
+          if (yych <= ')')
+            goto yy1016;
+          if (yych == '<')
+            goto yy997;
+          goto yy1052;
+        }
+      }
+    } else {
+      if (yych <= 0xE0) {
+        if (yych <= '\\') {
+          if (yych <= '>')
+            goto yy1055;
+          if (yych <= '[')
+            goto yy1052;
+          goto yy1056;
+        } else {
+          if (yych <= 0x7F)
+            goto yy1052;
+          if (yych <= 0xC1)
+            goto yy951;
+          if (yych <= 0xDF)
+            goto yy1057;
+          goto yy1058;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych == 0xED)
+            goto yy1063;
+          goto yy1059;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1060;
+          if (yych <= 0xF3)
+            goto yy1061;
+          if (yych <= 0xF4)
+            goto yy1062;
+          goto yy951;
+        }
+      }
+    }
+  yy1054:
+    yyaccept = 2;
+    marker = ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= 0x1F) {
+        if (yych <= '\n') {
+          if (yych <= 0x00)
+            goto yy1019;
+          if (yych <= 0x08)
+            goto yy1029;
+          goto yy1019;
+        } else {
+          if (yych == '\r')
+            goto yy1019;
+          goto yy1029;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= ' ')
+            goto yy1019;
+          if (yych <= '\'')
+            goto yy1027;
+          goto yy1029;
+        } else {
+          if (yych <= ')')
+            goto yy1016;
+          if (yych == '<')
+            goto yy971;
+          goto yy1027;
+        }
+      }
+    } else {
+      if (yych <= 0xE0) {
+        if (yych <= '\\') {
+          if (yych <= '>')
+            goto yy1042;
+          if (yych <= '[')
+            goto yy1027;
+          goto yy1043;
+        } else {
+          if (yych <= 0x7F)
+            goto yy1027;
+          if (yych <= 0xC1)
+            goto yy1019;
+          if (yych <= 0xDF)
+            goto yy1045;
+          goto yy1046;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych == 0xED)
+            goto yy1051;
+          goto yy1047;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1048;
+          if (yych <= 0xF3)
+            goto yy1049;
+          if (yych <= 0xF4)
+            goto yy1050;
+          goto yy1019;
+        }
+      }
+    }
+  yy1055:
+    yyaccept = 2;
+    yych = *(marker = ++p);
+    if (yych <= ' ')
+      goto yy1019;
+    if (yych <= 0x7F)
+      goto yy998;
+    if (yych <= 0xC1)
+      goto yy1019;
+    if (yych <= 0xF4)
+      goto yy998;
+    goto yy1019;
+  yy1056:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= '\\') {
+      if (yych <= '\r') {
+        if (yych <= 0x08) {
+          if (yych <= 0x00)
+            goto yy980;
+          goto yy1016;
+        } else {
+          if (yych <= '\n')
+            goto yy951;
+          if (yych <= '\f')
+            goto yy1029;
+          goto yy951;
+        }
+      } else {
+        if (yych <= '=') {
+          if (yych <= 0x1F)
+            goto yy1016;
+          if (yych <= ' ')
+            goto yy951;
+          goto yy1052;
+        } else {
+          if (yych <= '>')
+            goto yy1064;
+          if (yych <= '[')
+            goto yy1052;
+          goto yy1065;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= 0x7F)
+            goto yy1052;
+          goto yy951;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1066;
+          if (yych <= 0xE0)
+            goto yy1067;
+          goto yy1068;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1072;
+          if (yych <= 0xEF)
+            goto yy1068;
+          goto yy1069;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1070;
+          if (yych <= 0xF4)
+            goto yy1071;
+          goto yy951;
+        }
+      }
+    }
+  yy1057:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1052;
+    goto yy958;
+  yy1058:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1057;
+    goto yy958;
+  yy1059:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1057;
+    goto yy958;
+  yy1060:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1059;
+    goto yy958;
+  yy1061:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1059;
+    goto yy958;
+  yy1062:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x8F)
+      goto yy1059;
+    goto yy958;
+  yy1063:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x9F)
+      goto yy1057;
+    goto yy958;
+  yy1064:
+    yyaccept = 2;
+    marker = ++p;
+    yych = *p;
+    if (yych <= '=') {
+      if (yych <= 0x1F) {
+        if (yych <= '\n') {
+          if (yych <= 0x00)
+            goto yy1019;
+          if (yych <= 0x08)
+            goto yy1029;
+          goto yy1019;
+        } else {
+          if (yych == '\r')
+            goto yy1019;
+          goto yy1029;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= ' ')
+            goto yy1019;
+          if (yych <= '\'')
+            goto yy1052;
+          goto yy1027;
+        } else {
+          if (yych <= ')')
+            goto yy1016;
+          if (yych == '<')
+            goto yy997;
+          goto yy1052;
+        }
+      }
+    } else {
+      if (yych <= 0xE0) {
+        if (yych <= '\\') {
+          if (yych <= '>')
+            goto yy1055;
+          if (yych <= '[')
+            goto yy1052;
+          goto yy1056;
+        } else {
+          if (yych <= 0x7F)
+            goto yy1052;
+          if (yych <= 0xC1)
+            goto yy1019;
+          if (yych <= 0xDF)
+            goto yy1057;
+          goto yy1058;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych == 0xED)
+            goto yy1063;
+          goto yy1059;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1060;
+          if (yych <= 0xF3)
+            goto yy1061;
+          if (yych <= 0xF4)
+            goto yy1062;
+          goto yy1019;
+        }
+      }
+    }
+  yy1065:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= '[') {
+      if (yych <= 0x1F) {
+        if (yych <= '\n') {
+          if (yych <= 0x00)
+            goto yy951;
+          if (yych <= 0x08)
+            goto yy1029;
+          goto yy951;
+        } else {
+          if (yych == '\r')
+            goto yy951;
+          goto yy1029;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= ' ')
+            goto yy951;
+          if (yych <= '\'')
+            goto yy1052;
+          goto yy1027;
+        } else {
+          if (yych == '>')
+            goto yy1064;
+          goto yy1052;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= '\\')
+            goto yy1056;
+          if (yych <= 0x7F)
+            goto yy1052;
+          goto yy951;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1057;
+          if (yych <= 0xE0)
+            goto yy1058;
+          goto yy1059;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1063;
+          if (yych <= 0xEF)
+            goto yy1059;
+          goto yy1060;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1061;
+          if (yych <= 0xF4)
+            goto yy1062;
+          goto yy951;
+        }
+      }
+    }
+  yy1066:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1052;
+    goto yy958;
+  yy1067:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1066;
+    goto yy958;
+  yy1068:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1066;
+    goto yy958;
+  yy1069:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1068;
+    goto yy958;
+  yy1070:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1068;
+    goto yy958;
+  yy1071:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x8F)
+      goto yy1068;
+    goto yy958;
+  yy1072:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x9F)
+      goto yy1066;
+    goto yy958;
+  yy1073:
+    yyaccept = 2;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1016;
+    }
+    if (yych <= '>') {
+      if (yych <= '\r') {
+        if (yych <= 0x08) {
+          if (yych <= 0x00)
+            goto yy1019;
+          goto yy1029;
+        } else {
+          if (yych <= '\n')
+            goto yy1019;
+          if (yych <= '\f')
+            goto yy1029;
+          goto yy1019;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= 0x1F)
+            goto yy1029;
+          if (yych <= ' ')
+            goto yy1019;
+          goto yy1027;
+        } else {
+          if (yych <= ')')
+            goto yy1029;
+          if (yych <= '<')
+            goto yy980;
+          goto yy1018;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= '\\')
+            goto yy1015;
+          goto yy1019;
+        } else {
+          if (yych <= 0xDF)
+            goto yy1020;
+          if (yych <= 0xE0)
+            goto yy1021;
+          goto yy1022;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy1026;
+          if (yych <= 0xEF)
+            goto yy1022;
+          goto yy1023;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1024;
+          if (yych <= 0xF4)
+            goto yy1025;
+          goto yy1019;
+        }
+      }
+    }
+  yy1074:
+    yyaccept = 0;
+    marker = ++p;
+    yych = *p;
+    if (yych <= '>') {
+      if (yych <= 0x1F) {
+        if (yych <= '\n') {
+          if (yych <= 0x00)
+            goto yy951;
+          if (yych <= 0x08)
+            goto yy1029;
+          goto yy951;
+        } else {
+          if (yych == '\r')
+            goto yy951;
+          goto yy1029;
+        }
+      } else {
+        if (yych <= '(') {
+          if (yych <= ' ')
+            goto yy951;
+          if (yych <= '\'')
+            goto yy1016;
+          goto yy1027;
+        } else {
+          if (yych <= ')')
+            goto yy1029;
+          if (yych <= '=')
+            goto yy1016;
+          goto yy1073;
+        }
+      }
+    } else {
+      if (yych <= 0xE0) {
+        if (yych <= 0x7F) {
+          if (yych == '\\')
+            goto yy1015;
+          goto yy1016;
+        } else {
+          if (yych <= 0xC1)
+            goto yy951;
+          if (yych <= 0xDF)
+            goto yy1020;
+          goto yy1021;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych == 0xED)
+            goto yy1026;
+          goto yy1022;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1023;
+          if (yych <= 0xF3)
+            goto yy1024;
+          if (yych <= 0xF4)
+            goto yy1025;
+          goto yy951;
+        }
+      }
+    }
+  yy1075:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1016;
+    goto yy958;
+  yy1076:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1075;
+    goto yy958;
+  yy1077:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1075;
+    goto yy958;
+  yy1078:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1077;
+    goto yy958;
+  yy1079:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0xBF)
+      goto yy1077;
+    goto yy958;
+  yy1080:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x8F)
+      goto yy1077;
+    goto yy958;
+  yy1081:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy958;
+    if (yych <= 0x9F)
+      goto yy1075;
+    goto yy958;
+  }
+}
+
+// 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 yy1084;
+        if (yych <= '!')
+          goto yy1088;
+        goto yy1085;
+      } else {
+        if (yych <= '\'') {
+          if (yych <= '&')
+            goto yy1088;
+          goto yy1086;
+        } else {
+          if (yych <= '(')
+            goto yy1087;
+          if (yych <= 0x7F)
+            goto yy1088;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1089;
+        if (yych <= 0xE0)
+          goto yy1091;
+        if (yych <= 0xEC)
+          goto yy1092;
+        goto yy1096;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1092;
+          goto yy1093;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1094;
+          if (yych <= 0xF4)
+            goto yy1095;
+        }
+      }
+    }
+  yy1084 : { return 0; }
+  yy1085:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x00)
+      goto yy1084;
+    if (yych <= 0x7F)
+      goto yy1128;
+    if (yych <= 0xC1)
+      goto yy1084;
+    if (yych <= 0xF4)
+      goto yy1128;
+    goto yy1084;
+  yy1086:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x00)
+      goto yy1084;
+    if (yych <= 0x7F)
+      goto yy1114;
+    if (yych <= 0xC1)
+      goto yy1084;
+    if (yych <= 0xF4)
+      goto yy1114;
+    goto yy1084;
+  yy1087:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x00)
+      goto yy1084;
+    if (yych <= 0x7F)
+      goto yy1100;
+    if (yych <= 0xC1)
+      goto yy1084;
+    if (yych <= 0xF4)
+      goto yy1100;
+    goto yy1084;
+  yy1088:
+    yych = *++p;
+    goto yy1084;
+  yy1089:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1088;
+  yy1090:
+    p = marker;
+    if (yyaccept <= 1) {
+      if (yyaccept == 0) {
+        goto yy1084;
+      } else {
+        goto yy1109;
+      }
+    } else {
+      if (yyaccept == 2) {
+        goto yy1123;
+      } else {
+        goto yy1137;
+      }
+    }
+  yy1091:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1089;
+    goto yy1090;
+  yy1092:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1089;
+    goto yy1090;
+  yy1093:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1092;
+    goto yy1090;
+  yy1094:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1092;
+    goto yy1090;
+  yy1095:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0x8F)
+      goto yy1092;
+    goto yy1090;
+  yy1096:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0x9F)
+      goto yy1089;
+    goto yy1090;
+  yy1097:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1099;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1090;
+        if (yych <= ')')
+          goto yy1110;
+        goto yy1097;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1090;
+        if (yych <= 0xDF)
+          goto yy1101;
+        goto yy1102;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1107;
+        goto yy1103;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1104;
+        if (yych <= 0xF3)
+          goto yy1105;
+        if (yych <= 0xF4)
+          goto yy1106;
+        goto yy1090;
+      }
+    }
+  yy1099:
+    ++p;
+    yych = *p;
+  yy1100:
+    if (yybm[0 + yych] & 32) {
+      goto yy1099;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1090;
+        if (yych <= ')')
+          goto yy1108;
+        goto yy1097;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1090;
+        if (yych >= 0xE0)
+          goto yy1102;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1107;
+        goto yy1103;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1104;
+        if (yych <= 0xF3)
+          goto yy1105;
+        if (yych <= 0xF4)
+          goto yy1106;
+        goto yy1090;
+      }
+    }
+  yy1101:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1099;
+    goto yy1090;
+  yy1102:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1101;
+    goto yy1090;
+  yy1103:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1101;
+    goto yy1090;
+  yy1104:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1103;
+    goto yy1090;
+  yy1105:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1103;
+    goto yy1090;
+  yy1106:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0x8F)
+      goto yy1103;
+    goto yy1090;
+  yy1107:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0x9F)
+      goto yy1101;
+    goto yy1090;
+  yy1108:
+    ++p;
+  yy1109 : { return (bufsize_t)(p - start); }
+  yy1110:
+    yyaccept = 1;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1099;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1109;
+        if (yych <= ')')
+          goto yy1108;
+        goto yy1097;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1109;
+        if (yych <= 0xDF)
+          goto yy1101;
+        goto yy1102;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1107;
+        goto yy1103;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1104;
+        if (yych <= 0xF3)
+          goto yy1105;
+        if (yych <= 0xF4)
+          goto yy1106;
+        goto yy1109;
+      }
+    }
+  yy1111:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1113;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1090;
+        if (yych <= '\'')
+          goto yy1124;
+        goto yy1111;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1090;
+        if (yych <= 0xDF)
+          goto yy1115;
+        goto yy1116;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1121;
+        goto yy1117;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1118;
+        if (yych <= 0xF3)
+          goto yy1119;
+        if (yych <= 0xF4)
+          goto yy1120;
+        goto yy1090;
+      }
+    }
+  yy1113:
+    ++p;
+    yych = *p;
+  yy1114:
+    if (yybm[0 + yych] & 64) {
+      goto yy1113;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1090;
+        if (yych <= '\'')
+          goto yy1122;
+        goto yy1111;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1090;
+        if (yych >= 0xE0)
+          goto yy1116;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1121;
+        goto yy1117;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1118;
+        if (yych <= 0xF3)
+          goto yy1119;
+        if (yych <= 0xF4)
+          goto yy1120;
+        goto yy1090;
+      }
+    }
+  yy1115:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1113;
+    goto yy1090;
+  yy1116:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1115;
+    goto yy1090;
+  yy1117:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1115;
+    goto yy1090;
+  yy1118:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1117;
+    goto yy1090;
+  yy1119:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1117;
+    goto yy1090;
+  yy1120:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0x8F)
+      goto yy1117;
+    goto yy1090;
+  yy1121:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0x9F)
+      goto yy1115;
+    goto yy1090;
+  yy1122:
+    ++p;
+  yy1123 : { return (bufsize_t)(p - start); }
+  yy1124:
+    yyaccept = 2;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1113;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1123;
+        if (yych <= '\'')
+          goto yy1122;
+        goto yy1111;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1123;
+        if (yych <= 0xDF)
+          goto yy1115;
+        goto yy1116;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1121;
+        goto yy1117;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1118;
+        if (yych <= 0xF3)
+          goto yy1119;
+        if (yych <= 0xF4)
+          goto yy1120;
+        goto yy1123;
+      }
+    }
+  yy1125:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1127;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1090;
+        if (yych <= '"')
+          goto yy1138;
+        goto yy1125;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1090;
+        if (yych <= 0xDF)
+          goto yy1129;
+        goto yy1130;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1135;
+        goto yy1131;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1132;
+        if (yych <= 0xF3)
+          goto yy1133;
+        if (yych <= 0xF4)
+          goto yy1134;
+        goto yy1090;
+      }
+    }
+  yy1127:
+    ++p;
+    yych = *p;
+  yy1128:
+    if (yybm[0 + yych] & 128) {
+      goto yy1127;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1090;
+        if (yych <= '"')
+          goto yy1136;
+        goto yy1125;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1090;
+        if (yych >= 0xE0)
+          goto yy1130;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1135;
+        goto yy1131;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1132;
+        if (yych <= 0xF3)
+          goto yy1133;
+        if (yych <= 0xF4)
+          goto yy1134;
+        goto yy1090;
+      }
+    }
+  yy1129:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1127;
+    goto yy1090;
+  yy1130:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1129;
+    goto yy1090;
+  yy1131:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1129;
+    goto yy1090;
+  yy1132:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1131;
+    goto yy1090;
+  yy1133:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0xBF)
+      goto yy1131;
+    goto yy1090;
+  yy1134:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0x8F)
+      goto yy1131;
+    goto yy1090;
+  yy1135:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1090;
+    if (yych <= 0x9F)
+      goto yy1129;
+    goto yy1090;
+  yy1136:
+    ++p;
+  yy1137 : { return (bufsize_t)(p - start); }
+  yy1138:
+    yyaccept = 3;
+    marker = ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1127;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy1137;
+        if (yych <= '"')
+          goto yy1136;
+        goto yy1125;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1137;
+        if (yych <= 0xDF)
+          goto yy1129;
+        goto yy1130;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1135;
+        goto yy1131;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1132;
+        if (yych <= 0xF3)
+          goto yy1133;
+        if (yych <= 0xF4)
+          goto yy1134;
+        goto yy1137;
+      }
+    }
+  }
+}
+
+// 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 yy1145;
+        if (yych == '\n')
+          goto yy1143;
+        goto yy1142;
+      } else {
+        if (yych == ' ')
+          goto yy1142;
+        if (yych <= 0x7F)
+          goto yy1145;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1147;
+        if (yych <= 0xE0)
+          goto yy1149;
+        if (yych <= 0xEC)
+          goto yy1150;
+        goto yy1154;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1150;
+          goto yy1151;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1152;
+          if (yych <= 0xF4)
+            goto yy1153;
+        }
+      }
+    }
+  yy1141 : { return (bufsize_t)(p - start); }
+  yy1142:
+    yych = *++p;
+    goto yy1144;
+  yy1143:
+    ++p;
+    yych = *p;
+  yy1144:
+    if (yybm[0 + yych] & 128) {
+      goto yy1143;
+    }
+    goto yy1141;
+  yy1145:
+    ++p;
+    { return 0; }
+  yy1147:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1148;
+    if (yych <= 0xBF)
+      goto yy1145;
+  yy1148:
+    p = marker;
+    goto yy1141;
+  yy1149:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1148;
+    if (yych <= 0xBF)
+      goto yy1147;
+    goto yy1148;
+  yy1150:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1148;
+    if (yych <= 0xBF)
+      goto yy1147;
+    goto yy1148;
+  yy1151:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1148;
+    if (yych <= 0xBF)
+      goto yy1150;
+    goto yy1148;
+  yy1152:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1148;
+    if (yych <= 0xBF)
+      goto yy1150;
+    goto yy1148;
+  yy1153:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1148;
+    if (yych <= 0x8F)
+      goto yy1150;
+    goto yy1148;
+  yy1154:
+    ++p;
+    if ((yych = *p) <= 0x7F)
+      goto yy1148;
+    if (yych <= 0x9F)
+      goto yy1147;
+    goto yy1148;
+  }
+}
+
+// Match ATX heading start.
+bufsize_t _scan_atx_heading_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 yy1159;
+      } else {
+        if (yych <= '#')
+          goto yy1158;
+        if (yych <= 0x7F)
+          goto yy1159;
+        if (yych >= 0xC2)
+          goto yy1160;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1162;
+        if (yych == 0xED)
+          goto yy1167;
+        goto yy1163;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1164;
+        if (yych <= 0xF3)
+          goto yy1165;
+        if (yych <= 0xF4)
+          goto yy1166;
+      }
+    }
+  yy1157 : { return 0; }
+  yy1158:
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 128) {
+      goto yy1170;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy1168;
+      goto yy1157;
+    } else {
+      if (yych <= '\r')
+        goto yy1168;
+      if (yych == '#')
+        goto yy1172;
+      goto yy1157;
+    }
+  yy1159:
+    yych = *++p;
+    goto yy1157;
+  yy1160:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1161;
+    if (yych <= 0xBF)
+      goto yy1159;
+  yy1161:
+    p = marker;
+    goto yy1157;
+  yy1162:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1161;
+    if (yych <= 0xBF)
+      goto yy1160;
+    goto yy1161;
+  yy1163:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1161;
+    if (yych <= 0xBF)
+      goto yy1160;
+    goto yy1161;
+  yy1164:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1161;
+    if (yych <= 0xBF)
+      goto yy1163;
+    goto yy1161;
+  yy1165:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1161;
+    if (yych <= 0xBF)
+      goto yy1163;
+    goto yy1161;
+  yy1166:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1161;
+    if (yych <= 0x8F)
+      goto yy1163;
+    goto yy1161;
+  yy1167:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1161;
+    if (yych <= 0x9F)
+      goto yy1160;
+    goto yy1161;
+  yy1168:
+    ++p;
+  yy1169 : { return (bufsize_t)(p - start); }
+  yy1170:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1170;
+    }
+    goto yy1169;
+  yy1172:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1170;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy1168;
+      goto yy1161;
+    } else {
+      if (yych <= '\r')
+        goto yy1168;
+      if (yych != '#')
+        goto yy1161;
+    }
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1170;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy1168;
+      goto yy1161;
+    } else {
+      if (yych <= '\r')
+        goto yy1168;
+      if (yych != '#')
+        goto yy1161;
+    }
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1170;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy1168;
+      goto yy1161;
+    } else {
+      if (yych <= '\r')
+        goto yy1168;
+      if (yych != '#')
+        goto yy1161;
+    }
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1170;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy1168;
+      goto yy1161;
+    } else {
+      if (yych <= '\r')
+        goto yy1168;
+      if (yych != '#')
+        goto yy1161;
+    }
+    ++p;
+    if (yybm[0 + (yych = *p)] & 128) {
+      goto yy1170;
+    }
+    if (yych == '\n')
+      goto yy1168;
+    if (yych == '\r')
+      goto yy1168;
+    goto yy1161;
+  }
+}
+
+// Match setext heading line.  Return 1 for level-1 heading,
+// 2 for level-2, 0 for no match.
+bufsize_t _scan_setext_heading_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 yy1179;
+        if (yych <= ',')
+          goto yy1182;
+        goto yy1181;
+      } else {
+        if (yych == '=')
+          goto yy1180;
+        if (yych <= 0x7F)
+          goto yy1182;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1183;
+        if (yych <= 0xE0)
+          goto yy1185;
+        if (yych <= 0xEC)
+          goto yy1186;
+        goto yy1190;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1186;
+          goto yy1187;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1188;
+          if (yych <= 0xF4)
+            goto yy1189;
+        }
+      }
+    }
+  yy1179 : { return 0; }
+  yy1180:
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 128) {
+      goto yy1201;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy1199;
+      goto yy1179;
+    } else {
+      if (yych <= '\r')
+        goto yy1199;
+      if (yych == ' ')
+        goto yy1197;
+      goto yy1179;
+    }
+  yy1181:
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 32) {
+      goto yy1191;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy1193;
+      goto yy1179;
+    } else {
+      if (yych <= '\r')
+        goto yy1193;
+      if (yych == '-')
+        goto yy1195;
+      goto yy1179;
+    }
+  yy1182:
+    yych = *++p;
+    goto yy1179;
+  yy1183:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1184;
+    if (yych <= 0xBF)
+      goto yy1182;
+  yy1184:
+    p = marker;
+    goto yy1179;
+  yy1185:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1184;
+    if (yych <= 0xBF)
+      goto yy1183;
+    goto yy1184;
+  yy1186:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1184;
+    if (yych <= 0xBF)
+      goto yy1183;
+    goto yy1184;
+  yy1187:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1184;
+    if (yych <= 0xBF)
+      goto yy1186;
+    goto yy1184;
+  yy1188:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1184;
+    if (yych <= 0xBF)
+      goto yy1186;
+    goto yy1184;
+  yy1189:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1184;
+    if (yych <= 0x8F)
+      goto yy1186;
+    goto yy1184;
+  yy1190:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1184;
+    if (yych <= 0x9F)
+      goto yy1183;
+    goto yy1184;
+  yy1191:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1191;
+    }
+    if (yych == '\n')
+      goto yy1193;
+    if (yych != '\r')
+      goto yy1184;
+  yy1193:
+    ++p;
+    { return 2; }
+  yy1195:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1191;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy1193;
+      goto yy1184;
+    } else {
+      if (yych <= '\r')
+        goto yy1193;
+      if (yych == '-')
+        goto yy1195;
+      goto yy1184;
+    }
+  yy1197:
+    ++p;
+    yych = *p;
+    if (yych <= '\f') {
+      if (yych != '\n')
+        goto yy1184;
+    } else {
+      if (yych <= '\r')
+        goto yy1199;
+      if (yych == ' ')
+        goto yy1197;
+      goto yy1184;
+    }
+  yy1199:
+    ++p;
+    { return 1; }
+  yy1201:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1201;
+    }
+    if (yych <= '\f') {
+      if (yych == '\n')
+        goto yy1199;
+      goto yy1184;
+    } else {
+      if (yych <= '\r')
+        goto yy1199;
+      if (yych == ' ')
+        goto yy1197;
+      goto yy1184;
+    }
+  }
+}
+
+// Scan a thematic break 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_thematic_break(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 yy1205;
+        if (yych <= ')')
+          goto yy1209;
+        goto yy1206;
+      } else {
+        if (yych <= '-') {
+          if (yych <= ',')
+            goto yy1209;
+          goto yy1208;
+        } else {
+          if (yych == '_')
+            goto yy1207;
+          goto yy1209;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF) {
+          if (yych >= 0xC2)
+            goto yy1210;
+        } else {
+          if (yych <= 0xE0)
+            goto yy1212;
+          if (yych <= 0xEC)
+            goto yy1213;
+          goto yy1217;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1213;
+          goto yy1214;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1215;
+          if (yych <= 0xF4)
+            goto yy1216;
+        }
+      }
+    }
+  yy1205 : { return 0; }
+  yy1206:
+    yych = *(marker = ++p);
+    if (yych == ' ')
+      goto yy1238;
+    if (yych == '*')
+      goto yy1240;
+    goto yy1205;
+  yy1207:
+    yych = *(marker = ++p);
+    if (yych == ' ')
+      goto yy1228;
+    if (yych == '_')
+      goto yy1230;
+    goto yy1205;
+  yy1208:
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 8) {
+      goto yy1218;
+    }
+    if (yych == '-')
+      goto yy1220;
+    goto yy1205;
+  yy1209:
+    yych = *++p;
+    goto yy1205;
+  yy1210:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1211;
+    if (yych <= 0xBF)
+      goto yy1209;
+  yy1211:
+    p = marker;
+    goto yy1205;
+  yy1212:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1211;
+    if (yych <= 0xBF)
+      goto yy1210;
+    goto yy1211;
+  yy1213:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1211;
+    if (yych <= 0xBF)
+      goto yy1210;
+    goto yy1211;
+  yy1214:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1211;
+    if (yych <= 0xBF)
+      goto yy1213;
+    goto yy1211;
+  yy1215:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1211;
+    if (yych <= 0xBF)
+      goto yy1213;
+    goto yy1211;
+  yy1216:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1211;
+    if (yych <= 0x8F)
+      goto yy1213;
+    goto yy1211;
+  yy1217:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1211;
+    if (yych <= 0x9F)
+      goto yy1210;
+    goto yy1211;
+  yy1218:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 8) {
+      goto yy1218;
+    }
+    if (yych != '-')
+      goto yy1211;
+  yy1220:
+    ++p;
+    yych = *p;
+    if (yych == ' ')
+      goto yy1220;
+    if (yych != '-')
+      goto yy1211;
+  yy1222:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 16) {
+      goto yy1222;
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x08)
+        goto yy1211;
+      if (yych >= '\n')
+        goto yy1226;
+    } else {
+      if (yych == '\r')
+        goto yy1226;
+      goto yy1211;
+    }
+  yy1224:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1224;
+    }
+    if (yych <= 0x08)
+      goto yy1211;
+    if (yych <= '\n')
+      goto yy1226;
+    if (yych != '\r')
+      goto yy1211;
+  yy1226:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy1228:
+    ++p;
+    yych = *p;
+    if (yych == ' ')
+      goto yy1228;
+    if (yych != '_')
+      goto yy1211;
+  yy1230:
+    ++p;
+    yych = *p;
+    if (yych == ' ')
+      goto yy1230;
+    if (yych != '_')
+      goto yy1211;
+  yy1232:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1232;
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x08)
+        goto yy1211;
+      if (yych >= '\n')
+        goto yy1236;
+    } else {
+      if (yych == '\r')
+        goto yy1236;
+      goto yy1211;
+    }
+  yy1234:
+    ++p;
+    yych = *p;
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy1211;
+      if (yych <= '\t')
+        goto yy1234;
+      if (yych >= '\v')
+        goto yy1211;
+    } else {
+      if (yych <= '\r')
+        goto yy1236;
+      if (yych == ' ')
+        goto yy1234;
+      goto yy1211;
+    }
+  yy1236:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy1238:
+    ++p;
+    yych = *p;
+    if (yych == ' ')
+      goto yy1238;
+    if (yych != '*')
+      goto yy1211;
+  yy1240:
+    ++p;
+    yych = *p;
+    if (yych == ' ')
+      goto yy1240;
+    if (yych != '*')
+      goto yy1211;
+  yy1242:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1242;
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x08)
+        goto yy1211;
+      if (yych >= '\n')
+        goto yy1246;
+    } else {
+      if (yych == '\r')
+        goto yy1246;
+      goto yy1211;
+    }
+  yy1244:
+    ++p;
+    yych = *p;
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy1211;
+      if (yych <= '\t')
+        goto yy1244;
+      if (yych >= '\v')
+        goto yy1211;
+    } else {
+      if (yych <= '\r')
+        goto yy1246;
+      if (yych == ' ')
+        goto yy1244;
+      goto yy1211;
+    }
+  yy1246:
+    ++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 yy1250;
+        if (yych <= '_')
+          goto yy1253;
+        goto yy1251;
+      } else {
+        if (yych == '~')
+          goto yy1252;
+        if (yych <= 0x7F)
+          goto yy1253;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1254;
+        if (yych <= 0xE0)
+          goto yy1256;
+        if (yych <= 0xEC)
+          goto yy1257;
+        goto yy1261;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1257;
+          goto yy1258;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1259;
+          if (yych <= 0xF4)
+            goto yy1260;
+        }
+      }
+    }
+  yy1250 : { return 0; }
+  yy1251:
+    yych = *(marker = ++p);
+    if (yych == '`')
+      goto yy1276;
+    goto yy1250;
+  yy1252:
+    yych = *(marker = ++p);
+    if (yych == '~')
+      goto yy1262;
+    goto yy1250;
+  yy1253:
+    yych = *++p;
+    goto yy1250;
+  yy1254:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1253;
+  yy1255:
+    p = marker;
+    goto yy1250;
+  yy1256:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1254;
+    goto yy1255;
+  yy1257:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1254;
+    goto yy1255;
+  yy1258:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1257;
+    goto yy1255;
+  yy1259:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1257;
+    goto yy1255;
+  yy1260:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0x8F)
+      goto yy1257;
+    goto yy1255;
+  yy1261:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0x9F)
+      goto yy1254;
+    goto yy1255;
+  yy1262:
+    yych = *++p;
+    if (yybm[0 + yych] & 16) {
+      goto yy1263;
+    }
+    goto yy1255;
+  yy1263:
+    marker = p + 1;
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1265;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '~') {
+        if (yych <= 0x00)
+          goto yy1255;
+        if (yych <= '\r')
+          goto yy1274;
+        goto yy1263;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1255;
+        if (yych <= 0xDF)
+          goto yy1267;
+        goto yy1268;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1273;
+        goto yy1269;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1270;
+        if (yych <= 0xF3)
+          goto yy1271;
+        if (yych <= 0xF4)
+          goto yy1272;
+        goto yy1255;
+      }
+    }
+  yy1265:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1265;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy1255;
+        if (yych <= '\r')
+          goto yy1274;
+        goto yy1255;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1267;
+        if (yych <= 0xE0)
+          goto yy1268;
+        goto yy1269;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1273;
+        if (yych <= 0xEF)
+          goto yy1269;
+        goto yy1270;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1271;
+        if (yych <= 0xF4)
+          goto yy1272;
+        goto yy1255;
+      }
+    }
+  yy1267:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1265;
+    goto yy1255;
+  yy1268:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1267;
+    goto yy1255;
+  yy1269:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1267;
+    goto yy1255;
+  yy1270:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1269;
+    goto yy1255;
+  yy1271:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1269;
+    goto yy1255;
+  yy1272:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0x8F)
+      goto yy1269;
+    goto yy1255;
+  yy1273:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0x9F)
+      goto yy1267;
+    goto yy1255;
+  yy1274:
+    ++p;
+    p = marker;
+    { return (bufsize_t)(p - start); }
+  yy1276:
+    yych = *++p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1277;
+    }
+    goto yy1255;
+  yy1277:
+    marker = p + 1;
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1279;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '`') {
+        if (yych <= 0x00)
+          goto yy1255;
+        if (yych <= '\r')
+          goto yy1288;
+        goto yy1277;
+      } else {
+        if (yych <= 0xC1)
+          goto yy1255;
+        if (yych <= 0xDF)
+          goto yy1281;
+        goto yy1282;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy1287;
+        goto yy1283;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1284;
+        if (yych <= 0xF3)
+          goto yy1285;
+        if (yych <= 0xF4)
+          goto yy1286;
+        goto yy1255;
+      }
+    }
+  yy1279:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1279;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy1255;
+        if (yych <= '\r')
+          goto yy1288;
+        goto yy1255;
+      } else {
+        if (yych <= 0xDF)
+          goto yy1281;
+        if (yych <= 0xE0)
+          goto yy1282;
+        goto yy1283;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy1287;
+        if (yych <= 0xEF)
+          goto yy1283;
+        goto yy1284;
+      } else {
+        if (yych <= 0xF3)
+          goto yy1285;
+        if (yych <= 0xF4)
+          goto yy1286;
+        goto yy1255;
+      }
+    }
+  yy1281:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1279;
+    goto yy1255;
+  yy1282:
+    ++p;
+    yych = *p;
+    if (yych <= 0x9F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1281;
+    goto yy1255;
+  yy1283:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1281;
+    goto yy1255;
+  yy1284:
+    ++p;
+    yych = *p;
+    if (yych <= 0x8F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1283;
+    goto yy1255;
+  yy1285:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0xBF)
+      goto yy1283;
+    goto yy1255;
+  yy1286:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0x8F)
+      goto yy1283;
+    goto yy1255;
+  yy1287:
+    ++p;
+    yych = *p;
+    if (yych <= 0x7F)
+      goto yy1255;
+    if (yych <= 0x9F)
+      goto yy1281;
+    goto yy1255;
+  yy1288:
+    ++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 yy1292;
+        if (yych <= '_')
+          goto yy1295;
+        goto yy1293;
+      } else {
+        if (yych == '~')
+          goto yy1294;
+        if (yych <= 0x7F)
+          goto yy1295;
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy1296;
+        if (yych <= 0xE0)
+          goto yy1298;
+        if (yych <= 0xEC)
+          goto yy1299;
+        goto yy1303;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy1299;
+          goto yy1300;
+        } else {
+          if (yych <= 0xF3)
+            goto yy1301;
+          if (yych <= 0xF4)
+            goto yy1302;
+        }
+      }
+    }
+  yy1292 : { return 0; }
+  yy1293:
+    yych = *(marker = ++p);
+    if (yych == '`')
+      goto yy1311;
+    goto yy1292;
+  yy1294:
+    yych = *(marker = ++p);
+    if (yych == '~')
+      goto yy1304;
+    goto yy1292;
+  yy1295:
+    yych = *++p;
+    goto yy1292;
+  yy1296:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1297;
+    if (yych <= 0xBF)
+      goto yy1295;
+  yy1297:
+    p = marker;
+    goto yy1292;
+  yy1298:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1297;
+    if (yych <= 0xBF)
+      goto yy1296;
+    goto yy1297;
+  yy1299:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1297;
+    if (yych <= 0xBF)
+      goto yy1296;
+    goto yy1297;
+  yy1300:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1297;
+    if (yych <= 0xBF)
+      goto yy1299;
+    goto yy1297;
+  yy1301:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1297;
+    if (yych <= 0xBF)
+      goto yy1299;
+    goto yy1297;
+  yy1302:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1297;
+    if (yych <= 0x8F)
+      goto yy1299;
+    goto yy1297;
+  yy1303:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1297;
+    if (yych <= 0x9F)
+      goto yy1296;
+    goto yy1297;
+  yy1304:
+    yych = *++p;
+    if (yybm[0 + yych] & 32) {
+      goto yy1305;
+    }
+    goto yy1297;
+  yy1305:
+    marker = p + 1;
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1307;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy1297;
+      if (yych <= '\n')
+        goto yy1309;
+      goto yy1297;
+    } else {
+      if (yych <= '\r')
+        goto yy1309;
+      if (yych == '~')
+        goto yy1305;
+      goto yy1297;
+    }
+  yy1307:
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy1307;
+    }
+    if (yych <= 0x08)
+      goto yy1297;
+    if (yych <= '\n')
+      goto yy1309;
+    if (yych != '\r')
+      goto yy1297;
+  yy1309:
+    ++p;
+    p = marker;
+    { return (bufsize_t)(p - start); }
+  yy1311:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1312;
+    }
+    goto yy1297;
+  yy1312:
+    marker = p + 1;
+    ++p;
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy1312;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy1297;
+      if (yych <= '\t')
+        goto yy1314;
+      if (yych <= '\n')
+        goto yy1316;
+      goto yy1297;
+    } else {
+      if (yych <= '\r')
+        goto yy1316;
+      if (yych != ' ')
+        goto yy1297;
+    }
+  yy1314:
+    ++p;
+    yych = *p;
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy1297;
+      if (yych <= '\t')
+        goto yy1314;
+      if (yych >= '\v')
+        goto yy1297;
+    } else {
+      if (yych <= '\r')
+        goto yy1316;
+      if (yych == ' ')
+        goto yy1314;
+      goto yy1297;
+    }
+  yy1316:
+    ++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 yy1322;
+      } else {
+        if (yych <= '&')
+          goto yy1321;
+        if (yych <= 0x7F)
+          goto yy1322;
+        if (yych >= 0xC2)
+          goto yy1323;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy1325;
+        if (yych == 0xED)
+          goto yy1330;
+        goto yy1326;
+      } else {
+        if (yych <= 0xF0)
+          goto yy1327;
+        if (yych <= 0xF3)
+          goto yy1328;
+        if (yych <= 0xF4)
+          goto yy1329;
+      }
+    }
+  yy1320 : { return 0; }
+  yy1321:
+    yych = *(marker = ++p);
+    if (yych <= '@') {
+      if (yych == '#')
+        goto yy1331;
+      goto yy1320;
+    } else {
+      if (yych <= 'Z')
+        goto yy1332;
+      if (yych <= '`')
+        goto yy1320;
+      if (yych <= 'z')
+        goto yy1332;
+      goto yy1320;
+    }
+  yy1322:
+    yych = *++p;
+    goto yy1320;
+  yy1323:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1324;
+    if (yych <= 0xBF)
+      goto yy1322;
+  yy1324:
+    p = marker;
+    goto yy1320;
+  yy1325:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1324;
+    if (yych <= 0xBF)
+      goto yy1323;
+    goto yy1324;
+  yy1326:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1324;
+    if (yych <= 0xBF)
+      goto yy1323;
+    goto yy1324;
+  yy1327:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1324;
+    if (yych <= 0xBF)
+      goto yy1326;
+    goto yy1324;
+  yy1328:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1324;
+    if (yych <= 0xBF)
+      goto yy1326;
+    goto yy1324;
+  yy1329:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1324;
+    if (yych <= 0x8F)
+      goto yy1326;
+    goto yy1324;
+  yy1330:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1324;
+    if (yych <= 0x9F)
+      goto yy1323;
+    goto yy1324;
+  yy1331:
+    yych = *++p;
+    if (yych <= 'W') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1367;
+      goto yy1324;
+    } else {
+      if (yych <= 'X')
+        goto yy1366;
+      if (yych == 'x')
+        goto yy1366;
+      goto yy1324;
+    }
+  yy1332:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych >= ':')
+        goto yy1324;
+    } else {
+      if (yych <= 'Z')
+        goto yy1333;
+      if (yych <= '`')
+        goto yy1324;
+      if (yych >= '{')
+        goto yy1324;
+    }
+  yy1333:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1336;
+      if (yych <= ':')
+        goto yy1324;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+        goto yy1336;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych <= 'z')
+          goto yy1336;
+        goto yy1324;
+      }
+    }
+  yy1334:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy1336:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1337;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1337:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1338;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1338:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1339;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1339:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1340;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1340:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1341;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1341:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1342;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1342:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1343;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1343:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1344;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1344:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1345;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1345:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1346;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1346:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1347;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1347:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1348;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1348:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1349;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1349:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1350;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1350:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1351;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1351:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1352;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1352:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1353;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1353:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1354;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1354:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1355;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1355:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1356;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1356:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1357;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1357:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1358;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1358:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1359;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1359:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1360;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1360:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1361;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1361:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1362;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1362:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1363;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1363:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1364;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1364:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1365;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= '{')
+          goto yy1324;
+      }
+    }
+  yy1365:
+    yych = *++p;
+    if (yych == ';')
+      goto yy1334;
+    goto yy1324;
+  yy1366:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1374;
+      goto yy1324;
+    } else {
+      if (yych <= 'F')
+        goto yy1374;
+      if (yych <= '`')
+        goto yy1324;
+      if (yych <= 'f')
+        goto yy1374;
+      goto yy1324;
+    }
+  yy1367:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy1324;
+    if (yych <= '9')
+      goto yy1368;
+    if (yych == ';')
+      goto yy1334;
+    goto yy1324;
+  yy1368:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy1324;
+    if (yych <= '9')
+      goto yy1369;
+    if (yych == ';')
+      goto yy1334;
+    goto yy1324;
+  yy1369:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy1324;
+    if (yych <= '9')
+      goto yy1370;
+    if (yych == ';')
+      goto yy1334;
+    goto yy1324;
+  yy1370:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy1324;
+    if (yych <= '9')
+      goto yy1371;
+    if (yych == ';')
+      goto yy1334;
+    goto yy1324;
+  yy1371:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy1324;
+    if (yych <= '9')
+      goto yy1372;
+    if (yych == ';')
+      goto yy1334;
+    goto yy1324;
+  yy1372:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy1324;
+    if (yych <= '9')
+      goto yy1373;
+    if (yych == ';')
+      goto yy1334;
+    goto yy1324;
+  yy1373:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy1324;
+    if (yych <= '9')
+      goto yy1365;
+    if (yych == ';')
+      goto yy1334;
+    goto yy1324;
+  yy1374:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1375;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= 'g')
+          goto yy1324;
+      }
+    }
+  yy1375:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1376;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= 'g')
+          goto yy1324;
+      }
+    }
+  yy1376:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1377;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= 'g')
+          goto yy1324;
+      }
+    }
+  yy1377:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1378;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= 'g')
+          goto yy1324;
+      }
+    }
+  yy1378:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1379;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= 'g')
+          goto yy1324;
+      }
+    }
+  yy1379:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1380;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy1324;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych >= 'g')
+          goto yy1324;
+      }
+    }
+  yy1380:
+    ++p;
+    if ((yych = *p) <= ';') {
+      if (yych <= '/')
+        goto yy1324;
+      if (yych <= '9')
+        goto yy1365;
+      if (yych <= ':')
+        goto yy1324;
+      goto yy1334;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy1324;
+        goto yy1365;
+      } else {
+        if (yych <= '`')
+          goto yy1324;
+        if (yych <= 'f')
+          goto yy1365;
+        goto yy1324;
+      }
+    }
+  }
+}
+
+// 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 yy1388;
+        } else {
+          if (yych <= 'D')
+            goto yy1384;
+          if (yych == 'F')
+            goto yy1387;
+          goto yy1388;
+        }
+      } else {
+        if (yych <= 'V') {
+          if (yych <= 'J')
+            goto yy1385;
+          if (yych <= 'U')
+            goto yy1388;
+          goto yy1386;
+        } else {
+          if (yych == 'd')
+            goto yy1384;
+          if (yych <= 'e')
+            goto yy1388;
+          goto yy1387;
+        }
+      }
+    } else {
+      if (yych <= 0xDF) {
+        if (yych <= 'u') {
+          if (yych == 'j')
+            goto yy1385;
+          goto yy1388;
+        } else {
+          if (yych <= 'v')
+            goto yy1386;
+          if (yych <= 0x7F)
+            goto yy1388;
+          if (yych >= 0xC2)
+            goto yy1389;
+        }
+      } else {
+        if (yych <= 0xEF) {
+          if (yych <= 0xE0)
+            goto yy1391;
+          if (yych == 0xED)
+            goto yy1396;
+          goto yy1392;
+        } else {
+          if (yych <= 0xF0)
+            goto yy1393;
+          if (yych <= 0xF3)
+            goto yy1394;
+          if (yych <= 0xF4)
+            goto yy1395;
+        }
+      }
+    }
+  yy1383 : { return 0; }
+  yy1384:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'A')
+      goto yy1418;
+    if (yych == 'a')
+      goto yy1418;
+    goto yy1383;
+  yy1385:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'A')
+      goto yy1409;
+    if (yych == 'a')
+      goto yy1409;
+    goto yy1383;
+  yy1386:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'B')
+      goto yy1402;
+    if (yych == 'b')
+      goto yy1402;
+    goto yy1383;
+  yy1387:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'I')
+      goto yy1397;
+    if (yych == 'i')
+      goto yy1397;
+    goto yy1383;
+  yy1388:
+    yych = *++p;
+    goto yy1383;
+  yy1389:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1390;
+    if (yych <= 0xBF)
+      goto yy1388;
+  yy1390:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy1383;
+    } else {
+      goto yy1401;
+    }
+  yy1391:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy1390;
+    if (yych <= 0xBF)
+      goto yy1389;
+    goto yy1390;
+  yy1392:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1390;
+    if (yych <= 0xBF)
+      goto yy1389;
+    goto yy1390;
+  yy1393:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy1390;
+    if (yych <= 0xBF)
+      goto yy1392;
+    goto yy1390;
+  yy1394:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1390;
+    if (yych <= 0xBF)
+      goto yy1392;
+    goto yy1390;
+  yy1395:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1390;
+    if (yych <= 0x8F)
+      goto yy1392;
+    goto yy1390;
+  yy1396:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy1390;
+    if (yych <= 0x9F)
+      goto yy1389;
+    goto yy1390;
+  yy1397:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy1398;
+    if (yych != 'l')
+      goto yy1390;
+  yy1398:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1399;
+    if (yych != 'e')
+      goto yy1390;
+  yy1399:
+    yych = *++p;
+    if (yych != ':')
+      goto yy1390;
+  yy1400:
+    ++p;
+  yy1401 : { return (bufsize_t)(p - start); }
+  yy1402:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy1403;
+    if (yych != 's')
+      goto yy1390;
+  yy1403:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy1404;
+    if (yych != 'c')
+      goto yy1390;
+  yy1404:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1405;
+    if (yych != 'r')
+      goto yy1390;
+  yy1405:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy1406;
+    if (yych != 'i')
+      goto yy1390;
+  yy1406:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy1407;
+    if (yych != 'p')
+      goto yy1390;
+  yy1407:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1408;
+    if (yych != 't')
+      goto yy1390;
+  yy1408:
+    yych = *++p;
+    if (yych == ':')
+      goto yy1400;
+    goto yy1390;
+  yy1409:
+    yych = *++p;
+    if (yych == 'V')
+      goto yy1410;
+    if (yych != 'v')
+      goto yy1390;
+  yy1410:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1411;
+    if (yych != 'a')
+      goto yy1390;
+  yy1411:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy1412;
+    if (yych != 's')
+      goto yy1390;
+  yy1412:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy1413;
+    if (yych != 'c')
+      goto yy1390;
+  yy1413:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy1414;
+    if (yych != 'r')
+      goto yy1390;
+  yy1414:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy1415;
+    if (yych != 'i')
+      goto yy1390;
+  yy1415:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy1416;
+    if (yych != 'p')
+      goto yy1390;
+  yy1416:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1417;
+    if (yych != 't')
+      goto yy1390;
+  yy1417:
+    yych = *++p;
+    if (yych == ':')
+      goto yy1400;
+    goto yy1390;
+  yy1418:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy1419;
+    if (yych != 't')
+      goto yy1390;
+  yy1419:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1420;
+    if (yych != 'a')
+      goto yy1390;
+  yy1420:
+    yych = *++p;
+    if (yych != ':')
+      goto yy1390;
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych == 'I')
+      goto yy1422;
+    if (yych != 'i')
+      goto yy1401;
+  yy1422:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy1423;
+    if (yych != 'm')
+      goto yy1390;
+  yy1423:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy1424;
+    if (yych != 'a')
+      goto yy1390;
+  yy1424:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy1425;
+    if (yych != 'g')
+      goto yy1390;
+  yy1425:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1426;
+    if (yych != 'e')
+      goto yy1390;
+  yy1426:
+    yych = *++p;
+    if (yych != '/')
+      goto yy1390;
+    yych = *++p;
+    if (yych <= 'W') {
+      if (yych <= 'J') {
+        if (yych == 'G')
+          goto yy1429;
+        if (yych <= 'I')
+          goto yy1390;
+        goto yy1430;
+      } else {
+        if (yych == 'P')
+          goto yy1428;
+        if (yych <= 'V')
+          goto yy1390;
+        goto yy1431;
+      }
+    } else {
+      if (yych <= 'j') {
+        if (yych == 'g')
+          goto yy1429;
+        if (yych <= 'i')
+          goto yy1390;
+        goto yy1430;
+      } else {
+        if (yych <= 'p') {
+          if (yych <= 'o')
+            goto yy1390;
+        } else {
+          if (yych == 'w')
+            goto yy1431;
+          goto yy1390;
+        }
+      }
+    }
+  yy1428:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy1439;
+    if (yych == 'n')
+      goto yy1439;
+    goto yy1390;
+  yy1429:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy1438;
+    if (yych == 'i')
+      goto yy1438;
+    goto yy1390;
+  yy1430:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy1436;
+    if (yych == 'p')
+      goto yy1436;
+    goto yy1390;
+  yy1431:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1432;
+    if (yych != 'e')
+      goto yy1390;
+  yy1432:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy1433;
+    if (yych != 'b')
+      goto yy1390;
+  yy1433:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy1434;
+    if (yych != 'p')
+      goto yy1390;
+  yy1434:
+    ++p;
+    { return 0; }
+  yy1436:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy1437;
+    if (yych != 'e')
+      goto yy1390;
+  yy1437:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy1434;
+    if (yych == 'g')
+      goto yy1434;
+    goto yy1390;
+  yy1438:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy1434;
+    if (yych == 'f')
+      goto yy1434;
+    goto yy1390;
+  yy1439:
+    ++p;
+    if ((yych = *p) == 'G')
+      goto yy1434;
+    if (yych == 'g')
+      goto yy1434;
+    goto yy1390;
   }
 }
diff --git a/cbits/xml.c b/cbits/xml.c
--- a/cbits/xml.c
+++ b/cbits/xml.c
@@ -34,7 +34,8 @@
   bool literal = false;
   cmark_delim_type delim;
   bool entering = (ev_type == CMARK_EVENT_ENTER);
-  char buffer[100];
+  const size_t BUFFER_SIZE = 100;
+  char buffer[BUFFER_SIZE];
 
   if (entering) {
     indent(state);
@@ -42,8 +43,9 @@
     cmark_strbuf_puts(xml, cmark_node_get_type_string(node));
 
     if (options & CMARK_OPT_SOURCEPOS && node->start_line != 0) {
-      sprintf(buffer, " sourcepos=\"%d:%d-%d:%d\"", node->start_line,
-              node->start_column, node->end_line, node->end_column);
+      snprintf(buffer, BUFFER_SIZE, " sourcepos=\"%d:%d-%d:%d\"",
+               node->start_line, node->start_column, node->end_line,
+               node->end_column);
       cmark_strbuf_puts(xml, buffer);
     }
 
@@ -67,7 +69,8 @@
       switch (cmark_node_get_list_type(node)) {
       case CMARK_ORDERED_LIST:
         cmark_strbuf_puts(xml, " type=\"ordered\"");
-        sprintf(buffer, " start=\"%d\"", cmark_node_get_list_start(node));
+        snprintf(buffer, BUFFER_SIZE, " start=\"%d\"",
+                 cmark_node_get_list_start(node));
         cmark_strbuf_puts(xml, buffer);
         delim = cmark_node_get_list_delim(node);
         if (delim == CMARK_PAREN_DELIM) {
@@ -82,12 +85,12 @@
       default:
         break;
       }
-      sprintf(buffer, " tight=\"%s\"",
-              (cmark_node_get_list_tight(node) ? "true" : "false"));
+      snprintf(buffer, BUFFER_SIZE, " tight=\"%s\"",
+               (cmark_node_get_list_tight(node) ? "true" : "false"));
       cmark_strbuf_puts(xml, buffer);
       break;
     case CMARK_NODE_HEADING:
-      sprintf(buffer, " level=\"%d\"", node->as.heading.level);
+      snprintf(buffer, BUFFER_SIZE, " level=\"%d\"", node->as.heading.level);
       cmark_strbuf_puts(xml, buffer);
       break;
     case CMARK_NODE_CODE_BLOCK:
diff --git a/changelog b/changelog
--- a/changelog
+++ b/changelog
@@ -1,3 +1,7 @@
+cmark 0.5.1 (21 Jan 2016)
+
+  * Updated to libcmark 0.24.1.
+
 cmark 0.5 (29 Dec 2015)
 
   * Updated to libcmark 0.23.0.
diff --git a/cmark.cabal b/cmark.cabal
--- a/cmark.cabal
+++ b/cmark.cabal
@@ -1,12 +1,12 @@
 name:                cmark
-version:             0.5.0
+version:             0.5.1
 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.23.0) and does not require prior installation of the
+  libcmark (0.24.1) and does not require prior installation of the
   C library.
 
 homepage:            https://github.com/jgm/commonmark-hs
