File cmark-gfm-13.patch of Package python-cmarkgfm

Index: cmarkgfm-2022.10.27/generated/unix/cmark-gfm_version.h
===================================================================
--- cmarkgfm-2022.10.27.orig/generated/unix/cmark-gfm_version.h
+++ cmarkgfm-2022.10.27/generated/unix/cmark-gfm_version.h
@@ -1,7 +1,7 @@
 #ifndef CMARK_GFM_VERSION_H
 #define CMARK_GFM_VERSION_H
 
-#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 6)
-#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.6"
+#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 13)
+#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.13"
 
 #endif
Index: cmarkgfm-2022.10.27/generated/windows/cmark-gfm_version.h
===================================================================
--- cmarkgfm-2022.10.27.orig/generated/windows/cmark-gfm_version.h
+++ cmarkgfm-2022.10.27/generated/windows/cmark-gfm_version.h
@@ -1,7 +1,7 @@
 #ifndef CMARK_GFM_VERSION_H
 #define CMARK_GFM_VERSION_H
 
-#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 6)
-#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.6"
+#define CMARK_GFM_VERSION ((0 << 24) | (29 << 16) | (0 << 8) | 13)
+#define CMARK_GFM_VERSION_STRING "0.29.0.gfm.13"
 
 #endif
Index: cmarkgfm-2022.10.27/third_party/cmark/extensions/autolink.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/extensions/autolink.c
+++ cmarkgfm-2022.10.27/third_party/cmark/extensions/autolink.c
@@ -2,6 +2,7 @@
 #include <parser.h>
 #include <string.h>
 #include <utf8.h>
+#include <stddef.h>
 
 #if defined(_WIN32)
 #define strncasecmp _strnicmp
@@ -35,44 +36,25 @@ static int sd_autolink_issafe(const uint
 }
 
 static size_t autolink_delim(uint8_t *data, size_t link_end) {
-  uint8_t cclose, copen;
   size_t i;
+  size_t closing = 0;
+  size_t opening = 0;
 
-  for (i = 0; i < link_end; ++i)
-    if (data[i] == '<') {
+  for (i = 0; i < link_end; ++i) {
+    const uint8_t c = data[i];
+    if (c == '<') {
       link_end = i;
       break;
+    } else if (c == '(') {
+      opening++;
+    } else if (c == ')') {
+      closing++;
     }
+  }
 
   while (link_end > 0) {
-    cclose = data[link_end - 1];
-
-    switch (cclose) {
+    switch (data[link_end - 1]) {
     case ')':
-      copen = '(';
-      break;
-    default:
-      copen = 0;
-    }
-
-    if (strchr("?!.,:*_~'\"", data[link_end - 1]) != NULL)
-      link_end--;
-
-    else if (data[link_end - 1] == ';') {
-      size_t new_end = link_end - 2;
-
-      while (new_end > 0 && cmark_isalpha(data[new_end]))
-        new_end--;
-
-      if (new_end < link_end - 2 && data[new_end] == '&')
-        link_end = new_end;
-      else
-        link_end--;
-    } else if (copen != 0) {
-      size_t closing = 0;
-      size_t opening = 0;
-      i = 0;
-
       /* Allow any number of matching brackets (as recognised in copen/cclose)
        * at the end of the URL.  If there is a greater number of closing
        * brackets than opening ones, we remove one character from the end of
@@ -80,34 +62,52 @@ static size_t autolink_delim(uint8_t *da
        *
        * Examples (input text => output linked portion):
        *
-       *	http://www.pokemon.com/Pikachu_(Electric)
-       *		=> http://www.pokemon.com/Pikachu_(Electric)
+       *        http://www.pokemon.com/Pikachu_(Electric)
+       *                => http://www.pokemon.com/Pikachu_(Electric)
        *
-       *	http://www.pokemon.com/Pikachu_((Electric)
-       *		=> http://www.pokemon.com/Pikachu_((Electric)
+       *        http://www.pokemon.com/Pikachu_((Electric)
+       *                => http://www.pokemon.com/Pikachu_((Electric)
        *
-       *	http://www.pokemon.com/Pikachu_(Electric))
-       *		=> http://www.pokemon.com/Pikachu_(Electric)
+       *        http://www.pokemon.com/Pikachu_(Electric))
+       *                => http://www.pokemon.com/Pikachu_(Electric)
        *
-       *	http://www.pokemon.com/Pikachu_((Electric))
-       *		=> http://www.pokemon.com/Pikachu_((Electric))
+       *        http://www.pokemon.com/Pikachu_((Electric))
+       *                => http://www.pokemon.com/Pikachu_((Electric))
        */
-
-      while (i < link_end) {
-        if (data[i] == copen)
-          opening++;
-        else if (data[i] == cclose)
-          closing++;
-
-        i++;
+      if (closing <= opening) {
+        return link_end;
       }
+      closing--;
+      link_end--;
+      break;
+    case '?':
+    case '!':
+    case '.':
+    case ',':
+    case ':':
+    case '*':
+    case '_':
+    case '~':
+    case '\'':
+    case '"':
+      link_end--;
+      break;
+    case ';': {
+      size_t new_end = link_end - 2;
 
-      if (closing <= opening)
-        break;
+      while (new_end > 0 && cmark_isalpha(data[new_end]))
+        new_end--;
 
-      link_end--;
-    } else
+      if (new_end < link_end - 2 && data[new_end] == '&')
+        link_end = new_end;
+      else
+        link_end--;
       break;
+    }
+
+    default:
+      return link_end;
+    }
   }
 
   return link_end;
@@ -116,7 +116,20 @@ static size_t autolink_delim(uint8_t *da
 static size_t check_domain(uint8_t *data, size_t size, int allow_short) {
   size_t i, np = 0, uscore1 = 0, uscore2 = 0;
 
+  /* The purpose of this code is to reject urls that contain an underscore
+   * in one of the last two segments. Examples:
+   *
+   *   www.xxx.yyy.zzz     autolinked
+   *   www.xxx.yyy._zzz    not autolinked
+   *   www.xxx._yyy.zzz    not autolinked
+   *   www._xxx.yyy.zzz    autolinked
+   *
+   * The reason is that domain names are allowed to include underscores,
+   * but host names are not. See: https://stackoverflow.com/a/2183140
+   */
   for (i = 1; i < size - 1; i++) {
+    if (data[i] == '\\' && i < size - 2)
+      i++;
     if (data[i] == '_')
       uscore2++;
     else if (data[i] == '.') {
@@ -127,8 +140,17 @@ static size_t check_domain(uint8_t *data
       break;
   }
 
-  if (uscore1 > 0 || uscore2 > 0)
-    return 0;
+  if (uscore1 > 0 || uscore2 > 0) {
+    /* If the url is very long then accept it despite the underscores,
+     * to avoid quadratic behavior causing a denial of service. See:
+     * https://github.com/github/cmark-gfm/security/advisories/GHSA-29g3-96g3-jg6c
+     * Reasonable urls are unlikely to have more than 10 segments, so
+     * this extra condition shouldn't have any impact on normal usage.
+     */
+    if (np <= 10) {
+      return 0;
+    }
+  }
 
   if (allow_short) {
     /* We don't need a valid domain in the strict sense (with
@@ -165,7 +187,7 @@ static cmark_node *www_match(cmark_parse
   if (link_end == 0)
     return NULL;
 
-  while (link_end < size && !cmark_isspace(data[link_end]))
+  while (link_end < size && !cmark_isspace(data[link_end]) && data[link_end] != '<')
     link_end++;
 
   link_end = autolink_delim(data, link_end);
@@ -225,7 +247,7 @@ static cmark_node *url_match(cmark_parse
     return 0;
 
   link_end += domain_len;
-  while (link_end < size && !cmark_isspace(data[link_end]))
+  while (link_end < size && !cmark_isspace(data[link_end]) && data[link_end] != '<')
     link_end++;
 
   link_end = autolink_delim(data, link_end);
@@ -245,6 +267,11 @@ static cmark_node *url_match(cmark_parse
   cmark_node *text = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem);
   text->as.literal = url;
   cmark_node_append_child(node, text);
+  
+  node->start_line = text->start_line = node->end_line = text->end_line = cmark_inline_parser_get_line(inline_parser);
+
+  node->start_column = text->start_column = max_rewind - rewind;
+  node->end_column = text->end_column = cmark_inline_parser_get_column(inline_parser) - 1;
 
   return node;
 }
@@ -269,142 +296,167 @@ static cmark_node *match(cmark_syntax_ex
   // inline was finished in inlines.c.
 }
 
-static bool validate_protocol(char protocol[], uint8_t *data, int rewind) {
+static bool validate_protocol(const char protocol[], uint8_t *data, size_t rewind, size_t max_rewind) {
   size_t len = strlen(protocol);
 
+  if (len > (max_rewind - rewind)) {
+    return false;
+  }
+
   // Check that the protocol matches
-  for (int i = 1; i <= len; i++) {
-    if (data[-rewind - i] != protocol[len - i]) {
-      return false;
-    }
+  if (memcmp(data - rewind - len, protocol, len) != 0) {
+    return false;
+  }
+
+  if (len == (max_rewind - rewind)) {
+    return true;
   }
 
-  char prev_char = data[-rewind - len - 1];
+  char prev_char = data[-((ptrdiff_t)rewind) - len - 1];
 
   // Make sure the character before the protocol is non-alphanumeric
   return !cmark_isalnum(prev_char);
 }
 
-static void postprocess_text(cmark_parser *parser, cmark_node *text, int offset, int depth) {
-  // postprocess_text can recurse very deeply if there is a very long line of
-  // '@' only.  Stop at a reasonable depth to ensure it cannot crash.
-  if (depth > 1000) return;
+static void postprocess_text(cmark_parser *parser, cmark_node *text) {
+  size_t start = 0;
+  size_t offset = 0;
+  // `text` is going to be split into a list of nodes containing shorter segments
+  // of text, so we detach the memory buffer from text and use `cmark_chunk_dup` to
+  // create references to it. Later, `cmark_chunk_to_cstr` is used to convert
+  // the references into allocated buffers. The detached buffer is freed before we
+  // return.
+  cmark_chunk detached_chunk = text->as.literal;
+  text->as.literal = cmark_chunk_dup(&detached_chunk, 0, detached_chunk.len);
+
+  uint8_t *data = text->as.literal.data;
+  size_t remaining = text->as.literal.len;
+
+  while (true) {
+    size_t link_end;
+    uint8_t *at;
+    bool auto_mailto = true;
+    bool is_xmpp = false;
+    size_t rewind;
+    size_t max_rewind;
+    size_t np = 0;
 
-  size_t link_end;
-  uint8_t *data = text->as.literal.data,
-    *at;
-  size_t size = text->as.literal.len;
-  bool auto_mailto = true;
-  bool is_xmpp = false;
-  int rewind, max_rewind,
-      nb = 0, np = 0, ns = 0;
-
-  if (offset < 0 || (size_t)offset >= size)
-    return;
-
-  data += offset;
-  size -= offset;
-
-  at = (uint8_t *)memchr(data, '@', size);
-  if (!at)
-    return;
-
-  max_rewind = (int)(at - data);
-  data += max_rewind;
-  size -= max_rewind;
+    if (offset >= remaining)
+      break;
 
-  for (rewind = 0; rewind < max_rewind; ++rewind) {
-    uint8_t c = data[-rewind - 1];
+    at = (uint8_t *)memchr(data + start + offset, '@', remaining - offset);
+    if (!at)
+      break;
 
-    if (cmark_isalnum(c))
-      continue;
+    max_rewind = at - (data + start + offset);
 
-    if (strchr(".+-_", c) != NULL)
-      continue;
+found_at:
+    for (rewind = 0; rewind < max_rewind; ++rewind) {
+      uint8_t c = data[start + offset + max_rewind - rewind - 1];
 
-    if (strchr(":", c) != NULL) {
-      if (validate_protocol("mailto:", data, rewind)) {
-        auto_mailto = false;
+      if (cmark_isalnum(c))
         continue;
-      }
 
-      if (validate_protocol("xmpp:", data, rewind)) {
-        auto_mailto = false;
-        is_xmpp = true;
+      if (strchr(".+-_", c) != NULL)
         continue;
+
+      if (strchr(":", c) != NULL) {
+        if (validate_protocol("mailto:", data + start + offset + max_rewind, rewind, max_rewind)) {
+          auto_mailto = false;
+          continue;
+        }
+
+        if (validate_protocol("xmpp:", data + start + offset + max_rewind, rewind, max_rewind)) {
+          auto_mailto = false;
+          is_xmpp = true;
+          continue;
+        }
       }
+
+      break;
     }
 
-    break;
-  }
+    if (rewind == 0) {
+      offset += max_rewind + 1;
+      continue;
+    }
 
-  if (rewind == 0 || ns > 0) {
-    postprocess_text(parser, text, max_rewind + 1 + offset, depth + 1);
-    return;
-  }
+    assert(data[start + offset + max_rewind] == '@');
+    for (link_end = 1; link_end < remaining - offset - max_rewind; ++link_end) {
+      uint8_t c = data[start + offset + max_rewind + link_end];
 
-  for (link_end = 0; link_end < size; ++link_end) {
-    uint8_t c = data[link_end];
+      if (cmark_isalnum(c))
+        continue;
 
-    if (cmark_isalnum(c))
-      continue;
+      if (c == '@') {
+        // Found another '@', so go back and try again with an updated offset and max_rewind.
+        offset += max_rewind + 1;
+        max_rewind = link_end - 1;
+        goto found_at;
+      } else if (c == '.' && link_end < remaining - offset - max_rewind - 1 &&
+               cmark_isalnum(data[start + offset + max_rewind + link_end + 1]))
+        np++;
+      else if (c == '/' && is_xmpp)
+        continue;
+      else if (c != '-' && c != '_')
+        break;
+    }
 
-    if (c == '@')
-      nb++;
-    else if (c == '.' && link_end < size - 1 && cmark_isalnum(data[link_end + 1]))
-      np++;
-    else if (c == '/' && is_xmpp)
+    if (link_end < 2 || np == 0 ||
+        (!cmark_isalpha(data[start + offset + max_rewind + link_end - 1]) &&
+         data[start + offset + max_rewind + link_end - 1] != '.')) {
+      offset += max_rewind + link_end;
       continue;
-    else if (c != '-' && c != '_')
-      break;
-  }
+    }
 
-  if (link_end < 2 || nb != 1 || np == 0 ||
-      (!cmark_isalpha(data[link_end - 1]) && data[link_end - 1] != '.')) {
-    postprocess_text(parser, text, max_rewind + 1 + offset, depth + 1);
-    return;
-  }
+    link_end = autolink_delim(data + start + offset + max_rewind, link_end);
 
-  link_end = autolink_delim(data, link_end);
+    if (link_end == 0) {
+      offset += max_rewind + 1;
+      continue;
+    }
 
-  if (link_end == 0) {
-    postprocess_text(parser, text, max_rewind + 1 + offset, depth + 1);
-    return;
-  }
+    cmark_node *link_node = cmark_node_new_with_mem(CMARK_NODE_LINK, parser->mem);
+    cmark_strbuf buf;
+    cmark_strbuf_init(parser->mem, &buf, 10);
+    if (auto_mailto)
+      cmark_strbuf_puts(&buf, "mailto:");
+    cmark_strbuf_put(&buf, data + start + offset + max_rewind - rewind, (bufsize_t)(link_end + rewind));
+    link_node->as.link.url = cmark_chunk_buf_detach(&buf);
+
+    cmark_node *link_text = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem);
+    cmark_chunk email = cmark_chunk_dup(
+      &detached_chunk,
+      (bufsize_t)(start + offset + max_rewind - rewind),
+      (bufsize_t)(link_end + rewind));
+    cmark_chunk_to_cstr(parser->mem, &email);
+    link_text->as.literal = email;
+    cmark_node_append_child(link_node, link_text);
 
-  cmark_chunk_to_cstr(parser->mem, &text->as.literal);
+    cmark_node_insert_after(text, link_node);
 
-  cmark_node *link_node = cmark_node_new_with_mem(CMARK_NODE_LINK, parser->mem);
-  cmark_strbuf buf;
-  cmark_strbuf_init(parser->mem, &buf, 10);
-  if (auto_mailto)
-    cmark_strbuf_puts(&buf, "mailto:");
-  cmark_strbuf_put(&buf, data - rewind, (bufsize_t)(link_end + rewind));
-  link_node->as.link.url = cmark_chunk_buf_detach(&buf);
-
-  cmark_node *link_text = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem);
-  cmark_chunk email = cmark_chunk_dup(
-      &text->as.literal,
-      offset + max_rewind - rewind,
-      (bufsize_t)(link_end + rewind));
-  cmark_chunk_to_cstr(parser->mem, &email);
-  link_text->as.literal = email;
-  cmark_node_append_child(link_node, link_text);
+    cmark_node *post = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem);
+    post->as.literal = cmark_chunk_dup(&detached_chunk,
+                                       (bufsize_t)(start + offset + max_rewind + link_end),
+                                       (bufsize_t)(remaining - offset - max_rewind - link_end));
 
-  cmark_node_insert_after(text, link_node);
+    cmark_node_insert_after(link_node, post);
 
-  cmark_node *post = cmark_node_new_with_mem(CMARK_NODE_TEXT, parser->mem);
-  post->as.literal = cmark_chunk_dup(&text->as.literal,
-    (bufsize_t)(offset + max_rewind + link_end),
-    (bufsize_t)(size - link_end));
-  cmark_chunk_to_cstr(parser->mem, &post->as.literal);
+    text->as.literal = cmark_chunk_dup(&detached_chunk, (bufsize_t)start, (bufsize_t)(offset + max_rewind - rewind));
+    cmark_chunk_to_cstr(parser->mem, &text->as.literal);
 
-  cmark_node_insert_after(link_node, post);
+    text = post;
+    start += offset + max_rewind + link_end;
+    remaining -= offset + max_rewind + link_end;
+    offset = 0;
+  }
 
-  text->as.literal.len = offset + max_rewind - rewind;
-  text->as.literal.data[text->as.literal.len] = 0;
+  // Convert the reference to allocated memory.
+  assert(!text->as.literal.alloc);
+  cmark_chunk_to_cstr(parser->mem, &text->as.literal);
 
-  postprocess_text(parser, post, 0, depth + 1);
+  // Free the detached buffer.
+  cmark_chunk_free(parser->mem, &detached_chunk);
 }
 
 static cmark_node *postprocess(cmark_syntax_extension *ext, cmark_parser *parser, cmark_node *root) {
@@ -431,7 +483,7 @@ static cmark_node *postprocess(cmark_syn
     }
 
     if (ev == CMARK_EVENT_ENTER && node->type == CMARK_NODE_TEXT) {
-      postprocess_text(parser, node, 0, /*depth*/0);
+      postprocess_text(parser, node);
     }
   }
 
Index: cmarkgfm-2022.10.27/third_party/cmark/extensions/cmark-gfm-core-extensions.h
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/extensions/cmark-gfm-core-extensions.h
+++ cmarkgfm-2022.10.27/third_party/cmark/extensions/cmark-gfm-core-extensions.h
@@ -6,45 +6,45 @@ extern "C" {
 #endif
 
 #include "cmark-gfm-extension_api.h"
-#include "cmark-gfm-extensions_export.h"
-#include "config.h" // for bool
+#include "cmark-gfm_export.h"
+#include <stdbool.h>
 #include <stdint.h>
 
-CMARK_GFM_EXTENSIONS_EXPORT
+CMARK_GFM_EXPORT
 void cmark_gfm_core_extensions_ensure_registered(void);
 
-CMARK_GFM_EXTENSIONS_EXPORT
+CMARK_GFM_EXPORT
 uint16_t cmark_gfm_extensions_get_table_columns(cmark_node *node);
 
 /** Sets the number of columns for the table, returning 1 on success and 0 on error.
  */
-CMARK_GFM_EXTENSIONS_EXPORT
+CMARK_GFM_EXPORT
 int cmark_gfm_extensions_set_table_columns(cmark_node *node, uint16_t n_columns);
 
-CMARK_GFM_EXTENSIONS_EXPORT
+CMARK_GFM_EXPORT
 uint8_t *cmark_gfm_extensions_get_table_alignments(cmark_node *node);
 
 /** Sets the alignments for the table, returning 1 on success and 0 on error.
  */
-CMARK_GFM_EXTENSIONS_EXPORT
+CMARK_GFM_EXPORT
 int cmark_gfm_extensions_set_table_alignments(cmark_node *node, uint16_t ncols, uint8_t *alignments);
 
-CMARK_GFM_EXTENSIONS_EXPORT
+CMARK_GFM_EXPORT
 int cmark_gfm_extensions_get_table_row_is_header(cmark_node *node);
 
 /** Sets whether the node is a table header row, returning 1 on success and 0 on error.
  */
-CMARK_GFM_EXTENSIONS_EXPORT
+CMARK_GFM_EXPORT
 int cmark_gfm_extensions_set_table_row_is_header(cmark_node *node, int is_header);
 
-CMARK_GFM_EXTENSIONS_EXPORT
+CMARK_GFM_EXPORT
 bool cmark_gfm_extensions_get_tasklist_item_checked(cmark_node *node);
 /* For backwards compatibility */
 #define cmark_gfm_extensions_tasklist_is_checked cmark_gfm_extensions_get_tasklist_item_checked
 
 /** Sets whether a tasklist item is "checked" (completed), returning 1 on success and 0 on error.
  */
-CMARK_GFM_EXTENSIONS_EXPORT
+CMARK_GFM_EXPORT
 int cmark_gfm_extensions_set_tasklist_item_checked(cmark_node *node, bool is_checked);
 
 #ifdef __cplusplus
Index: cmarkgfm-2022.10.27/third_party/cmark/extensions/strikethrough.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/extensions/strikethrough.c
+++ cmarkgfm-2022.10.27/third_party/cmark/extensions/strikethrough.c
@@ -67,6 +67,7 @@ static delimiter *insert(cmark_syntax_ex
   strikethrough->end_column = closer->inl_text->start_column + closer->inl_text->as.literal.len - 1;
   cmark_node_free(closer->inl_text);
 
+done:
   delim = closer;
   while (delim != NULL && delim != opener) {
     tmp_delim = delim->previous;
@@ -76,7 +77,6 @@ static delimiter *insert(cmark_syntax_ex
 
   cmark_inline_parser_remove_delimiter(inline_parser, opener);
 
-done:
   return res;
 }
 
Index: cmarkgfm-2022.10.27/third_party/cmark/extensions/table.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/extensions/table.c
+++ cmarkgfm-2022.10.27/third_party/cmark/extensions/table.c
@@ -11,42 +11,55 @@
 #include "table.h"
 #include "cmark-gfm-core-extensions.h"
 
+// Limit to prevent a malicious input from causing a denial of service.
+#define MAX_AUTOCOMPLETED_CELLS 0x80000
+
+// Custom node flag, initialized in `create_table_extension`.
+static cmark_node_internal_flags CMARK_NODE__TABLE_VISITED;
+
 cmark_node_type CMARK_NODE_TABLE, CMARK_NODE_TABLE_ROW,
     CMARK_NODE_TABLE_CELL;
 
 typedef struct {
+  cmark_strbuf *buf;
+  int start_offset, end_offset, internal_offset;
+} node_cell;
+
+typedef struct {
   uint16_t n_columns;
   int paragraph_offset;
-  cmark_llist *cells;
+  node_cell *cells;
 } table_row;
 
 typedef struct {
   uint16_t n_columns;
   uint8_t *alignments;
+  int n_rows;
+  int n_nonempty_cells;
 } node_table;
 
 typedef struct {
   bool is_header;
 } node_table_row;
 
-typedef struct {
-  cmark_strbuf *buf;
-  int start_offset, end_offset, internal_offset;
-} node_cell;
-
-static void free_table_cell(cmark_mem *mem, void *data) {
-  node_cell *cell = (node_cell *)data;
+static void free_table_cell(cmark_mem *mem, node_cell *cell) {
   cmark_strbuf_free((cmark_strbuf *)cell->buf);
   mem->free(cell->buf);
-  mem->free(cell);
+}
+
+static void free_row_cells(cmark_mem *mem, table_row *row) {
+  while (row->n_columns > 0) {
+    free_table_cell(mem, &row->cells[--row->n_columns]);
+  }
+  mem->free(row->cells);
+  row->cells = NULL;
 }
 
 static void free_table_row(cmark_mem *mem, table_row *row) {
   if (!row)
     return;
 
-  cmark_llist_free_full(mem, row->cells, (cmark_free_func)free_table_cell);
-
+  free_row_cells(mem, row);
   mem->free(row);
 }
 
@@ -75,6 +88,33 @@ static int set_n_table_columns(cmark_nod
   return 1;
 }
 
+// Increment the number of rows in the table. Also update n_nonempty_cells,
+// which keeps track of the number of cells which were parsed from the
+// input file. (If one of the rows is too short, then the trailing cells
+// are autocompleted. Autocompleted cells are not counted in n_nonempty_cells.)
+// The purpose of this is to prevent a malicious input from generating a very
+// large number of autocompleted cells, which could cause a denial of service
+// vulnerability.
+static int incr_table_row_count(cmark_node *node, int i) {
+  if (!node || node->type != CMARK_NODE_TABLE) {
+    return 0;
+  }
+
+  ((node_table *)node->as.opaque)->n_rows++;
+  ((node_table *)node->as.opaque)->n_nonempty_cells += i;
+  return 1;
+}
+
+// Calculate the number of autocompleted cells.
+static int get_n_autocompleted_cells(cmark_node *node) {
+  if (!node || node->type != CMARK_NODE_TABLE) {
+    return 0;
+  }
+
+  const node_table *nt = (node_table *)node->as.opaque;
+  return (nt->n_columns * nt->n_rows) - nt->n_nonempty_cells;
+}
+
 static uint8_t *get_table_alignments(cmark_node *node) {
   if (!node || node->type != CMARK_NODE_TABLE)
     return 0;
@@ -90,6 +130,23 @@ static int set_table_alignments(cmark_no
   return 1;
 }
 
+static uint8_t get_cell_alignment(cmark_node *node) {
+  if (!node || node->type != CMARK_NODE_TABLE_CELL)
+    return 0;
+
+  const uint8_t *alignments = get_table_alignments(node->parent->parent);
+  int i = node->as.cell_index;
+  return alignments[i];
+}
+
+static int set_cell_index(cmark_node *node, int i) {
+  if (!node || node->type != CMARK_NODE_TABLE_CELL)
+    return 0;
+
+  node->as.cell_index = i;
+  return 1;
+}
+
 static cmark_strbuf *unescape_pipes(cmark_mem *mem, unsigned char *string, bufsize_t len)
 {
   cmark_strbuf *res = (cmark_strbuf *)mem->calloc(1, sizeof(cmark_strbuf));
@@ -111,6 +168,24 @@ static cmark_strbuf *unescape_pipes(cmar
   return res;
 }
 
+// Adds a new cell to the end of the row. A pointer to the new cell is returned
+// for the caller to initialize.
+static node_cell* append_row_cell(cmark_mem *mem, table_row *row) {
+  const uint32_t n_columns = row->n_columns + 1;
+  // realloc when n_columns is a power of 2
+  if ((n_columns & (n_columns-1)) == 0) {
+    // make sure we never wrap row->n_columns
+    // offset will != len and our exit will clean up as intended
+    if (n_columns > UINT16_MAX) {
+      return NULL;
+    }
+    // Use realloc to double the size of the buffer.
+    row->cells = (node_cell *)mem->realloc(row->cells, (2 * n_columns - 1) * sizeof(node_cell));
+  }
+  row->n_columns = (uint16_t)n_columns;
+  return &row->cells[n_columns-1];
+}
+
 static table_row *row_from_string(cmark_syntax_extension *self,
                                   cmark_parser *parser, unsigned char *string,
                                   int len) {
@@ -152,24 +227,22 @@ static table_row *row_from_string(cmark_
           cell_matched);
       cmark_strbuf_trim(cell_buf);
 
-      node_cell *cell = (node_cell *)parser->mem->calloc(1, sizeof(*cell));
+      node_cell *cell = append_row_cell(parser->mem, row);
+      if (!cell) {
+        int_overflow_abort = 1;
+        cmark_strbuf_free(cell_buf);
+        parser->mem->free(cell_buf);
+        break;
+      }
       cell->buf = cell_buf;
       cell->start_offset = offset;
       cell->end_offset = offset + cell_matched - 1;
+      cell->internal_offset = 0;
 
-      while (cell->start_offset > 0 && string[cell->start_offset - 1] != '|') {
+      while (cell->start_offset > row->paragraph_offset && string[cell->start_offset - 1] != '|') {
         --cell->start_offset;
         ++cell->internal_offset;
       }
-
-      // make sure we never wrap row->n_columns
-      // offset will != len and our exit will clean up as intended
-      if (row->n_columns == UINT16_MAX) {
-          int_overflow_abort = 1;
-          break;
-      }
-      row->n_columns += 1;
-      row->cells = cmark_llist_append(parser->mem, row->cells, cell);
     }
 
     offset += cell_matched + pipe_matched;
@@ -187,9 +260,7 @@ static table_row *row_from_string(cmark_
       if (row_end_offset && offset != len) {
         row->paragraph_offset = offset;
 
-        cmark_llist_free_full(parser->mem, row->cells, (cmark_free_func)free_table_cell);
-        row->cells = NULL;
-        row->n_columns = 0;
+        free_row_cells(parser->mem, row);
 
         // Scan past the (optional) leading pipe.
         offset += scan_table_cell_end(string, len, offset);
@@ -235,25 +306,29 @@ static cmark_node *try_opening_table_hea
                                             unsigned char *input, int len) {
   cmark_node *table_header;
   table_row *header_row = NULL;
-  table_row *marker_row = NULL;
+  table_row *delimiter_row = NULL;
   node_table_row *ntr;
   const char *parent_string;
   uint16_t i;
 
+  if (parent_container->flags & CMARK_NODE__TABLE_VISITED) {
+    return parent_container;
+  }
+
   if (!scan_table_start(input, len, cmark_parser_get_first_nonspace(parser))) {
     return parent_container;
   }
 
-  // Since scan_table_start was successful, we must have a marker row.
-  marker_row = row_from_string(self, parser,
-                               input + cmark_parser_get_first_nonspace(parser),
-                               len - cmark_parser_get_first_nonspace(parser));
+  // Since scan_table_start was successful, we must have a delimiter row.
+  delimiter_row = row_from_string(
+    self, parser, input + cmark_parser_get_first_nonspace(parser),
+    len - cmark_parser_get_first_nonspace(parser));
   // assert may be optimized out, don't rely on it for security boundaries
-  if (!marker_row) {
+  if (!delimiter_row) {
       return parent_container;
   }
-  
-  assert(marker_row);
+
+  assert(delimiter_row);
 
   cmark_arena_push();
 
@@ -263,22 +338,23 @@ static cmark_node *try_opening_table_hea
   parent_string = cmark_node_get_string_content(parent_container);
   header_row = row_from_string(self, parser, (unsigned char *)parent_string,
                                (int)strlen(parent_string));
-  if (!header_row || header_row->n_columns != marker_row->n_columns) {
-    free_table_row(parser->mem, marker_row);
+  if (!header_row || header_row->n_columns != delimiter_row->n_columns) {
+    free_table_row(parser->mem, delimiter_row);
     free_table_row(parser->mem, header_row);
     cmark_arena_pop();
+    parent_container->flags |= CMARK_NODE__TABLE_VISITED;
     return parent_container;
   }
 
   if (cmark_arena_pop()) {
-    marker_row = row_from_string(
+    delimiter_row = row_from_string(
         self, parser, input + cmark_parser_get_first_nonspace(parser),
         len - cmark_parser_get_first_nonspace(parser));
     header_row = row_from_string(self, parser, (unsigned char *)parent_string,
                                  (int)strlen(parent_string));
     // row_from_string can return NULL, add additional check to ensure n_columns match
-    if (!marker_row || !header_row || header_row->n_columns != marker_row->n_columns) {
-        free_table_row(parser->mem, marker_row);
+    if (!delimiter_row || !header_row || header_row->n_columns != delimiter_row->n_columns) {
+        free_table_row(parser->mem, delimiter_row);
         free_table_row(parser->mem, header_row);
         return parent_container;
     }
@@ -286,7 +362,7 @@ static cmark_node *try_opening_table_hea
 
   if (!cmark_node_set_type(parent_container, CMARK_NODE_TABLE)) {
     free_table_row(parser->mem, header_row);
-    free_table_row(parser->mem, marker_row);
+    free_table_row(parser->mem, delimiter_row);
     return parent_container;
   }
 
@@ -299,13 +375,12 @@ static cmark_node *try_opening_table_hea
   parent_container->as.opaque = parser->mem->calloc(1, sizeof(node_table));
   set_n_table_columns(parent_container, header_row->n_columns);
 
-  // allocate alignments based on marker_row->n_columns
-  // since we populate the alignments array based on marker_row->cells
+  // allocate alignments based on delimiter_row->n_columns
+  // since we populate the alignments array based on delimiter_row->cells
   uint8_t *alignments =
-      (uint8_t *)parser->mem->calloc(marker_row->n_columns, sizeof(uint8_t));
-  cmark_llist *it = marker_row->cells;
-  for (i = 0; it; it = it->next, ++i) {
-    node_cell *node = (node_cell *)it->data;
+      (uint8_t *)parser->mem->calloc(delimiter_row->n_columns, sizeof(uint8_t));
+  for (i = 0; i < delimiter_row->n_columns; ++i) {
+    node_cell *node = &delimiter_row->cells[i];
     bool left = node->buf->ptr[0] == ':', right = node->buf->ptr[node->buf->size - 1] == ':';
 
     if (left && right)
@@ -327,27 +402,26 @@ static cmark_node *try_opening_table_hea
   table_header->as.opaque = ntr = (node_table_row *)parser->mem->calloc(1, sizeof(node_table_row));
   ntr->is_header = true;
 
-  {
-    cmark_llist *tmp;
-
-    for (tmp = header_row->cells; tmp; tmp = tmp->next) {
-      node_cell *cell = (node_cell *) tmp->data;
-      cmark_node *header_cell = cmark_parser_add_child(parser, table_header,
-          CMARK_NODE_TABLE_CELL, parent_container->start_column + cell->start_offset);
-      header_cell->start_line = header_cell->end_line = parent_container->start_line;
-      header_cell->internal_offset = cell->internal_offset;
-      header_cell->end_column = parent_container->start_column + cell->end_offset;
-      cmark_node_set_string_content(header_cell, (char *) cell->buf->ptr);
-      cmark_node_set_syntax_extension(header_cell, self);
-    }
+  for (i = 0; i < header_row->n_columns; ++i) {
+    node_cell *cell = &header_row->cells[i];
+    cmark_node *header_cell = cmark_parser_add_child(parser, table_header,
+                                                     CMARK_NODE_TABLE_CELL, parent_container->start_column + cell->start_offset);
+    header_cell->start_line = header_cell->end_line = parent_container->start_line;
+    header_cell->internal_offset = cell->internal_offset;
+    header_cell->end_column = parent_container->start_column + cell->end_offset;
+    cmark_node_set_string_content(header_cell, (char *) cell->buf->ptr);
+    cmark_node_set_syntax_extension(header_cell, self);
+    set_cell_index(header_cell, i);
   }
 
+  incr_table_row_count(parent_container, i);
+
   cmark_parser_advance_offset(
       parser, (char *)input,
       (int)strlen((char *)input) - 1 - cmark_parser_get_offset(parser), false);
 
   free_table_row(parser->mem, header_row);
-  free_table_row(parser->mem, marker_row);
+  free_table_row(parser->mem, delimiter_row);
   return parent_container;
 }
 
@@ -361,6 +435,10 @@ static cmark_node *try_opening_table_row
   if (cmark_parser_is_blank(parser))
     return NULL;
 
+  if (get_n_autocompleted_cells(parent_container) > MAX_AUTOCOMPLETED_CELLS) {
+    return NULL;
+  }
+
   table_row_block =
       cmark_parser_add_child(parser, parent_container, CMARK_NODE_TABLE_ROW,
                              parent_container->start_column);
@@ -378,23 +456,26 @@ static cmark_node *try_opening_table_row
   }
 
   {
-    cmark_llist *tmp;
     int i, table_columns = get_n_table_columns(parent_container);
 
-    for (tmp = row->cells, i = 0; tmp && i < table_columns; tmp = tmp->next, ++i) {
-      node_cell *cell = (node_cell *) tmp->data;
+    for (i = 0; i < row->n_columns && i < table_columns; ++i) {
+      node_cell *cell = &row->cells[i];
       cmark_node *node = cmark_parser_add_child(parser, table_row_block,
           CMARK_NODE_TABLE_CELL, parent_container->start_column + cell->start_offset);
       node->internal_offset = cell->internal_offset;
       node->end_column = parent_container->start_column + cell->end_offset;
       cmark_node_set_string_content(node, (char *) cell->buf->ptr);
       cmark_node_set_syntax_extension(node, self);
+      set_cell_index(node, i);
     }
 
+    incr_table_row_count(parent_container, i);
+
     for (; i < table_columns; ++i) {
       cmark_node *node = cmark_parser_add_child(
           parser, table_row_block, CMARK_NODE_TABLE_CELL, 0);
       cmark_node_set_syntax_extension(node, self);
+      set_cell_index(node, i);
     }
   }
 
@@ -579,13 +660,7 @@ static const char *xml_attr(cmark_syntax
                             cmark_node *node) {
   if (node->type == CMARK_NODE_TABLE_CELL) {
     if (cmark_gfm_extensions_get_table_row_is_header(node->parent)) {
-      uint8_t *alignments = get_table_alignments(node->parent->parent);
-      int i = 0;
-      cmark_node *n;
-      for (n = node->parent->first_child; n; n = n->next, ++i)
-        if (n == node)
-          break;
-      switch (alignments[i]) {
+      switch (get_cell_alignment(node)) {
       case 'l': return " align=\"left\"";
       case 'c': return " align=\"center\"";
       case 'r': return " align=\"right\"";
@@ -673,7 +748,6 @@ static void html_render(cmark_syntax_ext
                         cmark_event_type ev_type, int options) {
   bool entering = (ev_type == CMARK_EVENT_ENTER);
   cmark_strbuf *html = renderer->html;
-  cmark_node *n;
 
   // XXX: we just monopolise renderer->opaque.
   struct html_table_state *table_state =
@@ -722,7 +796,6 @@ static void html_render(cmark_syntax_ext
       }
     }
   } else if (node->type == CMARK_NODE_TABLE_CELL) {
-    uint8_t *alignments = get_table_alignments(node->parent->parent);
     if (entering) {
       cmark_html_render_cr(html);
       if (table_state->in_table_header) {
@@ -731,12 +804,7 @@ static void html_render(cmark_syntax_ext
         cmark_strbuf_puts(html, "<td");
       }
 
-      int i = 0;
-      for (n = node->parent->first_child; n; n = n->next, ++i)
-        if (n == node)
-          break;
-
-      switch (alignments[i]) {
+      switch (get_cell_alignment(node)) {
       case 'l': html_table_add_align(html, "left", options); break;
       case 'c': html_table_add_align(html, "center", options); break;
       case 'r': html_table_add_align(html, "right", options); break;
@@ -785,6 +853,7 @@ static int escape(cmark_syntax_extension
 cmark_syntax_extension *create_table_extension(void) {
   cmark_syntax_extension *self = cmark_syntax_extension_new("table");
 
+  cmark_register_node_flag(&CMARK_NODE__TABLE_VISITED);
   cmark_syntax_extension_set_match_block_func(self, matches);
   cmark_syntax_extension_set_open_block_func(self, try_opening_table_block);
   cmark_syntax_extension_set_get_type_string_func(self, get_type_string);
Index: cmarkgfm-2022.10.27/third_party/cmark/src/arena.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/arena.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/arena.c
@@ -68,15 +68,16 @@ static void *arena_calloc(size_t nmem, s
   const size_t align = sizeof(size_t) - 1;
   sz = (sz + align) & ~align;
 
+  struct arena_chunk *chunk;
   if (sz > A->sz) {
-    A->prev = alloc_arena_chunk(sz, A->prev);
-    return (uint8_t *) A->prev->ptr + sizeof(size_t);
+    A->prev = chunk = alloc_arena_chunk(sz, A->prev);
+  } else if (sz > A->sz - A->used) {
+    A = chunk = alloc_arena_chunk(A->sz + A->sz / 2, A);
+  } else {
+    chunk = A;
   }
-  if (sz > A->sz - A->used) {
-    A = alloc_arena_chunk(A->sz + A->sz / 2, A);
-  }
-  void *ptr = (uint8_t *) A->ptr + A->used;
-  A->used += sz;
+  void *ptr = (uint8_t *) chunk->ptr + chunk->used;
+  chunk->used += sz;
   *((size_t *) ptr) = sz - sizeof(size_t);
   return (uint8_t *) ptr + sizeof(size_t);
 }
@@ -98,6 +99,6 @@ static void arena_free(void *ptr) {
 
 cmark_mem CMARK_ARENA_MEM_ALLOCATOR = {arena_calloc, arena_realloc, arena_free};
 
-cmark_mem *cmark_get_arena_mem_allocator() {
+cmark_mem *cmark_get_arena_mem_allocator(void) {
   return &CMARK_ARENA_MEM_ALLOCATOR;
 }
Index: cmarkgfm-2022.10.27/third_party/cmark/src/blocks.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/blocks.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/blocks.c
@@ -8,6 +8,7 @@
 #include <stdlib.h>
 #include <assert.h>
 #include <stdio.h>
+#include <limits.h>
 
 #include "cmark_ctype.h"
 #include "syntax_extension.h"
@@ -26,6 +27,14 @@
 #define CODE_INDENT 4
 #define TAB_STOP 4
 
+/**
+ * Very deeply nested lists can cause quadratic performance issues.
+ * This constant is used in open_new_blocks() to limit the nesting
+ * depth. It is unlikely that a non-contrived markdown document will
+ * be nested this deeply.
+ */
+#define MAX_LIST_DEPTH 100
+
 #ifndef MIN
 #define MIN(x, y) ((x < y) ? x : y)
 #endif
@@ -639,6 +648,14 @@ static cmark_node *finalize_document(cma
   }
 
   finalize(parser, parser->root);
+
+  // Limit total size of extra content created from reference links to
+  // document size to avoid superlinear growth. Always allow 100KB.
+  if (parser->total_size > 100000)
+    parser->refmap->max_ref_size = parser->total_size;
+  else
+    parser->refmap->max_ref_size = 100000;
+
   process_inlines(parser, parser->refmap, parser->options);
   if (parser->options & CMARK_OPT_FOOTNOTES)
     process_footnotes(parser);
@@ -698,6 +715,11 @@ static void S_parser_feed(cmark_parser *
   const unsigned char *end = buffer + len;
   static const uint8_t repl[] = {239, 191, 189};
 
+  if (len > UINT_MAX - parser->total_size)
+    parser->total_size = UINT_MAX;
+  else
+    parser->total_size += len;
+
   if (parser->last_buffer_ended_with_cr && *buffer == '\n') {
     // skip NL if last buffer ended with CR ; see #117
     buffer++;
@@ -1105,10 +1127,11 @@ static void open_new_blocks(cmark_parser
   bool has_content;
   int save_offset;
   int save_column;
+  size_t depth = 0;
 
   while (cont_type != CMARK_NODE_CODE_BLOCK &&
          cont_type != CMARK_NODE_HTML_BLOCK) {
-
+    depth++;
     S_find_first_nonspace(parser, input);
     indented = parser->indent >= CODE_INDENT;
 
@@ -1194,15 +1217,17 @@ static void open_new_blocks(cmark_parser
                              parser->first_nonspace + 1);
       S_advance_offset(parser, input, input->len - 1 - parser->offset, false);
     } else if (!indented &&
-               parser->options & CMARK_OPT_FOOTNOTES &&
+               (parser->options & CMARK_OPT_FOOTNOTES) &&
+               depth < MAX_LIST_DEPTH &&
                (matched = scan_footnote_definition(input, parser->first_nonspace))) {
       cmark_chunk c = cmark_chunk_dup(input, parser->first_nonspace + 2, matched - 2);
-      cmark_chunk_to_cstr(parser->mem, &c);
 
       while (c.data[c.len - 1] != ']')
         --c.len;
       --c.len;
 
+      cmark_chunk_to_cstr(parser->mem, &c);
+
       S_advance_offset(parser, input, parser->first_nonspace + matched - parser->offset, false);
       *container = add_child(parser, *container, CMARK_NODE_FOOTNOTE_DEFINITION, parser->first_nonspace + matched + 1);
       (*container)->as.literal = c;
@@ -1210,6 +1235,7 @@ static void open_new_blocks(cmark_parser
       (*container)->internal_offset = matched;
     } else if ((!indented || cont_type == CMARK_NODE_LIST) &&
 	       parser->indent < 4 &&
+               depth < MAX_LIST_DEPTH &&
                (matched = parse_list_marker(
                     parser->mem, input, parser->first_nonspace,
                     (*container)->type == CMARK_NODE_PARAGRAPH, &data))) {
Index: cmarkgfm-2022.10.27/third_party/cmark/src/cmark-gfm-extension_api.h
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/cmark-gfm-extension_api.h
+++ cmarkgfm-2022.10.27/third_party/cmark/src/cmark-gfm-extension_api.h
@@ -114,6 +114,7 @@ typedef struct delimiter {
   struct delimiter *previous;
   struct delimiter *next;
   cmark_node *inl_text;
+  bufsize_t position;
   bufsize_t length;
   unsigned char delim_char;
   int can_open;
Index: cmarkgfm-2022.10.27/third_party/cmark/src/cmark-gfm.h
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/cmark-gfm.h
+++ cmarkgfm-2022.10.27/third_party/cmark/src/cmark-gfm.h
@@ -111,13 +111,13 @@ typedef struct cmark_mem {
  * realloc and free.
  */
 CMARK_GFM_EXPORT
-cmark_mem *cmark_get_default_mem_allocator();
+cmark_mem *cmark_get_default_mem_allocator(void);
 
 /** An arena allocator; uses system calloc to allocate large
  * slabs of memory.  Memory in these slabs is not reused at all.
  */
 CMARK_GFM_EXPORT
-cmark_mem *cmark_get_arena_mem_allocator();
+cmark_mem *cmark_get_arena_mem_allocator(void);
 
 /** Resets the arena allocator, quickly returning all used memory
  * to the operating system.
@@ -225,6 +225,11 @@ CMARK_GFM_EXPORT cmark_node *cmark_node_
  */
 CMARK_GFM_EXPORT cmark_node *cmark_node_last_child(cmark_node *node);
 
+/** Returns the footnote reference of 'node', or NULL if 'node' doesn't have a
+ * footnote reference.
+ */
+CMARK_GFM_EXPORT cmark_node *cmark_node_parent_footnote_def(cmark_node *node);
+
 /**
  * ## Iterator
  *
@@ -408,6 +413,17 @@ CMARK_GFM_EXPORT int cmark_node_get_list
  */
 CMARK_GFM_EXPORT int cmark_node_set_list_tight(cmark_node *node, int tight);
 
+/**
+ * Returns item index of 'node'. This is only used when rendering output
+ * formats such as commonmark, which need to output the index. It is not
+ * required for formats such as html or latex.
+ */
+CMARK_GFM_EXPORT int cmark_node_get_item_index(cmark_node *node);
+
+/** Sets item index of 'node'. Returns 1 on success, 0 on failure.
+ */
+CMARK_GFM_EXPORT int cmark_node_set_item_index(cmark_node *node, int idx);
+
 /** Returns the info string from a fenced code block.
  */
 CMARK_GFM_EXPORT const char *cmark_node_get_fence_info(cmark_node *node);
Index: cmarkgfm-2022.10.27/third_party/cmark/src/cmark.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/cmark.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/cmark.c
@@ -10,9 +10,9 @@
 cmark_node_type CMARK_NODE_LAST_BLOCK = CMARK_NODE_FOOTNOTE_DEFINITION;
 cmark_node_type CMARK_NODE_LAST_INLINE = CMARK_NODE_FOOTNOTE_REFERENCE;
 
-int cmark_version() { return CMARK_GFM_VERSION; }
+int cmark_version(void) { return CMARK_GFM_VERSION; }
 
-const char *cmark_version_string() { return CMARK_GFM_VERSION_STRING; }
+const char *cmark_version_string(void) { return CMARK_GFM_VERSION_STRING; }
 
 static void *xcalloc(size_t nmem, size_t size) {
   void *ptr = calloc(nmem, size);
@@ -38,7 +38,7 @@ static void xfree(void *ptr) {
 
 cmark_mem CMARK_DEFAULT_MEM_ALLOCATOR = {xcalloc, xrealloc, xfree};
 
-cmark_mem *cmark_get_default_mem_allocator() {
+cmark_mem *cmark_get_default_mem_allocator(void) {
   return &CMARK_DEFAULT_MEM_ALLOCATOR;
 }
 
Index: cmarkgfm-2022.10.27/third_party/cmark/src/commonmark.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/commonmark.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/commonmark.c
@@ -153,23 +153,8 @@ static bool is_autolink(cmark_node *node
                   link_text->as.literal.len) == 0);
 }
 
-// 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) {
-    if (CMARK_NODE_BLOCK_P(node)) {
-      return node;
-    } else {
-      node = node->parent;
-    }
-  }
-  return NULL;
-}
-
 static int S_render_node(cmark_renderer *renderer, cmark_node *node,
                          cmark_event_type ev_type, int options) {
-  cmark_node *tmp;
   int list_number;
   cmark_delim_type list_delim;
   int numticks;
@@ -180,7 +165,7 @@ static int S_render_node(cmark_renderer
   char fencechar[2] = {'\0', '\0'};
   size_t info_len, code_len;
   char listmarker[LISTMARKER_SIZE];
-  char *emph_delim;
+  const char *emph_delim;
   bool first_in_list_item;
   bufsize_t marker_width;
   bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options) &&
@@ -189,14 +174,17 @@ static int S_render_node(cmark_renderer
   // Don't adjust tight list status til we've started the list.
   // Otherwise we loose the blank line between a paragraph and
   // a following list.
-  if (!(node->type == CMARK_NODE_ITEM && node->prev == NULL && entering)) {
-    tmp = get_containing_block(node);
-    renderer->in_tight_list_item =
-        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)));
+  if (entering) {
+    if (node->parent && node->parent->type == CMARK_NODE_ITEM) {
+      renderer->in_tight_list_item = node->parent->parent->as.list.tight;
+    }
+  } else {
+    if (node->type == CMARK_NODE_LIST) {
+      renderer->in_tight_list_item =
+        node->parent &&
+        node->parent->type == CMARK_NODE_ITEM &&
+        node->parent->parent->as.list.tight;
+    }
   }
 
   if (node->extension && node->extension->commonmark_render_func) {
@@ -234,13 +222,8 @@ static int S_render_node(cmark_renderer
     if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {
       marker_width = 4;
     } else {
-      list_number = cmark_node_get_list_start(node->parent);
+      list_number = cmark_node_get_item_index(node);
       list_delim = cmark_node_get_list_delim(node->parent);
-      tmp = node;
-      while (tmp->prev) {
-        tmp = tmp->prev;
-        list_number += 1;
-      }
       // we ensure a width of at least 4 so
       // we get nice transition from single digits
       // to double
@@ -405,10 +388,12 @@ static int S_render_node(cmark_renderer
     break;
 
   case CMARK_NODE_STRONG:
-    if (entering) {
-      LIT("**");
-    } else {
-      LIT("**");
+    if (node->parent == NULL || node->parent->type != CMARK_NODE_STRONG) {
+      if (entering) {
+        LIT("**");
+      } else {
+        LIT("**");
+      }
     }
     break;
 
Index: cmarkgfm-2022.10.27/third_party/cmark/src/html.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/html.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/html.c
@@ -63,10 +63,16 @@ static bool S_put_footnote_backref(cmark
   if (renderer->written_footnote_ix >= renderer->footnote_ix)
     return false;
   renderer->written_footnote_ix = renderer->footnote_ix;
+  char m[32];
+  snprintf(m, sizeof(m), "%d", renderer->written_footnote_ix);
 
   cmark_strbuf_puts(html, "<a href=\"#fnref-");
   houdini_escape_href(html, node->as.literal.data, node->as.literal.len);
-  cmark_strbuf_puts(html, "\" class=\"footnote-backref\" data-footnote-backref aria-label=\"Back to content\">↩</a>");
+  cmark_strbuf_puts(html, "\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\"");
+  cmark_strbuf_puts(html, m);
+  cmark_strbuf_puts(html, "\" aria-label=\"Back to reference ");
+  cmark_strbuf_puts(html, m);
+  cmark_strbuf_puts(html, "\">↩</a>");
 
   if (node->footnote.def_count > 1)
   {
@@ -78,7 +84,15 @@ static bool S_put_footnote_backref(cmark
       houdini_escape_href(html, node->as.literal.data, node->as.literal.len);
       cmark_strbuf_puts(html, "-");
       cmark_strbuf_puts(html, n);
-      cmark_strbuf_puts(html, "\" class=\"footnote-backref\" data-footnote-backref aria-label=\"Back to content\">↩<sup class=\"footnote-ref\">");
+      cmark_strbuf_puts(html, "\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\"");
+      cmark_strbuf_puts(html, m);
+      cmark_strbuf_puts(html, "-");
+      cmark_strbuf_puts(html, n);
+      cmark_strbuf_puts(html, "\" aria-label=\"Back to reference ");
+      cmark_strbuf_puts(html, m);
+      cmark_strbuf_puts(html, "-");
+      cmark_strbuf_puts(html, n);
+      cmark_strbuf_puts(html, "\">↩<sup class=\"footnote-ref\">");
       cmark_strbuf_puts(html, n);
       cmark_strbuf_puts(html, "</sup></a>");
     }
@@ -350,10 +364,12 @@ static int S_render_node(cmark_html_rend
     break;
 
   case CMARK_NODE_STRONG:
-    if (entering) {
-      cmark_strbuf_puts(html, "<strong>");
-    } else {
-      cmark_strbuf_puts(html, "</strong>");
+    if (node->parent == NULL || node->parent->type != CMARK_NODE_STRONG) {
+      if (entering) {
+        cmark_strbuf_puts(html, "<strong>");
+      } else {
+        cmark_strbuf_puts(html, "</strong>");
+      }
     }
     break;
 
Index: cmarkgfm-2022.10.27/third_party/cmark/src/inlines.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/inlines.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/inlines.c
@@ -35,7 +35,6 @@ static const char *RIGHTSINGLEQUOTE = "\
 
 typedef struct bracket {
   struct bracket *previous;
-  struct delimiter *previous_delimiter;
   cmark_node *inl_text;
   bufsize_t position;
   bool image;
@@ -45,9 +44,15 @@ typedef struct bracket {
   bool in_bracket_image1;
 } bracket;
 
+#define FLAG_SKIP_HTML_CDATA        (1u << 0)
+#define FLAG_SKIP_HTML_DECLARATION  (1u << 1)
+#define FLAG_SKIP_HTML_PI           (1u << 2)
+#define FLAG_SKIP_HTML_COMMENT      (1u << 3)
+
 typedef struct subject{
   cmark_mem *mem;
   cmark_chunk input;
+  unsigned flags;
   int line;
   bufsize_t pos;
   int block_offset;
@@ -57,6 +62,7 @@ typedef struct subject{
   bracket *last_bracket;
   bufsize_t backticks[MAXBACKTICKS + 1];
   bool scanned_for_backticks;
+  bool no_link_openers;
 } subject;
 
 // Extensions may populate this.
@@ -111,6 +117,24 @@ static cmark_node *make_str_with_entitie
   }
 }
 
+// Like cmark_node_append_child but without costly sanity checks.
+// Assumes that child was newly created.
+static void append_child(cmark_node *node, cmark_node *child) {
+  cmark_node *old_last_child = node->last_child;
+
+  child->next = NULL;
+  child->prev = old_last_child;
+  child->parent = node;
+  node->last_child = child;
+
+  if (old_last_child) {
+    old_last_child->next = child;
+  } else {
+    // Also set first_child if node previously had no children.
+    node->first_child = child;
+  }
+}
+
 // Duplicate a chunk by creating a copy of the buffer not by reusing the
 // buffer like cmark_chunk_dup does.
 static cmark_chunk chunk_clone(cmark_mem *mem, cmark_chunk *src) {
@@ -154,7 +178,7 @@ static CMARK_INLINE cmark_node *make_aut
   link->start_line = link->end_line = subj->line;
   link->start_column = start_column + 1;
   link->end_column = end_column + 1;
-  cmark_node_append_child(link, make_str_with_entities(subj, start_column + 1, end_column - 1, &url));
+  append_child(link, make_str_with_entities(subj, start_column + 1, end_column - 1, &url));
   return link;
 }
 
@@ -163,6 +187,7 @@ static void subject_from_buf(cmark_mem *
   int i;
   e->mem = mem;
   e->input = *chunk;
+  e->flags = 0;
   e->line = line_number;
   e->pos = 0;
   e->block_offset = block_offset;
@@ -174,6 +199,7 @@ static void subject_from_buf(cmark_mem *
     e->backticks[i] = 0;
   }
   e->scanned_for_backticks = false;
+  e->no_link_openers = true;
 }
 
 static CMARK_INLINE int isbacktick(int c) { return (c == '`'); }
@@ -505,6 +531,7 @@ static void push_delimiter(subject *subj
   delim->can_open = can_open;
   delim->can_close = can_close;
   delim->inl_text = inl_text;
+  delim->position = subj->pos;
   delim->length = inl_text->as.literal.len;
   delim->previous = subj->last_delim;
   delim->next = NULL;
@@ -525,7 +552,6 @@ static void push_bracket(subject *subj,
   b->active = true;
   b->inl_text = inl_text;
   b->previous = subj->last_bracket;
-  b->previous_delimiter = subj->last_delim;
   b->position = subj->pos;
   b->bracket_after = false;
   if (image) {
@@ -534,6 +560,9 @@ static void push_bracket(subject *subj,
     b->in_bracket_image0 = true;
   }
   subj->last_bracket = b;
+  if (!image) {
+    subj->no_link_openers = false;
+  }
 }
 
 // Assumes the subject has a c at the current position.
@@ -640,12 +669,13 @@ static cmark_syntax_extension *get_exten
   return NULL;
 }
 
-static void process_emphasis(cmark_parser *parser, subject *subj, delimiter *stack_bottom) {
-  delimiter *closer = subj->last_delim;
+static void process_emphasis(cmark_parser *parser, subject *subj, bufsize_t stack_bottom) {
+  delimiter *candidate;
+  delimiter *closer = NULL;
   delimiter *opener;
   delimiter *old_closer;
   bool opener_found;
-  delimiter *openers_bottom[3][128];
+  bufsize_t openers_bottom[3][128];
   int i;
 
   // initialize openers_bottom:
@@ -658,8 +688,10 @@ static void process_emphasis(cmark_parse
   }
 
   // move back to first relevant delim.
-  while (closer != NULL && closer->previous != stack_bottom) {
-    closer = closer->previous;
+  candidate = subj->last_delim;
+  while (candidate != NULL && candidate->position >= stack_bottom) {
+    closer = candidate;
+    candidate = candidate->previous;
   }
 
   // now move forward, looking for closers, and handling each
@@ -669,8 +701,8 @@ static void process_emphasis(cmark_parse
       // Now look backwards for first matching opener:
       opener = closer->previous;
       opener_found = false;
-      while (opener != NULL && opener != stack_bottom &&
-             opener != openers_bottom[closer->length % 3][closer->delim_char]) {
+      while (opener != NULL && opener->position >= stack_bottom &&
+             opener->position >= openers_bottom[closer->length % 3][closer->delim_char]) {
         if (opener->can_open && opener->delim_char == closer->delim_char) {
           // interior closer of size 2 can't match opener of size 1
           // or of size 1 can't match 2
@@ -696,27 +728,29 @@ static void process_emphasis(cmark_parse
         } else {
           closer = closer->next;
         }
-      } else if (closer->delim_char == '\'') {
+      } else if (closer->delim_char == '\'' || closer->delim_char == '"') {
         cmark_chunk_free(subj->mem, &closer->inl_text->as.literal);
-        closer->inl_text->as.literal = cmark_chunk_literal(RIGHTSINGLEQUOTE);
-        if (opener_found) {
-          cmark_chunk_free(subj->mem, &opener->inl_text->as.literal);
-          opener->inl_text->as.literal = cmark_chunk_literal(LEFTSINGLEQUOTE);
+        if (closer->delim_char == '\'') {
+          closer->inl_text->as.literal = cmark_chunk_literal(RIGHTSINGLEQUOTE);
+        } else {
+          closer->inl_text->as.literal = cmark_chunk_literal(RIGHTDOUBLEQUOTE);
         }
         closer = closer->next;
-      } else if (closer->delim_char == '"') {
-        cmark_chunk_free(subj->mem, &closer->inl_text->as.literal);
-        closer->inl_text->as.literal = cmark_chunk_literal(RIGHTDOUBLEQUOTE);
         if (opener_found) {
           cmark_chunk_free(subj->mem, &opener->inl_text->as.literal);
-          opener->inl_text->as.literal = cmark_chunk_literal(LEFTDOUBLEQUOTE);
+          if (old_closer->delim_char == '\'') {
+            opener->inl_text->as.literal = cmark_chunk_literal(LEFTSINGLEQUOTE);
+          } else {
+            opener->inl_text->as.literal = cmark_chunk_literal(LEFTDOUBLEQUOTE);
+          }
+          remove_delimiter(subj, opener);
+          remove_delimiter(subj, old_closer);
         }
-        closer = closer->next;
       }
       if (!opener_found) {
         // set lower bound for future searches for openers
         openers_bottom[old_closer->length % 3][old_closer->delim_char] =
-		old_closer->previous;
+		old_closer->position;
         if (!old_closer->can_open) {
           // we can remove a closer that can't be an
           // opener, once we've seen there's no
@@ -729,7 +763,8 @@ static void process_emphasis(cmark_parse
     }
   }
   // free all delimiters in list until stack_bottom:
-  while (subj->last_delim != NULL && subj->last_delim != stack_bottom) {
+  while (subj->last_delim != NULL &&
+         subj->last_delim->position >= stack_bottom) {
     remove_delimiter(subj, subj->last_delim);
   }
 }
@@ -768,7 +803,8 @@ static delimiter *S_insert_emph(subject
   tmp = opener_inl->next;
   while (tmp && tmp != closer_inl) {
     tmpnext = tmp->next;
-    cmark_node_append_child(emph, tmp);
+    cmark_node_unlink(tmp);
+    append_child(emph, tmp);
     tmp = tmpnext;
   }
   cmark_node_insert_after(opener_inl, emph);
@@ -899,7 +935,63 @@ static cmark_node *handle_pointy_brace(s
   }
 
   // finally, try to match an html tag
-  matchlen = scan_html_tag(&subj->input, subj->pos);
+  if (subj->pos + 2 <= subj->input.len) {
+    int c = subj->input.data[subj->pos];
+    if (c == '!' && (subj->flags & FLAG_SKIP_HTML_COMMENT) == 0) {
+      c = subj->input.data[subj->pos+1];
+      if (c == '-' && subj->input.data[subj->pos+2] == '-') {
+        if (subj->input.data[subj->pos+3] == '>') {
+          matchlen = 4;
+        } else if (subj->input.data[subj->pos+3] == '-' &&
+                   subj->input.data[subj->pos+4] == '>') {
+          matchlen = 5;
+        } else {
+          matchlen = scan_html_comment(&subj->input, subj->pos + 1);
+          if (matchlen > 0) {
+            matchlen += 1; // prefix "<"
+          } else { // no match through end of input: set a flag so
+                   // we don't reparse looking for -->:
+            subj->flags |= FLAG_SKIP_HTML_COMMENT;
+          }
+        }
+      } else if (c == '[') {
+        if ((subj->flags & FLAG_SKIP_HTML_CDATA) == 0) {
+          matchlen = scan_html_cdata(&subj->input, subj->pos + 2);
+          if (matchlen > 0) {
+            // The regex doesn't require the final "]]>". But if we're not at
+            // the end of input, it must come after the match. Otherwise,
+            // disable subsequent scans to avoid quadratic behavior.
+            matchlen += 5; // prefix "![", suffix "]]>"
+            if (subj->pos + matchlen > subj->input.len) {
+              subj->flags |= FLAG_SKIP_HTML_CDATA;
+              matchlen = 0;
+            }
+          }
+        }
+      } else if ((subj->flags & FLAG_SKIP_HTML_DECLARATION) == 0) {
+        matchlen = scan_html_declaration(&subj->input, subj->pos + 1);
+        if (matchlen > 0) {
+          matchlen += 2; // prefix "!", suffix ">"
+          if (subj->pos + matchlen > subj->input.len) {
+            subj->flags |= FLAG_SKIP_HTML_DECLARATION;
+            matchlen = 0;
+          }
+        }
+      }
+    } else if (c == '?') {
+      if ((subj->flags & FLAG_SKIP_HTML_PI) == 0) {
+        // Note that we allow an empty match.
+        matchlen = scan_html_pi(&subj->input, subj->pos + 1);
+        matchlen += 3; // prefix "?", suffix "?>"
+        if (subj->pos + matchlen > subj->input.len) {
+          subj->flags |= FLAG_SKIP_HTML_PI;
+          matchlen = 0;
+        }
+      }
+    } else {
+      matchlen = scan_html_tag(&subj->input, subj->pos);
+    }
+  }
   if (matchlen > 0) {
     contents = cmark_chunk_dup(&subj->input, subj->pos - 1, matchlen + 1);
     subj->pos += matchlen;
@@ -1065,16 +1157,16 @@ static cmark_node *handle_close_bracket(
     return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("]"));
   }
 
-  if (!opener->active) {
+  // If we got here, we matched a potential link/image text.
+  // Now we check to see if it's a link/image.
+  is_image = opener->image;
+
+  if (!is_image && subj->no_link_openers) {
     // take delimiter off stack
     pop_bracket(subj);
     return make_str(subj, subj->pos - 1, subj->pos - 1, cmark_chunk_literal("]"));
   }
 
-  // If we got here, we matched a potential link/image text.
-  // Now we check to see if it's a link/image.
-  is_image = opener->image;
-
   after_link_text_pos = subj->pos;
 
   // First, look for an inline link.
@@ -1193,7 +1285,7 @@ noMatch:
       // being replacing the opening '[' text node with a `^footnote-ref]` node.
       cmark_node_insert_before(opener->inl_text, fnref);
 
-      process_emphasis(parser, subj, opener->previous_delimiter);
+      process_emphasis(parser, subj, opener->position);
       // sometimes, the footnote reference text gets parsed into multiple nodes
       // i.e. '[^example]' parsed into '[', '^exam', 'ple]'.
       // this happens for ex with the autolink extension. when the autolinker
@@ -1238,42 +1330,22 @@ match:
   tmp = opener->inl_text->next;
   while (tmp) {
     tmpnext = tmp->next;
-    cmark_node_append_child(inl, tmp);
+    cmark_node_unlink(tmp);
+    append_child(inl, tmp);
     tmp = tmpnext;
   }
 
   // Free the bracket [:
   cmark_node_free(opener->inl_text);
 
-  process_emphasis(parser, subj, opener->previous_delimiter);
+  process_emphasis(parser, subj, opener->position);
   pop_bracket(subj);
 
-  // Now, if we have a link, we also want to deactivate earlier link
-  // delimiters. (This code can be removed if we decide to allow links
+  // Now, if we have a link, we also want to deactivate links until
+  // we get a new opener. (This code can be removed if we decide to allow links
   // inside links.)
   if (!is_image) {
-    opener = subj->last_bracket;
-    while (opener != NULL) {
-      if (!opener->image) {
-        if (!opener->active) {
-          break;
-        } else {
-          opener->active = false;
-        }
-      }
-      opener = opener->previous;
-    }
-    bool in_bracket_image1 = false;
-    if (opener) {
-      in_bracket_image1 = opener->in_bracket_image1;
-    }
-    bracket *opener2 = subj->last_bracket;
-    while (opener2 != opener) {
-      if (opener2->image) {
-        opener2->in_bracket_image1 = in_bracket_image1;
-      }
-      opener2 = opener2->previous;
-    }
+    subj->no_link_openers = true;
   }
 
   return NULL;
@@ -1451,7 +1523,7 @@ static int parse_inline(cmark_parser *pa
     new_inl = make_str(subj, startpos, endpos - 1, contents);
   }
   if (new_inl != NULL) {
-    cmark_node_append_child(parent, new_inl);
+    append_child(parent, new_inl);
   }
 
   return 1;
@@ -1470,7 +1542,7 @@ void cmark_parse_inlines(cmark_parser *p
   while (!is_eof(&subj) && parse_inline(parser, &subj, parent, options))
     ;
 
-  process_emphasis(parser, &subj, NULL);
+  process_emphasis(parser, &subj, 0);
   // free bracket and delim stack
   while (subj.last_delim) {
     remove_delimiter(&subj, subj.last_delim);
Index: cmarkgfm-2022.10.27/third_party/cmark/src/latex.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/latex.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/latex.c
@@ -385,10 +385,12 @@ static int S_render_node(cmark_renderer
     break;
 
   case CMARK_NODE_STRONG:
-    if (entering) {
-      LIT("\\textbf{");
-    } else {
-      LIT("}");
+    if (node->parent == NULL || node->parent->type != CMARK_NODE_STRONG) {
+      if (entering) {
+        LIT("\\textbf{");
+      } else {
+        LIT("}");
+      }
     }
     break;
 
Index: cmarkgfm-2022.10.27/third_party/cmark/src/man.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/man.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/man.c
@@ -74,7 +74,6 @@ static void S_outc(cmark_renderer *rende
 
 static int S_render_node(cmark_renderer *renderer, cmark_node *node,
                          cmark_event_type ev_type, int options) {
-  cmark_node *tmp;
   int list_number;
   bool entering = (ev_type == CMARK_EVENT_ENTER);
   bool allow_wrap = renderer->width > 0 && !(CMARK_OPT_NOBREAKS & options);
@@ -123,12 +122,7 @@ static int S_render_node(cmark_renderer
       if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {
         LIT("\\[bu] 2");
       } else {
-        list_number = cmark_node_get_list_start(node->parent);
-        tmp = node;
-        while (tmp->prev) {
-          tmp = tmp->prev;
-          list_number += 1;
-        }
+        list_number = cmark_node_get_item_index(node);
         char list_number_s[LIST_NUMBER_SIZE];
         snprintf(list_number_s, LIST_NUMBER_SIZE, "\"%d.\" 4", list_number);
         LIT(list_number_s);
@@ -225,10 +219,12 @@ static int S_render_node(cmark_renderer
     break;
 
   case CMARK_NODE_STRONG:
-    if (entering) {
-      LIT("\\f[B]");
-    } else {
-      LIT("\\f[]");
+    if (node->parent == NULL || node->parent->type != CMARK_NODE_STRONG) {
+      if (entering) {
+        LIT("\\f[B]");
+      } else {
+        LIT("\\f[]");
+      }
     }
     break;
 
Index: cmarkgfm-2022.10.27/third_party/cmark/src/map.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/map.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/map.c
@@ -51,7 +51,7 @@ refsearch(const void *label, const void
 }
 
 static void sort_map(cmark_map *map) {
-  unsigned int i = 0, last = 0, size = map->size;
+  size_t i = 0, last = 0, size = map->size;
   cmark_map_entry *r = map->refs, **sorted = NULL;
 
   sorted = (cmark_map_entry **)map->mem->calloc(size, sizeof(cmark_map_entry *));
@@ -73,6 +73,7 @@ static void sort_map(cmark_map *map) {
 
 cmark_map_entry *cmark_map_lookup(cmark_map *map, cmark_chunk *label) {
   cmark_map_entry **ref = NULL;
+  cmark_map_entry *r = NULL;
   unsigned char *norm;
 
   if (label->len < 1 || label->len > MAX_LINK_LABEL_LENGTH)
@@ -91,10 +92,15 @@ cmark_map_entry *cmark_map_lookup(cmark_
   ref = (cmark_map_entry **)bsearch(norm, map->sorted, map->size, sizeof(cmark_map_entry *), refsearch);
   map->mem->free(norm);
 
-  if (!ref)
-    return NULL;
+  if (ref != NULL) {
+    r = ref[0];
+    /* Check for expansion limit */
+    if (r->size > map->max_ref_size - map->ref_size)
+      return NULL;
+    map->ref_size += r->size;
+  }
 
-  return ref[0];
+  return r;
 }
 
 void cmark_map_free(cmark_map *map) {
@@ -118,5 +124,6 @@ cmark_map *cmark_map_new(cmark_mem *mem,
   cmark_map *map = (cmark_map *)mem->calloc(1, sizeof(cmark_map));
   map->mem = mem;
   map->free = free;
+  map->max_ref_size = UINT_MAX;
   return map;
 }
Index: cmarkgfm-2022.10.27/third_party/cmark/src/map.h
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/map.h
+++ cmarkgfm-2022.10.27/third_party/cmark/src/map.h
@@ -10,7 +10,8 @@ extern "C" {
 struct cmark_map_entry {
   struct cmark_map_entry *next;
   unsigned char *label;
-  unsigned int age;
+  size_t age;
+  size_t size;
 };
 
 typedef struct cmark_map_entry cmark_map_entry;
@@ -23,7 +24,9 @@ struct cmark_map {
   cmark_mem *mem;
   cmark_map_entry *refs;
   cmark_map_entry **sorted;
-  unsigned int size;
+  size_t size;
+  size_t ref_size;
+  size_t max_ref_size;
   cmark_map_free_f free;
 };
 
Index: cmarkgfm-2022.10.27/third_party/cmark/src/node.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/node.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/node.c
@@ -5,10 +5,42 @@
 #include "node.h"
 #include "syntax_extension.h"
 
+/**
+ * Expensive safety checks are off by default, but can be enabled
+ * by calling cmark_enable_safety_checks().
+ */
+static bool enable_safety_checks = false;
+
+void cmark_enable_safety_checks(bool enable) {
+  enable_safety_checks = enable;
+}
+
 static void S_node_unlink(cmark_node *node);
 
 #define NODE_MEM(node) cmark_node_mem(node)
 
+void cmark_register_node_flag(cmark_node_internal_flags *flags) {
+  static cmark_node_internal_flags nextflag = CMARK_NODE__REGISTER_FIRST;
+
+  // flags should be a pointer to a global variable and this function
+  // should only be called once to initialize its value.
+  if (*flags) {
+    fprintf(stderr, "flag initialization error in cmark_register_node_flag\n");
+    abort();
+  }
+
+  // Check that we haven't run out of bits.
+  if (nextflag == 0) {
+    fprintf(stderr, "too many flags in cmark_register_node_flag\n");
+    abort();
+  }
+
+  *flags = nextflag;
+  nextflag <<= 1;
+}
+
+void cmark_init_standard_node_flags(void) {}
+
 bool cmark_node_can_contain_type(cmark_node *node, cmark_node_type child_type) {
   if (child_type == CMARK_NODE_DOCUMENT) {
       return false;
@@ -48,8 +80,6 @@ bool cmark_node_can_contain_type(cmark_n
 }
 
 static bool S_can_contain(cmark_node *node, cmark_node *child) {
-  cmark_node *cur;
-
   if (node == NULL || child == NULL) {
     return false;
   }
@@ -57,14 +87,16 @@ static bool S_can_contain(cmark_node *no
     return 0;
   }
 
-  // Verify that child is not an ancestor of node or equal to node.
-  cur = node;
-  do {
-    if (cur == child) {
-      return false;
-    }
-    cur = cur->parent;
-  } while (cur != NULL);
+  if (enable_safety_checks) {
+    // Verify that child is not an ancestor of node or equal to node.
+    cmark_node *cur = node;
+    do {
+      if (cur == child) {
+        return false;
+      }
+      cur = cur->parent;
+    } while (cur != NULL);
+  }
 
   return cmark_node_can_contain_type(node, (cmark_node_type) child->type);
 }
@@ -301,6 +333,14 @@ cmark_node *cmark_node_last_child(cmark_
   }
 }
 
+cmark_node *cmark_node_parent_footnote_def(cmark_node *node) {
+  if (node == NULL) {
+    return NULL;
+  } else {
+    return node->parent_footnote_def;
+  }
+}
+
 void *cmark_node_get_user_data(cmark_node *node) {
   if (node == NULL) {
     return NULL;
@@ -337,6 +377,7 @@ const char *cmark_node_get_literal(cmark
   case CMARK_NODE_HTML_INLINE:
   case CMARK_NODE_CODE:
   case CMARK_NODE_FOOTNOTE_REFERENCE:
+  case CMARK_NODE_FOOTNOTE_DEFINITION:
     return cmark_chunk_to_cstr(NODE_MEM(node), &node->as.literal);
 
   case CMARK_NODE_CODE_BLOCK:
@@ -521,6 +562,31 @@ int cmark_node_set_list_tight(cmark_node
     return 1;
   } else {
     return 0;
+  }
+}
+
+int cmark_node_get_item_index(cmark_node *node) {
+  if (node == NULL) {
+    return 0;
+  }
+
+  if (node->type == CMARK_NODE_ITEM) {
+    return node->as.list.start;
+  } else {
+    return 0;
+  }
+}
+
+int cmark_node_set_item_index(cmark_node *node, int idx) {
+  if (node == NULL || idx < 0) {
+    return 0;
+  }
+
+  if (node->type == CMARK_NODE_ITEM) {
+    node->as.list.start = idx;
+    return 1;
+  } else {
+    return 0;
   }
 }
 
Index: cmarkgfm-2022.10.27/third_party/cmark/src/node.h
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/node.h
+++ cmarkgfm-2022.10.27/third_party/cmark/src/node.h
@@ -52,8 +52,14 @@ enum cmark_node__internal_flags {
   CMARK_NODE__OPEN = (1 << 0),
   CMARK_NODE__LAST_LINE_BLANK = (1 << 1),
   CMARK_NODE__LAST_LINE_CHECKED = (1 << 2),
+
+  // Extensions can register custom flags by calling `cmark_register_node_flag`.
+  // This is the starting value for the custom flags.
+  CMARK_NODE__REGISTER_FIRST = (1 << 3),
 };
 
+typedef uint16_t cmark_node_internal_flags;
+
 struct cmark_node {
   cmark_strbuf content;
 
@@ -72,10 +78,18 @@ struct cmark_node {
   int end_column;
   int internal_offset;
   uint16_t type;
-  uint16_t flags;
+  cmark_node_internal_flags flags;
 
   cmark_syntax_extension *extension;
 
+  /**
+   * Used during cmark_render() to cache the most recent non-NULL
+   * extension, if you go up the parent chain like this:
+   *
+   * node->parent->...parent->extension
+   */
+  cmark_syntax_extension *ancestor_extension;
+
   union {
     int ref_ix;
     int def_count;
@@ -91,10 +105,31 @@ struct cmark_node {
     cmark_link link;
     cmark_custom custom;
     int html_block_type;
+    int cell_index; // For keeping track of TABLE_CELL table alignments
     void *opaque;
   } as;
 };
 
+/**
+ * Syntax extensions can use this function to register a custom node
+ * flag. The flags are stored in the `flags` field of the `cmark_node`
+ * struct. The `flags` parameter should be the address of a global variable
+ * which will store the flag value.
+ */
+CMARK_GFM_EXPORT
+void cmark_register_node_flag(cmark_node_internal_flags *flags);
+
+/**
+ * DEPRECATED.
+ *
+ * This function was added in cmark-gfm version 0.29.0.gfm.7, and was
+ * required to be called at program start time, which caused
+ * backwards-compatibility issues in applications that use cmark-gfm as a
+ * library. It is now a no-op.
+ */
+CMARK_GFM_EXPORT
+void cmark_init_standard_node_flags(void);
+
 static CMARK_INLINE cmark_mem *cmark_node_mem(cmark_node *node) {
   return node->content.mem;
 }
@@ -118,6 +153,13 @@ static CMARK_INLINE bool CMARK_NODE_INLI
 
 CMARK_GFM_EXPORT bool cmark_node_can_contain_type(cmark_node *node, cmark_node_type child_type);
 
+/**
+ * Enable (or disable) extra safety checks. These extra checks cause
+ * extra performance overhead (in some cases quadratic), so they are only
+ * intended to be used during testing.
+ */
+CMARK_GFM_EXPORT void cmark_enable_safety_checks(bool enable);
+
 #ifdef __cplusplus
 }
 #endif
Index: cmarkgfm-2022.10.27/third_party/cmark/src/parser.h
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/parser.h
+++ cmarkgfm-2022.10.27/third_party/cmark/src/parser.h
@@ -46,6 +46,7 @@ struct cmark_parser {
   /* Options set by the user, see the Options section in cmark.h */
   int options;
   bool last_buffer_ended_with_cr;
+  size_t total_size;
   cmark_llist *syntax_extensions;
   cmark_llist *inline_syntax_extensions;
   cmark_ispunct_func backslash_ispunct;
Index: cmarkgfm-2022.10.27/third_party/cmark/src/plaintext.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/plaintext.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/plaintext.c
@@ -16,23 +16,8 @@ static CMARK_INLINE void outc(cmark_rend
   cmark_render_code_point(renderer, c);
 }
 
-// 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) {
-    if (CMARK_NODE_BLOCK_P(node)) {
-      return node;
-    } else {
-      node = node->parent;
-    }
-  }
-  return NULL;
-}
-
 static int S_render_node(cmark_renderer *renderer, cmark_node *node,
                          cmark_event_type ev_type, int options) {
-  cmark_node *tmp;
   int list_number;
   cmark_delim_type list_delim;
   int i;
@@ -46,14 +31,17 @@ static int S_render_node(cmark_renderer
   // Don't adjust tight list status til we've started the list.
   // Otherwise we loose the blank line between a paragraph and
   // a following list.
-  if (!(node->type == CMARK_NODE_ITEM && node->prev == NULL && entering)) {
-    tmp = get_containing_block(node);
-    renderer->in_tight_list_item =
-        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)));
+  if (entering) {
+    if (node->parent && node->parent->type == CMARK_NODE_ITEM) {
+      renderer->in_tight_list_item = node->parent->parent->as.list.tight;
+    }
+  } else {
+    if (node->type == CMARK_NODE_LIST) {
+      renderer->in_tight_list_item =
+        node->parent &&
+        node->parent->type == CMARK_NODE_ITEM &&
+        node->parent->parent->as.list.tight;
+    }
   }
 
   if (node->extension && node->extension->plaintext_render_func) {
@@ -79,13 +67,8 @@ static int S_render_node(cmark_renderer
     if (cmark_node_get_list_type(node->parent) == CMARK_BULLET_LIST) {
       marker_width = 4;
     } else {
-      list_number = cmark_node_get_list_start(node->parent);
+      list_number = cmark_node_get_item_index(node);
       list_delim = cmark_node_get_list_delim(node->parent);
-      tmp = node;
-      while (tmp->prev) {
-        tmp = tmp->prev;
-        list_number += 1;
-      }
       // we ensure a width of at least 4 so
       // we get nice transition from single digits
       // to double
Index: cmarkgfm-2022.10.27/third_party/cmark/src/references.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/references.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/references.c
@@ -32,6 +32,7 @@ void cmark_reference_create(cmark_map *m
   ref->title = cmark_clean_title(map->mem, title);
   ref->entry.age = map->size;
   ref->entry.next = map->refs;
+  ref->entry.size = ref->url.len + ref->title.len;
 
   map->refs = (cmark_map_entry *)ref;
   map->size++;
Index: cmarkgfm-2022.10.27/third_party/cmark/src/render.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/render.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/render.c
@@ -31,13 +31,7 @@ static void S_out(cmark_renderer *render
   cmark_chunk remainder = cmark_chunk_literal("");
   int k = renderer->buffer->size - 1;
 
-  cmark_syntax_extension *ext = NULL;
-  cmark_node *n = node;
-  while (n && !ext) {
-    ext = n->extension;
-    if (!ext)
-      n = n->parent;
-  }
+  cmark_syntax_extension *ext = node->ancestor_extension;
   if (ext && !ext->commonmark_escape_func)
     ext = NULL;
 
@@ -182,6 +176,20 @@ char *cmark_render(cmark_mem *mem, cmark
 
   while ((ev_type = cmark_iter_next(iter)) != CMARK_EVENT_DONE) {
     cur = cmark_iter_get_node(iter);
+    if (cur->extension) {
+      cur->ancestor_extension = cur->extension;
+    } else if (cur->parent) {
+      cur->ancestor_extension = cur->parent->ancestor_extension;
+    }
+    if (cur->type == CMARK_NODE_ITEM) {
+      // Calculate the list item's index, for the benefit of output formats
+      // like commonmark and plaintext.
+      if (cur->prev) {
+        cmark_node_set_item_index(cur, 1 + cmark_node_get_item_index(cur->prev));
+      } else {
+        cmark_node_set_item_index(cur, cmark_node_get_list_start(cur->parent));
+      }
+    }
     if (!render_node(&renderer, cur, ev_type, options)) {
       // a false value causes us to skip processing
       // the node's contents.  this is used for
Index: cmarkgfm-2022.10.27/third_party/cmark/src/scanners.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/scanners.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/scanners.c
@@ -1,10508 +1,14056 @@
-/* Generated by re2c 1.3 */
-#include <stdlib.h>
-#include "chunk.h"
+/* Generated by re2c 3.0 */
 #include "scanners.h"
+#include "chunk.h"
+#include <stdlib.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;
-        }
+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;
+  return res;
 }
 
-
-
 // Try to match a scheme including colon.
-bufsize_t _scan_scheme(const unsigned char *p)
-{
+bufsize_t _scan_scheme(const unsigned char *p) {
   const unsigned char *marker = NULL;
   const unsigned char *start = p;
 
-{
-	unsigned char yych;
-	yych = *p;
-	if (yych <= '@') goto yy2;
-	if (yych <= 'Z') goto yy4;
-	if (yych <= '`') goto yy2;
-	if (yych <= 'z') goto yy4;
-yy2:
-	++p;
-yy3:
-	{ return 0; }
-yy4:
-	yych = *(marker = ++p);
-	if (yych <= '/') {
-		if (yych <= '+') {
-			if (yych <= '*') goto yy3;
-		} else {
-			if (yych <= ',') goto yy3;
-			if (yych >= '/') goto yy3;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '9') goto yy5;
-			if (yych <= '@') goto yy3;
-		} else {
-			if (yych <= '`') goto yy3;
-			if (yych >= '{') goto yy3;
-		}
-	}
-yy5:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych == '+') goto yy7;
-		} else {
-			if (yych != '/') goto yy7;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			if (yych >= 'A') goto yy7;
-		} else {
-			if (yych <= '`') goto yy6;
-			if (yych <= 'z') goto yy7;
-		}
-	}
-yy6:
-	p = marker;
-	goto yy3;
-yy7:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych == '+') goto yy10;
-			goto yy6;
-		} else {
-			if (yych == '/') goto yy6;
-			goto yy10;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			if (yych <= '@') goto yy6;
-			goto yy10;
-		} else {
-			if (yych <= '`') goto yy6;
-			if (yych <= 'z') goto yy10;
-			goto yy6;
-		}
-	}
-yy8:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy10:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy6;
-		} else {
-			if (yych == '/') goto yy6;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			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;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy8;
-			if (yych <= '@') goto yy6;
-		} else {
-			if (yych <= '`') goto yy6;
-			if (yych >= '{') goto yy6;
-		}
-	}
-	yych = *++p;
-	if (yych == ':') goto yy8;
-	goto yy6;
-}
-
+  {
+    unsigned char yych;
+    yych = *p;
+    if (yych <= '@')
+      goto yy1;
+    if (yych <= 'Z')
+      goto yy3;
+    if (yych <= '`')
+      goto yy1;
+    if (yych <= 'z')
+      goto yy3;
+  yy1:
+    ++p;
+  yy2 : { return 0; }
+  yy3:
+    yych = *(marker = ++p);
+    if (yych <= '/') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy2;
+      } else {
+        if (yych <= ',')
+          goto yy2;
+        if (yych >= '/')
+          goto yy2;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '9')
+          goto yy4;
+        if (yych <= '@')
+          goto yy2;
+      } else {
+        if (yych <= '`')
+          goto yy2;
+        if (yych >= '{')
+          goto yy2;
+      }
+    }
+  yy4:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych == '+')
+          goto yy6;
+      } else {
+        if (yych != '/')
+          goto yy6;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych >= 'A')
+          goto yy6;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych <= 'z')
+          goto yy6;
+      }
+    }
+  yy5:
+    p = marker;
+    goto yy2;
+  yy6:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych == '+')
+          goto yy8;
+        goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+        goto yy8;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+        goto yy8;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych <= 'z')
+          goto yy8;
+        goto yy5;
+      }
+    }
+  yy7:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy8:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy5;
+      } else {
+        if (yych == '/')
+          goto yy5;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy7;
+        if (yych <= '@')
+          goto yy5;
+      } else {
+        if (yych <= '`')
+          goto yy5;
+        if (yych >= '{')
+          goto yy5;
+      }
+    }
+    yych = *++p;
+    if (yych == ':')
+      goto yy7;
+    goto yy5;
+  }
 }
 
 // Try to match URI autolink after first <, returning number of chars matched.
-bufsize_t _scan_autolink_uri(const unsigned char *p)
-{
+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 = *p;
-	if (yych <= '@') goto yy41;
-	if (yych <= 'Z') goto yy43;
-	if (yych <= '`') goto yy41;
-	if (yych <= 'z') goto yy43;
-yy41:
-	++p;
-yy42:
-	{ return 0; }
-yy43:
-	yych = *(marker = ++p);
-	if (yych <= '/') {
-		if (yych <= '+') {
-			if (yych <= '*') goto yy42;
-		} else {
-			if (yych <= ',') goto yy42;
-			if (yych >= '/') goto yy42;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '9') goto yy44;
-			if (yych <= '@') goto yy42;
-		} else {
-			if (yych <= '`') goto yy42;
-			if (yych >= '{') goto yy42;
-		}
-	}
-yy44:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych == '+') goto yy46;
-		} else {
-			if (yych != '/') goto yy46;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych >= 'A') goto yy46;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych <= 'z') goto yy46;
-		}
-	}
-yy45:
-	p = marker;
-	goto yy42;
-yy46:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych == '+') goto yy49;
-			goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-			goto yy49;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-			goto yy49;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych <= 'z') goto yy49;
-			goto yy45;
-		}
-	}
-yy47:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy47;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '<') goto yy45;
-			if (yych <= '>') goto yy50;
-			goto yy45;
-		} else {
-			if (yych <= 0xDF) goto yy52;
-			if (yych <= 0xE0) goto yy53;
-			goto yy54;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy55;
-			if (yych <= 0xEF) goto yy54;
-			goto yy56;
-		} else {
-			if (yych <= 0xF3) goto yy57;
-			if (yych <= 0xF4) goto yy58;
-			goto yy45;
-		}
-	}
-yy49:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych == '+') goto yy59;
-			goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-			goto yy59;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-			goto yy59;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych <= 'z') goto yy59;
-			goto yy45;
-		}
-	}
-yy50:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy52:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy45;
-	if (yych <= 0xBF) goto yy47;
-	goto yy45;
-yy53:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy45;
-	if (yych <= 0xBF) goto yy52;
-	goto yy45;
-yy54:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy45;
-	if (yych <= 0xBF) goto yy52;
-	goto yy45;
-yy55:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy45;
-	if (yych <= 0x9F) goto yy52;
-	goto yy45;
-yy56:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy45;
-	if (yych <= 0xBF) goto yy54;
-	goto yy45;
-yy57:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy45;
-	if (yych <= 0xBF) goto yy54;
-	goto yy45;
-yy58:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy45;
-	if (yych <= 0x8F) goto yy54;
-	goto yy45;
-yy59:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych <= ',') {
-			if (yych != '+') goto yy45;
-		} else {
-			if (yych == '/') goto yy45;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= ':') goto yy47;
-			if (yych <= '@') goto yy45;
-		} else {
-			if (yych <= '`') goto yy45;
-			if (yych >= '{') goto yy45;
-		}
-	}
-	yych = *++p;
-	if (yych == ':') goto yy47;
-	goto yy45;
-}
-
+  {
+    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 = *p;
+    if (yych <= '@')
+      goto yy10;
+    if (yych <= 'Z')
+      goto yy12;
+    if (yych <= '`')
+      goto yy10;
+    if (yych <= 'z')
+      goto yy12;
+  yy10:
+    ++p;
+  yy11 : { return 0; }
+  yy12:
+    yych = *(marker = ++p);
+    if (yych <= '/') {
+      if (yych <= '+') {
+        if (yych <= '*')
+          goto yy11;
+      } else {
+        if (yych <= ',')
+          goto yy11;
+        if (yych >= '/')
+          goto yy11;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '9')
+          goto yy13;
+        if (yych <= '@')
+          goto yy11;
+      } else {
+        if (yych <= '`')
+          goto yy11;
+        if (yych >= '{')
+          goto yy11;
+      }
+    }
+  yy13:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych == '+')
+          goto yy15;
+      } else {
+        if (yych != '/')
+          goto yy15;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych >= 'A')
+          goto yy15;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych <= 'z')
+          goto yy15;
+      }
+    }
+  yy14:
+    p = marker;
+    goto yy11;
+  yy15:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych == '+')
+          goto yy17;
+        goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+        goto yy17;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+        goto yy17;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych <= 'z')
+          goto yy17;
+        goto yy14;
+      }
+    }
+  yy16:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy16;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '<')
+          goto yy14;
+        if (yych <= '>')
+          goto yy18;
+        goto yy14;
+      } else {
+        if (yych <= 0xDF)
+          goto yy19;
+        if (yych <= 0xE0)
+          goto yy20;
+        goto yy21;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy22;
+        if (yych <= 0xEF)
+          goto yy21;
+        goto yy23;
+      } else {
+        if (yych <= 0xF3)
+          goto yy24;
+        if (yych <= 0xF4)
+          goto yy25;
+        goto yy14;
+      }
+    }
+  yy17:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych == '+')
+          goto yy26;
+        goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+        goto yy26;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+        goto yy26;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych <= 'z')
+          goto yy26;
+        goto yy14;
+      }
+    }
+  yy18:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy19:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy14;
+    if (yych <= 0xBF)
+      goto yy16;
+    goto yy14;
+  yy20:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy14;
+    if (yych <= 0xBF)
+      goto yy19;
+    goto yy14;
+  yy21:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy14;
+    if (yych <= 0xBF)
+      goto yy19;
+    goto yy14;
+  yy22:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy14;
+    if (yych <= 0x9F)
+      goto yy19;
+    goto yy14;
+  yy23:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy14;
+    if (yych <= 0xBF)
+      goto yy21;
+    goto yy14;
+  yy24:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy14;
+    if (yych <= 0xBF)
+      goto yy21;
+    goto yy14;
+  yy25:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy14;
+    if (yych <= 0x8F)
+      goto yy21;
+    goto yy14;
+  yy26:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych <= ',') {
+        if (yych != '+')
+          goto yy14;
+      } else {
+        if (yych == '/')
+          goto yy14;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= ':')
+          goto yy16;
+        if (yych <= '@')
+          goto yy14;
+      } else {
+        if (yych <= '`')
+          goto yy14;
+        if (yych >= '{')
+          goto yy14;
+      }
+    }
+    yych = *++p;
+    if (yych == ':')
+      goto yy16;
+    goto yy14;
+  }
 }
 
 // Try to match email autolink after first <, returning num of chars matched.
-bufsize_t _scan_autolink_email(const unsigned char *p)
-{
+bufsize_t _scan_autolink_email(const unsigned char *p) {
   const unsigned char *marker = NULL;
   const unsigned char *start = p;
 
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0, 128,   0, 128, 128, 128, 128, 128, 
-		  0,   0, 128, 128,   0, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128,   0,   0,   0, 128,   0, 128, 
-		  0, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128,   0,   0,   0, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych <= '9') {
-		if (yych <= '\'') {
-			if (yych == '!') goto yy91;
-			if (yych >= '#') goto yy91;
-		} else {
-			if (yych <= ')') goto yy89;
-			if (yych != ',') goto yy91;
-		}
-	} else {
-		if (yych <= '?') {
-			if (yych == '=') goto yy91;
-			if (yych >= '?') goto yy91;
-		} else {
-			if (yych <= 'Z') {
-				if (yych >= 'A') goto yy91;
-			} else {
-				if (yych <= ']') goto yy89;
-				if (yych <= '~') goto yy91;
-			}
-		}
-	}
-yy89:
-	++p;
-yy90:
-	{ return 0; }
-yy91:
-	yych = *(marker = ++p);
-	if (yych <= ',') {
-		if (yych <= '"') {
-			if (yych == '!') goto yy93;
-			goto yy90;
-		} else {
-			if (yych <= '\'') goto yy93;
-			if (yych <= ')') goto yy90;
-			if (yych <= '+') goto yy93;
-			goto yy90;
-		}
-	} else {
-		if (yych <= '>') {
-			if (yych <= '9') goto yy93;
-			if (yych == '=') goto yy93;
-			goto yy90;
-		} else {
-			if (yych <= 'Z') goto yy93;
-			if (yych <= ']') goto yy90;
-			if (yych <= '~') goto yy93;
-			goto yy90;
-		}
-	}
-yy92:
-	yych = *++p;
-yy93:
-	if (yybm[0+yych] & 128) {
-		goto yy92;
-	}
-	if (yych <= '>') goto yy94;
-	if (yych <= '@') goto yy95;
-yy94:
-	p = marker;
-	goto yy90;
-yy95:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy94;
-		if (yych >= ':') goto yy94;
-	} else {
-		if (yych <= 'Z') goto yy96;
-		if (yych <= '`') goto yy94;
-		if (yych >= '{') goto yy94;
-	}
-yy96:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy98;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy98;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy98;
-			goto yy94;
-		}
-	}
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy101;
-		if (yych <= '/') goto yy94;
-		goto yy102;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy102;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy102;
-			goto yy94;
-		}
-	}
-yy98:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych <= '-') goto yy101;
-			goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy102;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy102;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy102;
-			goto yy94;
-		}
-	}
-yy99:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy101:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy103;
-		if (yych <= '/') goto yy94;
-		goto yy104;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy104;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy104;
-			goto yy94;
-		}
-	}
-yy102:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy104;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy104;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy104;
-			goto yy94;
-		}
-	}
-yy103:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy105;
-		if (yych <= '/') goto yy94;
-		goto yy106;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy106;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy106;
-			goto yy94;
-		}
-	}
-yy104:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy106;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy106;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy106;
-			goto yy94;
-		}
-	}
-yy105:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy107;
-		if (yych <= '/') goto yy94;
-		goto yy108;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy108;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy108;
-			goto yy94;
-		}
-	}
-yy106:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy108;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy108;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy108;
-			goto yy94;
-		}
-	}
-yy107:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy109;
-		if (yych <= '/') goto yy94;
-		goto yy110;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy110;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy110;
-			goto yy94;
-		}
-	}
-yy108:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy110;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy110;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy110;
-			goto yy94;
-		}
-	}
-yy109:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy111;
-		if (yych <= '/') goto yy94;
-		goto yy112;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy112;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy112;
-			goto yy94;
-		}
-	}
-yy110:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy112;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy112;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy112;
-			goto yy94;
-		}
-	}
-yy111:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy113;
-		if (yych <= '/') goto yy94;
-		goto yy114;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy114;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy114;
-			goto yy94;
-		}
-	}
-yy112:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy114;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy114;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy114;
-			goto yy94;
-		}
-	}
-yy113:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy115;
-		if (yych <= '/') goto yy94;
-		goto yy116;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy116;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy116;
-			goto yy94;
-		}
-	}
-yy114:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy116;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy116;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy116;
-			goto yy94;
-		}
-	}
-yy115:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy117;
-		if (yych <= '/') goto yy94;
-		goto yy118;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy118;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy118;
-			goto yy94;
-		}
-	}
-yy116:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy118;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy118;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy118;
-			goto yy94;
-		}
-	}
-yy117:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy119;
-		if (yych <= '/') goto yy94;
-		goto yy120;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy120;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy120;
-			goto yy94;
-		}
-	}
-yy118:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy120;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy120;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy120;
-			goto yy94;
-		}
-	}
-yy119:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy121;
-		if (yych <= '/') goto yy94;
-		goto yy122;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy122;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy122;
-			goto yy94;
-		}
-	}
-yy120:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy122;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy122;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy122;
-			goto yy94;
-		}
-	}
-yy121:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy123;
-		if (yych <= '/') goto yy94;
-		goto yy124;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy124;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy124;
-			goto yy94;
-		}
-	}
-yy122:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy124;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy124;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy124;
-			goto yy94;
-		}
-	}
-yy123:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy125;
-		if (yych <= '/') goto yy94;
-		goto yy126;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy126;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy126;
-			goto yy94;
-		}
-	}
-yy124:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy126;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy126;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy126;
-			goto yy94;
-		}
-	}
-yy125:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy127;
-		if (yych <= '/') goto yy94;
-		goto yy128;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy128;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy128;
-			goto yy94;
-		}
-	}
-yy126:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy128;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy128;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy128;
-			goto yy94;
-		}
-	}
-yy127:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy129;
-		if (yych <= '/') goto yy94;
-		goto yy130;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy130;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy130;
-			goto yy94;
-		}
-	}
-yy128:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy130;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy130;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy130;
-			goto yy94;
-		}
-	}
-yy129:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy131;
-		if (yych <= '/') goto yy94;
-		goto yy132;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy132;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy132;
-			goto yy94;
-		}
-	}
-yy130:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy132;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy132;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy132;
-			goto yy94;
-		}
-	}
-yy131:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy133;
-		if (yych <= '/') goto yy94;
-		goto yy134;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy134;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy134;
-			goto yy94;
-		}
-	}
-yy132:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy134;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy134;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy134;
-			goto yy94;
-		}
-	}
-yy133:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy135;
-		if (yych <= '/') goto yy94;
-		goto yy136;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy136;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy136;
-			goto yy94;
-		}
-	}
-yy134:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy136;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy136;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy136;
-			goto yy94;
-		}
-	}
-yy135:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy137;
-		if (yych <= '/') goto yy94;
-		goto yy138;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy138;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy138;
-			goto yy94;
-		}
-	}
-yy136:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy138;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy138;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy138;
-			goto yy94;
-		}
-	}
-yy137:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy139;
-		if (yych <= '/') goto yy94;
-		goto yy140;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy140;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy140;
-			goto yy94;
-		}
-	}
-yy138:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy140;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy140;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy140;
-			goto yy94;
-		}
-	}
-yy139:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy141;
-		if (yych <= '/') goto yy94;
-		goto yy142;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy142;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy142;
-			goto yy94;
-		}
-	}
-yy140:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy142;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy142;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy142;
-			goto yy94;
-		}
-	}
-yy141:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy143;
-		if (yych <= '/') goto yy94;
-		goto yy144;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy144;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy144;
-			goto yy94;
-		}
-	}
-yy142:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy144;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy144;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy144;
-			goto yy94;
-		}
-	}
-yy143:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy145;
-		if (yych <= '/') goto yy94;
-		goto yy146;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy146;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy146;
-			goto yy94;
-		}
-	}
-yy144:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy146;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy146;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy146;
-			goto yy94;
-		}
-	}
-yy145:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy147;
-		if (yych <= '/') goto yy94;
-		goto yy148;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy148;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy148;
-			goto yy94;
-		}
-	}
-yy146:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy148;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy148;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy148;
-			goto yy94;
-		}
-	}
-yy147:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy149;
-		if (yych <= '/') goto yy94;
-		goto yy150;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy150;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy150;
-			goto yy94;
-		}
-	}
-yy148:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy150;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy150;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy150;
-			goto yy94;
-		}
-	}
-yy149:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy151;
-		if (yych <= '/') goto yy94;
-		goto yy152;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy152;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy152;
-			goto yy94;
-		}
-	}
-yy150:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy152;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy152;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy152;
-			goto yy94;
-		}
-	}
-yy151:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy153;
-		if (yych <= '/') goto yy94;
-		goto yy154;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy154;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy154;
-			goto yy94;
-		}
-	}
-yy152:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy154;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy154;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy154;
-			goto yy94;
-		}
-	}
-yy153:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy155;
-		if (yych <= '/') goto yy94;
-		goto yy156;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy156;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy156;
-			goto yy94;
-		}
-	}
-yy154:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy156;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy156;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy156;
-			goto yy94;
-		}
-	}
-yy155:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy157;
-		if (yych <= '/') goto yy94;
-		goto yy158;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy158;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy158;
-			goto yy94;
-		}
-	}
-yy156:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy158;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy158;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy158;
-			goto yy94;
-		}
-	}
-yy157:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy159;
-		if (yych <= '/') goto yy94;
-		goto yy160;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy160;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy160;
-			goto yy94;
-		}
-	}
-yy158:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy160;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy160;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy160;
-			goto yy94;
-		}
-	}
-yy159:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy161;
-		if (yych <= '/') goto yy94;
-		goto yy162;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy162;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy162;
-			goto yy94;
-		}
-	}
-yy160:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy162;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy162;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy162;
-			goto yy94;
-		}
-	}
-yy161:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy163;
-		if (yych <= '/') goto yy94;
-		goto yy164;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy164;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy164;
-			goto yy94;
-		}
-	}
-yy162:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy164;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy164;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy164;
-			goto yy94;
-		}
-	}
-yy163:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy165;
-		if (yych <= '/') goto yy94;
-		goto yy166;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy166;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy166;
-			goto yy94;
-		}
-	}
-yy164:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy166;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy166;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy166;
-			goto yy94;
-		}
-	}
-yy165:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy167;
-		if (yych <= '/') goto yy94;
-		goto yy168;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy168;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy168;
-			goto yy94;
-		}
-	}
-yy166:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy168;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy168;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy168;
-			goto yy94;
-		}
-	}
-yy167:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy169;
-		if (yych <= '/') goto yy94;
-		goto yy170;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy170;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy170;
-			goto yy94;
-		}
-	}
-yy168:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy170;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy170;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy170;
-			goto yy94;
-		}
-	}
-yy169:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy171;
-		if (yych <= '/') goto yy94;
-		goto yy172;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy172;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy172;
-			goto yy94;
-		}
-	}
-yy170:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy172;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy172;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy172;
-			goto yy94;
-		}
-	}
-yy171:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy173;
-		if (yych <= '/') goto yy94;
-		goto yy174;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy174;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy174;
-			goto yy94;
-		}
-	}
-yy172:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy174;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy174;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy174;
-			goto yy94;
-		}
-	}
-yy173:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy175;
-		if (yych <= '/') goto yy94;
-		goto yy176;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy176;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy176;
-			goto yy94;
-		}
-	}
-yy174:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy176;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy176;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy176;
-			goto yy94;
-		}
-	}
-yy175:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy177;
-		if (yych <= '/') goto yy94;
-		goto yy178;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy178;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy178;
-			goto yy94;
-		}
-	}
-yy176:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy178;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy178;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy178;
-			goto yy94;
-		}
-	}
-yy177:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy179;
-		if (yych <= '/') goto yy94;
-		goto yy180;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy180;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy180;
-			goto yy94;
-		}
-	}
-yy178:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy180;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy180;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy180;
-			goto yy94;
-		}
-	}
-yy179:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy181;
-		if (yych <= '/') goto yy94;
-		goto yy182;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy182;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy182;
-			goto yy94;
-		}
-	}
-yy180:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy182;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy182;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy182;
-			goto yy94;
-		}
-	}
-yy181:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy183;
-		if (yych <= '/') goto yy94;
-		goto yy184;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy184;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy184;
-			goto yy94;
-		}
-	}
-yy182:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy184;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy184;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy184;
-			goto yy94;
-		}
-	}
-yy183:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy185;
-		if (yych <= '/') goto yy94;
-		goto yy186;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy186;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy186;
-			goto yy94;
-		}
-	}
-yy184:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy186;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy186;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy186;
-			goto yy94;
-		}
-	}
-yy185:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy187;
-		if (yych <= '/') goto yy94;
-		goto yy188;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy188;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy188;
-			goto yy94;
-		}
-	}
-yy186:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy188;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy188;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy188;
-			goto yy94;
-		}
-	}
-yy187:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy189;
-		if (yych <= '/') goto yy94;
-		goto yy190;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy190;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy190;
-			goto yy94;
-		}
-	}
-yy188:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy190;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy190;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy190;
-			goto yy94;
-		}
-	}
-yy189:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy191;
-		if (yych <= '/') goto yy94;
-		goto yy192;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy192;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy192;
-			goto yy94;
-		}
-	}
-yy190:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy192;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy192;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy192;
-			goto yy94;
-		}
-	}
-yy191:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy193;
-		if (yych <= '/') goto yy94;
-		goto yy194;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy194;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy194;
-			goto yy94;
-		}
-	}
-yy192:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy194;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy194;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy194;
-			goto yy94;
-		}
-	}
-yy193:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy195;
-		if (yych <= '/') goto yy94;
-		goto yy196;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy196;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy196;
-			goto yy94;
-		}
-	}
-yy194:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy196;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy196;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy196;
-			goto yy94;
-		}
-	}
-yy195:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy197;
-		if (yych <= '/') goto yy94;
-		goto yy198;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy198;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy198;
-			goto yy94;
-		}
-	}
-yy196:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy198;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy198;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy198;
-			goto yy94;
-		}
-	}
-yy197:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy199;
-		if (yych <= '/') goto yy94;
-		goto yy200;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy200;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy200;
-			goto yy94;
-		}
-	}
-yy198:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy200;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy200;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy200;
-			goto yy94;
-		}
-	}
-yy199:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy201;
-		if (yych <= '/') goto yy94;
-		goto yy202;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy202;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy202;
-			goto yy94;
-		}
-	}
-yy200:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy202;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy202;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy202;
-			goto yy94;
-		}
-	}
-yy201:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy203;
-		if (yych <= '/') goto yy94;
-		goto yy204;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy204;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy204;
-			goto yy94;
-		}
-	}
-yy202:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy204;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy204;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy204;
-			goto yy94;
-		}
-	}
-yy203:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy205;
-		if (yych <= '/') goto yy94;
-		goto yy206;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy206;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy206;
-			goto yy94;
-		}
-	}
-yy204:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy206;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy206;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy206;
-			goto yy94;
-		}
-	}
-yy205:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy207;
-		if (yych <= '/') goto yy94;
-		goto yy208;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy208;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy208;
-			goto yy94;
-		}
-	}
-yy206:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy208;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy208;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy208;
-			goto yy94;
-		}
-	}
-yy207:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy209;
-		if (yych <= '/') goto yy94;
-		goto yy210;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy210;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy210;
-			goto yy94;
-		}
-	}
-yy208:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy210;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy210;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy210;
-			goto yy94;
-		}
-	}
-yy209:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy211;
-		if (yych <= '/') goto yy94;
-		goto yy212;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy212;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy212;
-			goto yy94;
-		}
-	}
-yy210:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy212;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy212;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy212;
-			goto yy94;
-		}
-	}
-yy211:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy213;
-		if (yych <= '/') goto yy94;
-		goto yy214;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy214;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy214;
-			goto yy94;
-		}
-	}
-yy212:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy214;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy214;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy214;
-			goto yy94;
-		}
-	}
-yy213:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy215;
-		if (yych <= '/') goto yy94;
-		goto yy216;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy216;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy216;
-			goto yy94;
-		}
-	}
-yy214:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy216;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy216;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy216;
-			goto yy94;
-		}
-	}
-yy215:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy217;
-		if (yych <= '/') goto yy94;
-		goto yy218;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy218;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy218;
-			goto yy94;
-		}
-	}
-yy216:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy218;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy218;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy218;
-			goto yy94;
-		}
-	}
-yy217:
-	yych = *++p;
-	if (yych <= '9') {
-		if (yych == '-') goto yy219;
-		if (yych <= '/') goto yy94;
-		goto yy220;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy94;
-			goto yy220;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy220;
-			goto yy94;
-		}
-	}
-yy218:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= ',') goto yy94;
-			if (yych >= '.') goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych <= '9') goto yy220;
-			goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-			goto yy220;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych <= 'z') goto yy220;
-			goto yy94;
-		}
-	}
-yy219:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy94;
-		if (yych <= '9') goto yy221;
-		goto yy94;
-	} else {
-		if (yych <= 'Z') goto yy221;
-		if (yych <= '`') goto yy94;
-		if (yych <= 'z') goto yy221;
-		goto yy94;
-	}
-yy220:
-	yych = *++p;
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych <= '-') goto yy94;
-			goto yy95;
-		} else {
-			if (yych <= '/') goto yy94;
-			if (yych >= ':') goto yy94;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy99;
-			if (yych <= '@') goto yy94;
-		} else {
-			if (yych <= '`') goto yy94;
-			if (yych >= '{') goto yy94;
-		}
-	}
-yy221:
-	yych = *++p;
-	if (yych == '.') goto yy95;
-	if (yych == '>') goto yy99;
-	goto yy94;
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   128, 0,   128, 128, 128, 128, 128, 0,   0,
+        128, 128, 0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 0,   0,   0,   128, 0,   128, 0,   128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 0,   0,   0,   128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *p;
+    if (yych <= '9') {
+      if (yych <= '\'') {
+        if (yych == '!')
+          goto yy30;
+        if (yych >= '#')
+          goto yy30;
+      } else {
+        if (yych <= ')')
+          goto yy28;
+        if (yych != ',')
+          goto yy30;
+      }
+    } else {
+      if (yych <= '?') {
+        if (yych == '=')
+          goto yy30;
+        if (yych >= '?')
+          goto yy30;
+      } else {
+        if (yych <= 'Z') {
+          if (yych >= 'A')
+            goto yy30;
+        } else {
+          if (yych <= ']')
+            goto yy28;
+          if (yych <= '~')
+            goto yy30;
+        }
+      }
+    }
+  yy28:
+    ++p;
+  yy29 : { return 0; }
+  yy30:
+    yych = *(marker = ++p);
+    if (yych <= ',') {
+      if (yych <= '"') {
+        if (yych == '!')
+          goto yy32;
+        goto yy29;
+      } else {
+        if (yych <= '\'')
+          goto yy32;
+        if (yych <= ')')
+          goto yy29;
+        if (yych <= '+')
+          goto yy32;
+        goto yy29;
+      }
+    } else {
+      if (yych <= '>') {
+        if (yych <= '9')
+          goto yy32;
+        if (yych == '=')
+          goto yy32;
+        goto yy29;
+      } else {
+        if (yych <= 'Z')
+          goto yy32;
+        if (yych <= ']')
+          goto yy29;
+        if (yych <= '~')
+          goto yy32;
+        goto yy29;
+      }
+    }
+  yy31:
+    yych = *++p;
+  yy32:
+    if (yybm[0 + yych] & 128) {
+      goto yy31;
+    }
+    if (yych <= '>')
+      goto yy33;
+    if (yych <= '@')
+      goto yy34;
+  yy33:
+    p = marker;
+    goto yy29;
+  yy34:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy33;
+      if (yych >= ':')
+        goto yy33;
+    } else {
+      if (yych <= 'Z')
+        goto yy35;
+      if (yych <= '`')
+        goto yy33;
+      if (yych >= '{')
+        goto yy33;
+    }
+  yy35:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy36;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy36;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy36;
+        goto yy33;
+      }
+    }
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy38;
+      if (yych <= '/')
+        goto yy33;
+      goto yy39;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy39;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy39;
+        goto yy33;
+      }
+    }
+  yy36:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych <= '-')
+          goto yy38;
+        goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy39;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy39;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy39;
+        goto yy33;
+      }
+    }
+  yy37:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy38:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy40;
+      if (yych <= '/')
+        goto yy33;
+      goto yy41;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy41;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy41;
+        goto yy33;
+      }
+    }
+  yy39:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy41;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy41;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy41;
+        goto yy33;
+      }
+    }
+  yy40:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy42;
+      if (yych <= '/')
+        goto yy33;
+      goto yy43;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy43;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy43;
+        goto yy33;
+      }
+    }
+  yy41:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy43;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy43;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy43;
+        goto yy33;
+      }
+    }
+  yy42:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy44;
+      if (yych <= '/')
+        goto yy33;
+      goto yy45;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy45;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy45;
+        goto yy33;
+      }
+    }
+  yy43:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy45;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy45;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy45;
+        goto yy33;
+      }
+    }
+  yy44:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy46;
+      if (yych <= '/')
+        goto yy33;
+      goto yy47;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy47;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy47;
+        goto yy33;
+      }
+    }
+  yy45:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy47;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy47;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy47;
+        goto yy33;
+      }
+    }
+  yy46:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy48;
+      if (yych <= '/')
+        goto yy33;
+      goto yy49;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy49;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy49;
+        goto yy33;
+      }
+    }
+  yy47:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy49;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy49;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy49;
+        goto yy33;
+      }
+    }
+  yy48:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy50;
+      if (yych <= '/')
+        goto yy33;
+      goto yy51;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy51;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy51;
+        goto yy33;
+      }
+    }
+  yy49:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy51;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy51;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy51;
+        goto yy33;
+      }
+    }
+  yy50:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy52;
+      if (yych <= '/')
+        goto yy33;
+      goto yy53;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy53;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy53;
+        goto yy33;
+      }
+    }
+  yy51:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy53;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy53;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy53;
+        goto yy33;
+      }
+    }
+  yy52:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy54;
+      if (yych <= '/')
+        goto yy33;
+      goto yy55;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy55;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy55;
+        goto yy33;
+      }
+    }
+  yy53:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy55;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy55;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy55;
+        goto yy33;
+      }
+    }
+  yy54:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy56;
+      if (yych <= '/')
+        goto yy33;
+      goto yy57;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy57;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy57;
+        goto yy33;
+      }
+    }
+  yy55:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy57;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy57;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy57;
+        goto yy33;
+      }
+    }
+  yy56:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy58;
+      if (yych <= '/')
+        goto yy33;
+      goto yy59;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy59;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy59;
+        goto yy33;
+      }
+    }
+  yy57:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy59;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy59;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy59;
+        goto yy33;
+      }
+    }
+  yy58:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy60;
+      if (yych <= '/')
+        goto yy33;
+      goto yy61;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy61;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy61;
+        goto yy33;
+      }
+    }
+  yy59:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy61;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy61;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy61;
+        goto yy33;
+      }
+    }
+  yy60:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy62;
+      if (yych <= '/')
+        goto yy33;
+      goto yy63;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy63;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy63;
+        goto yy33;
+      }
+    }
+  yy61:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy63;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy63;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy63;
+        goto yy33;
+      }
+    }
+  yy62:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy64;
+      if (yych <= '/')
+        goto yy33;
+      goto yy65;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy65;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy65;
+        goto yy33;
+      }
+    }
+  yy63:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy65;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy65;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy65;
+        goto yy33;
+      }
+    }
+  yy64:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy66;
+      if (yych <= '/')
+        goto yy33;
+      goto yy67;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy67;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy67;
+        goto yy33;
+      }
+    }
+  yy65:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy67;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy67;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy67;
+        goto yy33;
+      }
+    }
+  yy66:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy68;
+      if (yych <= '/')
+        goto yy33;
+      goto yy69;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy69;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy69;
+        goto yy33;
+      }
+    }
+  yy67:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy69;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy69;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy69;
+        goto yy33;
+      }
+    }
+  yy68:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy70;
+      if (yych <= '/')
+        goto yy33;
+      goto yy71;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy71;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy71;
+        goto yy33;
+      }
+    }
+  yy69:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy71;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy71;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy71;
+        goto yy33;
+      }
+    }
+  yy70:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy72;
+      if (yych <= '/')
+        goto yy33;
+      goto yy73;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy73;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy73;
+        goto yy33;
+      }
+    }
+  yy71:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy73;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy73;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy73;
+        goto yy33;
+      }
+    }
+  yy72:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy74;
+      if (yych <= '/')
+        goto yy33;
+      goto yy75;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy75;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy75;
+        goto yy33;
+      }
+    }
+  yy73:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy75;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy75;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy75;
+        goto yy33;
+      }
+    }
+  yy74:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy76;
+      if (yych <= '/')
+        goto yy33;
+      goto yy77;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy77;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy77;
+        goto yy33;
+      }
+    }
+  yy75:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy77;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy77;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy77;
+        goto yy33;
+      }
+    }
+  yy76:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy78;
+      if (yych <= '/')
+        goto yy33;
+      goto yy79;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy79;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy79;
+        goto yy33;
+      }
+    }
+  yy77:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy79;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy79;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy79;
+        goto yy33;
+      }
+    }
+  yy78:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy80;
+      if (yych <= '/')
+        goto yy33;
+      goto yy81;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy81;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy81;
+        goto yy33;
+      }
+    }
+  yy79:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy81;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy81;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy81;
+        goto yy33;
+      }
+    }
+  yy80:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy82;
+      if (yych <= '/')
+        goto yy33;
+      goto yy83;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy83;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy83;
+        goto yy33;
+      }
+    }
+  yy81:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy83;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy83;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy83;
+        goto yy33;
+      }
+    }
+  yy82:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy84;
+      if (yych <= '/')
+        goto yy33;
+      goto yy85;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy85;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy85;
+        goto yy33;
+      }
+    }
+  yy83:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy85;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy85;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy85;
+        goto yy33;
+      }
+    }
+  yy84:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy86;
+      if (yych <= '/')
+        goto yy33;
+      goto yy87;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy87;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy87;
+        goto yy33;
+      }
+    }
+  yy85:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy87;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy87;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy87;
+        goto yy33;
+      }
+    }
+  yy86:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy88;
+      if (yych <= '/')
+        goto yy33;
+      goto yy89;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy89;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy89;
+        goto yy33;
+      }
+    }
+  yy87:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy89;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy89;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy89;
+        goto yy33;
+      }
+    }
+  yy88:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy90;
+      if (yych <= '/')
+        goto yy33;
+      goto yy91;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy91;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy91;
+        goto yy33;
+      }
+    }
+  yy89:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy91;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy91;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy91;
+        goto yy33;
+      }
+    }
+  yy90:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy92;
+      if (yych <= '/')
+        goto yy33;
+      goto yy93;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy93;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy93;
+        goto yy33;
+      }
+    }
+  yy91:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy93;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy93;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy93;
+        goto yy33;
+      }
+    }
+  yy92:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy94;
+      if (yych <= '/')
+        goto yy33;
+      goto yy95;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy95;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy95;
+        goto yy33;
+      }
+    }
+  yy93:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy95;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy95;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy95;
+        goto yy33;
+      }
+    }
+  yy94:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy96;
+      if (yych <= '/')
+        goto yy33;
+      goto yy97;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy97;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy97;
+        goto yy33;
+      }
+    }
+  yy95:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy97;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy97;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy97;
+        goto yy33;
+      }
+    }
+  yy96:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy98;
+      if (yych <= '/')
+        goto yy33;
+      goto yy99;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy99;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy99;
+        goto yy33;
+      }
+    }
+  yy97:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy99;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy99;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy99;
+        goto yy33;
+      }
+    }
+  yy98:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy100;
+      if (yych <= '/')
+        goto yy33;
+      goto yy101;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy101;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy101;
+        goto yy33;
+      }
+    }
+  yy99:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy101;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy101;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy101;
+        goto yy33;
+      }
+    }
+  yy100:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy102;
+      if (yych <= '/')
+        goto yy33;
+      goto yy103;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy103;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy103;
+        goto yy33;
+      }
+    }
+  yy101:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy103;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy103;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy103;
+        goto yy33;
+      }
+    }
+  yy102:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy104;
+      if (yych <= '/')
+        goto yy33;
+      goto yy105;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy105;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy105;
+        goto yy33;
+      }
+    }
+  yy103:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy105;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy105;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy105;
+        goto yy33;
+      }
+    }
+  yy104:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy106;
+      if (yych <= '/')
+        goto yy33;
+      goto yy107;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy107;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy107;
+        goto yy33;
+      }
+    }
+  yy105:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy107;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy107;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy107;
+        goto yy33;
+      }
+    }
+  yy106:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy108;
+      if (yych <= '/')
+        goto yy33;
+      goto yy109;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy109;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy109;
+        goto yy33;
+      }
+    }
+  yy107:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy109;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy109;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy109;
+        goto yy33;
+      }
+    }
+  yy108:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy110;
+      if (yych <= '/')
+        goto yy33;
+      goto yy111;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy111;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy111;
+        goto yy33;
+      }
+    }
+  yy109:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy111;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy111;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy111;
+        goto yy33;
+      }
+    }
+  yy110:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy112;
+      if (yych <= '/')
+        goto yy33;
+      goto yy113;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy113;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy113;
+        goto yy33;
+      }
+    }
+  yy111:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy113;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy113;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy113;
+        goto yy33;
+      }
+    }
+  yy112:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy114;
+      if (yych <= '/')
+        goto yy33;
+      goto yy115;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy115;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy115;
+        goto yy33;
+      }
+    }
+  yy113:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy115;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy115;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy115;
+        goto yy33;
+      }
+    }
+  yy114:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy116;
+      if (yych <= '/')
+        goto yy33;
+      goto yy117;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy117;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy117;
+        goto yy33;
+      }
+    }
+  yy115:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy117;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy117;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy117;
+        goto yy33;
+      }
+    }
+  yy116:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy118;
+      if (yych <= '/')
+        goto yy33;
+      goto yy119;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy119;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy119;
+        goto yy33;
+      }
+    }
+  yy117:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy119;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy119;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy119;
+        goto yy33;
+      }
+    }
+  yy118:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy120;
+      if (yych <= '/')
+        goto yy33;
+      goto yy121;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy121;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy121;
+        goto yy33;
+      }
+    }
+  yy119:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy121;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy121;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy121;
+        goto yy33;
+      }
+    }
+  yy120:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy122;
+      if (yych <= '/')
+        goto yy33;
+      goto yy123;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy123;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy123;
+        goto yy33;
+      }
+    }
+  yy121:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy123;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy123;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy123;
+        goto yy33;
+      }
+    }
+  yy122:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy124;
+      if (yych <= '/')
+        goto yy33;
+      goto yy125;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy125;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy125;
+        goto yy33;
+      }
+    }
+  yy123:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy125;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy125;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy125;
+        goto yy33;
+      }
+    }
+  yy124:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy126;
+      if (yych <= '/')
+        goto yy33;
+      goto yy127;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy127;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy127;
+        goto yy33;
+      }
+    }
+  yy125:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy127;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy127;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy127;
+        goto yy33;
+      }
+    }
+  yy126:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy128;
+      if (yych <= '/')
+        goto yy33;
+      goto yy129;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy129;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy129;
+        goto yy33;
+      }
+    }
+  yy127:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy129;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy129;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy129;
+        goto yy33;
+      }
+    }
+  yy128:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy130;
+      if (yych <= '/')
+        goto yy33;
+      goto yy131;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy131;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy131;
+        goto yy33;
+      }
+    }
+  yy129:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy131;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy131;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy131;
+        goto yy33;
+      }
+    }
+  yy130:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy132;
+      if (yych <= '/')
+        goto yy33;
+      goto yy133;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy133;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy133;
+        goto yy33;
+      }
+    }
+  yy131:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy133;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy133;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy133;
+        goto yy33;
+      }
+    }
+  yy132:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy134;
+      if (yych <= '/')
+        goto yy33;
+      goto yy135;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy135;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy135;
+        goto yy33;
+      }
+    }
+  yy133:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy135;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy135;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy135;
+        goto yy33;
+      }
+    }
+  yy134:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy136;
+      if (yych <= '/')
+        goto yy33;
+      goto yy137;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy137;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy137;
+        goto yy33;
+      }
+    }
+  yy135:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy137;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy137;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy137;
+        goto yy33;
+      }
+    }
+  yy136:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy138;
+      if (yych <= '/')
+        goto yy33;
+      goto yy139;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy139;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy139;
+        goto yy33;
+      }
+    }
+  yy137:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy139;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy139;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy139;
+        goto yy33;
+      }
+    }
+  yy138:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy140;
+      if (yych <= '/')
+        goto yy33;
+      goto yy141;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy141;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy141;
+        goto yy33;
+      }
+    }
+  yy139:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy141;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy141;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy141;
+        goto yy33;
+      }
+    }
+  yy140:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy142;
+      if (yych <= '/')
+        goto yy33;
+      goto yy143;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy143;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy143;
+        goto yy33;
+      }
+    }
+  yy141:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy143;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy143;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy143;
+        goto yy33;
+      }
+    }
+  yy142:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy144;
+      if (yych <= '/')
+        goto yy33;
+      goto yy145;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy145;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy145;
+        goto yy33;
+      }
+    }
+  yy143:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy145;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy145;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy145;
+        goto yy33;
+      }
+    }
+  yy144:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy146;
+      if (yych <= '/')
+        goto yy33;
+      goto yy147;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy147;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy147;
+        goto yy33;
+      }
+    }
+  yy145:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy147;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy147;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy147;
+        goto yy33;
+      }
+    }
+  yy146:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy148;
+      if (yych <= '/')
+        goto yy33;
+      goto yy149;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy149;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy149;
+        goto yy33;
+      }
+    }
+  yy147:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy149;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy149;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy149;
+        goto yy33;
+      }
+    }
+  yy148:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy150;
+      if (yych <= '/')
+        goto yy33;
+      goto yy151;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy151;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy151;
+        goto yy33;
+      }
+    }
+  yy149:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy151;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy151;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy151;
+        goto yy33;
+      }
+    }
+  yy150:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy152;
+      if (yych <= '/')
+        goto yy33;
+      goto yy153;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy153;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy153;
+        goto yy33;
+      }
+    }
+  yy151:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy153;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy153;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy153;
+        goto yy33;
+      }
+    }
+  yy152:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy154;
+      if (yych <= '/')
+        goto yy33;
+      goto yy155;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy155;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy155;
+        goto yy33;
+      }
+    }
+  yy153:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy155;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy155;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy155;
+        goto yy33;
+      }
+    }
+  yy154:
+    yych = *++p;
+    if (yych <= '9') {
+      if (yych == '-')
+        goto yy156;
+      if (yych <= '/')
+        goto yy33;
+      goto yy157;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy33;
+        goto yy157;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy157;
+        goto yy33;
+      }
+    }
+  yy155:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= ',')
+          goto yy33;
+        if (yych >= '.')
+          goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych <= '9')
+          goto yy157;
+        goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+        goto yy157;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych <= 'z')
+          goto yy157;
+        goto yy33;
+      }
+    }
+  yy156:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy33;
+      if (yych <= '9')
+        goto yy158;
+      goto yy33;
+    } else {
+      if (yych <= 'Z')
+        goto yy158;
+      if (yych <= '`')
+        goto yy33;
+      if (yych <= 'z')
+        goto yy158;
+      goto yy33;
+    }
+  yy157:
+    yych = *++p;
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych <= '-')
+          goto yy33;
+        goto yy34;
+      } else {
+        if (yych <= '/')
+          goto yy33;
+        if (yych >= ':')
+          goto yy33;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy37;
+        if (yych <= '@')
+          goto yy33;
+      } else {
+        if (yych <= '`')
+          goto yy33;
+        if (yych >= '{')
+          goto yy33;
+      }
+    }
+  yy158:
+    yych = *++p;
+    if (yych == '.')
+      goto yy34;
+    if (yych == '>')
+      goto yy37;
+    goto yy33;
+  }
 }
 
+// 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[] = {
+        0,   224, 224, 224, 224, 224, 224, 224, 224, 200, 200, 200, 200, 200,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 200, 224, 128, 224, 224, 224, 224, 64,  224, 224,
+        224, 224, 224, 244, 240, 224, 244, 244, 244, 244, 244, 244, 244, 244,
+        244, 244, 240, 224, 192, 192, 192, 224, 224, 244, 244, 244, 244, 244,
+        244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
+        244, 244, 244, 244, 244, 244, 244, 224, 224, 224, 224, 240, 192, 244,
+        244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244,
+        244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 244, 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 = *p;
+    if (yych <= '@') {
+      if (yych == '/')
+        goto yy162;
+    } else {
+      if (yych <= 'Z')
+        goto yy163;
+      if (yych <= '`')
+        goto yy160;
+      if (yych <= 'z')
+        goto yy163;
+    }
+  yy160:
+    ++p;
+  yy161 : { return 0; }
+  yy162:
+    yych = *(marker = ++p);
+    if (yych <= '@')
+      goto yy161;
+    if (yych <= 'Z')
+      goto yy164;
+    if (yych <= '`')
+      goto yy161;
+    if (yych <= 'z')
+      goto yy164;
+    goto yy161;
+  yy163:
+    yych = *(marker = ++p);
+    if (yych <= '.') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy161;
+        if (yych <= '\r')
+          goto yy168;
+        goto yy161;
+      } else {
+        if (yych <= ' ')
+          goto yy168;
+        if (yych == '-')
+          goto yy168;
+        goto yy161;
+      }
+    } else {
+      if (yych <= '@') {
+        if (yych <= '9')
+          goto yy168;
+        if (yych == '>')
+          goto yy168;
+        goto yy161;
+      } else {
+        if (yych <= 'Z')
+          goto yy168;
+        if (yych <= '`')
+          goto yy161;
+        if (yych <= 'z')
+          goto yy168;
+        goto yy161;
+      }
+    }
+  yy164:
+    yych = *++p;
+    if (yybm[0 + yych] & 4) {
+      goto yy164;
+    }
+    if (yych <= 0x1F) {
+      if (yych <= 0x08)
+        goto yy165;
+      if (yych <= '\r')
+        goto yy171;
+    } else {
+      if (yych <= ' ')
+        goto yy171;
+      if (yych == '>')
+        goto yy170;
+    }
+  yy165:
+    p = marker;
+    goto yy161;
+  yy166:
+    yych = *++p;
+    if (yybm[0 + yych] & 8) {
+      goto yy166;
+    }
+    if (yych <= '>') {
+      if (yych <= '9') {
+        if (yych == '/')
+          goto yy169;
+        goto yy165;
+      } else {
+        if (yych <= ':')
+          goto yy172;
+        if (yych <= '=')
+          goto yy165;
+        goto yy170;
+      }
+    } else {
+      if (yych <= '^') {
+        if (yych <= '@')
+          goto yy165;
+        if (yych <= 'Z')
+          goto yy172;
+        goto yy165;
+      } else {
+        if (yych == '`')
+          goto yy165;
+        if (yych <= 'z')
+          goto yy172;
+        goto yy165;
+      }
+    }
+  yy167:
+    yych = *++p;
+  yy168:
+    if (yybm[0 + yych] & 8) {
+      goto yy166;
+    }
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych == '-')
+          goto yy167;
+        goto yy165;
+      } else {
+        if (yych <= '/')
+          goto yy169;
+        if (yych <= '9')
+          goto yy167;
+        goto yy165;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy170;
+        if (yych <= '@')
+          goto yy165;
+        goto yy167;
+      } else {
+        if (yych <= '`')
+          goto yy165;
+        if (yych <= 'z')
+          goto yy167;
+        goto yy165;
+      }
+    }
+  yy169:
+    yych = *++p;
+    if (yych != '>')
+      goto yy165;
+  yy170:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy171:
+    yych = *++p;
+    if (yych <= 0x1F) {
+      if (yych <= 0x08)
+        goto yy165;
+      if (yych <= '\r')
+        goto yy171;
+      goto yy165;
+    } else {
+      if (yych <= ' ')
+        goto yy171;
+      if (yych == '>')
+        goto yy170;
+      goto yy165;
+    }
+  yy172:
+    yych = *++p;
+    if (yybm[0 + yych] & 16) {
+      goto yy172;
+    }
+    if (yych <= ',') {
+      if (yych <= '\r') {
+        if (yych <= 0x08)
+          goto yy165;
+      } else {
+        if (yych != ' ')
+          goto yy165;
+      }
+    } else {
+      if (yych <= '<') {
+        if (yych <= '/')
+          goto yy169;
+        goto yy165;
+      } else {
+        if (yych <= '=')
+          goto yy174;
+        if (yych <= '>')
+          goto yy170;
+        goto yy165;
+      }
+    }
+  yy173:
+    yych = *++p;
+    if (yych <= '<') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy165;
+        if (yych <= '\r')
+          goto yy173;
+        if (yych <= 0x1F)
+          goto yy165;
+        goto yy173;
+      } else {
+        if (yych <= '/') {
+          if (yych <= '.')
+            goto yy165;
+          goto yy169;
+        } else {
+          if (yych == ':')
+            goto yy172;
+          goto yy165;
+        }
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '=')
+          goto yy174;
+        if (yych <= '>')
+          goto yy170;
+        if (yych <= '@')
+          goto yy165;
+        goto yy172;
+      } else {
+        if (yych <= '_') {
+          if (yych <= '^')
+            goto yy165;
+          goto yy172;
+        } else {
+          if (yych <= '`')
+            goto yy165;
+          if (yych <= 'z')
+            goto yy172;
+          goto yy165;
+        }
+      }
+    }
+  yy174:
+    yych = *++p;
+    if (yybm[0 + yych] & 32) {
+      goto yy175;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '"') {
+        if (yych <= 0x00)
+          goto yy165;
+        if (yych <= ' ')
+          goto yy174;
+        goto yy176;
+      } else {
+        if (yych <= '\'')
+          goto yy177;
+        if (yych <= 0xC1)
+          goto yy165;
+        if (yych <= 0xDF)
+          goto yy178;
+        goto yy179;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy181;
+        goto yy180;
+      } else {
+        if (yych <= 0xF0)
+          goto yy182;
+        if (yych <= 0xF3)
+          goto yy183;
+        if (yych <= 0xF4)
+          goto yy184;
+        goto yy165;
+      }
+    }
+  yy175:
+    yych = *++p;
+    if (yybm[0 + yych] & 32) {
+      goto yy175;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '=') {
+        if (yych <= 0x00)
+          goto yy165;
+        if (yych <= ' ')
+          goto yy166;
+        goto yy165;
+      } else {
+        if (yych <= '>')
+          goto yy170;
+        if (yych <= 0xC1)
+          goto yy165;
+        if (yych <= 0xDF)
+          goto yy178;
+        goto yy179;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy181;
+        goto yy180;
+      } else {
+        if (yych <= 0xF0)
+          goto yy182;
+        if (yych <= 0xF3)
+          goto yy183;
+        if (yych <= 0xF4)
+          goto yy184;
+        goto yy165;
+      }
+    }
+  yy176:
+    yych = *++p;
+    if (yybm[0 + yych] & 64) {
+      goto yy176;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy165;
+        if (yych <= '"')
+          goto yy185;
+        goto yy165;
+      } else {
+        if (yych <= 0xDF)
+          goto yy186;
+        if (yych <= 0xE0)
+          goto yy187;
+        goto yy188;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy189;
+        if (yych <= 0xEF)
+          goto yy188;
+        goto yy190;
+      } else {
+        if (yych <= 0xF3)
+          goto yy191;
+        if (yych <= 0xF4)
+          goto yy192;
+        goto yy165;
+      }
+    }
+  yy177:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy177;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy165;
+        if (yych <= '\'')
+          goto yy185;
+        goto yy165;
+      } else {
+        if (yych <= 0xDF)
+          goto yy193;
+        if (yych <= 0xE0)
+          goto yy194;
+        goto yy195;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy196;
+        if (yych <= 0xEF)
+          goto yy195;
+        goto yy197;
+      } else {
+        if (yych <= 0xF3)
+          goto yy198;
+        if (yych <= 0xF4)
+          goto yy199;
+        goto yy165;
+      }
+    }
+  yy178:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy175;
+    goto yy165;
+  yy179:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy178;
+    goto yy165;
+  yy180:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy178;
+    goto yy165;
+  yy181:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0x9F)
+      goto yy178;
+    goto yy165;
+  yy182:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy180;
+    goto yy165;
+  yy183:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy180;
+    goto yy165;
+  yy184:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0x8F)
+      goto yy180;
+    goto yy165;
+  yy185:
+    yych = *++p;
+    if (yybm[0 + yych] & 8) {
+      goto yy166;
+    }
+    if (yych == '/')
+      goto yy169;
+    if (yych == '>')
+      goto yy170;
+    goto yy165;
+  yy186:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy176;
+    goto yy165;
+  yy187:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy186;
+    goto yy165;
+  yy188:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy186;
+    goto yy165;
+  yy189:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0x9F)
+      goto yy186;
+    goto yy165;
+  yy190:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy188;
+    goto yy165;
+  yy191:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy188;
+    goto yy165;
+  yy192:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0x8F)
+      goto yy188;
+    goto yy165;
+  yy193:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy177;
+    goto yy165;
+  yy194:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy193;
+    goto yy165;
+  yy195:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy193;
+    goto yy165;
+  yy196:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0x9F)
+      goto yy193;
+    goto yy165;
+  yy197:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy195;
+    goto yy165;
+  yy198:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0xBF)
+      goto yy195;
+    goto yy165;
+  yy199:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy165;
+    if (yych <= 0x8F)
+      goto yy195;
+    goto yy165;
+  }
+}
+
+// Try to (liberally) match an HTML tag after first <, returning num of chars
+// matched.
+bufsize_t _scan_liberal_html_tag(const unsigned char *p) {
+  const unsigned char *marker = NULL;
+  const unsigned char *start = p;
+
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,  64, 64, 64, 64, 64, 64, 64, 64,  64, 0,  64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 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,
+    };
+    yych = *p;
+    if (yych <= 0xE0) {
+      if (yych <= '\n') {
+        if (yych <= 0x00)
+          goto yy201;
+        if (yych <= '\t')
+          goto yy203;
+      } else {
+        if (yych <= 0x7F)
+          goto yy203;
+        if (yych <= 0xC1)
+          goto yy201;
+        if (yych <= 0xDF)
+          goto yy204;
+        goto yy205;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy207;
+        goto yy206;
+      } else {
+        if (yych <= 0xF0)
+          goto yy208;
+        if (yych <= 0xF3)
+          goto yy209;
+        if (yych <= 0xF4)
+          goto yy210;
+      }
+    }
+  yy201:
+    ++p;
+  yy202 : { return 0; }
+  yy203:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '\n') {
+      if (yych <= 0x00)
+        goto yy202;
+      if (yych <= '\t')
+        goto yy212;
+      goto yy202;
+    } else {
+      if (yych <= 0x7F)
+        goto yy212;
+      if (yych <= 0xC1)
+        goto yy202;
+      if (yych <= 0xF4)
+        goto yy212;
+      goto yy202;
+    }
+  yy204:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy202;
+    if (yych <= 0xBF)
+      goto yy211;
+    goto yy202;
+  yy205:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x9F)
+      goto yy202;
+    if (yych <= 0xBF)
+      goto yy216;
+    goto yy202;
+  yy206:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy202;
+    if (yych <= 0xBF)
+      goto yy216;
+    goto yy202;
+  yy207:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy202;
+    if (yych <= 0x9F)
+      goto yy216;
+    goto yy202;
+  yy208:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x8F)
+      goto yy202;
+    if (yych <= 0xBF)
+      goto yy218;
+    goto yy202;
+  yy209:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy202;
+    if (yych <= 0xBF)
+      goto yy218;
+    goto yy202;
+  yy210:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy202;
+    if (yych <= 0x8F)
+      goto yy218;
+    goto yy202;
+  yy211:
+    yych = *++p;
+  yy212:
+    if (yybm[0 + yych] & 64) {
+      goto yy211;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy213;
+        if (yych <= '>')
+          goto yy214;
+      } else {
+        if (yych <= 0xDF)
+          goto yy216;
+        if (yych <= 0xE0)
+          goto yy217;
+        goto yy218;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy219;
+        if (yych <= 0xEF)
+          goto yy218;
+        goto yy220;
+      } else {
+        if (yych <= 0xF3)
+          goto yy221;
+        if (yych <= 0xF4)
+          goto yy222;
+      }
+    }
+  yy213:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy202;
+    } else {
+      goto yy215;
+    }
+  yy214:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy211;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy215;
+        if (yych <= '>')
+          goto yy214;
+      } else {
+        if (yych <= 0xDF)
+          goto yy216;
+        if (yych <= 0xE0)
+          goto yy217;
+        goto yy218;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy219;
+        if (yych <= 0xEF)
+          goto yy218;
+        goto yy220;
+      } else {
+        if (yych <= 0xF3)
+          goto yy221;
+        if (yych <= 0xF4)
+          goto yy222;
+      }
+    }
+  yy215 : { return (bufsize_t)(p - start); }
+  yy216:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy213;
+    if (yych <= 0xBF)
+      goto yy211;
+    goto yy213;
+  yy217:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy213;
+    if (yych <= 0xBF)
+      goto yy216;
+    goto yy213;
+  yy218:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy213;
+    if (yych <= 0xBF)
+      goto yy216;
+    goto yy213;
+  yy219:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy213;
+    if (yych <= 0x9F)
+      goto yy216;
+    goto yy213;
+  yy220:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy213;
+    if (yych <= 0xBF)
+      goto yy218;
+    goto yy213;
+  yy221:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy213;
+    if (yych <= 0xBF)
+      goto yy218;
+    goto yy213;
+  yy222:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy213;
+    if (yych <= 0x8F)
+      goto yy218;
+    goto yy213;
+  }
 }
 
-// Try to match an HTML tag after first <, returning num of chars matched.
-bufsize_t _scan_html_tag(const unsigned char *p)
-{
+bufsize_t _scan_html_comment(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, 250, 250, 250, 250, 250, 250, 250, 
-		250, 235, 235, 235, 235, 235, 250, 250, 
-		250, 250, 250, 250, 250, 250, 250, 250, 
-		250, 250, 250, 250, 250, 250, 250, 250, 
-		235, 250, 202, 250, 250, 250, 250, 170, 
-		250, 250, 250, 250, 250, 246, 254, 250, 
-		254, 254, 254, 254, 254, 254, 254, 254, 
-		254, 254, 254, 250, 234, 234, 232, 250, 
-		250, 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, 250, 250, 122, 250, 254, 
-		234, 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, 250, 250, 250, 250, 250, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  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, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 128, 128, 128, 
-		128, 128, 128, 128, 128, 192, 128, 128, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 128, 128, 128, 128, 128,   0, 
-		128, 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, 128, 128, 128, 128, 128, 
-		128, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 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 = *p;
-	if (yych <= '>') {
-		if (yych <= '!') {
-			if (yych >= '!') goto yy226;
-		} else {
-			if (yych == '/') goto yy227;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '?') goto yy228;
-			if (yych >= 'A') goto yy229;
-		} else {
-			if (yych <= '`') goto yy224;
-			if (yych <= 'z') goto yy229;
-		}
-	}
-yy224:
-	++p;
-yy225:
-	{ return 0; }
-yy226:
-	yych = *(marker = ++p);
-	if (yybm[256+yych] & 32) {
-		goto yy232;
-	}
-	if (yych == '-') goto yy230;
-	if (yych <= '@') goto yy225;
-	if (yych <= '[') goto yy234;
-	goto yy225;
-yy227:
-	yych = *(marker = ++p);
-	if (yych <= '@') goto yy225;
-	if (yych <= 'Z') goto yy235;
-	if (yych <= '`') goto yy225;
-	if (yych <= 'z') goto yy235;
-	goto yy225;
-yy228:
-	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy225;
-	if (yych <= 0x7F) goto yy238;
-	if (yych <= 0xC1) goto yy225;
-	if (yych <= 0xF4) goto yy238;
-	goto yy225;
-yy229:
-	yych = *(marker = ++p);
-	if (yych <= '.') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy225;
-			if (yych <= '\r') goto yy250;
-			goto yy225;
-		} else {
-			if (yych <= ' ') goto yy250;
-			if (yych == '-') goto yy250;
-			goto yy225;
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych <= '9') goto yy250;
-			if (yych == '>') goto yy250;
-			goto yy225;
-		} else {
-			if (yych <= 'Z') goto yy250;
-			if (yych <= '`') goto yy225;
-			if (yych <= 'z') goto yy250;
-			goto yy225;
-		}
-	}
-yy230:
-	yych = *++p;
-	if (yych == '-') goto yy254;
-yy231:
-	p = marker;
-	goto yy225;
-yy232:
-	yych = *++p;
-	if (yybm[256+yych] & 32) {
-		goto yy232;
-	}
-	if (yych <= 0x08) goto yy231;
-	if (yych <= '\r') goto yy255;
-	if (yych == ' ') goto yy255;
-	goto yy231;
-yy234:
-	yych = *++p;
-	if (yych == 'C') goto yy257;
-	if (yych == 'c') goto yy257;
-	goto yy231;
-yy235:
-	yych = *++p;
-	if (yybm[256+yych] & 64) {
-		goto yy235;
-	}
-	if (yych <= 0x1F) {
-		if (yych <= 0x08) goto yy231;
-		if (yych <= '\r') goto yy258;
-		goto yy231;
-	} else {
-		if (yych <= ' ') goto yy258;
-		if (yych == '>') goto yy252;
-		goto yy231;
-	}
-yy237:
-	yych = *++p;
-yy238:
-	if (yybm[256+yych] & 128) {
-		goto yy237;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= 0x00) goto yy231;
-			if (yych >= '@') goto yy231;
-		} else {
-			if (yych <= 0xDF) goto yy240;
-			if (yych <= 0xE0) goto yy241;
-			goto yy242;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy243;
-			if (yych <= 0xEF) goto yy242;
-			goto yy244;
-		} else {
-			if (yych <= 0xF3) goto yy245;
-			if (yych <= 0xF4) goto yy246;
-			goto yy231;
-		}
-	}
-	yych = *++p;
-	if (yych <= 0xE0) {
-		if (yych <= '>') {
-			if (yych <= 0x00) goto yy231;
-			if (yych <= '=') goto yy237;
-			goto yy252;
-		} else {
-			if (yych <= 0x7F) goto yy237;
-			if (yych <= 0xC1) goto yy231;
-			if (yych >= 0xE0) goto yy241;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy243;
-			goto yy242;
-		} else {
-			if (yych <= 0xF0) goto yy244;
-			if (yych <= 0xF3) goto yy245;
-			if (yych <= 0xF4) goto yy246;
-			goto yy231;
-		}
-	}
-yy240:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy237;
-	goto yy231;
-yy241:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy231;
-	if (yych <= 0xBF) goto yy240;
-	goto yy231;
-yy242:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy240;
-	goto yy231;
-yy243:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x9F) goto yy240;
-	goto yy231;
-yy244:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy231;
-	if (yych <= 0xBF) goto yy242;
-	goto yy231;
-yy245:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy242;
-	goto yy231;
-yy246:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x8F) goto yy242;
-	goto yy231;
-yy247:
-	yych = *++p;
-	if (yybm[0+yych] & 1) {
-		goto yy247;
-	}
-	if (yych <= '>') {
-		if (yych <= '9') {
-			if (yych == '/') goto yy251;
-			goto yy231;
-		} else {
-			if (yych <= ':') goto yy260;
-			if (yych <= '=') goto yy231;
-			goto yy252;
-		}
-	} else {
-		if (yych <= '^') {
-			if (yych <= '@') goto yy231;
-			if (yych <= 'Z') goto yy260;
-			goto yy231;
-		} else {
-			if (yych == '`') goto yy231;
-			if (yych <= 'z') goto yy260;
-			goto yy231;
-		}
-	}
-yy249:
-	yych = *++p;
-yy250:
-	if (yybm[0+yych] & 1) {
-		goto yy247;
-	}
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych == '-') goto yy249;
-			goto yy231;
-		} else {
-			if (yych <= '/') goto yy251;
-			if (yych <= '9') goto yy249;
-			goto yy231;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy252;
-			if (yych <= '@') goto yy231;
-			goto yy249;
-		} else {
-			if (yych <= '`') goto yy231;
-			if (yych <= 'z') goto yy249;
-			goto yy231;
-		}
-	}
-yy251:
-	yych = *++p;
-	if (yych != '>') goto yy231;
-yy252:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy254:
-	yych = *++p;
-	if (yych == '-') goto yy264;
-	if (yych == '>') goto yy231;
-	goto yy263;
-yy255:
-	yych = *++p;
-	if (yybm[0+yych] & 2) {
-		goto yy255;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= 0x00) goto yy231;
-			if (yych <= '>') goto yy252;
-			goto yy231;
-		} else {
-			if (yych <= 0xDF) goto yy272;
-			if (yych <= 0xE0) goto yy273;
-			goto yy274;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy275;
-			if (yych <= 0xEF) goto yy274;
-			goto yy276;
-		} else {
-			if (yych <= 0xF3) goto yy277;
-			if (yych <= 0xF4) goto yy278;
-			goto yy231;
-		}
-	}
-yy257:
-	yych = *++p;
-	if (yych == 'D') goto yy279;
-	if (yych == 'd') goto yy279;
-	goto yy231;
-yy258:
-	yych = *++p;
-	if (yych <= 0x1F) {
-		if (yych <= 0x08) goto yy231;
-		if (yych <= '\r') goto yy258;
-		goto yy231;
-	} else {
-		if (yych <= ' ') goto yy258;
-		if (yych == '>') goto yy252;
-		goto yy231;
-	}
-yy260:
-	yych = *++p;
-	if (yybm[0+yych] & 4) {
-		goto yy260;
-	}
-	if (yych <= ',') {
-		if (yych <= '\r') {
-			if (yych <= 0x08) goto yy231;
-			goto yy280;
-		} else {
-			if (yych == ' ') goto yy280;
-			goto yy231;
-		}
-	} else {
-		if (yych <= '<') {
-			if (yych <= '/') goto yy251;
-			goto yy231;
-		} else {
-			if (yych <= '=') goto yy282;
-			if (yych <= '>') goto yy252;
-			goto yy231;
-		}
-	}
-yy262:
-	yych = *++p;
-yy263:
-	if (yybm[0+yych] & 8) {
-		goto yy262;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= 0x00) goto yy231;
-			if (yych <= '-') goto yy284;
-			goto yy231;
-		} else {
-			if (yych <= 0xDF) goto yy265;
-			if (yych <= 0xE0) goto yy266;
-			goto yy267;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy268;
-			if (yych <= 0xEF) goto yy267;
-			goto yy269;
-		} else {
-			if (yych <= 0xF3) goto yy270;
-			if (yych <= 0xF4) goto yy271;
-			goto yy231;
-		}
-	}
-yy264:
-	yych = *++p;
-	if (yych == '-') goto yy251;
-	if (yych == '>') goto yy231;
-	goto yy263;
-yy265:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy262;
-	goto yy231;
-yy266:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy231;
-	if (yych <= 0xBF) goto yy265;
-	goto yy231;
-yy267:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy265;
-	goto yy231;
-yy268:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x9F) goto yy265;
-	goto yy231;
-yy269:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy231;
-	if (yych <= 0xBF) goto yy267;
-	goto yy231;
-yy270:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy267;
-	goto yy231;
-yy271:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x8F) goto yy267;
-	goto yy231;
-yy272:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy255;
-	goto yy231;
-yy273:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy231;
-	if (yych <= 0xBF) goto yy272;
-	goto yy231;
-yy274:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy272;
-	goto yy231;
-yy275:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x9F) goto yy272;
-	goto yy231;
-yy276:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy231;
-	if (yych <= 0xBF) goto yy274;
-	goto yy231;
-yy277:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy274;
-	goto yy231;
-yy278:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x8F) goto yy274;
-	goto yy231;
-yy279:
-	yych = *++p;
-	if (yych == 'A') goto yy285;
-	if (yych == 'a') goto yy285;
-	goto yy231;
-yy280:
-	yych = *++p;
-	if (yych <= '<') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) goto yy231;
-			if (yych <= '\r') goto yy280;
-			if (yych <= 0x1F) goto yy231;
-			goto yy280;
-		} else {
-			if (yych <= '/') {
-				if (yych <= '.') goto yy231;
-				goto yy251;
-			} else {
-				if (yych == ':') goto yy260;
-				goto yy231;
-			}
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '=') goto yy282;
-			if (yych <= '>') goto yy252;
-			if (yych <= '@') goto yy231;
-			goto yy260;
-		} else {
-			if (yych <= '_') {
-				if (yych <= '^') goto yy231;
-				goto yy260;
-			} else {
-				if (yych <= '`') goto yy231;
-				if (yych <= 'z') goto yy260;
-				goto yy231;
-			}
-		}
-	}
-yy282:
-	yych = *++p;
-	if (yybm[0+yych] & 16) {
-		goto yy286;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '"') {
-			if (yych <= 0x00) goto yy231;
-			if (yych <= ' ') goto yy282;
-			goto yy288;
-		} else {
-			if (yych <= '\'') goto yy290;
-			if (yych <= 0xC1) goto yy231;
-			if (yych <= 0xDF) goto yy292;
-			goto yy293;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy295;
-			goto yy294;
-		} else {
-			if (yych <= 0xF0) goto yy296;
-			if (yych <= 0xF3) goto yy297;
-			if (yych <= 0xF4) goto yy298;
-			goto yy231;
-		}
-	}
-yy284:
-	yych = *++p;
-	if (yybm[0+yych] & 8) {
-		goto yy262;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= 0x00) goto yy231;
-			if (yych <= '-') goto yy251;
-			goto yy231;
-		} else {
-			if (yych <= 0xDF) goto yy265;
-			if (yych <= 0xE0) goto yy266;
-			goto yy267;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy268;
-			if (yych <= 0xEF) goto yy267;
-			goto yy269;
-		} else {
-			if (yych <= 0xF3) goto yy270;
-			if (yych <= 0xF4) goto yy271;
-			goto yy231;
-		}
-	}
-yy285:
-	yych = *++p;
-	if (yych == 'T') goto yy299;
-	if (yych == 't') goto yy299;
-	goto yy231;
-yy286:
-	yych = *++p;
-	if (yybm[0+yych] & 16) {
-		goto yy286;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '=') {
-			if (yych <= 0x00) goto yy231;
-			if (yych <= ' ') goto yy247;
-			goto yy231;
-		} else {
-			if (yych <= '>') goto yy252;
-			if (yych <= 0xC1) goto yy231;
-			if (yych <= 0xDF) goto yy292;
-			goto yy293;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy295;
-			goto yy294;
-		} else {
-			if (yych <= 0xF0) goto yy296;
-			if (yych <= 0xF3) goto yy297;
-			if (yych <= 0xF4) goto yy298;
-			goto yy231;
-		}
-	}
-yy288:
-	yych = *++p;
-	if (yybm[0+yych] & 32) {
-		goto yy288;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= 0x00) goto yy231;
-			if (yych <= '"') goto yy300;
-			goto yy231;
-		} else {
-			if (yych <= 0xDF) goto yy301;
-			if (yych <= 0xE0) goto yy302;
-			goto yy303;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy304;
-			if (yych <= 0xEF) goto yy303;
-			goto yy305;
-		} else {
-			if (yych <= 0xF3) goto yy306;
-			if (yych <= 0xF4) goto yy307;
-			goto yy231;
-		}
-	}
-yy290:
-	yych = *++p;
-	if (yybm[0+yych] & 64) {
-		goto yy290;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= 0x00) goto yy231;
-			if (yych <= '\'') goto yy300;
-			goto yy231;
-		} else {
-			if (yych <= 0xDF) goto yy308;
-			if (yych <= 0xE0) goto yy309;
-			goto yy310;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy311;
-			if (yych <= 0xEF) goto yy310;
-			goto yy312;
-		} else {
-			if (yych <= 0xF3) goto yy313;
-			if (yych <= 0xF4) goto yy314;
-			goto yy231;
-		}
-	}
-yy292:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy286;
-	goto yy231;
-yy293:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy231;
-	if (yych <= 0xBF) goto yy292;
-	goto yy231;
-yy294:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy292;
-	goto yy231;
-yy295:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x9F) goto yy292;
-	goto yy231;
-yy296:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy231;
-	if (yych <= 0xBF) goto yy294;
-	goto yy231;
-yy297:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy294;
-	goto yy231;
-yy298:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x8F) goto yy294;
-	goto yy231;
-yy299:
-	yych = *++p;
-	if (yych == 'A') goto yy315;
-	if (yych == 'a') goto yy315;
-	goto yy231;
-yy300:
-	yych = *++p;
-	if (yybm[0+yych] & 1) {
-		goto yy247;
-	}
-	if (yych == '/') goto yy251;
-	if (yych == '>') goto yy252;
-	goto yy231;
-yy301:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy288;
-	goto yy231;
-yy302:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy231;
-	if (yych <= 0xBF) goto yy301;
-	goto yy231;
-yy303:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy301;
-	goto yy231;
-yy304:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x9F) goto yy301;
-	goto yy231;
-yy305:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy231;
-	if (yych <= 0xBF) goto yy303;
-	goto yy231;
-yy306:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy303;
-	goto yy231;
-yy307:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x8F) goto yy303;
-	goto yy231;
-yy308:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy290;
-	goto yy231;
-yy309:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy231;
-	if (yych <= 0xBF) goto yy308;
-	goto yy231;
-yy310:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy308;
-	goto yy231;
-yy311:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x9F) goto yy308;
-	goto yy231;
-yy312:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy231;
-	if (yych <= 0xBF) goto yy310;
-	goto yy231;
-yy313:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy310;
-	goto yy231;
-yy314:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x8F) goto yy310;
-	goto yy231;
-yy315:
-	yych = *++p;
-	if (yych != '[') goto yy231;
-yy316:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy316;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= 0x00) goto yy231;
-			if (yych >= '^') goto yy231;
-		} else {
-			if (yych <= 0xDF) goto yy319;
-			if (yych <= 0xE0) goto yy320;
-			goto yy321;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy322;
-			if (yych <= 0xEF) goto yy321;
-			goto yy323;
-		} else {
-			if (yych <= 0xF3) goto yy324;
-			if (yych <= 0xF4) goto yy325;
-			goto yy231;
-		}
-	}
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy316;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= 0x00) goto yy231;
-			if (yych <= ']') goto yy326;
-			goto yy231;
-		} else {
-			if (yych <= 0xDF) goto yy319;
-			if (yych <= 0xE0) goto yy320;
-			goto yy321;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy322;
-			if (yych <= 0xEF) goto yy321;
-			goto yy323;
-		} else {
-			if (yych <= 0xF3) goto yy324;
-			if (yych <= 0xF4) goto yy325;
-			goto yy231;
-		}
-	}
-yy319:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy316;
-	goto yy231;
-yy320:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy231;
-	if (yych <= 0xBF) goto yy319;
-	goto yy231;
-yy321:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy319;
-	goto yy231;
-yy322:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x9F) goto yy319;
-	goto yy231;
-yy323:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy231;
-	if (yych <= 0xBF) goto yy321;
-	goto yy231;
-yy324:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0xBF) goto yy321;
-	goto yy231;
-yy325:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy231;
-	if (yych <= 0x8F) goto yy321;
-	goto yy231;
-yy326:
-	yych = *++p;
-	if (yych <= 0xE0) {
-		if (yych <= '>') {
-			if (yych <= 0x00) goto yy231;
-			if (yych <= '=') goto yy316;
-			goto yy252;
-		} else {
-			if (yych <= 0x7F) goto yy316;
-			if (yych <= 0xC1) goto yy231;
-			if (yych <= 0xDF) goto yy319;
-			goto yy320;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy322;
-			goto yy321;
-		} else {
-			if (yych <= 0xF0) goto yy323;
-			if (yych <= 0xF3) goto yy324;
-			if (yych <= 0xF4) goto yy325;
-			goto yy231;
-		}
-	}
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        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, 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, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *p;
+    if (yych == '-')
+      goto yy225;
+    ++p;
+  yy224 : { return 0; }
+  yy225:
+    yych = *(marker = ++p);
+    if (yych != '-')
+      goto yy224;
+  yy226:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy226;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy227;
+        if (yych <= '-')
+          goto yy228;
+      } else {
+        if (yych <= 0xDF)
+          goto yy229;
+        if (yych <= 0xE0)
+          goto yy230;
+        goto yy231;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy232;
+        if (yych <= 0xEF)
+          goto yy231;
+        goto yy233;
+      } else {
+        if (yych <= 0xF3)
+          goto yy234;
+        if (yych <= 0xF4)
+          goto yy235;
+      }
+    }
+  yy227:
+    p = marker;
+    goto yy224;
+  yy228:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy226;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy227;
+        if (yych <= '-')
+          goto yy236;
+        goto yy227;
+      } else {
+        if (yych <= 0xDF)
+          goto yy229;
+        if (yych <= 0xE0)
+          goto yy230;
+        goto yy231;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy232;
+        if (yych <= 0xEF)
+          goto yy231;
+        goto yy233;
+      } else {
+        if (yych <= 0xF3)
+          goto yy234;
+        if (yych <= 0xF4)
+          goto yy235;
+        goto yy227;
+      }
+    }
+  yy229:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy227;
+    if (yych <= 0xBF)
+      goto yy226;
+    goto yy227;
+  yy230:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy227;
+    if (yych <= 0xBF)
+      goto yy229;
+    goto yy227;
+  yy231:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy227;
+    if (yych <= 0xBF)
+      goto yy229;
+    goto yy227;
+  yy232:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy227;
+    if (yych <= 0x9F)
+      goto yy229;
+    goto yy227;
+  yy233:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy227;
+    if (yych <= 0xBF)
+      goto yy231;
+    goto yy227;
+  yy234:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy227;
+    if (yych <= 0xBF)
+      goto yy231;
+    goto yy227;
+  yy235:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy227;
+    if (yych <= 0x8F)
+      goto yy231;
+    goto yy227;
+  yy236:
+    yych = *++p;
+    if (yych <= 0xE0) {
+      if (yych <= '>') {
+        if (yych <= 0x00)
+          goto yy227;
+        if (yych <= '=')
+          goto yy226;
+      } else {
+        if (yych <= 0x7F)
+          goto yy226;
+        if (yych <= 0xC1)
+          goto yy227;
+        if (yych <= 0xDF)
+          goto yy229;
+        goto yy230;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy232;
+        goto yy231;
+      } else {
+        if (yych <= 0xF0)
+          goto yy233;
+        if (yych <= 0xF3)
+          goto yy234;
+        if (yych <= 0xF4)
+          goto yy235;
+        goto yy227;
+      }
+    }
+    ++p;
+    { return (bufsize_t)(p - start); }
+  }
 }
 
+bufsize_t _scan_html_pi(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, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 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, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 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 = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy240;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy238;
+        if (yych <= '?')
+          goto yy243;
+      } else {
+        if (yych <= 0xDF)
+          goto yy244;
+        if (yych <= 0xE0)
+          goto yy245;
+        goto yy246;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy247;
+        if (yych <= 0xEF)
+          goto yy246;
+        goto yy248;
+      } else {
+        if (yych <= 0xF3)
+          goto yy249;
+        if (yych <= 0xF4)
+          goto yy250;
+      }
+    }
+  yy238:
+    ++p;
+  yy239 : { return 0; }
+  yy240:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+  yy241:
+    if (yybm[0 + yych] & 128) {
+      goto yy240;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy242;
+        if (yych <= '?')
+          goto yy251;
+      } else {
+        if (yych <= 0xDF)
+          goto yy253;
+        if (yych <= 0xE0)
+          goto yy254;
+        goto yy255;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy256;
+        if (yych <= 0xEF)
+          goto yy255;
+        goto yy257;
+      } else {
+        if (yych <= 0xF3)
+          goto yy258;
+        if (yych <= 0xF4)
+          goto yy259;
+      }
+    }
+  yy242 : { return (bufsize_t)(p - start); }
+  yy243:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych <= '?') {
+      if (yych <= 0x00)
+        goto yy239;
+      if (yych <= '=')
+        goto yy241;
+      if (yych <= '>')
+        goto yy239;
+      goto yy240;
+    } else {
+      if (yych <= 0x7F)
+        goto yy241;
+      if (yych <= 0xC1)
+        goto yy239;
+      if (yych <= 0xF4)
+        goto yy241;
+      goto yy239;
+    }
+  yy244:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy239;
+    if (yych <= 0xBF)
+      goto yy240;
+    goto yy239;
+  yy245:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych <= 0x9F)
+      goto yy239;
+    if (yych <= 0xBF)
+      goto yy253;
+    goto yy239;
+  yy246:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy239;
+    if (yych <= 0xBF)
+      goto yy253;
+    goto yy239;
+  yy247:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy239;
+    if (yych <= 0x9F)
+      goto yy253;
+    goto yy239;
+  yy248:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych <= 0x8F)
+      goto yy239;
+    if (yych <= 0xBF)
+      goto yy255;
+    goto yy239;
+  yy249:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy239;
+    if (yych <= 0xBF)
+      goto yy255;
+    goto yy239;
+  yy250:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy239;
+    if (yych <= 0x8F)
+      goto yy255;
+    goto yy239;
+  yy251:
+    yych = *++p;
+    if (yych <= 0xE0) {
+      if (yych <= '>') {
+        if (yych <= 0x00)
+          goto yy252;
+        if (yych <= '=')
+          goto yy240;
+      } else {
+        if (yych <= 0x7F)
+          goto yy240;
+        if (yych <= 0xC1)
+          goto yy252;
+        if (yych <= 0xDF)
+          goto yy253;
+        goto yy254;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy256;
+        goto yy255;
+      } else {
+        if (yych <= 0xF0)
+          goto yy257;
+        if (yych <= 0xF3)
+          goto yy258;
+        if (yych <= 0xF4)
+          goto yy259;
+      }
+    }
+  yy252:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy242;
+    } else {
+      goto yy239;
+    }
+  yy253:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy252;
+    if (yych <= 0xBF)
+      goto yy240;
+    goto yy252;
+  yy254:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy252;
+    if (yych <= 0xBF)
+      goto yy253;
+    goto yy252;
+  yy255:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy252;
+    if (yych <= 0xBF)
+      goto yy253;
+    goto yy252;
+  yy256:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy252;
+    if (yych <= 0x9F)
+      goto yy253;
+    goto yy252;
+  yy257:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy252;
+    if (yych <= 0xBF)
+      goto yy255;
+    goto yy252;
+  yy258:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy252;
+    if (yych <= 0xBF)
+      goto yy255;
+    goto yy252;
+  yy259:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy252;
+    if (yych <= 0x8F)
+      goto yy255;
+    goto yy252;
+  }
 }
 
-// Try to (liberally) match an HTML tag after first <, returning num of chars matched.
-bufsize_t _scan_liberal_html_tag(const unsigned char *p)
-{
+bufsize_t _scan_html_declaration(const unsigned char *p) {
   const unsigned char *marker = NULL;
   const unsigned char *start = p;
 
-{
-	unsigned char yych;
-	unsigned int yyaccept = 0;
-	static const unsigned char yybm[] = {
-		  0,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,   0,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64, 128,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  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, 
-	};
-	yych = *p;
-	if (yych <= 0xE0) {
-		if (yych <= '\n') {
-			if (yych <= 0x00) goto yy329;
-			if (yych <= '\t') goto yy331;
-		} else {
-			if (yych <= 0x7F) goto yy331;
-			if (yych <= 0xC1) goto yy329;
-			if (yych <= 0xDF) goto yy332;
-			goto yy333;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy335;
-			goto yy334;
-		} else {
-			if (yych <= 0xF0) goto yy336;
-			if (yych <= 0xF3) goto yy337;
-			if (yych <= 0xF4) goto yy338;
-		}
-	}
-yy329:
-	++p;
-yy330:
-	{ return 0; }
-yy331:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= '\n') {
-		if (yych <= 0x00) goto yy330;
-		if (yych <= '\t') goto yy340;
-		goto yy330;
-	} else {
-		if (yych <= 0x7F) goto yy340;
-		if (yych <= 0xC1) goto yy330;
-		if (yych <= 0xF4) goto yy340;
-		goto yy330;
-	}
-yy332:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy330;
-	if (yych <= 0xBF) goto yy339;
-	goto yy330;
-yy333:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x9F) goto yy330;
-	if (yych <= 0xBF) goto yy345;
-	goto yy330;
-yy334:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy330;
-	if (yych <= 0xBF) goto yy345;
-	goto yy330;
-yy335:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy330;
-	if (yych <= 0x9F) goto yy345;
-	goto yy330;
-yy336:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x8F) goto yy330;
-	if (yych <= 0xBF) goto yy347;
-	goto yy330;
-yy337:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy330;
-	if (yych <= 0xBF) goto yy347;
-	goto yy330;
-yy338:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy330;
-	if (yych <= 0x8F) goto yy347;
-	goto yy330;
-yy339:
-	yych = *++p;
-yy340:
-	if (yybm[0+yych] & 64) {
-		goto yy339;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy341;
-			if (yych <= '>') goto yy342;
-		} else {
-			if (yych <= 0xDF) goto yy345;
-			if (yych <= 0xE0) goto yy346;
-			goto yy347;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy348;
-			if (yych <= 0xEF) goto yy347;
-			goto yy349;
-		} else {
-			if (yych <= 0xF3) goto yy350;
-			if (yych <= 0xF4) goto yy351;
-		}
-	}
-yy341:
-	p = marker;
-	if (yyaccept == 0) {
-		goto yy330;
-	} else {
-		goto yy344;
-	}
-yy342:
-	yyaccept = 1;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 64) {
-		goto yy339;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy344;
-			if (yych <= '>') goto yy342;
-		} else {
-			if (yych <= 0xDF) goto yy345;
-			if (yych <= 0xE0) goto yy346;
-			goto yy347;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy348;
-			if (yych <= 0xEF) goto yy347;
-			goto yy349;
-		} else {
-			if (yych <= 0xF3) goto yy350;
-			if (yych <= 0xF4) goto yy351;
-		}
-	}
-yy344:
-	{ return (bufsize_t)(p - start); }
-yy345:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy341;
-	if (yych <= 0xBF) goto yy339;
-	goto yy341;
-yy346:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy341;
-	if (yych <= 0xBF) goto yy345;
-	goto yy341;
-yy347:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy341;
-	if (yych <= 0xBF) goto yy345;
-	goto yy341;
-yy348:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy341;
-	if (yych <= 0x9F) goto yy345;
-	goto yy341;
-yy349:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy341;
-	if (yych <= 0xBF) goto yy347;
-	goto yy341;
-yy350:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy341;
-	if (yych <= 0xBF) goto yy347;
-	goto yy341;
-yy351:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy341;
-	if (yych <= 0x8F) goto yy347;
-	goto yy341;
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,   64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,
+        64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,
+        64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,
+        64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,
+        64,  64,  64,  64,  64,  64,  0,   64,  64,  192, 192, 192, 192, 192,
+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
+        192, 192, 192, 192, 192, 192, 192, 64,  64,  64,  64,  64,  64,  64,
+        64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,
+        64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,  64,
+        64,  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,
+    };
+    yych = *p;
+    if (yych <= '@')
+      goto yy261;
+    if (yych <= 'Z')
+      goto yy263;
+  yy261:
+    ++p;
+  yy262 : { return 0; }
+  yy263:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 128) {
+      goto yy266;
+    }
+    if (yych <= 0x08)
+      goto yy262;
+    if (yych <= '\r')
+      goto yy264;
+    if (yych != ' ')
+      goto yy262;
+  yy264:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy264;
+    }
+    if (yych <= 0xED) {
+      if (yych <= 0xDF) {
+        if (yych >= 0xC2)
+          goto yy268;
+      } else {
+        if (yych <= 0xE0)
+          goto yy269;
+        if (yych <= 0xEC)
+          goto yy270;
+        goto yy271;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xEF)
+          goto yy270;
+        goto yy272;
+      } else {
+        if (yych <= 0xF3)
+          goto yy273;
+        if (yych <= 0xF4)
+          goto yy274;
+      }
+    }
+  yy265 : { return (bufsize_t)(p - start); }
+  yy266:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy266;
+    }
+    if (yych <= 0x08)
+      goto yy267;
+    if (yych <= '\r')
+      goto yy264;
+    if (yych == ' ')
+      goto yy264;
+  yy267:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy262;
+    } else {
+      goto yy265;
+    }
+  yy268:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy267;
+    if (yych <= 0xBF)
+      goto yy264;
+    goto yy267;
+  yy269:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy267;
+    if (yych <= 0xBF)
+      goto yy268;
+    goto yy267;
+  yy270:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy267;
+    if (yych <= 0xBF)
+      goto yy268;
+    goto yy267;
+  yy271:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy267;
+    if (yych <= 0x9F)
+      goto yy268;
+    goto yy267;
+  yy272:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy267;
+    if (yych <= 0xBF)
+      goto yy270;
+    goto yy267;
+  yy273:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy267;
+    if (yych <= 0xBF)
+      goto yy270;
+    goto yy267;
+  yy274:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy267;
+    if (yych <= 0x8F)
+      goto yy270;
+    goto yy267;
+  }
 }
 
+bufsize_t _scan_html_cdata(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, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 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, 128, 128, 128,
+        128, 128, 128, 128, 128, 128, 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 = *p;
+    if (yych == 'C')
+      goto yy277;
+    if (yych == 'c')
+      goto yy277;
+    ++p;
+  yy276 : { return 0; }
+  yy277:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'D')
+      goto yy278;
+    if (yych != 'd')
+      goto yy276;
+  yy278:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy280;
+    if (yych == 'a')
+      goto yy280;
+  yy279:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy276;
+    } else {
+      goto yy284;
+    }
+  yy280:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy281;
+    if (yych != 't')
+      goto yy279;
+  yy281:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy282;
+    if (yych != 'a')
+      goto yy279;
+  yy282:
+    yych = *++p;
+    if (yych != '[')
+      goto yy279;
+  yy283:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 128) {
+      goto yy283;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy284;
+        if (yych <= ']')
+          goto yy285;
+      } else {
+        if (yych <= 0xDF)
+          goto yy286;
+        if (yych <= 0xE0)
+          goto yy287;
+        goto yy288;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy289;
+        if (yych <= 0xEF)
+          goto yy288;
+        goto yy290;
+      } else {
+        if (yych <= 0xF3)
+          goto yy291;
+        if (yych <= 0xF4)
+          goto yy292;
+      }
+    }
+  yy284 : { return (bufsize_t)(p - start); }
+  yy285:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy283;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy279;
+        if (yych <= ']')
+          goto yy293;
+        goto yy279;
+      } else {
+        if (yych <= 0xDF)
+          goto yy286;
+        if (yych <= 0xE0)
+          goto yy287;
+        goto yy288;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy289;
+        if (yych <= 0xEF)
+          goto yy288;
+        goto yy290;
+      } else {
+        if (yych <= 0xF3)
+          goto yy291;
+        if (yych <= 0xF4)
+          goto yy292;
+        goto yy279;
+      }
+    }
+  yy286:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy279;
+    if (yych <= 0xBF)
+      goto yy283;
+    goto yy279;
+  yy287:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy279;
+    if (yych <= 0xBF)
+      goto yy286;
+    goto yy279;
+  yy288:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy279;
+    if (yych <= 0xBF)
+      goto yy286;
+    goto yy279;
+  yy289:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy279;
+    if (yych <= 0x9F)
+      goto yy286;
+    goto yy279;
+  yy290:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy279;
+    if (yych <= 0xBF)
+      goto yy288;
+    goto yy279;
+  yy291:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy279;
+    if (yych <= 0xBF)
+      goto yy288;
+    goto yy279;
+  yy292:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy279;
+    if (yych <= 0x8F)
+      goto yy288;
+    goto yy279;
+  yy293:
+    yych = *++p;
+    if (yych <= 0xE0) {
+      if (yych <= '>') {
+        if (yych <= 0x00)
+          goto yy279;
+        if (yych <= '=')
+          goto yy283;
+        goto yy279;
+      } else {
+        if (yych <= 0x7F)
+          goto yy283;
+        if (yych <= 0xC1)
+          goto yy279;
+        if (yych <= 0xDF)
+          goto yy286;
+        goto yy287;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy289;
+        goto yy288;
+      } else {
+        if (yych <= 0xF0)
+          goto yy290;
+        if (yych <= 0xF3)
+          goto yy291;
+        if (yych <= 0xF4)
+          goto yy292;
+        goto yy279;
+      }
+    }
+  }
 }
 
 // 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)
-{
+bufsize_t _scan_html_block_start(const unsigned char *p) {
   const unsigned char *marker = NULL;
 
-{
-	unsigned char yych;
-	yych = *p;
-	if (yych == '<') goto yy356;
-	++p;
-yy355:
-	{ return 0; }
-yy356:
-	yych = *(marker = ++p);
-	switch (yych) {
-	case '!':	goto yy357;
-	case '/':	goto yy359;
-	case '?':	goto yy360;
-	case 'A':
-	case 'a':	goto yy362;
-	case 'B':
-	case 'b':	goto yy363;
-	case 'C':
-	case 'c':	goto yy364;
-	case 'D':
-	case 'd':	goto yy365;
-	case 'F':
-	case 'f':	goto yy366;
-	case 'H':
-	case 'h':	goto yy367;
-	case 'I':
-	case 'i':	goto yy368;
-	case 'L':
-	case 'l':	goto yy369;
-	case 'M':
-	case 'm':	goto yy370;
-	case 'N':
-	case 'n':	goto yy371;
-	case 'O':
-	case 'o':	goto yy372;
-	case 'P':
-	case 'p':	goto yy373;
-	case 'S':
-	case 's':	goto yy374;
-	case 'T':
-	case 't':	goto yy375;
-	case 'U':
-	case 'u':	goto yy376;
-	default:	goto yy355;
-	}
-yy357:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych == '-') goto yy377;
-	} else {
-		if (yych <= 'Z') goto yy378;
-		if (yych <= '[') goto yy380;
-	}
-yy358:
-	p = marker;
-	goto yy355;
-yy359:
-	yych = *++p;
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy362;
-	case 'B':
-	case 'b':	goto yy363;
-	case 'C':
-	case 'c':	goto yy364;
-	case 'D':
-	case 'd':	goto yy365;
-	case 'F':
-	case 'f':	goto yy366;
-	case 'H':
-	case 'h':	goto yy367;
-	case 'I':
-	case 'i':	goto yy368;
-	case 'L':
-	case 'l':	goto yy369;
-	case 'M':
-	case 'm':	goto yy370;
-	case 'N':
-	case 'n':	goto yy371;
-	case 'O':
-	case 'o':	goto yy372;
-	case 'P':
-	case 'p':	goto yy381;
-	case 'S':
-	case 's':	goto yy382;
-	case 'T':
-	case 't':	goto yy375;
-	case 'U':
-	case 'u':	goto yy376;
-	default:	goto yy358;
-	}
-yy360:
-	++p;
-	{ return 3; }
-yy362:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych <= 'D') {
-			if (yych <= 'C') goto yy358;
-			goto yy383;
-		} else {
-			if (yych <= 'Q') goto yy358;
-			if (yych <= 'R') goto yy384;
-			goto yy385;
-		}
-	} else {
-		if (yych <= 'q') {
-			if (yych == 'd') goto yy383;
-			goto yy358;
-		} else {
-			if (yych <= 'r') goto yy384;
-			if (yych <= 's') goto yy385;
-			goto yy358;
-		}
-	}
-yy363:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych <= 'K') {
-			if (yych == 'A') goto yy386;
-			goto yy358;
-		} else {
-			if (yych <= 'L') goto yy387;
-			if (yych <= 'N') goto yy358;
-			goto yy388;
-		}
-	} else {
-		if (yych <= 'k') {
-			if (yych == 'a') goto yy386;
-			goto yy358;
-		} else {
-			if (yych <= 'l') goto yy387;
-			if (yych == 'o') goto yy388;
-			goto yy358;
-		}
-	}
-yy364:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych <= 'D') {
-			if (yych == 'A') goto yy389;
-			goto yy358;
-		} else {
-			if (yych <= 'E') goto yy390;
-			if (yych <= 'N') goto yy358;
-			goto yy391;
-		}
-	} else {
-		if (yych <= 'd') {
-			if (yych == 'a') goto yy389;
-			goto yy358;
-		} else {
-			if (yych <= 'e') goto yy390;
-			if (yych == 'o') goto yy391;
-			goto yy358;
-		}
-	}
-yy365:
-	yych = *++p;
-	switch (yych) {
-	case 'D':
-	case 'L':
-	case 'T':
-	case 'd':
-	case 'l':
-	case 't':	goto yy392;
-	case 'E':
-	case 'e':	goto yy393;
-	case 'I':
-	case 'i':	goto yy394;
-	default:	goto yy358;
-	}
-yy366:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych <= 'N') {
-			if (yych == 'I') goto yy395;
-			goto yy358;
-		} else {
-			if (yych <= 'O') goto yy396;
-			if (yych <= 'Q') goto yy358;
-			goto yy397;
-		}
-	} else {
-		if (yych <= 'n') {
-			if (yych == 'i') goto yy395;
-			goto yy358;
-		} else {
-			if (yych <= 'o') goto yy396;
-			if (yych == 'r') goto yy397;
-			goto yy358;
-		}
-	}
-yy367:
-	yych = *++p;
-	if (yych <= 'S') {
-		if (yych <= 'D') {
-			if (yych <= '0') goto yy358;
-			if (yych <= '6') goto yy392;
-			goto yy358;
-		} else {
-			if (yych <= 'E') goto yy398;
-			if (yych == 'R') goto yy392;
-			goto yy358;
-		}
-	} else {
-		if (yych <= 'q') {
-			if (yych <= 'T') goto yy399;
-			if (yych == 'e') goto yy398;
-			goto yy358;
-		} else {
-			if (yych <= 'r') goto yy392;
-			if (yych == 't') goto yy399;
-			goto yy358;
-		}
-	}
-yy368:
-	yych = *++p;
-	if (yych == 'F') goto yy400;
-	if (yych == 'f') goto yy400;
-	goto yy358;
-yy369:
-	yych = *++p;
-	if (yych <= 'I') {
-		if (yych == 'E') goto yy401;
-		if (yych <= 'H') goto yy358;
-		goto yy402;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy358;
-			goto yy401;
-		} else {
-			if (yych == 'i') goto yy402;
-			goto yy358;
-		}
-	}
-yy370:
-	yych = *++p;
-	if (yych <= 'E') {
-		if (yych == 'A') goto yy403;
-		if (yych <= 'D') goto yy358;
-		goto yy404;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy358;
-			goto yy403;
-		} else {
-			if (yych == 'e') goto yy404;
-			goto yy358;
-		}
-	}
-yy371:
-	yych = *++p;
-	if (yych <= 'O') {
-		if (yych == 'A') goto yy405;
-		if (yych <= 'N') goto yy358;
-		goto yy406;
-	} else {
-		if (yych <= 'a') {
-			if (yych <= '`') goto yy358;
-			goto yy405;
-		} else {
-			if (yych == 'o') goto yy406;
-			goto yy358;
-		}
-	}
-yy372:
-	yych = *++p;
-	if (yych <= 'P') {
-		if (yych == 'L') goto yy392;
-		if (yych <= 'O') goto yy358;
-		goto yy407;
-	} else {
-		if (yych <= 'l') {
-			if (yych <= 'k') goto yy358;
-			goto yy392;
-		} else {
-			if (yych == 'p') goto yy407;
-			goto yy358;
-		}
-	}
-yy373:
-	yych = *++p;
-	if (yych <= '>') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) goto yy358;
-			if (yych <= '\r') goto yy408;
-			if (yych <= 0x1F) goto yy358;
-			goto yy408;
-		} else {
-			if (yych == '/') goto yy410;
-			if (yych <= '=') goto yy358;
-			goto yy408;
-		}
-	} else {
-		if (yych <= 'R') {
-			if (yych == 'A') goto yy411;
-			if (yych <= 'Q') goto yy358;
-			goto yy412;
-		} else {
-			if (yych <= 'a') {
-				if (yych <= '`') goto yy358;
-				goto yy411;
-			} else {
-				if (yych == 'r') goto yy412;
-				goto yy358;
-			}
-		}
-	}
-yy374:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych <= 'D') {
-			if (yych == 'C') goto yy413;
-			goto yy358;
-		} else {
-			if (yych <= 'E') goto yy414;
-			if (yych <= 'S') goto yy358;
-			if (yych <= 'T') goto yy415;
-			goto yy416;
-		}
-	} else {
-		if (yych <= 'e') {
-			if (yych == 'c') goto yy413;
-			if (yych <= 'd') goto yy358;
-			goto yy414;
-		} else {
-			if (yych <= 's') goto yy358;
-			if (yych <= 't') goto yy415;
-			if (yych <= 'u') goto yy416;
-			goto yy358;
-		}
-	}
-yy375:
-	yych = *++p;
-	switch (yych) {
-	case 'A':
-	case 'a':	goto yy417;
-	case 'B':
-	case 'b':	goto yy418;
-	case 'D':
-	case 'd':	goto yy392;
-	case 'F':
-	case 'f':	goto yy419;
-	case 'H':
-	case 'h':	goto yy420;
-	case 'I':
-	case 'i':	goto yy421;
-	case 'R':
-	case 'r':	goto yy422;
-	default:	goto yy358;
-	}
-yy376:
-	yych = *++p;
-	if (yych == 'L') goto yy392;
-	if (yych == 'l') goto yy392;
-	goto yy358;
-yy377:
-	yych = *++p;
-	if (yych == '-') goto yy423;
-	goto yy358;
-yy378:
-	++p;
-	{ return 4; }
-yy380:
-	yych = *++p;
-	if (yych == 'C') goto yy425;
-	if (yych == 'c') goto yy425;
-	goto yy358;
-yy381:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy358;
-			if (yych <= '\r') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= ' ') goto yy408;
-			if (yych <= '.') goto yy358;
-			goto yy410;
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych == '>') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= 'A') goto yy411;
-			if (yych == 'a') goto yy411;
-			goto yy358;
-		}
-	}
-yy382:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych == 'E') goto yy414;
-		if (yych <= 'T') goto yy358;
-		goto yy416;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy358;
-			goto yy414;
-		} else {
-			if (yych == 'u') goto yy416;
-			goto yy358;
-		}
-	}
-yy383:
-	yych = *++p;
-	if (yych == 'D') goto yy426;
-	if (yych == 'd') goto yy426;
-	goto yy358;
-yy384:
-	yych = *++p;
-	if (yych == 'T') goto yy427;
-	if (yych == 't') goto yy427;
-	goto yy358;
-yy385:
-	yych = *++p;
-	if (yych == 'I') goto yy428;
-	if (yych == 'i') goto yy428;
-	goto yy358;
-yy386:
-	yych = *++p;
-	if (yych == 'S') goto yy429;
-	if (yych == 's') goto yy429;
-	goto yy358;
-yy387:
-	yych = *++p;
-	if (yych == 'O') goto yy430;
-	if (yych == 'o') goto yy430;
-	goto yy358;
-yy388:
-	yych = *++p;
-	if (yych == 'D') goto yy431;
-	if (yych == 'd') goto yy431;
-	goto yy358;
-yy389:
-	yych = *++p;
-	if (yych == 'P') goto yy432;
-	if (yych == 'p') goto yy432;
-	goto yy358;
-yy390:
-	yych = *++p;
-	if (yych == 'N') goto yy433;
-	if (yych == 'n') goto yy433;
-	goto yy358;
-yy391:
-	yych = *++p;
-	if (yych == 'L') goto yy434;
-	if (yych == 'l') goto yy434;
-	goto yy358;
-yy392:
-	yych = *++p;
-	if (yych <= ' ') {
-		if (yych <= 0x08) goto yy358;
-		if (yych <= '\r') goto yy408;
-		if (yych <= 0x1F) goto yy358;
-		goto yy408;
-	} else {
-		if (yych <= '/') {
-			if (yych <= '.') goto yy358;
-			goto yy410;
-		} else {
-			if (yych == '>') goto yy408;
-			goto yy358;
-		}
-	}
-yy393:
-	yych = *++p;
-	if (yych == 'T') goto yy435;
-	if (yych == 't') goto yy435;
-	goto yy358;
-yy394:
-	yych = *++p;
-	if (yych <= 'V') {
-		if (yych <= 'Q') {
-			if (yych == 'A') goto yy436;
-			goto yy358;
-		} else {
-			if (yych <= 'R') goto yy392;
-			if (yych <= 'U') goto yy358;
-			goto yy392;
-		}
-	} else {
-		if (yych <= 'q') {
-			if (yych == 'a') goto yy436;
-			goto yy358;
-		} else {
-			if (yych <= 'r') goto yy392;
-			if (yych == 'v') goto yy392;
-			goto yy358;
-		}
-	}
-yy395:
-	yych = *++p;
-	if (yych <= 'G') {
-		if (yych == 'E') goto yy437;
-		if (yych <= 'F') goto yy358;
-		goto yy438;
-	} else {
-		if (yych <= 'e') {
-			if (yych <= 'd') goto yy358;
-			goto yy437;
-		} else {
-			if (yych == 'g') goto yy438;
-			goto yy358;
-		}
-	}
-yy396:
-	yych = *++p;
-	if (yych <= 'R') {
-		if (yych == 'O') goto yy433;
-		if (yych <= 'Q') goto yy358;
-		goto yy439;
-	} else {
-		if (yych <= 'o') {
-			if (yych <= 'n') goto yy358;
-			goto yy433;
-		} else {
-			if (yych == 'r') goto yy439;
-			goto yy358;
-		}
-	}
-yy397:
-	yych = *++p;
-	if (yych == 'A') goto yy440;
-	if (yych == 'a') goto yy440;
-	goto yy358;
-yy398:
-	yych = *++p;
-	if (yych == 'A') goto yy441;
-	if (yych == 'a') goto yy441;
-	goto yy358;
-yy399:
-	yych = *++p;
-	if (yych == 'M') goto yy376;
-	if (yych == 'm') goto yy376;
-	goto yy358;
-yy400:
-	yych = *++p;
-	if (yych == 'R') goto yy442;
-	if (yych == 'r') goto yy442;
-	goto yy358;
-yy401:
-	yych = *++p;
-	if (yych == 'G') goto yy443;
-	if (yych == 'g') goto yy443;
-	goto yy358;
-yy402:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy358;
-			if (yych <= '\r') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= ' ') goto yy408;
-			if (yych <= '.') goto yy358;
-			goto yy410;
-		}
-	} else {
-		if (yych <= 'M') {
-			if (yych == '>') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= 'N') goto yy444;
-			if (yych == 'n') goto yy444;
-			goto yy358;
-		}
-	}
-yy403:
-	yych = *++p;
-	if (yych == 'I') goto yy445;
-	if (yych == 'i') goto yy445;
-	goto yy358;
-yy404:
-	yych = *++p;
-	if (yych == 'N') goto yy446;
-	if (yych == 'n') goto yy446;
-	goto yy358;
-yy405:
-	yych = *++p;
-	if (yych == 'V') goto yy392;
-	if (yych == 'v') goto yy392;
-	goto yy358;
-yy406:
-	yych = *++p;
-	if (yych == 'F') goto yy447;
-	if (yych == 'f') goto yy447;
-	goto yy358;
-yy407:
-	yych = *++p;
-	if (yych == 'T') goto yy448;
-	if (yych == 't') goto yy448;
-	goto yy358;
-yy408:
-	++p;
-	{ return 6; }
-yy410:
-	yych = *++p;
-	if (yych == '>') goto yy408;
-	goto yy358;
-yy411:
-	yych = *++p;
-	if (yych == 'R') goto yy449;
-	if (yych == 'r') goto yy449;
-	goto yy358;
-yy412:
-	yych = *++p;
-	if (yych == 'E') goto yy450;
-	if (yych == 'e') goto yy450;
-	goto yy358;
-yy413:
-	yych = *++p;
-	if (yych == 'R') goto yy451;
-	if (yych == 'r') goto yy451;
-	goto yy358;
-yy414:
-	yych = *++p;
-	if (yych == 'C') goto yy432;
-	if (yych == 'c') goto yy432;
-	goto yy358;
-yy415:
-	yych = *++p;
-	if (yych == 'Y') goto yy452;
-	if (yych == 'y') goto yy452;
-	goto yy358;
-yy416:
-	yych = *++p;
-	if (yych == 'M') goto yy453;
-	if (yych == 'm') goto yy453;
-	goto yy358;
-yy417:
-	yych = *++p;
-	if (yych == 'B') goto yy454;
-	if (yych == 'b') goto yy454;
-	goto yy358;
-yy418:
-	yych = *++p;
-	if (yych == 'O') goto yy388;
-	if (yych == 'o') goto yy388;
-	goto yy358;
-yy419:
-	yych = *++p;
-	if (yych == 'O') goto yy455;
-	if (yych == 'o') goto yy455;
-	goto yy358;
-yy420:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy358;
-			if (yych <= '\r') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= ' ') goto yy408;
-			if (yych <= '.') goto yy358;
-			goto yy410;
-		}
-	} else {
-		if (yych <= 'D') {
-			if (yych == '>') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= 'E') goto yy456;
-			if (yych == 'e') goto yy456;
-			goto yy358;
-		}
-	}
-yy421:
-	yych = *++p;
-	if (yych == 'T') goto yy454;
-	if (yych == 't') goto yy454;
-	goto yy358;
-yy422:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy358;
-			if (yych <= '\r') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= ' ') goto yy408;
-			if (yych <= '.') goto yy358;
-			goto yy410;
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych == '>') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= 'A') goto yy457;
-			if (yych == 'a') goto yy457;
-			goto yy358;
-		}
-	}
-yy423:
-	++p;
-	{ return 2; }
-yy425:
-	yych = *++p;
-	if (yych == 'D') goto yy458;
-	if (yych == 'd') goto yy458;
-	goto yy358;
-yy426:
-	yych = *++p;
-	if (yych == 'R') goto yy459;
-	if (yych == 'r') goto yy459;
-	goto yy358;
-yy427:
-	yych = *++p;
-	if (yych == 'I') goto yy460;
-	if (yych == 'i') goto yy460;
-	goto yy358;
-yy428:
-	yych = *++p;
-	if (yych == 'D') goto yy461;
-	if (yych == 'd') goto yy461;
-	goto yy358;
-yy429:
-	yych = *++p;
-	if (yych == 'E') goto yy462;
-	if (yych == 'e') goto yy462;
-	goto yy358;
-yy430:
-	yych = *++p;
-	if (yych == 'C') goto yy463;
-	if (yych == 'c') goto yy463;
-	goto yy358;
-yy431:
-	yych = *++p;
-	if (yych == 'Y') goto yy392;
-	if (yych == 'y') goto yy392;
-	goto yy358;
-yy432:
-	yych = *++p;
-	if (yych == 'T') goto yy464;
-	if (yych == 't') goto yy464;
-	goto yy358;
-yy433:
-	yych = *++p;
-	if (yych == 'T') goto yy465;
-	if (yych == 't') goto yy465;
-	goto yy358;
-yy434:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy358;
-			if (yych <= '\r') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= ' ') goto yy408;
-			if (yych <= '.') goto yy358;
-			goto yy410;
-		}
-	} else {
-		if (yych <= 'F') {
-			if (yych == '>') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= 'G') goto yy466;
-			if (yych == 'g') goto yy466;
-			goto yy358;
-		}
-	}
-yy435:
-	yych = *++p;
-	if (yych == 'A') goto yy467;
-	if (yych == 'a') goto yy467;
-	goto yy358;
-yy436:
-	yych = *++p;
-	if (yych == 'L') goto yy468;
-	if (yych == 'l') goto yy468;
-	goto yy358;
-yy437:
-	yych = *++p;
-	if (yych == 'L') goto yy469;
-	if (yych == 'l') goto yy469;
-	goto yy358;
-yy438:
-	yych = *++p;
-	if (yych <= 'U') {
-		if (yych == 'C') goto yy470;
-		if (yych <= 'T') goto yy358;
-		goto yy471;
-	} else {
-		if (yych <= 'c') {
-			if (yych <= 'b') goto yy358;
-			goto yy470;
-		} else {
-			if (yych == 'u') goto yy471;
-			goto yy358;
-		}
-	}
-yy439:
-	yych = *++p;
-	if (yych == 'M') goto yy392;
-	if (yych == 'm') goto yy392;
-	goto yy358;
-yy440:
-	yych = *++p;
-	if (yych == 'M') goto yy472;
-	if (yych == 'm') goto yy472;
-	goto yy358;
-yy441:
-	yych = *++p;
-	if (yych == 'D') goto yy473;
-	if (yych == 'd') goto yy473;
-	goto yy358;
-yy442:
-	yych = *++p;
-	if (yych == 'A') goto yy474;
-	if (yych == 'a') goto yy474;
-	goto yy358;
-yy443:
-	yych = *++p;
-	if (yych == 'E') goto yy475;
-	if (yych == 'e') goto yy475;
-	goto yy358;
-yy444:
-	yych = *++p;
-	if (yych == 'K') goto yy392;
-	if (yych == 'k') goto yy392;
-	goto yy358;
-yy445:
-	yych = *++p;
-	if (yych == 'N') goto yy392;
-	if (yych == 'n') goto yy392;
-	goto yy358;
-yy446:
-	yych = *++p;
-	if (yych == 'U') goto yy476;
-	if (yych == 'u') goto yy476;
-	goto yy358;
-yy447:
-	yych = *++p;
-	if (yych == 'R') goto yy477;
-	if (yych == 'r') goto yy477;
-	goto yy358;
-yy448:
-	yych = *++p;
-	if (yych <= 'I') {
-		if (yych == 'G') goto yy466;
-		if (yych <= 'H') goto yy358;
-		goto yy478;
-	} else {
-		if (yych <= 'g') {
-			if (yych <= 'f') goto yy358;
-			goto yy466;
-		} else {
-			if (yych == 'i') goto yy478;
-			goto yy358;
-		}
-	}
-yy449:
-	yych = *++p;
-	if (yych == 'A') goto yy439;
-	if (yych == 'a') goto yy439;
-	goto yy358;
-yy450:
-	yych = *++p;
-	if (yych <= 0x1F) {
-		if (yych <= 0x08) goto yy358;
-		if (yych <= '\r') goto yy479;
-		goto yy358;
-	} else {
-		if (yych <= ' ') goto yy479;
-		if (yych == '>') goto yy479;
-		goto yy358;
-	}
-yy451:
-	yych = *++p;
-	if (yych == 'I') goto yy481;
-	if (yych == 'i') goto yy481;
-	goto yy358;
-yy452:
-	yych = *++p;
-	if (yych == 'L') goto yy412;
-	if (yych == 'l') goto yy412;
-	goto yy358;
-yy453:
-	yych = *++p;
-	if (yych == 'M') goto yy482;
-	if (yych == 'm') goto yy482;
-	goto yy358;
-yy454:
-	yych = *++p;
-	if (yych == 'L') goto yy461;
-	if (yych == 'l') goto yy461;
-	goto yy358;
-yy455:
-	yych = *++p;
-	if (yych == 'O') goto yy483;
-	if (yych == 'o') goto yy483;
-	goto yy358;
-yy456:
-	yych = *++p;
-	if (yych == 'A') goto yy484;
-	if (yych == 'a') goto yy484;
-	goto yy358;
-yy457:
-	yych = *++p;
-	if (yych == 'C') goto yy444;
-	if (yych == 'c') goto yy444;
-	goto yy358;
-yy458:
-	yych = *++p;
-	if (yych == 'A') goto yy485;
-	if (yych == 'a') goto yy485;
-	goto yy358;
-yy459:
-	yych = *++p;
-	if (yych == 'E') goto yy486;
-	if (yych == 'e') goto yy486;
-	goto yy358;
-yy460:
-	yych = *++p;
-	if (yych == 'C') goto yy454;
-	if (yych == 'c') goto yy454;
-	goto yy358;
-yy461:
-	yych = *++p;
-	if (yych == 'E') goto yy392;
-	if (yych == 'e') goto yy392;
-	goto yy358;
-yy462:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy358;
-			if (yych <= '\r') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= ' ') goto yy408;
-			if (yych <= '.') goto yy358;
-			goto yy410;
-		}
-	} else {
-		if (yych <= 'E') {
-			if (yych == '>') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= 'F') goto yy487;
-			if (yych == 'f') goto yy487;
-			goto yy358;
-		}
-	}
-yy463:
-	yych = *++p;
-	if (yych == 'K') goto yy488;
-	if (yych == 'k') goto yy488;
-	goto yy358;
-yy464:
-	yych = *++p;
-	if (yych == 'I') goto yy478;
-	if (yych == 'i') goto yy478;
-	goto yy358;
-yy465:
-	yych = *++p;
-	if (yych == 'E') goto yy489;
-	if (yych == 'e') goto yy489;
-	goto yy358;
-yy466:
-	yych = *++p;
-	if (yych == 'R') goto yy490;
-	if (yych == 'r') goto yy490;
-	goto yy358;
-yy467:
-	yych = *++p;
-	if (yych == 'I') goto yy491;
-	if (yych == 'i') goto yy491;
-	goto yy358;
-yy468:
-	yych = *++p;
-	if (yych == 'O') goto yy492;
-	if (yych == 'o') goto yy492;
-	goto yy358;
-yy469:
-	yych = *++p;
-	if (yych == 'D') goto yy493;
-	if (yych == 'd') goto yy493;
-	goto yy358;
-yy470:
-	yych = *++p;
-	if (yych == 'A') goto yy389;
-	if (yych == 'a') goto yy389;
-	goto yy358;
-yy471:
-	yych = *++p;
-	if (yych == 'R') goto yy461;
-	if (yych == 'r') goto yy461;
-	goto yy358;
-yy472:
-	yych = *++p;
-	if (yych == 'E') goto yy494;
-	if (yych == 'e') goto yy494;
-	goto yy358;
-yy473:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy358;
-			if (yych <= '\r') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= ' ') goto yy408;
-			if (yych <= '.') goto yy358;
-			goto yy410;
-		}
-	} else {
-		if (yych <= 'D') {
-			if (yych == '>') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= 'E') goto yy489;
-			if (yych == 'e') goto yy489;
-			goto yy358;
-		}
-	}
-yy474:
-	yych = *++p;
-	if (yych == 'M') goto yy461;
-	if (yych == 'm') goto yy461;
-	goto yy358;
-yy475:
-	yych = *++p;
-	if (yych == 'N') goto yy484;
-	if (yych == 'n') goto yy484;
-	goto yy358;
-yy476:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy358;
-			if (yych <= '\r') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= ' ') goto yy408;
-			if (yych <= '.') goto yy358;
-			goto yy410;
-		}
-	} else {
-		if (yych <= 'H') {
-			if (yych == '>') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= 'I') goto yy495;
-			if (yych == 'i') goto yy495;
-			goto yy358;
-		}
-	}
-yy477:
-	yych = *++p;
-	if (yych == 'A') goto yy496;
-	if (yych == 'a') goto yy496;
-	goto yy358;
-yy478:
-	yych = *++p;
-	if (yych == 'O') goto yy445;
-	if (yych == 'o') goto yy445;
-	goto yy358;
-yy479:
-	++p;
-	{ return 1; }
-yy481:
-	yych = *++p;
-	if (yych == 'P') goto yy497;
-	if (yych == 'p') goto yy497;
-	goto yy358;
-yy482:
-	yych = *++p;
-	if (yych == 'A') goto yy498;
-	if (yych == 'a') goto yy498;
-	goto yy358;
-yy483:
-	yych = *++p;
-	if (yych == 'T') goto yy392;
-	if (yych == 't') goto yy392;
-	goto yy358;
-yy484:
-	yych = *++p;
-	if (yych == 'D') goto yy392;
-	if (yych == 'd') goto yy392;
-	goto yy358;
-yy485:
-	yych = *++p;
-	if (yych == 'T') goto yy499;
-	if (yych == 't') goto yy499;
-	goto yy358;
-yy486:
-	yych = *++p;
-	if (yych == 'S') goto yy500;
-	if (yych == 's') goto yy500;
-	goto yy358;
-yy487:
-	yych = *++p;
-	if (yych == 'O') goto yy501;
-	if (yych == 'o') goto yy501;
-	goto yy358;
-yy488:
-	yych = *++p;
-	if (yych == 'Q') goto yy502;
-	if (yych == 'q') goto yy502;
-	goto yy358;
-yy489:
-	yych = *++p;
-	if (yych == 'R') goto yy392;
-	if (yych == 'r') goto yy392;
-	goto yy358;
-yy490:
-	yych = *++p;
-	if (yych == 'O') goto yy503;
-	if (yych == 'o') goto yy503;
-	goto yy358;
-yy491:
-	yych = *++p;
-	if (yych == 'L') goto yy500;
-	if (yych == 'l') goto yy500;
-	goto yy358;
-yy492:
-	yych = *++p;
-	if (yych == 'G') goto yy392;
-	if (yych == 'g') goto yy392;
-	goto yy358;
-yy493:
-	yych = *++p;
-	if (yych == 'S') goto yy504;
-	if (yych == 's') goto yy504;
-	goto yy358;
-yy494:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy358;
-			if (yych <= '\r') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= ' ') goto yy408;
-			if (yych <= '.') goto yy358;
-			goto yy410;
-		}
-	} else {
-		if (yych <= 'R') {
-			if (yych == '>') goto yy408;
-			goto yy358;
-		} else {
-			if (yych <= 'S') goto yy504;
-			if (yych == 's') goto yy504;
-			goto yy358;
-		}
-	}
-yy495:
-	yych = *++p;
-	if (yych == 'T') goto yy505;
-	if (yych == 't') goto yy505;
-	goto yy358;
-yy496:
-	yych = *++p;
-	if (yych == 'M') goto yy506;
-	if (yych == 'm') goto yy506;
-	goto yy358;
-yy497:
-	yych = *++p;
-	if (yych == 'T') goto yy450;
-	if (yych == 't') goto yy450;
-	goto yy358;
-yy498:
-	yych = *++p;
-	if (yych == 'R') goto yy431;
-	if (yych == 'r') goto yy431;
-	goto yy358;
-yy499:
-	yych = *++p;
-	if (yych == 'A') goto yy507;
-	if (yych == 'a') goto yy507;
-	goto yy358;
-yy500:
-	yych = *++p;
-	if (yych == 'S') goto yy392;
-	if (yych == 's') goto yy392;
-	goto yy358;
-yy501:
-	yych = *++p;
-	if (yych == 'N') goto yy483;
-	if (yych == 'n') goto yy483;
-	goto yy358;
-yy502:
-	yych = *++p;
-	if (yych == 'U') goto yy508;
-	if (yych == 'u') goto yy508;
-	goto yy358;
-yy503:
-	yych = *++p;
-	if (yych == 'U') goto yy509;
-	if (yych == 'u') goto yy509;
-	goto yy358;
-yy504:
-	yych = *++p;
-	if (yych == 'E') goto yy483;
-	if (yych == 'e') goto yy483;
-	goto yy358;
-yy505:
-	yych = *++p;
-	if (yych == 'E') goto yy439;
-	if (yych == 'e') goto yy439;
-	goto yy358;
-yy506:
-	yych = *++p;
-	if (yych == 'E') goto yy500;
-	if (yych == 'e') goto yy500;
-	goto yy358;
-yy507:
-	yych = *++p;
-	if (yych == '[') goto yy510;
-	goto yy358;
-yy508:
-	yych = *++p;
-	if (yych == 'O') goto yy512;
-	if (yych == 'o') goto yy512;
-	goto yy358;
-yy509:
-	yych = *++p;
-	if (yych == 'P') goto yy392;
-	if (yych == 'p') goto yy392;
-	goto yy358;
-yy510:
-	++p;
-	{ return 5; }
-yy512:
-	yych = *++p;
-	if (yych == 'T') goto yy461;
-	if (yych == 't') goto yy461;
-	goto yy358;
-}
-
+  {
+    unsigned char yych;
+    yych = *p;
+    if (yych == '<')
+      goto yy296;
+    ++p;
+  yy295 : { return 0; }
+  yy296:
+    yych = *(marker = ++p);
+    switch (yych) {
+    case '!':
+      goto yy297;
+    case '/':
+      goto yy299;
+    case '?':
+      goto yy300;
+    case 'A':
+    case 'a':
+      goto yy301;
+    case 'B':
+    case 'b':
+      goto yy302;
+    case 'C':
+    case 'c':
+      goto yy303;
+    case 'D':
+    case 'd':
+      goto yy304;
+    case 'F':
+    case 'f':
+      goto yy305;
+    case 'H':
+    case 'h':
+      goto yy306;
+    case 'I':
+    case 'i':
+      goto yy307;
+    case 'L':
+    case 'l':
+      goto yy308;
+    case 'M':
+    case 'm':
+      goto yy309;
+    case 'N':
+    case 'n':
+      goto yy310;
+    case 'O':
+    case 'o':
+      goto yy311;
+    case 'P':
+    case 'p':
+      goto yy312;
+    case 'S':
+    case 's':
+      goto yy313;
+    case 'T':
+    case 't':
+      goto yy314;
+    case 'U':
+    case 'u':
+      goto yy315;
+    default:
+      goto yy295;
+    }
+  yy297:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych == '-')
+        goto yy316;
+    } else {
+      if (yych <= 'Z')
+        goto yy317;
+      if (yych <= '[')
+        goto yy318;
+    }
+  yy298:
+    p = marker;
+    goto yy295;
+  yy299:
+    yych = *++p;
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy301;
+    case 'B':
+    case 'b':
+      goto yy302;
+    case 'C':
+    case 'c':
+      goto yy303;
+    case 'D':
+    case 'd':
+      goto yy304;
+    case 'F':
+    case 'f':
+      goto yy305;
+    case 'H':
+    case 'h':
+      goto yy306;
+    case 'I':
+    case 'i':
+      goto yy307;
+    case 'L':
+    case 'l':
+      goto yy308;
+    case 'M':
+    case 'm':
+      goto yy309;
+    case 'N':
+    case 'n':
+      goto yy310;
+    case 'O':
+    case 'o':
+      goto yy311;
+    case 'P':
+    case 'p':
+      goto yy319;
+    case 'S':
+    case 's':
+      goto yy320;
+    case 'T':
+    case 't':
+      goto yy321;
+    case 'U':
+    case 'u':
+      goto yy315;
+    default:
+      goto yy298;
+    }
+  yy300:
+    ++p;
+    { return 3; }
+  yy301:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych <= 'D') {
+        if (yych <= 'C')
+          goto yy298;
+        goto yy322;
+      } else {
+        if (yych <= 'Q')
+          goto yy298;
+        if (yych <= 'R')
+          goto yy323;
+        goto yy324;
+      }
+    } else {
+      if (yych <= 'q') {
+        if (yych == 'd')
+          goto yy322;
+        goto yy298;
+      } else {
+        if (yych <= 'r')
+          goto yy323;
+        if (yych <= 's')
+          goto yy324;
+        goto yy298;
+      }
+    }
+  yy302:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych <= 'K') {
+        if (yych == 'A')
+          goto yy325;
+        goto yy298;
+      } else {
+        if (yych <= 'L')
+          goto yy326;
+        if (yych <= 'N')
+          goto yy298;
+        goto yy327;
+      }
+    } else {
+      if (yych <= 'k') {
+        if (yych == 'a')
+          goto yy325;
+        goto yy298;
+      } else {
+        if (yych <= 'l')
+          goto yy326;
+        if (yych == 'o')
+          goto yy327;
+        goto yy298;
+      }
+    }
+  yy303:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych <= 'D') {
+        if (yych == 'A')
+          goto yy328;
+        goto yy298;
+      } else {
+        if (yych <= 'E')
+          goto yy329;
+        if (yych <= 'N')
+          goto yy298;
+        goto yy330;
+      }
+    } else {
+      if (yych <= 'd') {
+        if (yych == 'a')
+          goto yy328;
+        goto yy298;
+      } else {
+        if (yych <= 'e')
+          goto yy329;
+        if (yych == 'o')
+          goto yy330;
+        goto yy298;
+      }
+    }
+  yy304:
+    yych = *++p;
+    switch (yych) {
+    case 'D':
+    case 'L':
+    case 'T':
+    case 'd':
+    case 'l':
+    case 't':
+      goto yy331;
+    case 'E':
+    case 'e':
+      goto yy332;
+    case 'I':
+    case 'i':
+      goto yy333;
+    default:
+      goto yy298;
+    }
+  yy305:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych <= 'N') {
+        if (yych == 'I')
+          goto yy334;
+        goto yy298;
+      } else {
+        if (yych <= 'O')
+          goto yy335;
+        if (yych <= 'Q')
+          goto yy298;
+        goto yy336;
+      }
+    } else {
+      if (yych <= 'n') {
+        if (yych == 'i')
+          goto yy334;
+        goto yy298;
+      } else {
+        if (yych <= 'o')
+          goto yy335;
+        if (yych == 'r')
+          goto yy336;
+        goto yy298;
+      }
+    }
+  yy306:
+    yych = *++p;
+    if (yych <= 'S') {
+      if (yych <= 'D') {
+        if (yych <= '0')
+          goto yy298;
+        if (yych <= '6')
+          goto yy331;
+        goto yy298;
+      } else {
+        if (yych <= 'E')
+          goto yy337;
+        if (yych == 'R')
+          goto yy331;
+        goto yy298;
+      }
+    } else {
+      if (yych <= 'q') {
+        if (yych <= 'T')
+          goto yy338;
+        if (yych == 'e')
+          goto yy337;
+        goto yy298;
+      } else {
+        if (yych <= 'r')
+          goto yy331;
+        if (yych == 't')
+          goto yy338;
+        goto yy298;
+      }
+    }
+  yy307:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy339;
+    if (yych == 'f')
+      goto yy339;
+    goto yy298;
+  yy308:
+    yych = *++p;
+    if (yych <= 'I') {
+      if (yych == 'E')
+        goto yy340;
+      if (yych <= 'H')
+        goto yy298;
+      goto yy341;
+    } else {
+      if (yych <= 'e') {
+        if (yych <= 'd')
+          goto yy298;
+        goto yy340;
+      } else {
+        if (yych == 'i')
+          goto yy341;
+        goto yy298;
+      }
+    }
+  yy309:
+    yych = *++p;
+    if (yych <= 'E') {
+      if (yych == 'A')
+        goto yy342;
+      if (yych <= 'D')
+        goto yy298;
+      goto yy343;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy298;
+        goto yy342;
+      } else {
+        if (yych == 'e')
+          goto yy343;
+        goto yy298;
+      }
+    }
+  yy310:
+    yych = *++p;
+    if (yych <= 'O') {
+      if (yych == 'A')
+        goto yy344;
+      if (yych <= 'N')
+        goto yy298;
+      goto yy345;
+    } else {
+      if (yych <= 'a') {
+        if (yych <= '`')
+          goto yy298;
+        goto yy344;
+      } else {
+        if (yych == 'o')
+          goto yy345;
+        goto yy298;
+      }
+    }
+  yy311:
+    yych = *++p;
+    if (yych <= 'P') {
+      if (yych == 'L')
+        goto yy331;
+      if (yych <= 'O')
+        goto yy298;
+      goto yy346;
+    } else {
+      if (yych <= 'l') {
+        if (yych <= 'k')
+          goto yy298;
+        goto yy331;
+      } else {
+        if (yych == 'p')
+          goto yy346;
+        goto yy298;
+      }
+    }
+  yy312:
+    yych = *++p;
+    if (yych <= '>') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy298;
+        if (yych <= '\r')
+          goto yy347;
+        if (yych <= 0x1F)
+          goto yy298;
+        goto yy347;
+      } else {
+        if (yych == '/')
+          goto yy348;
+        if (yych <= '=')
+          goto yy298;
+        goto yy347;
+      }
+    } else {
+      if (yych <= 'R') {
+        if (yych == 'A')
+          goto yy349;
+        if (yych <= 'Q')
+          goto yy298;
+        goto yy350;
+      } else {
+        if (yych <= 'a') {
+          if (yych <= '`')
+            goto yy298;
+          goto yy349;
+        } else {
+          if (yych == 'r')
+            goto yy350;
+          goto yy298;
+        }
+      }
+    }
+  yy313:
+    yych = *++p;
+    switch (yych) {
+    case 'C':
+    case 'c':
+      goto yy351;
+    case 'E':
+    case 'e':
+      goto yy352;
+    case 'O':
+    case 'o':
+      goto yy353;
+    case 'T':
+    case 't':
+      goto yy354;
+    case 'U':
+    case 'u':
+      goto yy355;
+    default:
+      goto yy298;
+    }
+  yy314:
+    yych = *++p;
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy356;
+    case 'B':
+    case 'b':
+      goto yy357;
+    case 'D':
+    case 'd':
+      goto yy331;
+    case 'E':
+    case 'e':
+      goto yy358;
+    case 'F':
+    case 'f':
+      goto yy359;
+    case 'H':
+    case 'h':
+      goto yy360;
+    case 'I':
+    case 'i':
+      goto yy361;
+    case 'R':
+    case 'r':
+      goto yy362;
+    default:
+      goto yy298;
+    }
+  yy315:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy331;
+    if (yych == 'l')
+      goto yy331;
+    goto yy298;
+  yy316:
+    yych = *++p;
+    if (yych == '-')
+      goto yy363;
+    goto yy298;
+  yy317:
+    ++p;
+    { return 4; }
+  yy318:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy364;
+    if (yych == 'c')
+      goto yy364;
+    goto yy298;
+  yy319:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy298;
+        if (yych <= '\r')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= ' ')
+          goto yy347;
+        if (yych <= '.')
+          goto yy298;
+        goto yy348;
+      }
+    } else {
+      if (yych <= '@') {
+        if (yych == '>')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= 'A')
+          goto yy349;
+        if (yych == 'a')
+          goto yy349;
+        goto yy298;
+      }
+    }
+  yy320:
+    yych = *++p;
+    if (yych <= 'U') {
+      if (yych <= 'N') {
+        if (yych == 'E')
+          goto yy352;
+        goto yy298;
+      } else {
+        if (yych <= 'O')
+          goto yy353;
+        if (yych <= 'T')
+          goto yy298;
+        goto yy355;
+      }
+    } else {
+      if (yych <= 'n') {
+        if (yych == 'e')
+          goto yy352;
+        goto yy298;
+      } else {
+        if (yych <= 'o')
+          goto yy353;
+        if (yych == 'u')
+          goto yy355;
+        goto yy298;
+      }
+    }
+  yy321:
+    yych = *++p;
+    switch (yych) {
+    case 'A':
+    case 'a':
+      goto yy356;
+    case 'B':
+    case 'b':
+      goto yy357;
+    case 'D':
+    case 'd':
+      goto yy331;
+    case 'F':
+    case 'f':
+      goto yy359;
+    case 'H':
+    case 'h':
+      goto yy360;
+    case 'I':
+    case 'i':
+      goto yy361;
+    case 'R':
+    case 'r':
+      goto yy362;
+    default:
+      goto yy298;
+    }
+  yy322:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy365;
+    if (yych == 'd')
+      goto yy365;
+    goto yy298;
+  yy323:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy366;
+    if (yych == 't')
+      goto yy366;
+    goto yy298;
+  yy324:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy367;
+    if (yych == 'i')
+      goto yy367;
+    goto yy298;
+  yy325:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy368;
+    if (yych == 's')
+      goto yy368;
+    goto yy298;
+  yy326:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy369;
+    if (yych == 'o')
+      goto yy369;
+    goto yy298;
+  yy327:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy370;
+    if (yych == 'd')
+      goto yy370;
+    goto yy298;
+  yy328:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy371;
+    if (yych == 'p')
+      goto yy371;
+    goto yy298;
+  yy329:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy372;
+    if (yych == 'n')
+      goto yy372;
+    goto yy298;
+  yy330:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy373;
+    if (yych == 'l')
+      goto yy373;
+    goto yy298;
+  yy331:
+    yych = *++p;
+    if (yych <= ' ') {
+      if (yych <= 0x08)
+        goto yy298;
+      if (yych <= '\r')
+        goto yy347;
+      if (yych <= 0x1F)
+        goto yy298;
+      goto yy347;
+    } else {
+      if (yych <= '/') {
+        if (yych <= '.')
+          goto yy298;
+        goto yy348;
+      } else {
+        if (yych == '>')
+          goto yy347;
+        goto yy298;
+      }
+    }
+  yy332:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy374;
+    if (yych == 't')
+      goto yy374;
+    goto yy298;
+  yy333:
+    yych = *++p;
+    if (yych <= 'V') {
+      if (yych <= 'Q') {
+        if (yych == 'A')
+          goto yy375;
+        goto yy298;
+      } else {
+        if (yych <= 'R')
+          goto yy331;
+        if (yych <= 'U')
+          goto yy298;
+        goto yy331;
+      }
+    } else {
+      if (yych <= 'q') {
+        if (yych == 'a')
+          goto yy375;
+        goto yy298;
+      } else {
+        if (yych <= 'r')
+          goto yy331;
+        if (yych == 'v')
+          goto yy331;
+        goto yy298;
+      }
+    }
+  yy334:
+    yych = *++p;
+    if (yych <= 'G') {
+      if (yych == 'E')
+        goto yy376;
+      if (yych <= 'F')
+        goto yy298;
+      goto yy377;
+    } else {
+      if (yych <= 'e') {
+        if (yych <= 'd')
+          goto yy298;
+        goto yy376;
+      } else {
+        if (yych == 'g')
+          goto yy377;
+        goto yy298;
+      }
+    }
+  yy335:
+    yych = *++p;
+    if (yych <= 'R') {
+      if (yych == 'O')
+        goto yy372;
+      if (yych <= 'Q')
+        goto yy298;
+      goto yy378;
+    } else {
+      if (yych <= 'o') {
+        if (yych <= 'n')
+          goto yy298;
+        goto yy372;
+      } else {
+        if (yych == 'r')
+          goto yy378;
+        goto yy298;
+      }
+    }
+  yy336:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy379;
+    if (yych == 'a')
+      goto yy379;
+    goto yy298;
+  yy337:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy380;
+    if (yych == 'a')
+      goto yy380;
+    goto yy298;
+  yy338:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy315;
+    if (yych == 'm')
+      goto yy315;
+    goto yy298;
+  yy339:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy381;
+    if (yych == 'r')
+      goto yy381;
+    goto yy298;
+  yy340:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy382;
+    if (yych == 'g')
+      goto yy382;
+    goto yy298;
+  yy341:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy298;
+        if (yych <= '\r')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= ' ')
+          goto yy347;
+        if (yych <= '.')
+          goto yy298;
+        goto yy348;
+      }
+    } else {
+      if (yych <= 'M') {
+        if (yych == '>')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= 'N')
+          goto yy383;
+        if (yych == 'n')
+          goto yy383;
+        goto yy298;
+      }
+    }
+  yy342:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy384;
+    if (yych == 'i')
+      goto yy384;
+    goto yy298;
+  yy343:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy385;
+    if (yych == 'n')
+      goto yy385;
+    goto yy298;
+  yy344:
+    yych = *++p;
+    if (yych == 'V')
+      goto yy331;
+    if (yych == 'v')
+      goto yy331;
+    goto yy298;
+  yy345:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy386;
+    if (yych == 'f')
+      goto yy386;
+    goto yy298;
+  yy346:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy387;
+    if (yych == 't')
+      goto yy387;
+    goto yy298;
+  yy347:
+    ++p;
+    { return 6; }
+  yy348:
+    yych = *++p;
+    if (yych == '>')
+      goto yy347;
+    goto yy298;
+  yy349:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy388;
+    if (yych == 'r')
+      goto yy388;
+    goto yy298;
+  yy350:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy389;
+    if (yych == 'e')
+      goto yy389;
+    goto yy298;
+  yy351:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy390;
+    if (yych == 'r')
+      goto yy390;
+    goto yy298;
+  yy352:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy371;
+    if (yych == 'c')
+      goto yy371;
+    goto yy298;
+  yy353:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy391;
+    if (yych == 'u')
+      goto yy391;
+    goto yy298;
+  yy354:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy392;
+    if (yych == 'y')
+      goto yy392;
+    goto yy298;
+  yy355:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy393;
+    if (yych == 'm')
+      goto yy393;
+    goto yy298;
+  yy356:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy394;
+    if (yych == 'b')
+      goto yy394;
+    goto yy298;
+  yy357:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy327;
+    if (yych == 'o')
+      goto yy327;
+    goto yy298;
+  yy358:
+    yych = *++p;
+    if (yych == 'X')
+      goto yy395;
+    if (yych == 'x')
+      goto yy395;
+    goto yy298;
+  yy359:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy396;
+    if (yych == 'o')
+      goto yy396;
+    goto yy298;
+  yy360:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy298;
+        if (yych <= '\r')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= ' ')
+          goto yy347;
+        if (yych <= '.')
+          goto yy298;
+        goto yy348;
+      }
+    } else {
+      if (yych <= 'D') {
+        if (yych == '>')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= 'E')
+          goto yy397;
+        if (yych == 'e')
+          goto yy397;
+        goto yy298;
+      }
+    }
+  yy361:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy394;
+    if (yych == 't')
+      goto yy394;
+    goto yy298;
+  yy362:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy298;
+        if (yych <= '\r')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= ' ')
+          goto yy347;
+        if (yych <= '.')
+          goto yy298;
+        goto yy348;
+      }
+    } else {
+      if (yych <= '@') {
+        if (yych == '>')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= 'A')
+          goto yy398;
+        if (yych == 'a')
+          goto yy398;
+        goto yy298;
+      }
+    }
+  yy363:
+    ++p;
+    { return 2; }
+  yy364:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy399;
+    if (yych == 'd')
+      goto yy399;
+    goto yy298;
+  yy365:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy400;
+    if (yych == 'r')
+      goto yy400;
+    goto yy298;
+  yy366:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy401;
+    if (yych == 'i')
+      goto yy401;
+    goto yy298;
+  yy367:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy402;
+    if (yych == 'd')
+      goto yy402;
+    goto yy298;
+  yy368:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy403;
+    if (yych == 'e')
+      goto yy403;
+    goto yy298;
+  yy369:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy404;
+    if (yych == 'c')
+      goto yy404;
+    goto yy298;
+  yy370:
+    yych = *++p;
+    if (yych == 'Y')
+      goto yy331;
+    if (yych == 'y')
+      goto yy331;
+    goto yy298;
+  yy371:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy405;
+    if (yych == 't')
+      goto yy405;
+    goto yy298;
+  yy372:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy406;
+    if (yych == 't')
+      goto yy406;
+    goto yy298;
+  yy373:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy298;
+        if (yych <= '\r')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= ' ')
+          goto yy347;
+        if (yych <= '.')
+          goto yy298;
+        goto yy348;
+      }
+    } else {
+      if (yych <= 'F') {
+        if (yych == '>')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= 'G')
+          goto yy407;
+        if (yych == 'g')
+          goto yy407;
+        goto yy298;
+      }
+    }
+  yy374:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy408;
+    if (yych == 'a')
+      goto yy408;
+    goto yy298;
+  yy375:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy409;
+    if (yych == 'l')
+      goto yy409;
+    goto yy298;
+  yy376:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy410;
+    if (yych == 'l')
+      goto yy410;
+    goto yy298;
+  yy377:
+    yych = *++p;
+    if (yych <= 'U') {
+      if (yych == 'C')
+        goto yy411;
+      if (yych <= 'T')
+        goto yy298;
+      goto yy412;
+    } else {
+      if (yych <= 'c') {
+        if (yych <= 'b')
+          goto yy298;
+        goto yy411;
+      } else {
+        if (yych == 'u')
+          goto yy412;
+        goto yy298;
+      }
+    }
+  yy378:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy331;
+    if (yych == 'm')
+      goto yy331;
+    goto yy298;
+  yy379:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy413;
+    if (yych == 'm')
+      goto yy413;
+    goto yy298;
+  yy380:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy414;
+    if (yych == 'd')
+      goto yy414;
+    goto yy298;
+  yy381:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy415;
+    if (yych == 'a')
+      goto yy415;
+    goto yy298;
+  yy382:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy416;
+    if (yych == 'e')
+      goto yy416;
+    goto yy298;
+  yy383:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy331;
+    if (yych == 'k')
+      goto yy331;
+    goto yy298;
+  yy384:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy331;
+    if (yych == 'n')
+      goto yy331;
+    goto yy298;
+  yy385:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy417;
+    if (yych == 'u')
+      goto yy417;
+    goto yy298;
+  yy386:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy418;
+    if (yych == 'r')
+      goto yy418;
+    goto yy298;
+  yy387:
+    yych = *++p;
+    if (yych <= 'I') {
+      if (yych == 'G')
+        goto yy407;
+      if (yych <= 'H')
+        goto yy298;
+      goto yy419;
+    } else {
+      if (yych <= 'g') {
+        if (yych <= 'f')
+          goto yy298;
+        goto yy407;
+      } else {
+        if (yych == 'i')
+          goto yy419;
+        goto yy298;
+      }
+    }
+  yy388:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy378;
+    if (yych == 'a')
+      goto yy378;
+    goto yy298;
+  yy389:
+    yych = *++p;
+    if (yych <= 0x1F) {
+      if (yych <= 0x08)
+        goto yy298;
+      if (yych <= '\r')
+        goto yy420;
+      goto yy298;
+    } else {
+      if (yych <= ' ')
+        goto yy420;
+      if (yych == '>')
+        goto yy420;
+      goto yy298;
+    }
+  yy390:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy421;
+    if (yych == 'i')
+      goto yy421;
+    goto yy298;
+  yy391:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy422;
+    if (yych == 'r')
+      goto yy422;
+    goto yy298;
+  yy392:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy350;
+    if (yych == 'l')
+      goto yy350;
+    goto yy298;
+  yy393:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy423;
+    if (yych == 'm')
+      goto yy423;
+    goto yy298;
+  yy394:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy402;
+    if (yych == 'l')
+      goto yy402;
+    goto yy298;
+  yy395:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy424;
+    if (yych == 't')
+      goto yy424;
+    goto yy298;
+  yy396:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy425;
+    if (yych == 'o')
+      goto yy425;
+    goto yy298;
+  yy397:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy426;
+    if (yych == 'a')
+      goto yy426;
+    goto yy298;
+  yy398:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy383;
+    if (yych == 'c')
+      goto yy383;
+    goto yy298;
+  yy399:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy427;
+    if (yych == 'a')
+      goto yy427;
+    goto yy298;
+  yy400:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy428;
+    if (yych == 'e')
+      goto yy428;
+    goto yy298;
+  yy401:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy394;
+    if (yych == 'c')
+      goto yy394;
+    goto yy298;
+  yy402:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy331;
+    if (yych == 'e')
+      goto yy331;
+    goto yy298;
+  yy403:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy298;
+        if (yych <= '\r')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= ' ')
+          goto yy347;
+        if (yych <= '.')
+          goto yy298;
+        goto yy348;
+      }
+    } else {
+      if (yych <= 'E') {
+        if (yych == '>')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= 'F')
+          goto yy429;
+        if (yych == 'f')
+          goto yy429;
+        goto yy298;
+      }
+    }
+  yy404:
+    yych = *++p;
+    if (yych == 'K')
+      goto yy430;
+    if (yych == 'k')
+      goto yy430;
+    goto yy298;
+  yy405:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy419;
+    if (yych == 'i')
+      goto yy419;
+    goto yy298;
+  yy406:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy431;
+    if (yych == 'e')
+      goto yy431;
+    goto yy298;
+  yy407:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy432;
+    if (yych == 'r')
+      goto yy432;
+    goto yy298;
+  yy408:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy433;
+    if (yych == 'i')
+      goto yy433;
+    goto yy298;
+  yy409:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy434;
+    if (yych == 'o')
+      goto yy434;
+    goto yy298;
+  yy410:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy435;
+    if (yych == 'd')
+      goto yy435;
+    goto yy298;
+  yy411:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy328;
+    if (yych == 'a')
+      goto yy328;
+    goto yy298;
+  yy412:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy402;
+    if (yych == 'r')
+      goto yy402;
+    goto yy298;
+  yy413:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy436;
+    if (yych == 'e')
+      goto yy436;
+    goto yy298;
+  yy414:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy298;
+        if (yych <= '\r')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= ' ')
+          goto yy347;
+        if (yych <= '.')
+          goto yy298;
+        goto yy348;
+      }
+    } else {
+      if (yych <= 'D') {
+        if (yych == '>')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= 'E')
+          goto yy431;
+        if (yych == 'e')
+          goto yy431;
+        goto yy298;
+      }
+    }
+  yy415:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy402;
+    if (yych == 'm')
+      goto yy402;
+    goto yy298;
+  yy416:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy426;
+    if (yych == 'n')
+      goto yy426;
+    goto yy298;
+  yy417:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy298;
+        if (yych <= '\r')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= ' ')
+          goto yy347;
+        if (yych <= '.')
+          goto yy298;
+        goto yy348;
+      }
+    } else {
+      if (yych <= 'H') {
+        if (yych == '>')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= 'I')
+          goto yy437;
+        if (yych == 'i')
+          goto yy437;
+        goto yy298;
+      }
+    }
+  yy418:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy438;
+    if (yych == 'a')
+      goto yy438;
+    goto yy298;
+  yy419:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy384;
+    if (yych == 'o')
+      goto yy384;
+    goto yy298;
+  yy420:
+    ++p;
+    { return 1; }
+  yy421:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy439;
+    if (yych == 'p')
+      goto yy439;
+    goto yy298;
+  yy422:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy402;
+    if (yych == 'c')
+      goto yy402;
+    goto yy298;
+  yy423:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy440;
+    if (yych == 'a')
+      goto yy440;
+    goto yy298;
+  yy424:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy441;
+    if (yych == 'a')
+      goto yy441;
+    goto yy298;
+  yy425:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy331;
+    if (yych == 't')
+      goto yy331;
+    goto yy298;
+  yy426:
+    yych = *++p;
+    if (yych == 'D')
+      goto yy331;
+    if (yych == 'd')
+      goto yy331;
+    goto yy298;
+  yy427:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy442;
+    if (yych == 't')
+      goto yy442;
+    goto yy298;
+  yy428:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy443;
+    if (yych == 's')
+      goto yy443;
+    goto yy298;
+  yy429:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy444;
+    if (yych == 'o')
+      goto yy444;
+    goto yy298;
+  yy430:
+    yych = *++p;
+    if (yych == 'Q')
+      goto yy445;
+    if (yych == 'q')
+      goto yy445;
+    goto yy298;
+  yy431:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy331;
+    if (yych == 'r')
+      goto yy331;
+    goto yy298;
+  yy432:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy446;
+    if (yych == 'o')
+      goto yy446;
+    goto yy298;
+  yy433:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy443;
+    if (yych == 'l')
+      goto yy443;
+    goto yy298;
+  yy434:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy331;
+    if (yych == 'g')
+      goto yy331;
+    goto yy298;
+  yy435:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy447;
+    if (yych == 's')
+      goto yy447;
+    goto yy298;
+  yy436:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy298;
+        if (yych <= '\r')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= ' ')
+          goto yy347;
+        if (yych <= '.')
+          goto yy298;
+        goto yy348;
+      }
+    } else {
+      if (yych <= 'R') {
+        if (yych == '>')
+          goto yy347;
+        goto yy298;
+      } else {
+        if (yych <= 'S')
+          goto yy447;
+        if (yych == 's')
+          goto yy447;
+        goto yy298;
+      }
+    }
+  yy437:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy448;
+    if (yych == 't')
+      goto yy448;
+    goto yy298;
+  yy438:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy449;
+    if (yych == 'm')
+      goto yy449;
+    goto yy298;
+  yy439:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy389;
+    if (yych == 't')
+      goto yy389;
+    goto yy298;
+  yy440:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy370;
+    if (yych == 'r')
+      goto yy370;
+    goto yy298;
+  yy441:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy450;
+    if (yych == 'r')
+      goto yy450;
+    goto yy298;
+  yy442:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy451;
+    if (yych == 'a')
+      goto yy451;
+    goto yy298;
+  yy443:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy331;
+    if (yych == 's')
+      goto yy331;
+    goto yy298;
+  yy444:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy425;
+    if (yych == 'n')
+      goto yy425;
+    goto yy298;
+  yy445:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy452;
+    if (yych == 'u')
+      goto yy452;
+    goto yy298;
+  yy446:
+    yych = *++p;
+    if (yych == 'U')
+      goto yy453;
+    if (yych == 'u')
+      goto yy453;
+    goto yy298;
+  yy447:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy425;
+    if (yych == 'e')
+      goto yy425;
+    goto yy298;
+  yy448:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy378;
+    if (yych == 'e')
+      goto yy378;
+    goto yy298;
+  yy449:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy443;
+    if (yych == 'e')
+      goto yy443;
+    goto yy298;
+  yy450:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy454;
+    if (yych == 'e')
+      goto yy454;
+    goto yy298;
+  yy451:
+    yych = *++p;
+    if (yych == '[')
+      goto yy455;
+    goto yy298;
+  yy452:
+    yych = *++p;
+    if (yych == 'O')
+      goto yy456;
+    if (yych == 'o')
+      goto yy456;
+    goto yy298;
+  yy453:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy331;
+    if (yych == 'p')
+      goto yy331;
+    goto yy298;
+  yy454:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy389;
+    if (yych == 'a')
+      goto yy389;
+    goto yy298;
+  yy455:
+    ++p;
+    { return 5; }
+  yy456:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy402;
+    if (yych == 't')
+      goto yy402;
+    goto yy298;
+  }
 }
 
 // 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)
-{
+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, 210, 194, 198, 194, 224, 224, 
-		224, 224, 224, 224, 224, 224, 224, 224, 
-		224, 224, 224, 224, 224, 224, 224, 224, 
-		198, 224, 128, 224, 224, 224, 224,  64, 
-		224, 224, 224, 224, 224, 233, 232, 224, 
-		233, 233, 233, 233, 233, 233, 233, 233, 
-		233, 233, 232, 224, 192, 192, 192, 224, 
-		224, 233, 233, 233, 233, 233, 233, 233, 
-		233, 233, 233, 233, 233, 233, 233, 233, 
-		233, 233, 233, 233, 233, 233, 233, 233, 
-		233, 233, 233, 224, 224, 224, 224, 232, 
-		192, 233, 233, 233, 233, 233, 233, 233, 
-		233, 233, 233, 233, 233, 233, 233, 233, 
-		233, 233, 233, 233, 233, 233, 233, 233, 
-		233, 233, 233, 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 = *p;
-	if (yych == '<') goto yy517;
-	++p;
-yy516:
-	{ return 0; }
-yy517:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= '@') {
-		if (yych != '/') goto yy516;
-	} else {
-		if (yych <= 'Z') goto yy520;
-		if (yych <= '`') goto yy516;
-		if (yych <= 'z') goto yy520;
-		goto yy516;
-	}
-	yych = *++p;
-	if (yych <= '@') goto yy519;
-	if (yych <= 'Z') goto yy522;
-	if (yych <= '`') goto yy519;
-	if (yych <= 'z') goto yy522;
-yy519:
-	p = marker;
-	if (yyaccept == 0) {
-		goto yy516;
-	} else {
-		goto yy535;
-	}
-yy520:
-	yych = *++p;
-	if (yybm[0+yych] & 2) {
-		goto yy524;
-	}
-	if (yych <= '=') {
-		if (yych <= '.') {
-			if (yych == '-') goto yy520;
-			goto yy519;
-		} else {
-			if (yych <= '/') goto yy526;
-			if (yych <= '9') goto yy520;
-			goto yy519;
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '>') goto yy527;
-			if (yych <= '@') goto yy519;
-			goto yy520;
-		} else {
-			if (yych <= '`') goto yy519;
-			if (yych <= 'z') goto yy520;
-			goto yy519;
-		}
-	}
-yy522:
-	yych = *++p;
-	if (yych <= '/') {
-		if (yych <= 0x1F) {
-			if (yych <= 0x08) goto yy519;
-			if (yych <= '\r') goto yy529;
-			goto yy519;
-		} else {
-			if (yych <= ' ') goto yy529;
-			if (yych == '-') goto yy522;
-			goto yy519;
-		}
-	} else {
-		if (yych <= '@') {
-			if (yych <= '9') goto yy522;
-			if (yych == '>') goto yy527;
-			goto yy519;
-		} else {
-			if (yych <= 'Z') goto yy522;
-			if (yych <= '`') goto yy519;
-			if (yych <= 'z') goto yy522;
-			goto yy519;
-		}
-	}
-yy524:
-	yych = *++p;
-	if (yybm[0+yych] & 2) {
-		goto yy524;
-	}
-	if (yych <= '>') {
-		if (yych <= '9') {
-			if (yych != '/') goto yy519;
-		} else {
-			if (yych <= ':') goto yy531;
-			if (yych <= '=') goto yy519;
-			goto yy527;
-		}
-	} else {
-		if (yych <= '^') {
-			if (yych <= '@') goto yy519;
-			if (yych <= 'Z') goto yy531;
-			goto yy519;
-		} else {
-			if (yych == '`') goto yy519;
-			if (yych <= 'z') goto yy531;
-			goto yy519;
-		}
-	}
-yy526:
-	yych = *++p;
-	if (yych != '>') goto yy519;
-yy527:
-	yych = *++p;
-	if (yybm[0+yych] & 4) {
-		goto yy527;
-	}
-	if (yych <= 0x08) goto yy519;
-	if (yych <= '\n') goto yy533;
-	if (yych <= '\v') goto yy519;
-	if (yych <= '\r') goto yy536;
-	goto yy519;
-yy529:
-	yych = *++p;
-	if (yych <= 0x1F) {
-		if (yych <= 0x08) goto yy519;
-		if (yych <= '\r') goto yy529;
-		goto yy519;
-	} else {
-		if (yych <= ' ') goto yy529;
-		if (yych == '>') goto yy527;
-		goto yy519;
-	}
-yy531:
-	yych = *++p;
-	if (yybm[0+yych] & 8) {
-		goto yy531;
-	}
-	if (yych <= ',') {
-		if (yych <= '\r') {
-			if (yych <= 0x08) goto yy519;
-			goto yy537;
-		} else {
-			if (yych == ' ') goto yy537;
-			goto yy519;
-		}
-	} else {
-		if (yych <= '<') {
-			if (yych <= '/') goto yy526;
-			goto yy519;
-		} else {
-			if (yych <= '=') goto yy539;
-			if (yych <= '>') goto yy527;
-			goto yy519;
-		}
-	}
-yy533:
-	yyaccept = 1;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 4) {
-		goto yy527;
-	}
-	if (yych <= 0x08) goto yy535;
-	if (yych <= '\n') goto yy533;
-	if (yych <= '\v') goto yy535;
-	if (yych <= '\r') goto yy536;
-yy535:
-	{ return 7; }
-yy536:
-	++p;
-	goto yy535;
-yy537:
-	yych = *++p;
-	if (yych <= '<') {
-		if (yych <= ' ') {
-			if (yych <= 0x08) goto yy519;
-			if (yych <= '\r') goto yy537;
-			if (yych <= 0x1F) goto yy519;
-			goto yy537;
-		} else {
-			if (yych <= '/') {
-				if (yych <= '.') goto yy519;
-				goto yy526;
-			} else {
-				if (yych == ':') goto yy531;
-				goto yy519;
-			}
-		}
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '=') goto yy539;
-			if (yych <= '>') goto yy527;
-			if (yych <= '@') goto yy519;
-			goto yy531;
-		} else {
-			if (yych <= '_') {
-				if (yych <= '^') goto yy519;
-				goto yy531;
-			} else {
-				if (yych <= '`') goto yy519;
-				if (yych <= 'z') goto yy531;
-				goto yy519;
-			}
-		}
-	}
-yy539:
-	yych = *++p;
-	if (yybm[0+yych] & 32) {
-		goto yy541;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '"') {
-			if (yych <= 0x00) goto yy519;
-			if (yych <= ' ') goto yy539;
-			goto yy543;
-		} else {
-			if (yych <= '\'') goto yy545;
-			if (yych <= 0xC1) goto yy519;
-			if (yych <= 0xDF) goto yy547;
-			goto yy548;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy550;
-			goto yy549;
-		} else {
-			if (yych <= 0xF0) goto yy551;
-			if (yych <= 0xF3) goto yy552;
-			if (yych <= 0xF4) goto yy553;
-			goto yy519;
-		}
-	}
-yy541:
-	yych = *++p;
-	if (yybm[0+yych] & 32) {
-		goto yy541;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '=') {
-			if (yych <= 0x00) goto yy519;
-			if (yych <= ' ') goto yy524;
-			goto yy519;
-		} else {
-			if (yych <= '>') goto yy527;
-			if (yych <= 0xC1) goto yy519;
-			if (yych <= 0xDF) goto yy547;
-			goto yy548;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy550;
-			goto yy549;
-		} else {
-			if (yych <= 0xF0) goto yy551;
-			if (yych <= 0xF3) goto yy552;
-			if (yych <= 0xF4) goto yy553;
-			goto yy519;
-		}
-	}
-yy543:
-	yych = *++p;
-	if (yybm[0+yych] & 64) {
-		goto yy543;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= 0x00) goto yy519;
-			if (yych <= '"') goto yy554;
-			goto yy519;
-		} else {
-			if (yych <= 0xDF) goto yy555;
-			if (yych <= 0xE0) goto yy556;
-			goto yy557;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy558;
-			if (yych <= 0xEF) goto yy557;
-			goto yy559;
-		} else {
-			if (yych <= 0xF3) goto yy560;
-			if (yych <= 0xF4) goto yy561;
-			goto yy519;
-		}
-	}
-yy545:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy545;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= 0x00) goto yy519;
-			if (yych <= '\'') goto yy554;
-			goto yy519;
-		} else {
-			if (yych <= 0xDF) goto yy562;
-			if (yych <= 0xE0) goto yy563;
-			goto yy564;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy565;
-			if (yych <= 0xEF) goto yy564;
-			goto yy566;
-		} else {
-			if (yych <= 0xF3) goto yy567;
-			if (yych <= 0xF4) goto yy568;
-			goto yy519;
-		}
-	}
-yy547:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0xBF) goto yy541;
-	goto yy519;
-yy548:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy519;
-	if (yych <= 0xBF) goto yy547;
-	goto yy519;
-yy549:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0xBF) goto yy547;
-	goto yy519;
-yy550:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0x9F) goto yy547;
-	goto yy519;
-yy551:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy519;
-	if (yych <= 0xBF) goto yy549;
-	goto yy519;
-yy552:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0xBF) goto yy549;
-	goto yy519;
-yy553:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0x8F) goto yy549;
-	goto yy519;
-yy554:
-	yych = *++p;
-	if (yybm[0+yych] & 2) {
-		goto yy524;
-	}
-	if (yych == '/') goto yy526;
-	if (yych == '>') goto yy527;
-	goto yy519;
-yy555:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0xBF) goto yy543;
-	goto yy519;
-yy556:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy519;
-	if (yych <= 0xBF) goto yy555;
-	goto yy519;
-yy557:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0xBF) goto yy555;
-	goto yy519;
-yy558:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0x9F) goto yy555;
-	goto yy519;
-yy559:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy519;
-	if (yych <= 0xBF) goto yy557;
-	goto yy519;
-yy560:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0xBF) goto yy557;
-	goto yy519;
-yy561:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0x8F) goto yy557;
-	goto yy519;
-yy562:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0xBF) goto yy545;
-	goto yy519;
-yy563:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy519;
-	if (yych <= 0xBF) goto yy562;
-	goto yy519;
-yy564:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0xBF) goto yy562;
-	goto yy519;
-yy565:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0x9F) goto yy562;
-	goto yy519;
-yy566:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy519;
-	if (yych <= 0xBF) goto yy564;
-	goto yy519;
-yy567:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0xBF) goto yy564;
-	goto yy519;
-yy568:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy519;
-	if (yych <= 0x8F) goto yy564;
-	goto yy519;
-}
-
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,   224, 224, 224, 224, 224, 224, 224, 224, 198, 210, 194, 198, 194,
+        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
+        224, 224, 224, 224, 198, 224, 128, 224, 224, 224, 224, 64,  224, 224,
+        224, 224, 224, 233, 232, 224, 233, 233, 233, 233, 233, 233, 233, 233,
+        233, 233, 232, 224, 192, 192, 192, 224, 224, 233, 233, 233, 233, 233,
+        233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
+        233, 233, 233, 233, 233, 233, 233, 224, 224, 224, 224, 232, 192, 233,
+        233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233,
+        233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 233, 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 = *p;
+    if (yych == '<')
+      goto yy459;
+    ++p;
+  yy458 : { return 0; }
+  yy459:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '@') {
+      if (yych != '/')
+        goto yy458;
+    } else {
+      if (yych <= 'Z')
+        goto yy461;
+      if (yych <= '`')
+        goto yy458;
+      if (yych <= 'z')
+        goto yy461;
+      goto yy458;
+    }
+    yych = *++p;
+    if (yych <= '@')
+      goto yy460;
+    if (yych <= 'Z')
+      goto yy462;
+    if (yych <= '`')
+      goto yy460;
+    if (yych <= 'z')
+      goto yy462;
+  yy460:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy458;
+    } else {
+      goto yy469;
+    }
+  yy461:
+    yych = *++p;
+    if (yybm[0 + yych] & 2) {
+      goto yy463;
+    }
+    if (yych <= '=') {
+      if (yych <= '.') {
+        if (yych == '-')
+          goto yy461;
+        goto yy460;
+      } else {
+        if (yych <= '/')
+          goto yy464;
+        if (yych <= '9')
+          goto yy461;
+        goto yy460;
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '>')
+          goto yy465;
+        if (yych <= '@')
+          goto yy460;
+        goto yy461;
+      } else {
+        if (yych <= '`')
+          goto yy460;
+        if (yych <= 'z')
+          goto yy461;
+        goto yy460;
+      }
+    }
+  yy462:
+    yych = *++p;
+    if (yych <= '/') {
+      if (yych <= 0x1F) {
+        if (yych <= 0x08)
+          goto yy460;
+        if (yych <= '\r')
+          goto yy466;
+        goto yy460;
+      } else {
+        if (yych <= ' ')
+          goto yy466;
+        if (yych == '-')
+          goto yy462;
+        goto yy460;
+      }
+    } else {
+      if (yych <= '@') {
+        if (yych <= '9')
+          goto yy462;
+        if (yych == '>')
+          goto yy465;
+        goto yy460;
+      } else {
+        if (yych <= 'Z')
+          goto yy462;
+        if (yych <= '`')
+          goto yy460;
+        if (yych <= 'z')
+          goto yy462;
+        goto yy460;
+      }
+    }
+  yy463:
+    yych = *++p;
+    if (yybm[0 + yych] & 2) {
+      goto yy463;
+    }
+    if (yych <= '>') {
+      if (yych <= '9') {
+        if (yych != '/')
+          goto yy460;
+      } else {
+        if (yych <= ':')
+          goto yy467;
+        if (yych <= '=')
+          goto yy460;
+        goto yy465;
+      }
+    } else {
+      if (yych <= '^') {
+        if (yych <= '@')
+          goto yy460;
+        if (yych <= 'Z')
+          goto yy467;
+        goto yy460;
+      } else {
+        if (yych == '`')
+          goto yy460;
+        if (yych <= 'z')
+          goto yy467;
+        goto yy460;
+      }
+    }
+  yy464:
+    yych = *++p;
+    if (yych != '>')
+      goto yy460;
+  yy465:
+    yych = *++p;
+    if (yybm[0 + yych] & 4) {
+      goto yy465;
+    }
+    if (yych <= 0x08)
+      goto yy460;
+    if (yych <= '\n')
+      goto yy468;
+    if (yych <= '\v')
+      goto yy460;
+    if (yych <= '\r')
+      goto yy470;
+    goto yy460;
+  yy466:
+    yych = *++p;
+    if (yych <= 0x1F) {
+      if (yych <= 0x08)
+        goto yy460;
+      if (yych <= '\r')
+        goto yy466;
+      goto yy460;
+    } else {
+      if (yych <= ' ')
+        goto yy466;
+      if (yych == '>')
+        goto yy465;
+      goto yy460;
+    }
+  yy467:
+    yych = *++p;
+    if (yybm[0 + yych] & 8) {
+      goto yy467;
+    }
+    if (yych <= ',') {
+      if (yych <= '\r') {
+        if (yych <= 0x08)
+          goto yy460;
+        goto yy471;
+      } else {
+        if (yych == ' ')
+          goto yy471;
+        goto yy460;
+      }
+    } else {
+      if (yych <= '<') {
+        if (yych <= '/')
+          goto yy464;
+        goto yy460;
+      } else {
+        if (yych <= '=')
+          goto yy472;
+        if (yych <= '>')
+          goto yy465;
+        goto yy460;
+      }
+    }
+  yy468:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 4) {
+      goto yy465;
+    }
+    if (yych <= 0x08)
+      goto yy469;
+    if (yych <= '\n')
+      goto yy468;
+    if (yych <= '\v')
+      goto yy469;
+    if (yych <= '\r')
+      goto yy470;
+  yy469 : { return 7; }
+  yy470:
+    ++p;
+    goto yy469;
+  yy471:
+    yych = *++p;
+    if (yych <= '<') {
+      if (yych <= ' ') {
+        if (yych <= 0x08)
+          goto yy460;
+        if (yych <= '\r')
+          goto yy471;
+        if (yych <= 0x1F)
+          goto yy460;
+        goto yy471;
+      } else {
+        if (yych <= '/') {
+          if (yych <= '.')
+            goto yy460;
+          goto yy464;
+        } else {
+          if (yych == ':')
+            goto yy467;
+          goto yy460;
+        }
+      }
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '=')
+          goto yy472;
+        if (yych <= '>')
+          goto yy465;
+        if (yych <= '@')
+          goto yy460;
+        goto yy467;
+      } else {
+        if (yych <= '_') {
+          if (yych <= '^')
+            goto yy460;
+          goto yy467;
+        } else {
+          if (yych <= '`')
+            goto yy460;
+          if (yych <= 'z')
+            goto yy467;
+          goto yy460;
+        }
+      }
+    }
+  yy472:
+    yych = *++p;
+    if (yybm[0 + yych] & 32) {
+      goto yy473;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '"') {
+        if (yych <= 0x00)
+          goto yy460;
+        if (yych <= ' ')
+          goto yy472;
+        goto yy474;
+      } else {
+        if (yych <= '\'')
+          goto yy475;
+        if (yych <= 0xC1)
+          goto yy460;
+        if (yych <= 0xDF)
+          goto yy476;
+        goto yy477;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy479;
+        goto yy478;
+      } else {
+        if (yych <= 0xF0)
+          goto yy480;
+        if (yych <= 0xF3)
+          goto yy481;
+        if (yych <= 0xF4)
+          goto yy482;
+        goto yy460;
+      }
+    }
+  yy473:
+    yych = *++p;
+    if (yybm[0 + yych] & 32) {
+      goto yy473;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '=') {
+        if (yych <= 0x00)
+          goto yy460;
+        if (yych <= ' ')
+          goto yy463;
+        goto yy460;
+      } else {
+        if (yych <= '>')
+          goto yy465;
+        if (yych <= 0xC1)
+          goto yy460;
+        if (yych <= 0xDF)
+          goto yy476;
+        goto yy477;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy479;
+        goto yy478;
+      } else {
+        if (yych <= 0xF0)
+          goto yy480;
+        if (yych <= 0xF3)
+          goto yy481;
+        if (yych <= 0xF4)
+          goto yy482;
+        goto yy460;
+      }
+    }
+  yy474:
+    yych = *++p;
+    if (yybm[0 + yych] & 64) {
+      goto yy474;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy460;
+        if (yych <= '"')
+          goto yy483;
+        goto yy460;
+      } else {
+        if (yych <= 0xDF)
+          goto yy484;
+        if (yych <= 0xE0)
+          goto yy485;
+        goto yy486;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy487;
+        if (yych <= 0xEF)
+          goto yy486;
+        goto yy488;
+      } else {
+        if (yych <= 0xF3)
+          goto yy489;
+        if (yych <= 0xF4)
+          goto yy490;
+        goto yy460;
+      }
+    }
+  yy475:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy475;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy460;
+        if (yych <= '\'')
+          goto yy483;
+        goto yy460;
+      } else {
+        if (yych <= 0xDF)
+          goto yy491;
+        if (yych <= 0xE0)
+          goto yy492;
+        goto yy493;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy494;
+        if (yych <= 0xEF)
+          goto yy493;
+        goto yy495;
+      } else {
+        if (yych <= 0xF3)
+          goto yy496;
+        if (yych <= 0xF4)
+          goto yy497;
+        goto yy460;
+      }
+    }
+  yy476:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy473;
+    goto yy460;
+  yy477:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy476;
+    goto yy460;
+  yy478:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy476;
+    goto yy460;
+  yy479:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0x9F)
+      goto yy476;
+    goto yy460;
+  yy480:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy478;
+    goto yy460;
+  yy481:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy478;
+    goto yy460;
+  yy482:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0x8F)
+      goto yy478;
+    goto yy460;
+  yy483:
+    yych = *++p;
+    if (yybm[0 + yych] & 2) {
+      goto yy463;
+    }
+    if (yych == '/')
+      goto yy464;
+    if (yych == '>')
+      goto yy465;
+    goto yy460;
+  yy484:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy474;
+    goto yy460;
+  yy485:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy484;
+    goto yy460;
+  yy486:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy484;
+    goto yy460;
+  yy487:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0x9F)
+      goto yy484;
+    goto yy460;
+  yy488:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy486;
+    goto yy460;
+  yy489:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy486;
+    goto yy460;
+  yy490:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0x8F)
+      goto yy486;
+    goto yy460;
+  yy491:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy475;
+    goto yy460;
+  yy492:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy491;
+    goto yy460;
+  yy493:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy491;
+    goto yy460;
+  yy494:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0x9F)
+      goto yy491;
+    goto yy460;
+  yy495:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy493;
+    goto yy460;
+  yy496:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0xBF)
+      goto yy493;
+    goto yy460;
+  yy497:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy460;
+    if (yych <= 0x8F)
+      goto yy493;
+    goto yy460;
+  }
 }
 
 // Try to match an HTML block end line of type 1
-bufsize_t _scan_html_block_end_1(const unsigned char *p)
-{
+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[] = {
-		  0,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,   0,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64, 128,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  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, 
-	};
-	yych = *p;
-	if (yych <= 0xDF) {
-		if (yych <= ';') {
-			if (yych <= 0x00) goto yy571;
-			if (yych != '\n') goto yy573;
-		} else {
-			if (yych <= '<') goto yy574;
-			if (yych <= 0x7F) goto yy573;
-			if (yych >= 0xC2) goto yy575;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych <= 0xE0) goto yy576;
-			if (yych == 0xED) goto yy578;
-			goto yy577;
-		} else {
-			if (yych <= 0xF0) goto yy579;
-			if (yych <= 0xF3) goto yy580;
-			if (yych <= 0xF4) goto yy581;
-		}
-	}
-yy571:
-	++p;
-yy572:
-	{ return 0; }
-yy573:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= '\n') {
-		if (yych <= 0x00) goto yy572;
-		if (yych <= '\t') goto yy583;
-		goto yy572;
-	} else {
-		if (yych <= 0x7F) goto yy583;
-		if (yych <= 0xC1) goto yy572;
-		if (yych <= 0xF4) goto yy583;
-		goto yy572;
-	}
-yy574:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= '.') {
-		if (yych <= 0x00) goto yy572;
-		if (yych == '\n') goto yy572;
-		goto yy583;
-	} else {
-		if (yych <= 0x7F) {
-			if (yych <= '/') goto yy594;
-			goto yy583;
-		} else {
-			if (yych <= 0xC1) goto yy572;
-			if (yych <= 0xF4) goto yy583;
-			goto yy572;
-		}
-	}
-yy575:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy572;
-	if (yych <= 0xBF) goto yy582;
-	goto yy572;
-yy576:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x9F) goto yy572;
-	if (yych <= 0xBF) goto yy587;
-	goto yy572;
-yy577:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy572;
-	if (yych <= 0xBF) goto yy587;
-	goto yy572;
-yy578:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy572;
-	if (yych <= 0x9F) goto yy587;
-	goto yy572;
-yy579:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x8F) goto yy572;
-	if (yych <= 0xBF) goto yy589;
-	goto yy572;
-yy580:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy572;
-	if (yych <= 0xBF) goto yy589;
-	goto yy572;
-yy581:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy572;
-	if (yych <= 0x8F) goto yy589;
-	goto yy572;
-yy582:
-	yych = *++p;
-yy583:
-	if (yybm[0+yych] & 64) {
-		goto yy582;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy584;
-			if (yych <= '<') goto yy585;
-		} else {
-			if (yych <= 0xDF) goto yy587;
-			if (yych <= 0xE0) goto yy588;
-			goto yy589;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy590;
-			if (yych <= 0xEF) goto yy589;
-			goto yy591;
-		} else {
-			if (yych <= 0xF3) goto yy592;
-			if (yych <= 0xF4) goto yy593;
-		}
-	}
-yy584:
-	p = marker;
-	if (yyaccept == 0) {
-		goto yy572;
-	} else {
-		goto yy604;
-	}
-yy585:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy585;
-	}
-	if (yych <= 0xDF) {
-		if (yych <= '.') {
-			if (yych <= 0x00) goto yy584;
-			if (yych == '\n') goto yy584;
-			goto yy582;
-		} else {
-			if (yych <= '/') goto yy594;
-			if (yych <= 0x7F) goto yy582;
-			if (yych <= 0xC1) goto yy584;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych <= 0xE0) goto yy588;
-			if (yych == 0xED) goto yy590;
-			goto yy589;
-		} else {
-			if (yych <= 0xF0) goto yy591;
-			if (yych <= 0xF3) goto yy592;
-			if (yych <= 0xF4) goto yy593;
-			goto yy584;
-		}
-	}
-yy587:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy584;
-	if (yych <= 0xBF) goto yy582;
-	goto yy584;
-yy588:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy584;
-	if (yych <= 0xBF) goto yy587;
-	goto yy584;
-yy589:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy584;
-	if (yych <= 0xBF) goto yy587;
-	goto yy584;
-yy590:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy584;
-	if (yych <= 0x9F) goto yy587;
-	goto yy584;
-yy591:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy584;
-	if (yych <= 0xBF) goto yy589;
-	goto yy584;
-yy592:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy584;
-	if (yych <= 0xBF) goto yy589;
-	goto yy584;
-yy593:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy584;
-	if (yych <= 0x8F) goto yy589;
-	goto yy584;
-yy594:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy585;
-	}
-	if (yych <= 's') {
-		if (yych <= 'P') {
-			if (yych <= '\t') {
-				if (yych <= 0x00) goto yy584;
-				goto yy582;
-			} else {
-				if (yych <= '\n') goto yy584;
-				if (yych <= 'O') goto yy582;
-			}
-		} else {
-			if (yych <= 'o') {
-				if (yych == 'S') goto yy596;
-				goto yy582;
-			} else {
-				if (yych <= 'p') goto yy595;
-				if (yych <= 'r') goto yy582;
-				goto yy596;
-			}
-		}
-	} else {
-		if (yych <= 0xEC) {
-			if (yych <= 0xC1) {
-				if (yych <= 0x7F) goto yy582;
-				goto yy584;
-			} else {
-				if (yych <= 0xDF) goto yy587;
-				if (yych <= 0xE0) goto yy588;
-				goto yy589;
-			}
-		} else {
-			if (yych <= 0xF0) {
-				if (yych <= 0xED) goto yy590;
-				if (yych <= 0xEF) goto yy589;
-				goto yy591;
-			} else {
-				if (yych <= 0xF3) goto yy592;
-				if (yych <= 0xF4) goto yy593;
-				goto yy584;
-			}
-		}
-	}
-yy595:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy585;
-	}
-	if (yych <= 0xC1) {
-		if (yych <= 'Q') {
-			if (yych <= 0x00) goto yy584;
-			if (yych == '\n') goto yy584;
-			goto yy582;
-		} else {
-			if (yych <= 'q') {
-				if (yych <= 'R') goto yy597;
-				goto yy582;
-			} else {
-				if (yych <= 'r') goto yy597;
-				if (yych <= 0x7F) goto yy582;
-				goto yy584;
-			}
-		}
-	} else {
-		if (yych <= 0xED) {
-			if (yych <= 0xDF) goto yy587;
-			if (yych <= 0xE0) goto yy588;
-			if (yych <= 0xEC) goto yy589;
-			goto yy590;
-		} else {
-			if (yych <= 0xF0) {
-				if (yych <= 0xEF) goto yy589;
-				goto yy591;
-			} else {
-				if (yych <= 0xF3) goto yy592;
-				if (yych <= 0xF4) goto yy593;
-				goto yy584;
-			}
-		}
-	}
-yy596:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy585;
-	}
-	if (yych <= 't') {
-		if (yych <= 'C') {
-			if (yych <= '\t') {
-				if (yych <= 0x00) goto yy584;
-				goto yy582;
-			} else {
-				if (yych <= '\n') goto yy584;
-				if (yych <= 'B') goto yy582;
-				goto yy598;
-			}
-		} else {
-			if (yych <= 'b') {
-				if (yych == 'T') goto yy599;
-				goto yy582;
-			} else {
-				if (yych <= 'c') goto yy598;
-				if (yych <= 's') goto yy582;
-				goto yy599;
-			}
-		}
-	} else {
-		if (yych <= 0xEC) {
-			if (yych <= 0xC1) {
-				if (yych <= 0x7F) goto yy582;
-				goto yy584;
-			} else {
-				if (yych <= 0xDF) goto yy587;
-				if (yych <= 0xE0) goto yy588;
-				goto yy589;
-			}
-		} else {
-			if (yych <= 0xF0) {
-				if (yych <= 0xED) goto yy590;
-				if (yych <= 0xEF) goto yy589;
-				goto yy591;
-			} else {
-				if (yych <= 0xF3) goto yy592;
-				if (yych <= 0xF4) goto yy593;
-				goto yy584;
-			}
-		}
-	}
-yy597:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy585;
-	}
-	if (yych <= 0xC1) {
-		if (yych <= 'D') {
-			if (yych <= 0x00) goto yy584;
-			if (yych == '\n') goto yy584;
-			goto yy582;
-		} else {
-			if (yych <= 'd') {
-				if (yych <= 'E') goto yy600;
-				goto yy582;
-			} else {
-				if (yych <= 'e') goto yy600;
-				if (yych <= 0x7F) goto yy582;
-				goto yy584;
-			}
-		}
-	} else {
-		if (yych <= 0xED) {
-			if (yych <= 0xDF) goto yy587;
-			if (yych <= 0xE0) goto yy588;
-			if (yych <= 0xEC) goto yy589;
-			goto yy590;
-		} else {
-			if (yych <= 0xF0) {
-				if (yych <= 0xEF) goto yy589;
-				goto yy591;
-			} else {
-				if (yych <= 0xF3) goto yy592;
-				if (yych <= 0xF4) goto yy593;
-				goto yy584;
-			}
-		}
-	}
-yy598:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy585;
-	}
-	if (yych <= 0xC1) {
-		if (yych <= 'Q') {
-			if (yych <= 0x00) goto yy584;
-			if (yych == '\n') goto yy584;
-			goto yy582;
-		} else {
-			if (yych <= 'q') {
-				if (yych <= 'R') goto yy601;
-				goto yy582;
-			} else {
-				if (yych <= 'r') goto yy601;
-				if (yych <= 0x7F) goto yy582;
-				goto yy584;
-			}
-		}
-	} else {
-		if (yych <= 0xED) {
-			if (yych <= 0xDF) goto yy587;
-			if (yych <= 0xE0) goto yy588;
-			if (yych <= 0xEC) goto yy589;
-			goto yy590;
-		} else {
-			if (yych <= 0xF0) {
-				if (yych <= 0xEF) goto yy589;
-				goto yy591;
-			} else {
-				if (yych <= 0xF3) goto yy592;
-				if (yych <= 0xF4) goto yy593;
-				goto yy584;
-			}
-		}
-	}
-yy599:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy585;
-	}
-	if (yych <= 0xC1) {
-		if (yych <= 'X') {
-			if (yych <= 0x00) goto yy584;
-			if (yych == '\n') goto yy584;
-			goto yy582;
-		} else {
-			if (yych <= 'x') {
-				if (yych <= 'Y') goto yy602;
-				goto yy582;
-			} else {
-				if (yych <= 'y') goto yy602;
-				if (yych <= 0x7F) goto yy582;
-				goto yy584;
-			}
-		}
-	} else {
-		if (yych <= 0xED) {
-			if (yych <= 0xDF) goto yy587;
-			if (yych <= 0xE0) goto yy588;
-			if (yych <= 0xEC) goto yy589;
-			goto yy590;
-		} else {
-			if (yych <= 0xF0) {
-				if (yych <= 0xEF) goto yy589;
-				goto yy591;
-			} else {
-				if (yych <= 0xF3) goto yy592;
-				if (yych <= 0xF4) goto yy593;
-				goto yy584;
-			}
-		}
-	}
-yy600:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy585;
-	}
-	if (yych <= 0xDF) {
-		if (yych <= '=') {
-			if (yych <= 0x00) goto yy584;
-			if (yych == '\n') goto yy584;
-			goto yy582;
-		} else {
-			if (yych <= '>') goto yy603;
-			if (yych <= 0x7F) goto yy582;
-			if (yych <= 0xC1) goto yy584;
-			goto yy587;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych <= 0xE0) goto yy588;
-			if (yych == 0xED) goto yy590;
-			goto yy589;
-		} else {
-			if (yych <= 0xF0) goto yy591;
-			if (yych <= 0xF3) goto yy592;
-			if (yych <= 0xF4) goto yy593;
-			goto yy584;
-		}
-	}
-yy601:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy585;
-	}
-	if (yych <= 0xC1) {
-		if (yych <= 'H') {
-			if (yych <= 0x00) goto yy584;
-			if (yych == '\n') goto yy584;
-			goto yy582;
-		} else {
-			if (yych <= 'h') {
-				if (yych <= 'I') goto yy605;
-				goto yy582;
-			} else {
-				if (yych <= 'i') goto yy605;
-				if (yych <= 0x7F) goto yy582;
-				goto yy584;
-			}
-		}
-	} else {
-		if (yych <= 0xED) {
-			if (yych <= 0xDF) goto yy587;
-			if (yych <= 0xE0) goto yy588;
-			if (yych <= 0xEC) goto yy589;
-			goto yy590;
-		} else {
-			if (yych <= 0xF0) {
-				if (yych <= 0xEF) goto yy589;
-				goto yy591;
-			} else {
-				if (yych <= 0xF3) goto yy592;
-				if (yych <= 0xF4) goto yy593;
-				goto yy584;
-			}
-		}
-	}
-yy602:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy585;
-	}
-	if (yych <= 0xC1) {
-		if (yych <= 'K') {
-			if (yych <= 0x00) goto yy584;
-			if (yych == '\n') goto yy584;
-			goto yy582;
-		} else {
-			if (yych <= 'k') {
-				if (yych <= 'L') goto yy597;
-				goto yy582;
-			} else {
-				if (yych <= 'l') goto yy597;
-				if (yych <= 0x7F) goto yy582;
-				goto yy584;
-			}
-		}
-	} else {
-		if (yych <= 0xED) {
-			if (yych <= 0xDF) goto yy587;
-			if (yych <= 0xE0) goto yy588;
-			if (yych <= 0xEC) goto yy589;
-			goto yy590;
-		} else {
-			if (yych <= 0xF0) {
-				if (yych <= 0xEF) goto yy589;
-				goto yy591;
-			} else {
-				if (yych <= 0xF3) goto yy592;
-				if (yych <= 0xF4) goto yy593;
-				goto yy584;
-			}
-		}
-	}
-yy603:
-	yyaccept = 1;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 64) {
-		goto yy582;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy604;
-			if (yych <= '<') goto yy585;
-		} else {
-			if (yych <= 0xDF) goto yy587;
-			if (yych <= 0xE0) goto yy588;
-			goto yy589;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy590;
-			if (yych <= 0xEF) goto yy589;
-			goto yy591;
-		} else {
-			if (yych <= 0xF3) goto yy592;
-			if (yych <= 0xF4) goto yy593;
-		}
-	}
-yy604:
-	{ return (bufsize_t)(p - start); }
-yy605:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy585;
-	}
-	if (yych <= 0xC1) {
-		if (yych <= 'O') {
-			if (yych <= 0x00) goto yy584;
-			if (yych == '\n') goto yy584;
-			goto yy582;
-		} else {
-			if (yych <= 'o') {
-				if (yych >= 'Q') goto yy582;
-			} else {
-				if (yych <= 'p') goto yy606;
-				if (yych <= 0x7F) goto yy582;
-				goto yy584;
-			}
-		}
-	} else {
-		if (yych <= 0xED) {
-			if (yych <= 0xDF) goto yy587;
-			if (yych <= 0xE0) goto yy588;
-			if (yych <= 0xEC) goto yy589;
-			goto yy590;
-		} else {
-			if (yych <= 0xF0) {
-				if (yych <= 0xEF) goto yy589;
-				goto yy591;
-			} else {
-				if (yych <= 0xF3) goto yy592;
-				if (yych <= 0xF4) goto yy593;
-				goto yy584;
-			}
-		}
-	}
-yy606:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy585;
-	}
-	if (yych <= 0xC1) {
-		if (yych <= 'S') {
-			if (yych <= 0x00) goto yy584;
-			if (yych == '\n') goto yy584;
-			goto yy582;
-		} else {
-			if (yych <= 's') {
-				if (yych <= 'T') goto yy600;
-				goto yy582;
-			} else {
-				if (yych <= 't') goto yy600;
-				if (yych <= 0x7F) goto yy582;
-				goto yy584;
-			}
-		}
-	} else {
-		if (yych <= 0xED) {
-			if (yych <= 0xDF) goto yy587;
-			if (yych <= 0xE0) goto yy588;
-			if (yych <= 0xEC) goto yy589;
-			goto yy590;
-		} else {
-			if (yych <= 0xF0) {
-				if (yych <= 0xEF) goto yy589;
-				goto yy591;
-			} else {
-				if (yych <= 0xF3) goto yy592;
-				if (yych <= 0xF4) goto yy593;
-				goto yy584;
-			}
-		}
-	}
-}
-
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,  64, 64, 64, 64, 64, 64,  64, 64, 64, 0,  64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 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,
+    };
+    yych = *p;
+    if (yych <= 0xDF) {
+      if (yych <= ';') {
+        if (yych <= 0x00)
+          goto yy499;
+        if (yych != '\n')
+          goto yy501;
+      } else {
+        if (yych <= '<')
+          goto yy502;
+        if (yych <= 0x7F)
+          goto yy501;
+        if (yych >= 0xC2)
+          goto yy503;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy504;
+        if (yych == 0xED)
+          goto yy506;
+        goto yy505;
+      } else {
+        if (yych <= 0xF0)
+          goto yy507;
+        if (yych <= 0xF3)
+          goto yy508;
+        if (yych <= 0xF4)
+          goto yy509;
+      }
+    }
+  yy499:
+    ++p;
+  yy500 : { return 0; }
+  yy501:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '\n') {
+      if (yych <= 0x00)
+        goto yy500;
+      if (yych <= '\t')
+        goto yy511;
+      goto yy500;
+    } else {
+      if (yych <= 0x7F)
+        goto yy511;
+      if (yych <= 0xC1)
+        goto yy500;
+      if (yych <= 0xF4)
+        goto yy511;
+      goto yy500;
+    }
+  yy502:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '.') {
+      if (yych <= 0x00)
+        goto yy500;
+      if (yych == '\n')
+        goto yy500;
+      goto yy511;
+    } else {
+      if (yych <= 0x7F) {
+        if (yych <= '/')
+          goto yy521;
+        goto yy511;
+      } else {
+        if (yych <= 0xC1)
+          goto yy500;
+        if (yych <= 0xF4)
+          goto yy511;
+        goto yy500;
+      }
+    }
+  yy503:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy500;
+    if (yych <= 0xBF)
+      goto yy510;
+    goto yy500;
+  yy504:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x9F)
+      goto yy500;
+    if (yych <= 0xBF)
+      goto yy514;
+    goto yy500;
+  yy505:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy500;
+    if (yych <= 0xBF)
+      goto yy514;
+    goto yy500;
+  yy506:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy500;
+    if (yych <= 0x9F)
+      goto yy514;
+    goto yy500;
+  yy507:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x8F)
+      goto yy500;
+    if (yych <= 0xBF)
+      goto yy516;
+    goto yy500;
+  yy508:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy500;
+    if (yych <= 0xBF)
+      goto yy516;
+    goto yy500;
+  yy509:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy500;
+    if (yych <= 0x8F)
+      goto yy516;
+    goto yy500;
+  yy510:
+    yych = *++p;
+  yy511:
+    if (yybm[0 + yych] & 64) {
+      goto yy510;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy512;
+        if (yych <= '<')
+          goto yy513;
+      } else {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        goto yy516;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy517;
+        if (yych <= 0xEF)
+          goto yy516;
+        goto yy518;
+      } else {
+        if (yych <= 0xF3)
+          goto yy519;
+        if (yych <= 0xF4)
+          goto yy520;
+      }
+    }
+  yy512:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy500;
+    } else {
+      goto yy534;
+    }
+  yy513:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '.') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= '/')
+          goto yy521;
+        if (yych <= 0x7F)
+          goto yy510;
+        if (yych <= 0xC1)
+          goto yy512;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych == 0xED)
+          goto yy517;
+        goto yy516;
+      } else {
+        if (yych <= 0xF0)
+          goto yy518;
+        if (yych <= 0xF3)
+          goto yy519;
+        if (yych <= 0xF4)
+          goto yy520;
+        goto yy512;
+      }
+    }
+  yy514:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy512;
+    if (yych <= 0xBF)
+      goto yy510;
+    goto yy512;
+  yy515:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy512;
+    if (yych <= 0xBF)
+      goto yy514;
+    goto yy512;
+  yy516:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy512;
+    if (yych <= 0xBF)
+      goto yy514;
+    goto yy512;
+  yy517:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy512;
+    if (yych <= 0x9F)
+      goto yy514;
+    goto yy512;
+  yy518:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy512;
+    if (yych <= 0xBF)
+      goto yy516;
+    goto yy512;
+  yy519:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy512;
+    if (yych <= 0xBF)
+      goto yy516;
+    goto yy512;
+  yy520:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy512;
+    if (yych <= 0x8F)
+      goto yy516;
+    goto yy512;
+  yy521:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 's') {
+      if (yych <= 'R') {
+        if (yych <= '\n') {
+          if (yych <= 0x00)
+            goto yy512;
+          if (yych <= '\t')
+            goto yy510;
+          goto yy512;
+        } else {
+          if (yych != 'P')
+            goto yy510;
+        }
+      } else {
+        if (yych <= 'o') {
+          if (yych <= 'S')
+            goto yy523;
+          if (yych <= 'T')
+            goto yy524;
+          goto yy510;
+        } else {
+          if (yych <= 'p')
+            goto yy522;
+          if (yych <= 'r')
+            goto yy510;
+          goto yy523;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= 't')
+            goto yy524;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        } else {
+          if (yych <= 0xDF)
+            goto yy514;
+          if (yych <= 0xE0)
+            goto yy515;
+          goto yy516;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy517;
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy522:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'Q') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 'q') {
+          if (yych <= 'R')
+            goto yy525;
+          goto yy510;
+        } else {
+          if (yych <= 'r')
+            goto yy525;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy523:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 't') {
+      if (yych <= 'C') {
+        if (yych <= '\t') {
+          if (yych <= 0x00)
+            goto yy512;
+          goto yy510;
+        } else {
+          if (yych <= '\n')
+            goto yy512;
+          if (yych <= 'B')
+            goto yy510;
+          goto yy526;
+        }
+      } else {
+        if (yych <= 'b') {
+          if (yych == 'T')
+            goto yy527;
+          goto yy510;
+        } else {
+          if (yych <= 'c')
+            goto yy526;
+          if (yych <= 's')
+            goto yy510;
+          goto yy527;
+        }
+      }
+    } else {
+      if (yych <= 0xEC) {
+        if (yych <= 0xC1) {
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        } else {
+          if (yych <= 0xDF)
+            goto yy514;
+          if (yych <= 0xE0)
+            goto yy515;
+          goto yy516;
+        }
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xED)
+            goto yy517;
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy524:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'D') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 'd') {
+          if (yych <= 'E')
+            goto yy528;
+          goto yy510;
+        } else {
+          if (yych <= 'e')
+            goto yy528;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy525:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'D') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 'd') {
+          if (yych <= 'E')
+            goto yy529;
+          goto yy510;
+        } else {
+          if (yych <= 'e')
+            goto yy529;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy526:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'Q') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 'q') {
+          if (yych <= 'R')
+            goto yy530;
+          goto yy510;
+        } else {
+          if (yych <= 'r')
+            goto yy530;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy527:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'X') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 'x') {
+          if (yych <= 'Y')
+            goto yy531;
+          goto yy510;
+        } else {
+          if (yych <= 'y')
+            goto yy531;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy528:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'W') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 'w') {
+          if (yych <= 'X')
+            goto yy532;
+          goto yy510;
+        } else {
+          if (yych <= 'x')
+            goto yy532;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy529:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= '>')
+          goto yy533;
+        if (yych <= 0x7F)
+          goto yy510;
+        if (yych <= 0xC1)
+          goto yy512;
+        goto yy514;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych == 0xED)
+          goto yy517;
+        goto yy516;
+      } else {
+        if (yych <= 0xF0)
+          goto yy518;
+        if (yych <= 0xF3)
+          goto yy519;
+        if (yych <= 0xF4)
+          goto yy520;
+        goto yy512;
+      }
+    }
+  yy530:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'H') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 'h') {
+          if (yych <= 'I')
+            goto yy535;
+          goto yy510;
+        } else {
+          if (yych <= 'i')
+            goto yy535;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy531:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'K') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 'k') {
+          if (yych <= 'L')
+            goto yy525;
+          goto yy510;
+        } else {
+          if (yych <= 'l')
+            goto yy525;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy532:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'S') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 's') {
+          if (yych <= 'T')
+            goto yy536;
+          goto yy510;
+        } else {
+          if (yych <= 't')
+            goto yy536;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy533:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy510;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy534;
+        if (yych <= '<')
+          goto yy513;
+      } else {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        goto yy516;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy517;
+        if (yych <= 0xEF)
+          goto yy516;
+        goto yy518;
+      } else {
+        if (yych <= 0xF3)
+          goto yy519;
+        if (yych <= 0xF4)
+          goto yy520;
+      }
+    }
+  yy534 : { return (bufsize_t)(p - start); }
+  yy535:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'O') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 'o') {
+          if (yych <= 'P')
+            goto yy537;
+          goto yy510;
+        } else {
+          if (yych <= 'p')
+            goto yy537;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy536:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= '@') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= '`') {
+          if (yych <= 'A')
+            goto yy538;
+          goto yy510;
+        } else {
+          if (yych <= 'a')
+            goto yy538;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy537:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'S') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 's') {
+          if (yych <= 'T')
+            goto yy529;
+          goto yy510;
+        } else {
+          if (yych <= 't')
+            goto yy529;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy538:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'Q') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 'q') {
+          if (yych >= 'S')
+            goto yy510;
+        } else {
+          if (yych <= 'r')
+            goto yy539;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy539:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= 'D') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= 'd') {
+          if (yych >= 'F')
+            goto yy510;
+        } else {
+          if (yych <= 'e')
+            goto yy540;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  yy540:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy513;
+    }
+    if (yych <= 0xC1) {
+      if (yych <= '@') {
+        if (yych <= 0x00)
+          goto yy512;
+        if (yych == '\n')
+          goto yy512;
+        goto yy510;
+      } else {
+        if (yych <= '`') {
+          if (yych <= 'A')
+            goto yy529;
+          goto yy510;
+        } else {
+          if (yych <= 'a')
+            goto yy529;
+          if (yych <= 0x7F)
+            goto yy510;
+          goto yy512;
+        }
+      }
+    } else {
+      if (yych <= 0xED) {
+        if (yych <= 0xDF)
+          goto yy514;
+        if (yych <= 0xE0)
+          goto yy515;
+        if (yych <= 0xEC)
+          goto yy516;
+        goto yy517;
+      } else {
+        if (yych <= 0xF0) {
+          if (yych <= 0xEF)
+            goto yy516;
+          goto yy518;
+        } else {
+          if (yych <= 0xF3)
+            goto yy519;
+          if (yych <= 0xF4)
+            goto yy520;
+          goto yy512;
+        }
+      }
+    }
+  }
 }
 
 // Try to match an HTML block end line of type 2
-bufsize_t _scan_html_block_end_2(const unsigned char *p)
-{
+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[] = {
-		  0,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,   0,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64, 128,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  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, 
-	};
-	yych = *p;
-	if (yych <= 0xDF) {
-		if (yych <= ',') {
-			if (yych <= 0x00) goto yy609;
-			if (yych != '\n') goto yy611;
-		} else {
-			if (yych <= '-') goto yy612;
-			if (yych <= 0x7F) goto yy611;
-			if (yych >= 0xC2) goto yy613;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych <= 0xE0) goto yy614;
-			if (yych == 0xED) goto yy616;
-			goto yy615;
-		} else {
-			if (yych <= 0xF0) goto yy617;
-			if (yych <= 0xF3) goto yy618;
-			if (yych <= 0xF4) goto yy619;
-		}
-	}
-yy609:
-	++p;
-yy610:
-	{ return 0; }
-yy611:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= '\n') {
-		if (yych <= 0x00) goto yy610;
-		if (yych <= '\t') goto yy621;
-		goto yy610;
-	} else {
-		if (yych <= 0x7F) goto yy621;
-		if (yych <= 0xC1) goto yy610;
-		if (yych <= 0xF4) goto yy621;
-		goto yy610;
-	}
-yy612:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 128) {
-		goto yy631;
-	}
-	if (yych <= '\n') {
-		if (yych <= 0x00) goto yy610;
-		if (yych <= '\t') goto yy621;
-		goto yy610;
-	} else {
-		if (yych <= 0x7F) goto yy621;
-		if (yych <= 0xC1) goto yy610;
-		if (yych <= 0xF4) goto yy621;
-		goto yy610;
-	}
-yy613:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy610;
-	if (yych <= 0xBF) goto yy620;
-	goto yy610;
-yy614:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x9F) goto yy610;
-	if (yych <= 0xBF) goto yy624;
-	goto yy610;
-yy615:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy610;
-	if (yych <= 0xBF) goto yy624;
-	goto yy610;
-yy616:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy610;
-	if (yych <= 0x9F) goto yy624;
-	goto yy610;
-yy617:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x8F) goto yy610;
-	if (yych <= 0xBF) goto yy626;
-	goto yy610;
-yy618:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy610;
-	if (yych <= 0xBF) goto yy626;
-	goto yy610;
-yy619:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy610;
-	if (yych <= 0x8F) goto yy626;
-	goto yy610;
-yy620:
-	yych = *++p;
-yy621:
-	if (yybm[0+yych] & 64) {
-		goto yy620;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy622;
-			if (yych <= '-') goto yy623;
-		} else {
-			if (yych <= 0xDF) goto yy624;
-			if (yych <= 0xE0) goto yy625;
-			goto yy626;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy627;
-			if (yych <= 0xEF) goto yy626;
-			goto yy628;
-		} else {
-			if (yych <= 0xF3) goto yy629;
-			if (yych <= 0xF4) goto yy630;
-		}
-	}
-yy622:
-	p = marker;
-	if (yyaccept == 0) {
-		goto yy610;
-	} else {
-		goto yy634;
-	}
-yy623:
-	yych = *++p;
-	if (yybm[0+yych] & 64) {
-		goto yy620;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy622;
-			if (yych <= '-') goto yy631;
-			goto yy622;
-		} else {
-			if (yych <= 0xDF) goto yy624;
-			if (yych <= 0xE0) goto yy625;
-			goto yy626;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy627;
-			if (yych <= 0xEF) goto yy626;
-			goto yy628;
-		} else {
-			if (yych <= 0xF3) goto yy629;
-			if (yych <= 0xF4) goto yy630;
-			goto yy622;
-		}
-	}
-yy624:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy622;
-	if (yych <= 0xBF) goto yy620;
-	goto yy622;
-yy625:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy622;
-	if (yych <= 0xBF) goto yy624;
-	goto yy622;
-yy626:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy622;
-	if (yych <= 0xBF) goto yy624;
-	goto yy622;
-yy627:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy622;
-	if (yych <= 0x9F) goto yy624;
-	goto yy622;
-yy628:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy622;
-	if (yych <= 0xBF) goto yy626;
-	goto yy622;
-yy629:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy622;
-	if (yych <= 0xBF) goto yy626;
-	goto yy622;
-yy630:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy622;
-	if (yych <= 0x8F) goto yy626;
-	goto yy622;
-yy631:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy631;
-	}
-	if (yych <= 0xDF) {
-		if (yych <= '=') {
-			if (yych <= 0x00) goto yy622;
-			if (yych == '\n') goto yy622;
-			goto yy620;
-		} else {
-			if (yych <= '>') goto yy633;
-			if (yych <= 0x7F) goto yy620;
-			if (yych <= 0xC1) goto yy622;
-			goto yy624;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych <= 0xE0) goto yy625;
-			if (yych == 0xED) goto yy627;
-			goto yy626;
-		} else {
-			if (yych <= 0xF0) goto yy628;
-			if (yych <= 0xF3) goto yy629;
-			if (yych <= 0xF4) goto yy630;
-			goto yy622;
-		}
-	}
-yy633:
-	yyaccept = 1;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 64) {
-		goto yy620;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy634;
-			if (yych <= '-') goto yy623;
-		} else {
-			if (yych <= 0xDF) goto yy624;
-			if (yych <= 0xE0) goto yy625;
-			goto yy626;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy627;
-			if (yych <= 0xEF) goto yy626;
-			goto yy628;
-		} else {
-			if (yych <= 0xF3) goto yy629;
-			if (yych <= 0xF4) goto yy630;
-		}
-	}
-yy634:
-	{ return (bufsize_t)(p - start); }
-}
-
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,  64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
+        64, 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,
+    };
+    yych = *p;
+    if (yych <= 0xDF) {
+      if (yych <= ',') {
+        if (yych <= 0x00)
+          goto yy542;
+        if (yych != '\n')
+          goto yy544;
+      } else {
+        if (yych <= '-')
+          goto yy545;
+        if (yych <= 0x7F)
+          goto yy544;
+        if (yych >= 0xC2)
+          goto yy546;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy547;
+        if (yych == 0xED)
+          goto yy549;
+        goto yy548;
+      } else {
+        if (yych <= 0xF0)
+          goto yy550;
+        if (yych <= 0xF3)
+          goto yy551;
+        if (yych <= 0xF4)
+          goto yy552;
+      }
+    }
+  yy542:
+    ++p;
+  yy543 : { return 0; }
+  yy544:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '\n') {
+      if (yych <= 0x00)
+        goto yy543;
+      if (yych <= '\t')
+        goto yy554;
+      goto yy543;
+    } else {
+      if (yych <= 0x7F)
+        goto yy554;
+      if (yych <= 0xC1)
+        goto yy543;
+      if (yych <= 0xF4)
+        goto yy554;
+      goto yy543;
+    }
+  yy545:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 128) {
+      goto yy564;
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x00)
+        goto yy543;
+      if (yych <= '\t')
+        goto yy554;
+      goto yy543;
+    } else {
+      if (yych <= 0x7F)
+        goto yy554;
+      if (yych <= 0xC1)
+        goto yy543;
+      if (yych <= 0xF4)
+        goto yy554;
+      goto yy543;
+    }
+  yy546:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy543;
+    if (yych <= 0xBF)
+      goto yy553;
+    goto yy543;
+  yy547:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x9F)
+      goto yy543;
+    if (yych <= 0xBF)
+      goto yy557;
+    goto yy543;
+  yy548:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy543;
+    if (yych <= 0xBF)
+      goto yy557;
+    goto yy543;
+  yy549:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy543;
+    if (yych <= 0x9F)
+      goto yy557;
+    goto yy543;
+  yy550:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x8F)
+      goto yy543;
+    if (yych <= 0xBF)
+      goto yy559;
+    goto yy543;
+  yy551:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy543;
+    if (yych <= 0xBF)
+      goto yy559;
+    goto yy543;
+  yy552:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy543;
+    if (yych <= 0x8F)
+      goto yy559;
+    goto yy543;
+  yy553:
+    yych = *++p;
+  yy554:
+    if (yybm[0 + yych] & 64) {
+      goto yy553;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy555;
+        if (yych <= '-')
+          goto yy556;
+      } else {
+        if (yych <= 0xDF)
+          goto yy557;
+        if (yych <= 0xE0)
+          goto yy558;
+        goto yy559;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy560;
+        if (yych <= 0xEF)
+          goto yy559;
+        goto yy561;
+      } else {
+        if (yych <= 0xF3)
+          goto yy562;
+        if (yych <= 0xF4)
+          goto yy563;
+      }
+    }
+  yy555:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy543;
+    } else {
+      goto yy566;
+    }
+  yy556:
+    yych = *++p;
+    if (yybm[0 + yych] & 64) {
+      goto yy553;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy555;
+        if (yych <= '-')
+          goto yy564;
+        goto yy555;
+      } else {
+        if (yych <= 0xDF)
+          goto yy557;
+        if (yych <= 0xE0)
+          goto yy558;
+        goto yy559;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy560;
+        if (yych <= 0xEF)
+          goto yy559;
+        goto yy561;
+      } else {
+        if (yych <= 0xF3)
+          goto yy562;
+        if (yych <= 0xF4)
+          goto yy563;
+        goto yy555;
+      }
+    }
+  yy557:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy555;
+    if (yych <= 0xBF)
+      goto yy553;
+    goto yy555;
+  yy558:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy555;
+    if (yych <= 0xBF)
+      goto yy557;
+    goto yy555;
+  yy559:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy555;
+    if (yych <= 0xBF)
+      goto yy557;
+    goto yy555;
+  yy560:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy555;
+    if (yych <= 0x9F)
+      goto yy557;
+    goto yy555;
+  yy561:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy555;
+    if (yych <= 0xBF)
+      goto yy559;
+    goto yy555;
+  yy562:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy555;
+    if (yych <= 0xBF)
+      goto yy559;
+    goto yy555;
+  yy563:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy555;
+    if (yych <= 0x8F)
+      goto yy559;
+    goto yy555;
+  yy564:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy564;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych <= 0x00)
+          goto yy555;
+        if (yych == '\n')
+          goto yy555;
+        goto yy553;
+      } else {
+        if (yych <= '>')
+          goto yy565;
+        if (yych <= 0x7F)
+          goto yy553;
+        if (yych <= 0xC1)
+          goto yy555;
+        goto yy557;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy558;
+        if (yych == 0xED)
+          goto yy560;
+        goto yy559;
+      } else {
+        if (yych <= 0xF0)
+          goto yy561;
+        if (yych <= 0xF3)
+          goto yy562;
+        if (yych <= 0xF4)
+          goto yy563;
+        goto yy555;
+      }
+    }
+  yy565:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy553;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy566;
+        if (yych <= '-')
+          goto yy556;
+      } else {
+        if (yych <= 0xDF)
+          goto yy557;
+        if (yych <= 0xE0)
+          goto yy558;
+        goto yy559;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy560;
+        if (yych <= 0xEF)
+          goto yy559;
+        goto yy561;
+      } else {
+        if (yych <= 0xF3)
+          goto yy562;
+        if (yych <= 0xF4)
+          goto yy563;
+      }
+    }
+  yy566 : { 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)
-{
+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[] = {
-		  0,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,   0,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64, 128, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  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, 
-	};
-	yych = *p;
-	if (yych <= 0xDF) {
-		if (yych <= '>') {
-			if (yych <= 0x00) goto yy637;
-			if (yych != '\n') goto yy639;
-		} else {
-			if (yych <= '?') goto yy640;
-			if (yych <= 0x7F) goto yy639;
-			if (yych >= 0xC2) goto yy641;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych <= 0xE0) goto yy642;
-			if (yych == 0xED) goto yy644;
-			goto yy643;
-		} else {
-			if (yych <= 0xF0) goto yy645;
-			if (yych <= 0xF3) goto yy646;
-			if (yych <= 0xF4) goto yy647;
-		}
-	}
-yy637:
-	++p;
-yy638:
-	{ return 0; }
-yy639:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= '\n') {
-		if (yych <= 0x00) goto yy638;
-		if (yych <= '\t') goto yy649;
-		goto yy638;
-	} else {
-		if (yych <= 0x7F) goto yy649;
-		if (yych <= 0xC1) goto yy638;
-		if (yych <= 0xF4) goto yy649;
-		goto yy638;
-	}
-yy640:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= '=') {
-		if (yych <= 0x00) goto yy638;
-		if (yych == '\n') goto yy638;
-		goto yy649;
-	} else {
-		if (yych <= 0x7F) {
-			if (yych <= '>') goto yy660;
-			goto yy649;
-		} else {
-			if (yych <= 0xC1) goto yy638;
-			if (yych <= 0xF4) goto yy649;
-			goto yy638;
-		}
-	}
-yy641:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy638;
-	if (yych <= 0xBF) goto yy648;
-	goto yy638;
-yy642:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x9F) goto yy638;
-	if (yych <= 0xBF) goto yy653;
-	goto yy638;
-yy643:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy638;
-	if (yych <= 0xBF) goto yy653;
-	goto yy638;
-yy644:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy638;
-	if (yych <= 0x9F) goto yy653;
-	goto yy638;
-yy645:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x8F) goto yy638;
-	if (yych <= 0xBF) goto yy655;
-	goto yy638;
-yy646:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy638;
-	if (yych <= 0xBF) goto yy655;
-	goto yy638;
-yy647:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy638;
-	if (yych <= 0x8F) goto yy655;
-	goto yy638;
-yy648:
-	yych = *++p;
-yy649:
-	if (yybm[0+yych] & 64) {
-		goto yy648;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy650;
-			if (yych <= '?') goto yy651;
-		} else {
-			if (yych <= 0xDF) goto yy653;
-			if (yych <= 0xE0) goto yy654;
-			goto yy655;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy656;
-			if (yych <= 0xEF) goto yy655;
-			goto yy657;
-		} else {
-			if (yych <= 0xF3) goto yy658;
-			if (yych <= 0xF4) goto yy659;
-		}
-	}
-yy650:
-	p = marker;
-	if (yyaccept == 0) {
-		goto yy638;
-	} else {
-		goto yy661;
-	}
-yy651:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy651;
-	}
-	if (yych <= 0xDF) {
-		if (yych <= '=') {
-			if (yych <= 0x00) goto yy650;
-			if (yych == '\n') goto yy650;
-			goto yy648;
-		} else {
-			if (yych <= '>') goto yy660;
-			if (yych <= 0x7F) goto yy648;
-			if (yych <= 0xC1) goto yy650;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych <= 0xE0) goto yy654;
-			if (yych == 0xED) goto yy656;
-			goto yy655;
-		} else {
-			if (yych <= 0xF0) goto yy657;
-			if (yych <= 0xF3) goto yy658;
-			if (yych <= 0xF4) goto yy659;
-			goto yy650;
-		}
-	}
-yy653:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy650;
-	if (yych <= 0xBF) goto yy648;
-	goto yy650;
-yy654:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy650;
-	if (yych <= 0xBF) goto yy653;
-	goto yy650;
-yy655:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy650;
-	if (yych <= 0xBF) goto yy653;
-	goto yy650;
-yy656:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy650;
-	if (yych <= 0x9F) goto yy653;
-	goto yy650;
-yy657:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy650;
-	if (yych <= 0xBF) goto yy655;
-	goto yy650;
-yy658:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy650;
-	if (yych <= 0xBF) goto yy655;
-	goto yy650;
-yy659:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy650;
-	if (yych <= 0x8F) goto yy655;
-	goto yy650;
-yy660:
-	yyaccept = 1;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 64) {
-		goto yy648;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy661;
-			if (yych <= '?') goto yy651;
-		} else {
-			if (yych <= 0xDF) goto yy653;
-			if (yych <= 0xE0) goto yy654;
-			goto yy655;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy656;
-			if (yych <= 0xEF) goto yy655;
-			goto yy657;
-		} else {
-			if (yych <= 0xF3) goto yy658;
-			if (yych <= 0xF4) goto yy659;
-		}
-	}
-yy661:
-	{ return (bufsize_t)(p - start); }
-}
-
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,  64, 64, 64, 64, 64, 64, 64, 64, 64,  0,  64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64,
+        64, 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,
+    };
+    yych = *p;
+    if (yych <= 0xDF) {
+      if (yych <= '>') {
+        if (yych <= 0x00)
+          goto yy568;
+        if (yych != '\n')
+          goto yy570;
+      } else {
+        if (yych <= '?')
+          goto yy571;
+        if (yych <= 0x7F)
+          goto yy570;
+        if (yych >= 0xC2)
+          goto yy572;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy573;
+        if (yych == 0xED)
+          goto yy575;
+        goto yy574;
+      } else {
+        if (yych <= 0xF0)
+          goto yy576;
+        if (yych <= 0xF3)
+          goto yy577;
+        if (yych <= 0xF4)
+          goto yy578;
+      }
+    }
+  yy568:
+    ++p;
+  yy569 : { return 0; }
+  yy570:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '\n') {
+      if (yych <= 0x00)
+        goto yy569;
+      if (yych <= '\t')
+        goto yy580;
+      goto yy569;
+    } else {
+      if (yych <= 0x7F)
+        goto yy580;
+      if (yych <= 0xC1)
+        goto yy569;
+      if (yych <= 0xF4)
+        goto yy580;
+      goto yy569;
+    }
+  yy571:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '=') {
+      if (yych <= 0x00)
+        goto yy569;
+      if (yych == '\n')
+        goto yy569;
+      goto yy580;
+    } else {
+      if (yych <= 0x7F) {
+        if (yych <= '>')
+          goto yy590;
+        goto yy580;
+      } else {
+        if (yych <= 0xC1)
+          goto yy569;
+        if (yych <= 0xF4)
+          goto yy580;
+        goto yy569;
+      }
+    }
+  yy572:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy569;
+    if (yych <= 0xBF)
+      goto yy579;
+    goto yy569;
+  yy573:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x9F)
+      goto yy569;
+    if (yych <= 0xBF)
+      goto yy583;
+    goto yy569;
+  yy574:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy569;
+    if (yych <= 0xBF)
+      goto yy583;
+    goto yy569;
+  yy575:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy569;
+    if (yych <= 0x9F)
+      goto yy583;
+    goto yy569;
+  yy576:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x8F)
+      goto yy569;
+    if (yych <= 0xBF)
+      goto yy585;
+    goto yy569;
+  yy577:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy569;
+    if (yych <= 0xBF)
+      goto yy585;
+    goto yy569;
+  yy578:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy569;
+    if (yych <= 0x8F)
+      goto yy585;
+    goto yy569;
+  yy579:
+    yych = *++p;
+  yy580:
+    if (yybm[0 + yych] & 64) {
+      goto yy579;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy581;
+        if (yych <= '?')
+          goto yy582;
+      } else {
+        if (yych <= 0xDF)
+          goto yy583;
+        if (yych <= 0xE0)
+          goto yy584;
+        goto yy585;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy586;
+        if (yych <= 0xEF)
+          goto yy585;
+        goto yy587;
+      } else {
+        if (yych <= 0xF3)
+          goto yy588;
+        if (yych <= 0xF4)
+          goto yy589;
+      }
+    }
+  yy581:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy569;
+    } else {
+      goto yy591;
+    }
+  yy582:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy582;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych <= 0x00)
+          goto yy581;
+        if (yych == '\n')
+          goto yy581;
+        goto yy579;
+      } else {
+        if (yych <= '>')
+          goto yy590;
+        if (yych <= 0x7F)
+          goto yy579;
+        if (yych <= 0xC1)
+          goto yy581;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy584;
+        if (yych == 0xED)
+          goto yy586;
+        goto yy585;
+      } else {
+        if (yych <= 0xF0)
+          goto yy587;
+        if (yych <= 0xF3)
+          goto yy588;
+        if (yych <= 0xF4)
+          goto yy589;
+        goto yy581;
+      }
+    }
+  yy583:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy581;
+    if (yych <= 0xBF)
+      goto yy579;
+    goto yy581;
+  yy584:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy581;
+    if (yych <= 0xBF)
+      goto yy583;
+    goto yy581;
+  yy585:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy581;
+    if (yych <= 0xBF)
+      goto yy583;
+    goto yy581;
+  yy586:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy581;
+    if (yych <= 0x9F)
+      goto yy583;
+    goto yy581;
+  yy587:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy581;
+    if (yych <= 0xBF)
+      goto yy585;
+    goto yy581;
+  yy588:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy581;
+    if (yych <= 0xBF)
+      goto yy585;
+    goto yy581;
+  yy589:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy581;
+    if (yych <= 0x8F)
+      goto yy585;
+    goto yy581;
+  yy590:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy579;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy591;
+        if (yych <= '?')
+          goto yy582;
+      } else {
+        if (yych <= 0xDF)
+          goto yy583;
+        if (yych <= 0xE0)
+          goto yy584;
+        goto yy585;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy586;
+        if (yych <= 0xEF)
+          goto yy585;
+        goto yy587;
+      } else {
+        if (yych <= 0xF3)
+          goto yy588;
+        if (yych <= 0xF4)
+          goto yy589;
+      }
+    }
+  yy591 : { return (bufsize_t)(p - start); }
+  }
 }
 
 // Try to match an HTML block end line of type 4
-bufsize_t _scan_html_block_end_4(const unsigned char *p)
-{
+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[] = {
-		  0, 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 = *p;
-	if (yybm[0+yych] & 64) {
-		goto yy667;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '\n') {
-			if (yych <= 0x00) goto yy664;
-			if (yych <= '\t') goto yy666;
-		} else {
-			if (yych <= 0x7F) goto yy666;
-			if (yych <= 0xC1) goto yy664;
-			if (yych <= 0xDF) goto yy670;
-			goto yy671;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy673;
-			goto yy672;
-		} else {
-			if (yych <= 0xF0) goto yy674;
-			if (yych <= 0xF3) goto yy675;
-			if (yych <= 0xF4) goto yy676;
-		}
-	}
-yy664:
-	++p;
-yy665:
-	{ return 0; }
-yy666:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= '\n') {
-		if (yych <= 0x00) goto yy665;
-		if (yych <= '\t') goto yy678;
-		goto yy665;
-	} else {
-		if (yych <= 0x7F) goto yy678;
-		if (yych <= 0xC1) goto yy665;
-		if (yych <= 0xF4) goto yy678;
-		goto yy665;
-	}
-yy667:
-	yyaccept = 1;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 128) {
-		goto yy677;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy669;
-			if (yych <= '>') goto yy667;
-		} else {
-			if (yych <= 0xDF) goto yy680;
-			if (yych <= 0xE0) goto yy681;
-			goto yy682;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy683;
-			if (yych <= 0xEF) goto yy682;
-			goto yy684;
-		} else {
-			if (yych <= 0xF3) goto yy685;
-			if (yych <= 0xF4) goto yy686;
-		}
-	}
-yy669:
-	{ return (bufsize_t)(p - start); }
-yy670:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy665;
-	if (yych <= 0xBF) goto yy677;
-	goto yy665;
-yy671:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x9F) goto yy665;
-	if (yych <= 0xBF) goto yy680;
-	goto yy665;
-yy672:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy665;
-	if (yych <= 0xBF) goto yy680;
-	goto yy665;
-yy673:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy665;
-	if (yych <= 0x9F) goto yy680;
-	goto yy665;
-yy674:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x8F) goto yy665;
-	if (yych <= 0xBF) goto yy682;
-	goto yy665;
-yy675:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy665;
-	if (yych <= 0xBF) goto yy682;
-	goto yy665;
-yy676:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy665;
-	if (yych <= 0x8F) goto yy682;
-	goto yy665;
-yy677:
-	yych = *++p;
-yy678:
-	if (yybm[0+yych] & 128) {
-		goto yy677;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy679;
-			if (yych <= '>') goto yy667;
-		} else {
-			if (yych <= 0xDF) goto yy680;
-			if (yych <= 0xE0) goto yy681;
-			goto yy682;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy683;
-			if (yych <= 0xEF) goto yy682;
-			goto yy684;
-		} else {
-			if (yych <= 0xF3) goto yy685;
-			if (yych <= 0xF4) goto yy686;
-		}
-	}
-yy679:
-	p = marker;
-	if (yyaccept == 0) {
-		goto yy665;
-	} else {
-		goto yy669;
-	}
-yy680:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy679;
-	if (yych <= 0xBF) goto yy677;
-	goto yy679;
-yy681:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy679;
-	if (yych <= 0xBF) goto yy680;
-	goto yy679;
-yy682:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy679;
-	if (yych <= 0xBF) goto yy680;
-	goto yy679;
-yy683:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy679;
-	if (yych <= 0x9F) goto yy680;
-	goto yy679;
-yy684:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy679;
-	if (yych <= 0xBF) goto yy682;
-	goto yy679;
-yy685:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy679;
-	if (yych <= 0xBF) goto yy682;
-	goto yy679;
-yy686:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy679;
-	if (yych <= 0x8F) goto yy682;
-	goto yy679;
-}
-
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,   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 = *p;
+    if (yybm[0 + yych] & 64) {
+      goto yy596;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\n') {
+        if (yych <= 0x00)
+          goto yy593;
+        if (yych <= '\t')
+          goto yy595;
+      } else {
+        if (yych <= 0x7F)
+          goto yy595;
+        if (yych <= 0xC1)
+          goto yy593;
+        if (yych <= 0xDF)
+          goto yy598;
+        goto yy599;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy601;
+        goto yy600;
+      } else {
+        if (yych <= 0xF0)
+          goto yy602;
+        if (yych <= 0xF3)
+          goto yy603;
+        if (yych <= 0xF4)
+          goto yy604;
+      }
+    }
+  yy593:
+    ++p;
+  yy594 : { return 0; }
+  yy595:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '\n') {
+      if (yych <= 0x00)
+        goto yy594;
+      if (yych <= '\t')
+        goto yy606;
+      goto yy594;
+    } else {
+      if (yych <= 0x7F)
+        goto yy606;
+      if (yych <= 0xC1)
+        goto yy594;
+      if (yych <= 0xF4)
+        goto yy606;
+      goto yy594;
+    }
+  yy596:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 128) {
+      goto yy605;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy597;
+        if (yych <= '>')
+          goto yy596;
+      } else {
+        if (yych <= 0xDF)
+          goto yy608;
+        if (yych <= 0xE0)
+          goto yy609;
+        goto yy610;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy611;
+        if (yych <= 0xEF)
+          goto yy610;
+        goto yy612;
+      } else {
+        if (yych <= 0xF3)
+          goto yy613;
+        if (yych <= 0xF4)
+          goto yy614;
+      }
+    }
+  yy597 : { return (bufsize_t)(p - start); }
+  yy598:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy594;
+    if (yych <= 0xBF)
+      goto yy605;
+    goto yy594;
+  yy599:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x9F)
+      goto yy594;
+    if (yych <= 0xBF)
+      goto yy608;
+    goto yy594;
+  yy600:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy594;
+    if (yych <= 0xBF)
+      goto yy608;
+    goto yy594;
+  yy601:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy594;
+    if (yych <= 0x9F)
+      goto yy608;
+    goto yy594;
+  yy602:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x8F)
+      goto yy594;
+    if (yych <= 0xBF)
+      goto yy610;
+    goto yy594;
+  yy603:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy594;
+    if (yych <= 0xBF)
+      goto yy610;
+    goto yy594;
+  yy604:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy594;
+    if (yych <= 0x8F)
+      goto yy610;
+    goto yy594;
+  yy605:
+    yych = *++p;
+  yy606:
+    if (yybm[0 + yych] & 128) {
+      goto yy605;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy607;
+        if (yych <= '>')
+          goto yy596;
+      } else {
+        if (yych <= 0xDF)
+          goto yy608;
+        if (yych <= 0xE0)
+          goto yy609;
+        goto yy610;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy611;
+        if (yych <= 0xEF)
+          goto yy610;
+        goto yy612;
+      } else {
+        if (yych <= 0xF3)
+          goto yy613;
+        if (yych <= 0xF4)
+          goto yy614;
+      }
+    }
+  yy607:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy594;
+    } else {
+      goto yy597;
+    }
+  yy608:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy607;
+    if (yych <= 0xBF)
+      goto yy605;
+    goto yy607;
+  yy609:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy607;
+    if (yych <= 0xBF)
+      goto yy608;
+    goto yy607;
+  yy610:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy607;
+    if (yych <= 0xBF)
+      goto yy608;
+    goto yy607;
+  yy611:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy607;
+    if (yych <= 0x9F)
+      goto yy608;
+    goto yy607;
+  yy612:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy607;
+    if (yych <= 0xBF)
+      goto yy610;
+    goto yy607;
+  yy613:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy607;
+    if (yych <= 0xBF)
+      goto yy610;
+    goto yy607;
+  yy614:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy607;
+    if (yych <= 0x8F)
+      goto yy610;
+    goto yy607;
+  }
 }
 
 // Try to match an HTML block end line of type 5
-bufsize_t _scan_html_block_end_5(const unsigned char *p)
-{
+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[] = {
-		  0,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,   0,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64, 128,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  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, 
-	};
-	yych = *p;
-	if (yych <= 0xDF) {
-		if (yych <= '\\') {
-			if (yych <= 0x00) goto yy689;
-			if (yych != '\n') goto yy691;
-		} else {
-			if (yych <= ']') goto yy692;
-			if (yych <= 0x7F) goto yy691;
-			if (yych >= 0xC2) goto yy693;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych <= 0xE0) goto yy694;
-			if (yych == 0xED) goto yy696;
-			goto yy695;
-		} else {
-			if (yych <= 0xF0) goto yy697;
-			if (yych <= 0xF3) goto yy698;
-			if (yych <= 0xF4) goto yy699;
-		}
-	}
-yy689:
-	++p;
-yy690:
-	{ return 0; }
-yy691:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= '\n') {
-		if (yych <= 0x00) goto yy690;
-		if (yych <= '\t') goto yy701;
-		goto yy690;
-	} else {
-		if (yych <= 0x7F) goto yy701;
-		if (yych <= 0xC1) goto yy690;
-		if (yych <= 0xF4) goto yy701;
-		goto yy690;
-	}
-yy692:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 128) {
-		goto yy711;
-	}
-	if (yych <= '\n') {
-		if (yych <= 0x00) goto yy690;
-		if (yych <= '\t') goto yy701;
-		goto yy690;
-	} else {
-		if (yych <= 0x7F) goto yy701;
-		if (yych <= 0xC1) goto yy690;
-		if (yych <= 0xF4) goto yy701;
-		goto yy690;
-	}
-yy693:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy690;
-	if (yych <= 0xBF) goto yy700;
-	goto yy690;
-yy694:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x9F) goto yy690;
-	if (yych <= 0xBF) goto yy704;
-	goto yy690;
-yy695:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy690;
-	if (yych <= 0xBF) goto yy704;
-	goto yy690;
-yy696:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy690;
-	if (yych <= 0x9F) goto yy704;
-	goto yy690;
-yy697:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x8F) goto yy690;
-	if (yych <= 0xBF) goto yy706;
-	goto yy690;
-yy698:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy690;
-	if (yych <= 0xBF) goto yy706;
-	goto yy690;
-yy699:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x7F) goto yy690;
-	if (yych <= 0x8F) goto yy706;
-	goto yy690;
-yy700:
-	yych = *++p;
-yy701:
-	if (yybm[0+yych] & 64) {
-		goto yy700;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy702;
-			if (yych <= ']') goto yy703;
-		} else {
-			if (yych <= 0xDF) goto yy704;
-			if (yych <= 0xE0) goto yy705;
-			goto yy706;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy707;
-			if (yych <= 0xEF) goto yy706;
-			goto yy708;
-		} else {
-			if (yych <= 0xF3) goto yy709;
-			if (yych <= 0xF4) goto yy710;
-		}
-	}
-yy702:
-	p = marker;
-	if (yyaccept == 0) {
-		goto yy690;
-	} else {
-		goto yy714;
-	}
-yy703:
-	yych = *++p;
-	if (yybm[0+yych] & 64) {
-		goto yy700;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy702;
-			if (yych <= ']') goto yy711;
-			goto yy702;
-		} else {
-			if (yych <= 0xDF) goto yy704;
-			if (yych <= 0xE0) goto yy705;
-			goto yy706;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy707;
-			if (yych <= 0xEF) goto yy706;
-			goto yy708;
-		} else {
-			if (yych <= 0xF3) goto yy709;
-			if (yych <= 0xF4) goto yy710;
-			goto yy702;
-		}
-	}
-yy704:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy702;
-	if (yych <= 0xBF) goto yy700;
-	goto yy702;
-yy705:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy702;
-	if (yych <= 0xBF) goto yy704;
-	goto yy702;
-yy706:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy702;
-	if (yych <= 0xBF) goto yy704;
-	goto yy702;
-yy707:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy702;
-	if (yych <= 0x9F) goto yy704;
-	goto yy702;
-yy708:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy702;
-	if (yych <= 0xBF) goto yy706;
-	goto yy702;
-yy709:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy702;
-	if (yych <= 0xBF) goto yy706;
-	goto yy702;
-yy710:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy702;
-	if (yych <= 0x8F) goto yy706;
-	goto yy702;
-yy711:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy711;
-	}
-	if (yych <= 0xDF) {
-		if (yych <= '=') {
-			if (yych <= 0x00) goto yy702;
-			if (yych == '\n') goto yy702;
-			goto yy700;
-		} else {
-			if (yych <= '>') goto yy713;
-			if (yych <= 0x7F) goto yy700;
-			if (yych <= 0xC1) goto yy702;
-			goto yy704;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych <= 0xE0) goto yy705;
-			if (yych == 0xED) goto yy707;
-			goto yy706;
-		} else {
-			if (yych <= 0xF0) goto yy708;
-			if (yych <= 0xF3) goto yy709;
-			if (yych <= 0xF4) goto yy710;
-			goto yy702;
-		}
-	}
-yy713:
-	yyaccept = 1;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 64) {
-		goto yy700;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= '\n') goto yy714;
-			if (yych <= ']') goto yy703;
-		} else {
-			if (yych <= 0xDF) goto yy704;
-			if (yych <= 0xE0) goto yy705;
-			goto yy706;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy707;
-			if (yych <= 0xEF) goto yy706;
-			goto yy708;
-		} else {
-			if (yych <= 0xF3) goto yy709;
-			if (yych <= 0xF4) goto yy710;
-		}
-	}
-yy714:
-	{ return (bufsize_t)(p - start); }
-}
-
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,  64, 64, 64,  64, 64, 64, 64, 64, 64, 0,  64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 128, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 64, 64, 64,  64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,
+        64, 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,
+    };
+    yych = *p;
+    if (yych <= 0xDF) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy616;
+        if (yych != '\n')
+          goto yy618;
+      } else {
+        if (yych <= ']')
+          goto yy619;
+        if (yych <= 0x7F)
+          goto yy618;
+        if (yych >= 0xC2)
+          goto yy620;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy621;
+        if (yych == 0xED)
+          goto yy623;
+        goto yy622;
+      } else {
+        if (yych <= 0xF0)
+          goto yy624;
+        if (yych <= 0xF3)
+          goto yy625;
+        if (yych <= 0xF4)
+          goto yy626;
+      }
+    }
+  yy616:
+    ++p;
+  yy617 : { return 0; }
+  yy618:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '\n') {
+      if (yych <= 0x00)
+        goto yy617;
+      if (yych <= '\t')
+        goto yy628;
+      goto yy617;
+    } else {
+      if (yych <= 0x7F)
+        goto yy628;
+      if (yych <= 0xC1)
+        goto yy617;
+      if (yych <= 0xF4)
+        goto yy628;
+      goto yy617;
+    }
+  yy619:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 128) {
+      goto yy638;
+    }
+    if (yych <= '\n') {
+      if (yych <= 0x00)
+        goto yy617;
+      if (yych <= '\t')
+        goto yy628;
+      goto yy617;
+    } else {
+      if (yych <= 0x7F)
+        goto yy628;
+      if (yych <= 0xC1)
+        goto yy617;
+      if (yych <= 0xF4)
+        goto yy628;
+      goto yy617;
+    }
+  yy620:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy617;
+    if (yych <= 0xBF)
+      goto yy627;
+    goto yy617;
+  yy621:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x9F)
+      goto yy617;
+    if (yych <= 0xBF)
+      goto yy631;
+    goto yy617;
+  yy622:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy617;
+    if (yych <= 0xBF)
+      goto yy631;
+    goto yy617;
+  yy623:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy617;
+    if (yych <= 0x9F)
+      goto yy631;
+    goto yy617;
+  yy624:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x8F)
+      goto yy617;
+    if (yych <= 0xBF)
+      goto yy633;
+    goto yy617;
+  yy625:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy617;
+    if (yych <= 0xBF)
+      goto yy633;
+    goto yy617;
+  yy626:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x7F)
+      goto yy617;
+    if (yych <= 0x8F)
+      goto yy633;
+    goto yy617;
+  yy627:
+    yych = *++p;
+  yy628:
+    if (yybm[0 + yych] & 64) {
+      goto yy627;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy629;
+        if (yych <= ']')
+          goto yy630;
+      } else {
+        if (yych <= 0xDF)
+          goto yy631;
+        if (yych <= 0xE0)
+          goto yy632;
+        goto yy633;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy634;
+        if (yych <= 0xEF)
+          goto yy633;
+        goto yy635;
+      } else {
+        if (yych <= 0xF3)
+          goto yy636;
+        if (yych <= 0xF4)
+          goto yy637;
+      }
+    }
+  yy629:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy617;
+    } else {
+      goto yy640;
+    }
+  yy630:
+    yych = *++p;
+    if (yybm[0 + yych] & 64) {
+      goto yy627;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy629;
+        if (yych <= ']')
+          goto yy638;
+        goto yy629;
+      } else {
+        if (yych <= 0xDF)
+          goto yy631;
+        if (yych <= 0xE0)
+          goto yy632;
+        goto yy633;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy634;
+        if (yych <= 0xEF)
+          goto yy633;
+        goto yy635;
+      } else {
+        if (yych <= 0xF3)
+          goto yy636;
+        if (yych <= 0xF4)
+          goto yy637;
+        goto yy629;
+      }
+    }
+  yy631:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy629;
+    if (yych <= 0xBF)
+      goto yy627;
+    goto yy629;
+  yy632:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy629;
+    if (yych <= 0xBF)
+      goto yy631;
+    goto yy629;
+  yy633:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy629;
+    if (yych <= 0xBF)
+      goto yy631;
+    goto yy629;
+  yy634:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy629;
+    if (yych <= 0x9F)
+      goto yy631;
+    goto yy629;
+  yy635:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy629;
+    if (yych <= 0xBF)
+      goto yy633;
+    goto yy629;
+  yy636:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy629;
+    if (yych <= 0xBF)
+      goto yy633;
+    goto yy629;
+  yy637:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy629;
+    if (yych <= 0x8F)
+      goto yy633;
+    goto yy629;
+  yy638:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy638;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '=') {
+        if (yych <= 0x00)
+          goto yy629;
+        if (yych == '\n')
+          goto yy629;
+        goto yy627;
+      } else {
+        if (yych <= '>')
+          goto yy639;
+        if (yych <= 0x7F)
+          goto yy627;
+        if (yych <= 0xC1)
+          goto yy629;
+        goto yy631;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy632;
+        if (yych == 0xED)
+          goto yy634;
+        goto yy633;
+      } else {
+        if (yych <= 0xF0)
+          goto yy635;
+        if (yych <= 0xF3)
+          goto yy636;
+        if (yych <= 0xF4)
+          goto yy637;
+        goto yy629;
+      }
+    }
+  yy639:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy627;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= '\n')
+          goto yy640;
+        if (yych <= ']')
+          goto yy630;
+      } else {
+        if (yych <= 0xDF)
+          goto yy631;
+        if (yych <= 0xE0)
+          goto yy632;
+        goto yy633;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy634;
+        if (yych <= 0xEF)
+          goto yy633;
+        goto yy635;
+      } else {
+        if (yych <= 0xF3)
+          goto yy636;
+        if (yych <= 0xF4)
+          goto yy637;
+      }
+    }
+  yy640 : { return (bufsize_t)(p - start); }
+  }
 }
 
 // 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)
-{
+bufsize_t _scan_link_title(const unsigned char *p) {
   const unsigned char *marker = NULL;
   const unsigned char *start = p;
 
-{
-	unsigned char yych;
-	unsigned int yyaccept = 0;
-	static const unsigned char yybm[] = {
-		  0, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 192, 208, 208, 208, 208, 144, 
-		 80,  80, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208,  32, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		208, 208, 208, 208, 208, 208, 208, 208, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych <= '&') {
-		if (yych == '"') goto yy719;
-	} else {
-		if (yych <= '\'') goto yy720;
-		if (yych <= '(') goto yy721;
-	}
-	++p;
-yy718:
-	{ return 0; }
-yy719:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy718;
-	if (yych <= 0x7F) goto yy723;
-	if (yych <= 0xC1) goto yy718;
-	if (yych <= 0xF4) goto yy723;
-	goto yy718;
-yy720:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= 0x00) goto yy718;
-	if (yych <= 0x7F) goto yy737;
-	if (yych <= 0xC1) goto yy718;
-	if (yych <= 0xF4) goto yy737;
-	goto yy718;
-yy721:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych <= '(') {
-		if (yych <= 0x00) goto yy718;
-		if (yych <= '\'') goto yy750;
-		goto yy718;
-	} else {
-		if (yych <= 0x7F) goto yy750;
-		if (yych <= 0xC1) goto yy718;
-		if (yych <= 0xF4) goto yy750;
-		goto yy718;
-	}
-yy722:
-	yych = *++p;
-yy723:
-	if (yybm[0+yych] & 16) {
-		goto yy722;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '\\') {
-			if (yych <= 0x00) goto yy724;
-			if (yych <= '"') goto yy725;
-			goto yy727;
-		} else {
-			if (yych <= 0xC1) goto yy724;
-			if (yych <= 0xDF) goto yy729;
-			goto yy730;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy732;
-			goto yy731;
-		} else {
-			if (yych <= 0xF0) goto yy733;
-			if (yych <= 0xF3) goto yy734;
-			if (yych <= 0xF4) goto yy735;
-		}
-	}
-yy724:
-	p = marker;
-	if (yyaccept <= 1) {
-		if (yyaccept == 0) {
-			goto yy718;
-		} else {
-			goto yy726;
-		}
-	} else {
-		if (yyaccept == 2) {
-			goto yy739;
-		} else {
-			goto yy752;
-		}
-	}
-yy725:
-	++p;
-yy726:
-	{ return (bufsize_t)(p - start); }
-yy727:
-	yych = *++p;
-	if (yybm[0+yych] & 16) {
-		goto yy722;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '\\') {
-			if (yych <= 0x00) goto yy724;
-			if (yych <= '"') goto yy762;
-			goto yy727;
-		} else {
-			if (yych <= 0xC1) goto yy724;
-			if (yych >= 0xE0) goto yy730;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy732;
-			goto yy731;
-		} else {
-			if (yych <= 0xF0) goto yy733;
-			if (yych <= 0xF3) goto yy734;
-			if (yych <= 0xF4) goto yy735;
-			goto yy724;
-		}
-	}
-yy729:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0xBF) goto yy722;
-	goto yy724;
-yy730:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy724;
-	if (yych <= 0xBF) goto yy729;
-	goto yy724;
-yy731:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0xBF) goto yy729;
-	goto yy724;
-yy732:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0x9F) goto yy729;
-	goto yy724;
-yy733:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy724;
-	if (yych <= 0xBF) goto yy731;
-	goto yy724;
-yy734:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0xBF) goto yy731;
-	goto yy724;
-yy735:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0x8F) goto yy731;
-	goto yy724;
-yy736:
-	yych = *++p;
-yy737:
-	if (yybm[0+yych] & 64) {
-		goto yy736;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '\\') {
-			if (yych <= 0x00) goto yy724;
-			if (yych >= '(') goto yy740;
-		} else {
-			if (yych <= 0xC1) goto yy724;
-			if (yych <= 0xDF) goto yy742;
-			goto yy743;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy745;
-			goto yy744;
-		} else {
-			if (yych <= 0xF0) goto yy746;
-			if (yych <= 0xF3) goto yy747;
-			if (yych <= 0xF4) goto yy748;
-			goto yy724;
-		}
-	}
-yy738:
-	++p;
-yy739:
-	{ return (bufsize_t)(p - start); }
-yy740:
-	yych = *++p;
-	if (yybm[0+yych] & 64) {
-		goto yy736;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '\\') {
-			if (yych <= 0x00) goto yy724;
-			if (yych <= '\'') goto yy763;
-			goto yy740;
-		} else {
-			if (yych <= 0xC1) goto yy724;
-			if (yych >= 0xE0) goto yy743;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy745;
-			goto yy744;
-		} else {
-			if (yych <= 0xF0) goto yy746;
-			if (yych <= 0xF3) goto yy747;
-			if (yych <= 0xF4) goto yy748;
-			goto yy724;
-		}
-	}
-yy742:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0xBF) goto yy736;
-	goto yy724;
-yy743:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy724;
-	if (yych <= 0xBF) goto yy742;
-	goto yy724;
-yy744:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0xBF) goto yy742;
-	goto yy724;
-yy745:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0x9F) goto yy742;
-	goto yy724;
-yy746:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy724;
-	if (yych <= 0xBF) goto yy744;
-	goto yy724;
-yy747:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0xBF) goto yy744;
-	goto yy724;
-yy748:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0x8F) goto yy744;
-	goto yy724;
-yy749:
-	yych = *++p;
-yy750:
-	if (yybm[0+yych] & 128) {
-		goto yy749;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '\\') {
-			if (yych <= '(') goto yy724;
-			if (yych >= '*') goto yy753;
-		} else {
-			if (yych <= 0xC1) goto yy724;
-			if (yych <= 0xDF) goto yy755;
-			goto yy756;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy758;
-			goto yy757;
-		} else {
-			if (yych <= 0xF0) goto yy759;
-			if (yych <= 0xF3) goto yy760;
-			if (yych <= 0xF4) goto yy761;
-			goto yy724;
-		}
-	}
-yy751:
-	++p;
-yy752:
-	{ return (bufsize_t)(p - start); }
-yy753:
-	yych = *++p;
-	if (yych <= 0xDF) {
-		if (yych <= '[') {
-			if (yych <= 0x00) goto yy724;
-			if (yych == ')') goto yy764;
-			goto yy749;
-		} else {
-			if (yych <= '\\') goto yy753;
-			if (yych <= 0x7F) goto yy749;
-			if (yych <= 0xC1) goto yy724;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych <= 0xE0) goto yy756;
-			if (yych == 0xED) goto yy758;
-			goto yy757;
-		} else {
-			if (yych <= 0xF0) goto yy759;
-			if (yych <= 0xF3) goto yy760;
-			if (yych <= 0xF4) goto yy761;
-			goto yy724;
-		}
-	}
-yy755:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0xBF) goto yy749;
-	goto yy724;
-yy756:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy724;
-	if (yych <= 0xBF) goto yy755;
-	goto yy724;
-yy757:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0xBF) goto yy755;
-	goto yy724;
-yy758:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0x9F) goto yy755;
-	goto yy724;
-yy759:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy724;
-	if (yych <= 0xBF) goto yy757;
-	goto yy724;
-yy760:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0xBF) goto yy757;
-	goto yy724;
-yy761:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy724;
-	if (yych <= 0x8F) goto yy757;
-	goto yy724;
-yy762:
-	yyaccept = 1;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 16) {
-		goto yy722;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '\\') {
-			if (yych <= 0x00) goto yy726;
-			if (yych <= '"') goto yy725;
-			goto yy727;
-		} else {
-			if (yych <= 0xC1) goto yy726;
-			if (yych <= 0xDF) goto yy729;
-			goto yy730;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy732;
-			goto yy731;
-		} else {
-			if (yych <= 0xF0) goto yy733;
-			if (yych <= 0xF3) goto yy734;
-			if (yych <= 0xF4) goto yy735;
-			goto yy726;
-		}
-	}
-yy763:
-	yyaccept = 2;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 64) {
-		goto yy736;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '\\') {
-			if (yych <= 0x00) goto yy739;
-			if (yych <= '\'') goto yy738;
-			goto yy740;
-		} else {
-			if (yych <= 0xC1) goto yy739;
-			if (yych <= 0xDF) goto yy742;
-			goto yy743;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy745;
-			goto yy744;
-		} else {
-			if (yych <= 0xF0) goto yy746;
-			if (yych <= 0xF3) goto yy747;
-			if (yych <= 0xF4) goto yy748;
-			goto yy739;
-		}
-	}
-yy764:
-	yyaccept = 3;
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 128) {
-		goto yy749;
-	}
-	if (yych <= 0xE0) {
-		if (yych <= '\\') {
-			if (yych <= '(') goto yy752;
-			if (yych <= ')') goto yy751;
-			goto yy753;
-		} else {
-			if (yych <= 0xC1) goto yy752;
-			if (yych <= 0xDF) goto yy755;
-			goto yy756;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych == 0xED) goto yy758;
-			goto yy757;
-		} else {
-			if (yych <= 0xF0) goto yy759;
-			if (yych <= 0xF3) goto yy760;
-			if (yych <= 0xF4) goto yy761;
-			goto yy752;
-		}
-	}
-}
-
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    static const unsigned char yybm[] = {
+        0,   208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+        208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+        208, 208, 208, 208, 208, 208, 192, 208, 208, 208, 208, 144, 80,  80,
+        208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+        208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+        208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+        208, 208, 208, 208, 208, 208, 208, 208, 32,  208, 208, 208, 208, 208,
+        208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+        208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, 208,
+        208, 208, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *p;
+    if (yych <= '&') {
+      if (yych == '"')
+        goto yy643;
+    } else {
+      if (yych <= '\'')
+        goto yy644;
+      if (yych <= '(')
+        goto yy645;
+    }
+    ++p;
+  yy642 : { return 0; }
+  yy643:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x00)
+      goto yy642;
+    if (yych <= 0x7F)
+      goto yy647;
+    if (yych <= 0xC1)
+      goto yy642;
+    if (yych <= 0xF4)
+      goto yy647;
+    goto yy642;
+  yy644:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= 0x00)
+      goto yy642;
+    if (yych <= 0x7F)
+      goto yy660;
+    if (yych <= 0xC1)
+      goto yy642;
+    if (yych <= 0xF4)
+      goto yy660;
+    goto yy642;
+  yy645:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych <= '(') {
+      if (yych <= 0x00)
+        goto yy642;
+      if (yych <= '\'')
+        goto yy672;
+      goto yy642;
+    } else {
+      if (yych <= 0x7F)
+        goto yy672;
+      if (yych <= 0xC1)
+        goto yy642;
+      if (yych <= 0xF4)
+        goto yy672;
+      goto yy642;
+    }
+  yy646:
+    yych = *++p;
+  yy647:
+    if (yybm[0 + yych] & 16) {
+      goto yy646;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy648;
+        if (yych <= '"')
+          goto yy649;
+        goto yy651;
+      } else {
+        if (yych <= 0xC1)
+          goto yy648;
+        if (yych <= 0xDF)
+          goto yy652;
+        goto yy653;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy655;
+        goto yy654;
+      } else {
+        if (yych <= 0xF0)
+          goto yy656;
+        if (yych <= 0xF3)
+          goto yy657;
+        if (yych <= 0xF4)
+          goto yy658;
+      }
+    }
+  yy648:
+    p = marker;
+    if (yyaccept <= 1) {
+      if (yyaccept == 0) {
+        goto yy642;
+      } else {
+        goto yy650;
+      }
+    } else {
+      if (yyaccept == 2) {
+        goto yy662;
+      } else {
+        goto yy674;
+      }
+    }
+  yy649:
+    ++p;
+  yy650 : { return (bufsize_t)(p - start); }
+  yy651:
+    yych = *++p;
+    if (yybm[0 + yych] & 16) {
+      goto yy646;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy648;
+        if (yych <= '"')
+          goto yy683;
+        goto yy651;
+      } else {
+        if (yych <= 0xC1)
+          goto yy648;
+        if (yych >= 0xE0)
+          goto yy653;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy655;
+        goto yy654;
+      } else {
+        if (yych <= 0xF0)
+          goto yy656;
+        if (yych <= 0xF3)
+          goto yy657;
+        if (yych <= 0xF4)
+          goto yy658;
+        goto yy648;
+      }
+    }
+  yy652:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy646;
+    goto yy648;
+  yy653:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy652;
+    goto yy648;
+  yy654:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy652;
+    goto yy648;
+  yy655:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0x9F)
+      goto yy652;
+    goto yy648;
+  yy656:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy654;
+    goto yy648;
+  yy657:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy654;
+    goto yy648;
+  yy658:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0x8F)
+      goto yy654;
+    goto yy648;
+  yy659:
+    yych = *++p;
+  yy660:
+    if (yybm[0 + yych] & 64) {
+      goto yy659;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy648;
+        if (yych >= '(')
+          goto yy663;
+      } else {
+        if (yych <= 0xC1)
+          goto yy648;
+        if (yych <= 0xDF)
+          goto yy664;
+        goto yy665;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy667;
+        goto yy666;
+      } else {
+        if (yych <= 0xF0)
+          goto yy668;
+        if (yych <= 0xF3)
+          goto yy669;
+        if (yych <= 0xF4)
+          goto yy670;
+        goto yy648;
+      }
+    }
+  yy661:
+    ++p;
+  yy662 : { return (bufsize_t)(p - start); }
+  yy663:
+    yych = *++p;
+    if (yybm[0 + yych] & 64) {
+      goto yy659;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy648;
+        if (yych <= '\'')
+          goto yy684;
+        goto yy663;
+      } else {
+        if (yych <= 0xC1)
+          goto yy648;
+        if (yych >= 0xE0)
+          goto yy665;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy667;
+        goto yy666;
+      } else {
+        if (yych <= 0xF0)
+          goto yy668;
+        if (yych <= 0xF3)
+          goto yy669;
+        if (yych <= 0xF4)
+          goto yy670;
+        goto yy648;
+      }
+    }
+  yy664:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy659;
+    goto yy648;
+  yy665:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy664;
+    goto yy648;
+  yy666:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy664;
+    goto yy648;
+  yy667:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0x9F)
+      goto yy664;
+    goto yy648;
+  yy668:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy666;
+    goto yy648;
+  yy669:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy666;
+    goto yy648;
+  yy670:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0x8F)
+      goto yy666;
+    goto yy648;
+  yy671:
+    yych = *++p;
+  yy672:
+    if (yybm[0 + yych] & 128) {
+      goto yy671;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= '(')
+          goto yy648;
+        if (yych >= '*')
+          goto yy675;
+      } else {
+        if (yych <= 0xC1)
+          goto yy648;
+        if (yych <= 0xDF)
+          goto yy676;
+        goto yy677;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy679;
+        goto yy678;
+      } else {
+        if (yych <= 0xF0)
+          goto yy680;
+        if (yych <= 0xF3)
+          goto yy681;
+        if (yych <= 0xF4)
+          goto yy682;
+        goto yy648;
+      }
+    }
+  yy673:
+    ++p;
+  yy674 : { return (bufsize_t)(p - start); }
+  yy675:
+    yych = *++p;
+    if (yych <= 0xDF) {
+      if (yych <= '[') {
+        if (yych <= 0x00)
+          goto yy648;
+        if (yych == ')')
+          goto yy685;
+        goto yy671;
+      } else {
+        if (yych <= '\\')
+          goto yy675;
+        if (yych <= 0x7F)
+          goto yy671;
+        if (yych <= 0xC1)
+          goto yy648;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0)
+          goto yy677;
+        if (yych == 0xED)
+          goto yy679;
+        goto yy678;
+      } else {
+        if (yych <= 0xF0)
+          goto yy680;
+        if (yych <= 0xF3)
+          goto yy681;
+        if (yych <= 0xF4)
+          goto yy682;
+        goto yy648;
+      }
+    }
+  yy676:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy671;
+    goto yy648;
+  yy677:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy676;
+    goto yy648;
+  yy678:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy676;
+    goto yy648;
+  yy679:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0x9F)
+      goto yy676;
+    goto yy648;
+  yy680:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy678;
+    goto yy648;
+  yy681:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0xBF)
+      goto yy678;
+    goto yy648;
+  yy682:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy648;
+    if (yych <= 0x8F)
+      goto yy678;
+    goto yy648;
+  yy683:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 16) {
+      goto yy646;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy650;
+        if (yych <= '"')
+          goto yy649;
+        goto yy651;
+      } else {
+        if (yych <= 0xC1)
+          goto yy650;
+        if (yych <= 0xDF)
+          goto yy652;
+        goto yy653;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy655;
+        goto yy654;
+      } else {
+        if (yych <= 0xF0)
+          goto yy656;
+        if (yych <= 0xF3)
+          goto yy657;
+        if (yych <= 0xF4)
+          goto yy658;
+        goto yy650;
+      }
+    }
+  yy684:
+    yyaccept = 2;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy659;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= 0x00)
+          goto yy662;
+        if (yych <= '\'')
+          goto yy661;
+        goto yy663;
+      } else {
+        if (yych <= 0xC1)
+          goto yy662;
+        if (yych <= 0xDF)
+          goto yy664;
+        goto yy665;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy667;
+        goto yy666;
+      } else {
+        if (yych <= 0xF0)
+          goto yy668;
+        if (yych <= 0xF3)
+          goto yy669;
+        if (yych <= 0xF4)
+          goto yy670;
+        goto yy662;
+      }
+    }
+  yy685:
+    yyaccept = 3;
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 128) {
+      goto yy671;
+    }
+    if (yych <= 0xE0) {
+      if (yych <= '\\') {
+        if (yych <= '(')
+          goto yy674;
+        if (yych <= ')')
+          goto yy673;
+        goto yy675;
+      } else {
+        if (yych <= 0xC1)
+          goto yy674;
+        if (yych <= 0xDF)
+          goto yy676;
+        goto yy677;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych == 0xED)
+          goto yy679;
+        goto yy678;
+      } else {
+        if (yych <= 0xF0)
+          goto yy680;
+        if (yych <= 0xF3)
+          goto yy681;
+        if (yych <= 0xF4)
+          goto yy682;
+        goto yy674;
+      }
+    }
+  }
 }
 
 // Match space characters, including newlines.
-bufsize_t _scan_spacechars(const unsigned char *p)
-{
-  const unsigned char *start = p; \
-
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0, 128, 128, 128, 128, 128,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		128,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yybm[0+yych] & 128) {
-		goto yy769;
-	}
-	++p;
-	{ return 0; }
-yy769:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy769;
-	}
-	{ return (bufsize_t)(p - start); }
-}
+bufsize_t _scan_spacechars(const unsigned char *p) {
+  const unsigned char *start = p;
 
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   128, 0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0,
+    };
+    yych = *p;
+    if (yybm[0 + yych] & 128) {
+      goto yy687;
+    }
+    ++p;
+    { return 0; }
+  yy687:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy687;
+    }
+    { return (bufsize_t)(p - start); }
+  }
 }
 
 // Match ATX heading start.
-bufsize_t _scan_atx_heading_start(const unsigned char *p)
-{
+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, 128,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		128,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych == '#') goto yy776;
-	++p;
-yy775:
-	{ return 0; }
-yy776:
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 128) {
-		goto yy777;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy775;
-		if (yych <= '\n') goto yy780;
-		goto yy775;
-	} else {
-		if (yych <= '\r') goto yy780;
-		if (yych == '#') goto yy781;
-		goto yy775;
-	}
-yy777:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy777;
-	}
-yy779:
-	{ return (bufsize_t)(p - start); }
-yy780:
-	++p;
-	goto yy779;
-yy781:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy777;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy782;
-		if (yych <= '\n') goto yy780;
-	} else {
-		if (yych <= '\r') goto yy780;
-		if (yych == '#') goto yy783;
-	}
-yy782:
-	p = marker;
-	goto yy775;
-yy783:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy777;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy782;
-		if (yych <= '\n') goto yy780;
-		goto yy782;
-	} else {
-		if (yych <= '\r') goto yy780;
-		if (yych != '#') goto yy782;
-	}
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy777;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy782;
-		if (yych <= '\n') goto yy780;
-		goto yy782;
-	} else {
-		if (yych <= '\r') goto yy780;
-		if (yych != '#') goto yy782;
-	}
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy777;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy782;
-		if (yych <= '\n') goto yy780;
-		goto yy782;
-	} else {
-		if (yych <= '\r') goto yy780;
-		if (yych != '#') goto yy782;
-	}
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy777;
-	}
-	if (yych <= 0x08) goto yy782;
-	if (yych <= '\n') goto yy780;
-	if (yych == '\r') goto yy780;
-	goto yy782;
-}
-
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        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,   128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0, 0, 0,
+    };
+    yych = *p;
+    if (yych == '#')
+      goto yy690;
+    ++p;
+  yy689 : { return 0; }
+  yy690:
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 128) {
+      goto yy691;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy689;
+      if (yych <= '\n')
+        goto yy693;
+      goto yy689;
+    } else {
+      if (yych <= '\r')
+        goto yy693;
+      if (yych == '#')
+        goto yy694;
+      goto yy689;
+    }
+  yy691:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy691;
+    }
+  yy692 : { return (bufsize_t)(p - start); }
+  yy693:
+    ++p;
+    goto yy692;
+  yy694:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy691;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy695;
+      if (yych <= '\n')
+        goto yy693;
+    } else {
+      if (yych <= '\r')
+        goto yy693;
+      if (yych == '#')
+        goto yy696;
+    }
+  yy695:
+    p = marker;
+    goto yy689;
+  yy696:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy691;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy695;
+      if (yych <= '\n')
+        goto yy693;
+      goto yy695;
+    } else {
+      if (yych <= '\r')
+        goto yy693;
+      if (yych != '#')
+        goto yy695;
+    }
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy691;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy695;
+      if (yych <= '\n')
+        goto yy693;
+      goto yy695;
+    } else {
+      if (yych <= '\r')
+        goto yy693;
+      if (yych != '#')
+        goto yy695;
+    }
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy691;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy695;
+      if (yych <= '\n')
+        goto yy693;
+      goto yy695;
+    } else {
+      if (yych <= '\r')
+        goto yy693;
+      if (yych != '#')
+        goto yy695;
+    }
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy691;
+    }
+    if (yych <= 0x08)
+      goto yy695;
+    if (yych <= '\n')
+      goto yy693;
+    if (yych == '\r')
+      goto yy693;
+    goto yy695;
+  }
 }
 
 // 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)
-{
+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,  32,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		 32,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,  64,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0, 128,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych == '-') goto yy791;
-	if (yych == '=') goto yy792;
-	++p;
-yy790:
-	{ return 0; }
-yy791:
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 64) {
-		goto yy798;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy790;
-		if (yych <= '\n') goto yy794;
-		goto yy790;
-	} else {
-		if (yych <= '\r') goto yy794;
-		if (yych == ' ') goto yy794;
-		goto yy790;
-	}
-yy792:
-	yych = *(marker = ++p);
-	if (yybm[0+yych] & 128) {
-		goto yy804;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy790;
-		if (yych <= '\n') goto yy801;
-		goto yy790;
-	} else {
-		if (yych <= '\r') goto yy801;
-		if (yych == ' ') goto yy801;
-		goto yy790;
-	}
-yy793:
-	yych = *++p;
-yy794:
-	if (yybm[0+yych] & 32) {
-		goto yy793;
-	}
-	if (yych <= 0x08) goto yy795;
-	if (yych <= '\n') goto yy796;
-	if (yych == '\r') goto yy796;
-yy795:
-	p = marker;
-	goto yy790;
-yy796:
-	++p;
-	{ return 2; }
-yy798:
-	yych = *++p;
-	if (yybm[0+yych] & 32) {
-		goto yy793;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy795;
-		if (yych <= '\n') goto yy796;
-		goto yy795;
-	} else {
-		if (yych <= '\r') goto yy796;
-		if (yych == '-') goto yy798;
-		goto yy795;
-	}
-yy800:
-	yych = *++p;
-yy801:
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy795;
-		if (yych <= '\t') goto yy800;
-		if (yych >= '\v') goto yy795;
-	} else {
-		if (yych <= '\r') goto yy802;
-		if (yych == ' ') goto yy800;
-		goto yy795;
-	}
-yy802:
-	++p;
-	{ return 1; }
-yy804:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy804;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy795;
-		if (yych <= '\t') goto yy800;
-		if (yych <= '\n') goto yy802;
-		goto yy795;
-	} else {
-		if (yych <= '\r') goto yy802;
-		if (yych == ' ') goto yy800;
-		goto yy795;
-	}
-}
-
+  {
+    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,  32, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 64, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
+        0, 0,  0, 0, 0, 0, 0, 0, 0, 0,  0,  0, 0, 0,
+    };
+    yych = *p;
+    if (yych == '-')
+      goto yy699;
+    if (yych == '=')
+      goto yy700;
+    ++p;
+  yy698 : { return 0; }
+  yy699:
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 64) {
+      goto yy705;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy698;
+      if (yych <= '\n')
+        goto yy702;
+      goto yy698;
+    } else {
+      if (yych <= '\r')
+        goto yy702;
+      if (yych == ' ')
+        goto yy702;
+      goto yy698;
+    }
+  yy700:
+    yych = *(marker = ++p);
+    if (yybm[0 + yych] & 128) {
+      goto yy709;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy698;
+      if (yych <= '\n')
+        goto yy707;
+      goto yy698;
+    } else {
+      if (yych <= '\r')
+        goto yy707;
+      if (yych == ' ')
+        goto yy707;
+      goto yy698;
+    }
+  yy701:
+    yych = *++p;
+  yy702:
+    if (yybm[0 + yych] & 32) {
+      goto yy701;
+    }
+    if (yych <= 0x08)
+      goto yy703;
+    if (yych <= '\n')
+      goto yy704;
+    if (yych == '\r')
+      goto yy704;
+  yy703:
+    p = marker;
+    goto yy698;
+  yy704:
+    ++p;
+    { return 2; }
+  yy705:
+    yych = *++p;
+    if (yybm[0 + yych] & 32) {
+      goto yy701;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy703;
+      if (yych <= '\n')
+        goto yy704;
+      goto yy703;
+    } else {
+      if (yych <= '\r')
+        goto yy704;
+      if (yych == '-')
+        goto yy705;
+      goto yy703;
+    }
+  yy706:
+    yych = *++p;
+  yy707:
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy703;
+      if (yych <= '\t')
+        goto yy706;
+      if (yych >= '\v')
+        goto yy703;
+    } else {
+      if (yych <= '\r')
+        goto yy708;
+      if (yych == ' ')
+        goto yy706;
+      goto yy703;
+    }
+  yy708:
+    ++p;
+    { return 1; }
+  yy709:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy709;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy703;
+      if (yych <= '\t')
+        goto yy706;
+      if (yych <= '\n')
+        goto yy708;
+      goto yy703;
+    } else {
+      if (yych <= '\r')
+        goto yy708;
+      if (yych == ' ')
+        goto yy706;
+      goto yy703;
+    }
+  }
 }
 
 // Scan an opening code fence.
-bufsize_t _scan_open_code_fence(const unsigned char *p)
-{
+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, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192,   0, 192, 192,   0, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		144, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 192, 192, 
-		192, 192, 192, 192, 192, 192, 224, 192, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-		  0,   0,   0,   0,   0,   0,   0,   0, 
-	};
-	yych = *p;
-	if (yych == '`') goto yy810;
-	if (yych == '~') goto yy811;
-	++p;
-yy809:
-	{ return 0; }
-yy810:
-	yych = *(marker = ++p);
-	if (yych == '`') goto yy812;
-	goto yy809;
-yy811:
-	yych = *(marker = ++p);
-	if (yych == '~') goto yy814;
-	goto yy809;
-yy812:
-	yych = *++p;
-	if (yybm[0+yych] & 16) {
-		goto yy815;
-	}
-yy813:
-	p = marker;
-	goto yy809;
-yy814:
-	yych = *++p;
-	if (yybm[0+yych] & 32) {
-		goto yy817;
-	}
-	goto yy813;
-yy815:
-	yych = *++p;
-	if (yybm[0+yych] & 16) {
-		goto yy815;
-	}
-	if (yych <= 0xDF) {
-		if (yych <= '\f') {
-			if (yych <= 0x00) goto yy813;
-			if (yych == '\n') {
-				marker = p;
-				goto yy821;
-			}
-			marker = p;
-			goto yy819;
-		} else {
-			if (yych <= '\r') {
-				marker = p;
-				goto yy821;
-			}
-			if (yych <= 0x7F) {
-				marker = p;
-				goto yy819;
-			}
-			if (yych <= 0xC1) goto yy813;
-			marker = p;
-			goto yy823;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych <= 0xE0) {
-				marker = p;
-				goto yy824;
-			}
-			if (yych == 0xED) {
-				marker = p;
-				goto yy826;
-			}
-			marker = p;
-			goto yy825;
-		} else {
-			if (yych <= 0xF0) {
-				marker = p;
-				goto yy827;
-			}
-			if (yych <= 0xF3) {
-				marker = p;
-				goto yy828;
-			}
-			if (yych <= 0xF4) {
-				marker = p;
-				goto yy829;
-			}
-			goto yy813;
-		}
-	}
-yy817:
-	yych = *++p;
-	if (yybm[0+yych] & 32) {
-		goto yy817;
-	}
-	if (yych <= 0xDF) {
-		if (yych <= '\f') {
-			if (yych <= 0x00) goto yy813;
-			if (yych == '\n') {
-				marker = p;
-				goto yy832;
-			}
-			marker = p;
-			goto yy830;
-		} else {
-			if (yych <= '\r') {
-				marker = p;
-				goto yy832;
-			}
-			if (yych <= 0x7F) {
-				marker = p;
-				goto yy830;
-			}
-			if (yych <= 0xC1) goto yy813;
-			marker = p;
-			goto yy834;
-		}
-	} else {
-		if (yych <= 0xEF) {
-			if (yych <= 0xE0) {
-				marker = p;
-				goto yy835;
-			}
-			if (yych == 0xED) {
-				marker = p;
-				goto yy837;
-			}
-			marker = p;
-			goto yy836;
-		} else {
-			if (yych <= 0xF0) {
-				marker = p;
-				goto yy838;
-			}
-			if (yych <= 0xF3) {
-				marker = p;
-				goto yy839;
-			}
-			if (yych <= 0xF4) {
-				marker = p;
-				goto yy840;
-			}
-			goto yy813;
-		}
-	}
-yy819:
-	yych = *++p;
-	if (yybm[0+yych] & 64) {
-		goto yy819;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= 0x00) goto yy813;
-			if (yych >= 0x0E) goto yy813;
-		} else {
-			if (yych <= 0xDF) goto yy823;
-			if (yych <= 0xE0) goto yy824;
-			goto yy825;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy826;
-			if (yych <= 0xEF) goto yy825;
-			goto yy827;
-		} else {
-			if (yych <= 0xF3) goto yy828;
-			if (yych <= 0xF4) goto yy829;
-			goto yy813;
-		}
-	}
-yy821:
-	++p;
-	p = marker;
-	{ return (bufsize_t)(p - start); }
-yy823:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy813;
-	if (yych <= 0xBF) goto yy819;
-	goto yy813;
-yy824:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy813;
-	if (yych <= 0xBF) goto yy823;
-	goto yy813;
-yy825:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy813;
-	if (yych <= 0xBF) goto yy823;
-	goto yy813;
-yy826:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy813;
-	if (yych <= 0x9F) goto yy823;
-	goto yy813;
-yy827:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy813;
-	if (yych <= 0xBF) goto yy825;
-	goto yy813;
-yy828:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy813;
-	if (yych <= 0xBF) goto yy825;
-	goto yy813;
-yy829:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy813;
-	if (yych <= 0x8F) goto yy825;
-	goto yy813;
-yy830:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy830;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= 0x00) goto yy813;
-			if (yych >= 0x0E) goto yy813;
-		} else {
-			if (yych <= 0xDF) goto yy834;
-			if (yych <= 0xE0) goto yy835;
-			goto yy836;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy837;
-			if (yych <= 0xEF) goto yy836;
-			goto yy838;
-		} else {
-			if (yych <= 0xF3) goto yy839;
-			if (yych <= 0xF4) goto yy840;
-			goto yy813;
-		}
-	}
-yy832:
-	++p;
-	p = marker;
-	{ return (bufsize_t)(p - start); }
-yy834:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy813;
-	if (yych <= 0xBF) goto yy830;
-	goto yy813;
-yy835:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy813;
-	if (yych <= 0xBF) goto yy834;
-	goto yy813;
-yy836:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy813;
-	if (yych <= 0xBF) goto yy834;
-	goto yy813;
-yy837:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy813;
-	if (yych <= 0x9F) goto yy834;
-	goto yy813;
-yy838:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy813;
-	if (yych <= 0xBF) goto yy836;
-	goto yy813;
-yy839:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy813;
-	if (yych <= 0xBF) goto yy836;
-	goto yy813;
-yy840:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy813;
-	if (yych <= 0x8F) goto yy836;
-	goto yy813;
-}
-
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        0,   192, 192, 192, 192, 192, 192, 192, 192, 192, 0,   192, 192, 0,
+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 144, 192,
+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
+        192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192, 192,
+        224, 192, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
+        0,   0,   0,   0,
+    };
+    yych = *p;
+    if (yych == '`')
+      goto yy712;
+    if (yych == '~')
+      goto yy713;
+    ++p;
+  yy711 : { return 0; }
+  yy712:
+    yych = *(marker = ++p);
+    if (yych == '`')
+      goto yy714;
+    goto yy711;
+  yy713:
+    yych = *(marker = ++p);
+    if (yych == '~')
+      goto yy716;
+    goto yy711;
+  yy714:
+    yych = *++p;
+    if (yybm[0 + yych] & 16) {
+      goto yy717;
+    }
+  yy715:
+    p = marker;
+    goto yy711;
+  yy716:
+    yych = *++p;
+    if (yybm[0 + yych] & 32) {
+      goto yy718;
+    }
+    goto yy715;
+  yy717:
+    yych = *++p;
+    if (yybm[0 + yych] & 16) {
+      goto yy717;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '\f') {
+        if (yych <= 0x00)
+          goto yy715;
+        if (yych == '\n') {
+          marker = p;
+          goto yy720;
+        }
+        marker = p;
+        goto yy719;
+      } else {
+        if (yych <= '\r') {
+          marker = p;
+          goto yy720;
+        }
+        if (yych <= 0x7F) {
+          marker = p;
+          goto yy719;
+        }
+        if (yych <= 0xC1)
+          goto yy715;
+        marker = p;
+        goto yy721;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0) {
+          marker = p;
+          goto yy722;
+        }
+        if (yych == 0xED) {
+          marker = p;
+          goto yy724;
+        }
+        marker = p;
+        goto yy723;
+      } else {
+        if (yych <= 0xF0) {
+          marker = p;
+          goto yy725;
+        }
+        if (yych <= 0xF3) {
+          marker = p;
+          goto yy726;
+        }
+        if (yych <= 0xF4) {
+          marker = p;
+          goto yy727;
+        }
+        goto yy715;
+      }
+    }
+  yy718:
+    yych = *++p;
+    if (yybm[0 + yych] & 32) {
+      goto yy718;
+    }
+    if (yych <= 0xDF) {
+      if (yych <= '\f') {
+        if (yych <= 0x00)
+          goto yy715;
+        if (yych == '\n') {
+          marker = p;
+          goto yy729;
+        }
+        marker = p;
+        goto yy728;
+      } else {
+        if (yych <= '\r') {
+          marker = p;
+          goto yy729;
+        }
+        if (yych <= 0x7F) {
+          marker = p;
+          goto yy728;
+        }
+        if (yych <= 0xC1)
+          goto yy715;
+        marker = p;
+        goto yy730;
+      }
+    } else {
+      if (yych <= 0xEF) {
+        if (yych <= 0xE0) {
+          marker = p;
+          goto yy731;
+        }
+        if (yych == 0xED) {
+          marker = p;
+          goto yy733;
+        }
+        marker = p;
+        goto yy732;
+      } else {
+        if (yych <= 0xF0) {
+          marker = p;
+          goto yy734;
+        }
+        if (yych <= 0xF3) {
+          marker = p;
+          goto yy735;
+        }
+        if (yych <= 0xF4) {
+          marker = p;
+          goto yy736;
+        }
+        goto yy715;
+      }
+    }
+  yy719:
+    yych = *++p;
+    if (yybm[0 + yych] & 64) {
+      goto yy719;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy715;
+        if (yych >= 0x0E)
+          goto yy715;
+      } else {
+        if (yych <= 0xDF)
+          goto yy721;
+        if (yych <= 0xE0)
+          goto yy722;
+        goto yy723;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy724;
+        if (yych <= 0xEF)
+          goto yy723;
+        goto yy725;
+      } else {
+        if (yych <= 0xF3)
+          goto yy726;
+        if (yych <= 0xF4)
+          goto yy727;
+        goto yy715;
+      }
+    }
+  yy720:
+    ++p;
+    p = marker;
+    { return (bufsize_t)(p - start); }
+  yy721:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy715;
+    if (yych <= 0xBF)
+      goto yy719;
+    goto yy715;
+  yy722:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy715;
+    if (yych <= 0xBF)
+      goto yy721;
+    goto yy715;
+  yy723:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy715;
+    if (yych <= 0xBF)
+      goto yy721;
+    goto yy715;
+  yy724:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy715;
+    if (yych <= 0x9F)
+      goto yy721;
+    goto yy715;
+  yy725:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy715;
+    if (yych <= 0xBF)
+      goto yy723;
+    goto yy715;
+  yy726:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy715;
+    if (yych <= 0xBF)
+      goto yy723;
+    goto yy715;
+  yy727:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy715;
+    if (yych <= 0x8F)
+      goto yy723;
+    goto yy715;
+  yy728:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy728;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= 0x00)
+          goto yy715;
+        if (yych >= 0x0E)
+          goto yy715;
+      } else {
+        if (yych <= 0xDF)
+          goto yy730;
+        if (yych <= 0xE0)
+          goto yy731;
+        goto yy732;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy733;
+        if (yych <= 0xEF)
+          goto yy732;
+        goto yy734;
+      } else {
+        if (yych <= 0xF3)
+          goto yy735;
+        if (yych <= 0xF4)
+          goto yy736;
+        goto yy715;
+      }
+    }
+  yy729:
+    ++p;
+    p = marker;
+    { return (bufsize_t)(p - start); }
+  yy730:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy715;
+    if (yych <= 0xBF)
+      goto yy728;
+    goto yy715;
+  yy731:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy715;
+    if (yych <= 0xBF)
+      goto yy730;
+    goto yy715;
+  yy732:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy715;
+    if (yych <= 0xBF)
+      goto yy730;
+    goto yy715;
+  yy733:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy715;
+    if (yych <= 0x9F)
+      goto yy730;
+    goto yy715;
+  yy734:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy715;
+    if (yych <= 0xBF)
+      goto yy732;
+    goto yy715;
+  yy735:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy715;
+    if (yych <= 0xBF)
+      goto yy732;
+    goto yy715;
+  yy736:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy715;
+    if (yych <= 0x8F)
+      goto yy732;
+    goto yy715;
+  }
 }
 
 // Scan a closing code fence with length at least len.
-bufsize_t _scan_close_code_fence(const unsigned char *p)
-{
+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, 128,   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, 
-		 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,  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, 
-	};
-	yych = *p;
-	if (yych == '`') goto yy845;
-	if (yych == '~') goto yy846;
-	++p;
-yy844:
-	{ return 0; }
-yy845:
-	yych = *(marker = ++p);
-	if (yych == '`') goto yy847;
-	goto yy844;
-yy846:
-	yych = *(marker = ++p);
-	if (yych == '~') goto yy849;
-	goto yy844;
-yy847:
-	yych = *++p;
-	if (yybm[0+yych] & 32) {
-		goto yy850;
-	}
-yy848:
-	p = marker;
-	goto yy844;
-yy849:
-	yych = *++p;
-	if (yybm[0+yych] & 64) {
-		goto yy852;
-	}
-	goto yy848;
-yy850:
-	yych = *++p;
-	if (yybm[0+yych] & 32) {
-		goto yy850;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy848;
-		if (yych <= '\t') {
-			marker = p;
-			goto yy854;
-		}
-		if (yych <= '\n') {
-			marker = p;
-			goto yy856;
-		}
-		goto yy848;
-	} else {
-		if (yych <= '\r') {
-			marker = p;
-			goto yy856;
-		}
-		if (yych == ' ') {
-			marker = p;
-			goto yy854;
-		}
-		goto yy848;
-	}
-yy852:
-	yych = *++p;
-	if (yybm[0+yych] & 64) {
-		goto yy852;
-	}
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy848;
-		if (yych <= '\t') {
-			marker = p;
-			goto yy858;
-		}
-		if (yych <= '\n') {
-			marker = p;
-			goto yy860;
-		}
-		goto yy848;
-	} else {
-		if (yych <= '\r') {
-			marker = p;
-			goto yy860;
-		}
-		if (yych == ' ') {
-			marker = p;
-			goto yy858;
-		}
-		goto yy848;
-	}
-yy854:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy854;
-	}
-	if (yych <= 0x08) goto yy848;
-	if (yych <= '\n') goto yy856;
-	if (yych != '\r') goto yy848;
-yy856:
-	++p;
-	p = marker;
-	{ return (bufsize_t)(p - start); }
-yy858:
-	yych = *++p;
-	if (yych <= '\f') {
-		if (yych <= 0x08) goto yy848;
-		if (yych <= '\t') goto yy858;
-		if (yych >= '\v') goto yy848;
-	} else {
-		if (yych <= '\r') goto yy860;
-		if (yych == ' ') goto yy858;
-		goto yy848;
-	}
-yy860:
-	++p;
-	p = marker;
-	{ return (bufsize_t)(p - start); }
-}
-
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        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,   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, 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, 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,
+    };
+    yych = *p;
+    if (yych == '`')
+      goto yy739;
+    if (yych == '~')
+      goto yy740;
+    ++p;
+  yy738 : { return 0; }
+  yy739:
+    yych = *(marker = ++p);
+    if (yych == '`')
+      goto yy741;
+    goto yy738;
+  yy740:
+    yych = *(marker = ++p);
+    if (yych == '~')
+      goto yy743;
+    goto yy738;
+  yy741:
+    yych = *++p;
+    if (yybm[0 + yych] & 32) {
+      goto yy744;
+    }
+  yy742:
+    p = marker;
+    goto yy738;
+  yy743:
+    yych = *++p;
+    if (yybm[0 + yych] & 64) {
+      goto yy745;
+    }
+    goto yy742;
+  yy744:
+    yych = *++p;
+    if (yybm[0 + yych] & 32) {
+      goto yy744;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy742;
+      if (yych <= '\t') {
+        marker = p;
+        goto yy746;
+      }
+      if (yych <= '\n') {
+        marker = p;
+        goto yy747;
+      }
+      goto yy742;
+    } else {
+      if (yych <= '\r') {
+        marker = p;
+        goto yy747;
+      }
+      if (yych == ' ') {
+        marker = p;
+        goto yy746;
+      }
+      goto yy742;
+    }
+  yy745:
+    yych = *++p;
+    if (yybm[0 + yych] & 64) {
+      goto yy745;
+    }
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy742;
+      if (yych <= '\t') {
+        marker = p;
+        goto yy748;
+      }
+      if (yych <= '\n') {
+        marker = p;
+        goto yy749;
+      }
+      goto yy742;
+    } else {
+      if (yych <= '\r') {
+        marker = p;
+        goto yy749;
+      }
+      if (yych == ' ') {
+        marker = p;
+        goto yy748;
+      }
+      goto yy742;
+    }
+  yy746:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy746;
+    }
+    if (yych <= 0x08)
+      goto yy742;
+    if (yych <= '\n')
+      goto yy747;
+    if (yych != '\r')
+      goto yy742;
+  yy747:
+    ++p;
+    p = marker;
+    { return (bufsize_t)(p - start); }
+  yy748:
+    yych = *++p;
+    if (yych <= '\f') {
+      if (yych <= 0x08)
+        goto yy742;
+      if (yych <= '\t')
+        goto yy748;
+      if (yych >= '\v')
+        goto yy742;
+    } else {
+      if (yych <= '\r')
+        goto yy749;
+      if (yych == ' ')
+        goto yy748;
+      goto yy742;
+    }
+  yy749:
+    ++p;
+    p = marker;
+    { return (bufsize_t)(p - start); }
+  }
 }
 
 // Scans an entity.
 // Returns number of chars matched.
-bufsize_t _scan_entity(const unsigned char *p)
-{
+bufsize_t _scan_entity(const unsigned char *p) {
   const unsigned char *marker = NULL;
   const unsigned char *start = p;
 
-{
-	unsigned char yych;
-	yych = *p;
-	if (yych == '&') goto yy866;
-	++p;
-yy865:
-	{ return 0; }
-yy866:
-	yych = *(marker = ++p);
-	if (yych <= '@') {
-		if (yych != '#') goto yy865;
-	} else {
-		if (yych <= 'Z') goto yy869;
-		if (yych <= '`') goto yy865;
-		if (yych <= 'z') goto yy869;
-		goto yy865;
-	}
-	yych = *++p;
-	if (yych <= 'W') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy870;
-	} else {
-		if (yych <= 'X') goto yy871;
-		if (yych == 'x') goto yy871;
-	}
-yy868:
-	p = marker;
-	goto yy865;
-yy869:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy872;
-		goto yy868;
-	} else {
-		if (yych <= 'Z') goto yy872;
-		if (yych <= '`') goto yy868;
-		if (yych <= 'z') goto yy872;
-		goto yy868;
-	}
-yy870:
-	yych = *++p;
-	if (yych <= '/') goto yy868;
-	if (yych <= '9') goto yy873;
-	if (yych == ';') goto yy874;
-	goto yy868;
-yy871:
-	yych = *++p;
-	if (yych <= '@') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy876;
-		goto yy868;
-	} else {
-		if (yych <= 'F') goto yy876;
-		if (yych <= '`') goto yy868;
-		if (yych <= 'f') goto yy876;
-		goto yy868;
-	}
-yy872:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy877;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-			goto yy877;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych <= 'z') goto yy877;
-			goto yy868;
-		}
-	}
-yy873:
-	yych = *++p;
-	if (yych <= '/') goto yy868;
-	if (yych <= '9') goto yy878;
-	if (yych != ';') goto yy868;
-yy874:
-	++p;
-	{ return (bufsize_t)(p - start); }
-yy876:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy879;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy868;
-			goto yy879;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych <= 'f') goto yy879;
-			goto yy868;
-		}
-	}
-yy877:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy880;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-			goto yy880;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych <= 'z') goto yy880;
-			goto yy868;
-		}
-	}
-yy878:
-	yych = *++p;
-	if (yych <= '/') goto yy868;
-	if (yych <= '9') goto yy881;
-	if (yych == ';') goto yy874;
-	goto yy868;
-yy879:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy882;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy868;
-			goto yy882;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych <= 'f') goto yy882;
-			goto yy868;
-		}
-	}
-yy880:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy883;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-			goto yy883;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych <= 'z') goto yy883;
-			goto yy868;
-		}
-	}
-yy881:
-	yych = *++p;
-	if (yych <= '/') goto yy868;
-	if (yych <= '9') goto yy884;
-	if (yych == ';') goto yy874;
-	goto yy868;
-yy882:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy885;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy868;
-			goto yy885;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych <= 'f') goto yy885;
-			goto yy868;
-		}
-	}
-yy883:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy886;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-			goto yy886;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych <= 'z') goto yy886;
-			goto yy868;
-		}
-	}
-yy884:
-	yych = *++p;
-	if (yych <= '/') goto yy868;
-	if (yych <= '9') goto yy887;
-	if (yych == ';') goto yy874;
-	goto yy868;
-yy885:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy888;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy868;
-			goto yy888;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych <= 'f') goto yy888;
-			goto yy868;
-		}
-	}
-yy886:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy889;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-			goto yy889;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych <= 'z') goto yy889;
-			goto yy868;
-		}
-	}
-yy887:
-	yych = *++p;
-	if (yych <= '/') goto yy868;
-	if (yych <= '9') goto yy890;
-	if (yych == ';') goto yy874;
-	goto yy868;
-yy888:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy890;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'F') {
-			if (yych <= '@') goto yy868;
-			goto yy890;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych <= 'f') goto yy890;
-			goto yy868;
-		}
-	}
-yy889:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy891;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-			goto yy891;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych <= 'z') goto yy891;
-			goto yy868;
-		}
-	}
-yy890:
-	yych = *++p;
-	if (yych == ';') goto yy874;
-	goto yy868;
-yy891:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy892;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy892:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy893;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy893:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy894;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy894:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy895;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy895:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy896;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy896:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy897;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy897:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy898;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy898:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy899;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy899:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy900;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy900:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy901;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy901:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy902;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy902:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy903;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy903:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy904;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy904:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy905;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy905:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy906;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy906:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy907;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy907:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy908;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy908:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy909;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy909:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy910;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy910:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy911;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy911:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy912;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy912:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy913;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy913:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy914;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych >= '{') goto yy868;
-		}
-	}
-yy914:
-	yych = *++p;
-	if (yych <= ';') {
-		if (yych <= '/') goto yy868;
-		if (yych <= '9') goto yy890;
-		if (yych <= ':') goto yy868;
-		goto yy874;
-	} else {
-		if (yych <= 'Z') {
-			if (yych <= '@') goto yy868;
-			goto yy890;
-		} else {
-			if (yych <= '`') goto yy868;
-			if (yych <= 'z') goto yy890;
-			goto yy868;
-		}
-	}
-}
-
+  {
+    unsigned char yych;
+    yych = *p;
+    if (yych == '&')
+      goto yy752;
+    ++p;
+  yy751 : { return 0; }
+  yy752:
+    yych = *(marker = ++p);
+    if (yych <= '@') {
+      if (yych != '#')
+        goto yy751;
+    } else {
+      if (yych <= 'Z')
+        goto yy754;
+      if (yych <= '`')
+        goto yy751;
+      if (yych <= 'z')
+        goto yy754;
+      goto yy751;
+    }
+    yych = *++p;
+    if (yych <= 'W') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy755;
+    } else {
+      if (yych <= 'X')
+        goto yy756;
+      if (yych == 'x')
+        goto yy756;
+    }
+  yy753:
+    p = marker;
+    goto yy751;
+  yy754:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy757;
+      goto yy753;
+    } else {
+      if (yych <= 'Z')
+        goto yy757;
+      if (yych <= '`')
+        goto yy753;
+      if (yych <= 'z')
+        goto yy757;
+      goto yy753;
+    }
+  yy755:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy753;
+    if (yych <= '9')
+      goto yy758;
+    if (yych == ';')
+      goto yy759;
+    goto yy753;
+  yy756:
+    yych = *++p;
+    if (yych <= '@') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy760;
+      goto yy753;
+    } else {
+      if (yych <= 'F')
+        goto yy760;
+      if (yych <= '`')
+        goto yy753;
+      if (yych <= 'f')
+        goto yy760;
+      goto yy753;
+    }
+  yy757:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy761;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+        goto yy761;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych <= 'z')
+          goto yy761;
+        goto yy753;
+      }
+    }
+  yy758:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy753;
+    if (yych <= '9')
+      goto yy762;
+    if (yych != ';')
+      goto yy753;
+  yy759:
+    ++p;
+    { return (bufsize_t)(p - start); }
+  yy760:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy763;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy753;
+        goto yy763;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych <= 'f')
+          goto yy763;
+        goto yy753;
+      }
+    }
+  yy761:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy764;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+        goto yy764;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych <= 'z')
+          goto yy764;
+        goto yy753;
+      }
+    }
+  yy762:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy753;
+    if (yych <= '9')
+      goto yy765;
+    if (yych == ';')
+      goto yy759;
+    goto yy753;
+  yy763:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy766;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy753;
+        goto yy766;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych <= 'f')
+          goto yy766;
+        goto yy753;
+      }
+    }
+  yy764:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy767;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+        goto yy767;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych <= 'z')
+          goto yy767;
+        goto yy753;
+      }
+    }
+  yy765:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy753;
+    if (yych <= '9')
+      goto yy768;
+    if (yych == ';')
+      goto yy759;
+    goto yy753;
+  yy766:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy769;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy753;
+        goto yy769;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych <= 'f')
+          goto yy769;
+        goto yy753;
+      }
+    }
+  yy767:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy770;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+        goto yy770;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych <= 'z')
+          goto yy770;
+        goto yy753;
+      }
+    }
+  yy768:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy753;
+    if (yych <= '9')
+      goto yy771;
+    if (yych == ';')
+      goto yy759;
+    goto yy753;
+  yy769:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy772;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy753;
+        goto yy772;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych <= 'f')
+          goto yy772;
+        goto yy753;
+      }
+    }
+  yy770:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy773;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+        goto yy773;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych <= 'z')
+          goto yy773;
+        goto yy753;
+      }
+    }
+  yy771:
+    yych = *++p;
+    if (yych <= '/')
+      goto yy753;
+    if (yych <= '9')
+      goto yy774;
+    if (yych == ';')
+      goto yy759;
+    goto yy753;
+  yy772:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy774;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'F') {
+        if (yych <= '@')
+          goto yy753;
+        goto yy774;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych <= 'f')
+          goto yy774;
+        goto yy753;
+      }
+    }
+  yy773:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy775;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+        goto yy775;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych <= 'z')
+          goto yy775;
+        goto yy753;
+      }
+    }
+  yy774:
+    yych = *++p;
+    if (yych == ';')
+      goto yy759;
+    goto yy753;
+  yy775:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy776;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy776:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy777;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy777:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy778;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy778:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy779;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy779:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy780;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy780:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy781;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy781:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy782;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy782:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy783;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy783:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy784;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy784:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy785;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy785:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy786;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy786:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy787;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy787:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy788;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy788:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy789;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy789:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy790;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy790:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy791;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy791:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy792;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy792:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy793;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy793:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy794;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy794:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy795;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy795:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy796;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy796:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy797;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy797:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy798;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych >= '{')
+          goto yy753;
+      }
+    }
+  yy798:
+    yych = *++p;
+    if (yych <= ';') {
+      if (yych <= '/')
+        goto yy753;
+      if (yych <= '9')
+        goto yy774;
+      if (yych <= ':')
+        goto yy753;
+      goto yy759;
+    } else {
+      if (yych <= 'Z') {
+        if (yych <= '@')
+          goto yy753;
+        goto yy774;
+      } else {
+        if (yych <= '`')
+          goto yy753;
+        if (yych <= 'z')
+          goto yy774;
+        goto yy753;
+      }
+    }
+  }
 }
 
 // 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)
-{
+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 = *p;
-	if (yych <= 'V') {
-		if (yych <= 'F') {
-			if (yych == 'D') goto yy919;
-			if (yych >= 'F') goto yy920;
-		} else {
-			if (yych == 'J') goto yy921;
-			if (yych >= 'V') goto yy922;
-		}
-	} else {
-		if (yych <= 'f') {
-			if (yych == 'd') goto yy919;
-			if (yych >= 'f') goto yy920;
-		} else {
-			if (yych <= 'j') {
-				if (yych >= 'j') goto yy921;
-			} else {
-				if (yych == 'v') goto yy922;
-			}
-		}
-	}
-	++p;
-yy918:
-	{ return 0; }
-yy919:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych == 'A') goto yy923;
-	if (yych == 'a') goto yy923;
-	goto yy918;
-yy920:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych == 'I') goto yy925;
-	if (yych == 'i') goto yy925;
-	goto yy918;
-yy921:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych == 'A') goto yy926;
-	if (yych == 'a') goto yy926;
-	goto yy918;
-yy922:
-	yyaccept = 0;
-	yych = *(marker = ++p);
-	if (yych == 'B') goto yy927;
-	if (yych == 'b') goto yy927;
-	goto yy918;
-yy923:
-	yych = *++p;
-	if (yych == 'T') goto yy928;
-	if (yych == 't') goto yy928;
-yy924:
-	p = marker;
-	if (yyaccept == 0) {
-		goto yy918;
-	} else {
-		goto yy936;
-	}
-yy925:
-	yych = *++p;
-	if (yych == 'L') goto yy929;
-	if (yych == 'l') goto yy929;
-	goto yy924;
-yy926:
-	yych = *++p;
-	if (yych == 'V') goto yy930;
-	if (yych == 'v') goto yy930;
-	goto yy924;
-yy927:
-	yych = *++p;
-	if (yych == 'S') goto yy931;
-	if (yych == 's') goto yy931;
-	goto yy924;
-yy928:
-	yych = *++p;
-	if (yych == 'A') goto yy932;
-	if (yych == 'a') goto yy932;
-	goto yy924;
-yy929:
-	yych = *++p;
-	if (yych == 'E') goto yy933;
-	if (yych == 'e') goto yy933;
-	goto yy924;
-yy930:
-	yych = *++p;
-	if (yych == 'A') goto yy927;
-	if (yych == 'a') goto yy927;
-	goto yy924;
-yy931:
-	yych = *++p;
-	if (yych == 'C') goto yy934;
-	if (yych == 'c') goto yy934;
-	goto yy924;
-yy932:
-	yych = *++p;
-	if (yych == ':') goto yy935;
-	goto yy924;
-yy933:
-	yych = *++p;
-	if (yych == ':') goto yy937;
-	goto yy924;
-yy934:
-	yych = *++p;
-	if (yych == 'R') goto yy938;
-	if (yych == 'r') goto yy938;
-	goto yy924;
-yy935:
-	yyaccept = 1;
-	yych = *(marker = ++p);
-	if (yych == 'I') goto yy939;
-	if (yych == 'i') goto yy939;
-yy936:
-	{ return (bufsize_t)(p - start); }
-yy937:
-	++p;
-	goto yy936;
-yy938:
-	yych = *++p;
-	if (yych == 'I') goto yy940;
-	if (yych == 'i') goto yy940;
-	goto yy924;
-yy939:
-	yych = *++p;
-	if (yych == 'M') goto yy941;
-	if (yych == 'm') goto yy941;
-	goto yy924;
-yy940:
-	yych = *++p;
-	if (yych == 'P') goto yy942;
-	if (yych == 'p') goto yy942;
-	goto yy924;
-yy941:
-	yych = *++p;
-	if (yych == 'A') goto yy943;
-	if (yych == 'a') goto yy943;
-	goto yy924;
-yy942:
-	yych = *++p;
-	if (yych == 'T') goto yy933;
-	if (yych == 't') goto yy933;
-	goto yy924;
-yy943:
-	yych = *++p;
-	if (yych == 'G') goto yy944;
-	if (yych != 'g') goto yy924;
-yy944:
-	yych = *++p;
-	if (yych == 'E') goto yy945;
-	if (yych != 'e') goto yy924;
-yy945:
-	yych = *++p;
-	if (yych != '/') goto yy924;
-	yych = *++p;
-	if (yych <= 'W') {
-		if (yych <= 'J') {
-			if (yych == 'G') goto yy947;
-			if (yych <= 'I') goto yy924;
-			goto yy948;
-		} else {
-			if (yych == 'P') goto yy949;
-			if (yych <= 'V') goto yy924;
-			goto yy950;
-		}
-	} else {
-		if (yych <= 'j') {
-			if (yych == 'g') goto yy947;
-			if (yych <= 'i') goto yy924;
-			goto yy948;
-		} else {
-			if (yych <= 'p') {
-				if (yych <= 'o') goto yy924;
-				goto yy949;
-			} else {
-				if (yych == 'w') goto yy950;
-				goto yy924;
-			}
-		}
-	}
-yy947:
-	yych = *++p;
-	if (yych == 'I') goto yy951;
-	if (yych == 'i') goto yy951;
-	goto yy924;
-yy948:
-	yych = *++p;
-	if (yych == 'P') goto yy952;
-	if (yych == 'p') goto yy952;
-	goto yy924;
-yy949:
-	yych = *++p;
-	if (yych == 'N') goto yy953;
-	if (yych == 'n') goto yy953;
-	goto yy924;
-yy950:
-	yych = *++p;
-	if (yych == 'E') goto yy954;
-	if (yych == 'e') goto yy954;
-	goto yy924;
-yy951:
-	yych = *++p;
-	if (yych == 'F') goto yy955;
-	if (yych == 'f') goto yy955;
-	goto yy924;
-yy952:
-	yych = *++p;
-	if (yych == 'E') goto yy953;
-	if (yych != 'e') goto yy924;
-yy953:
-	yych = *++p;
-	if (yych == 'G') goto yy955;
-	if (yych == 'g') goto yy955;
-	goto yy924;
-yy954:
-	yych = *++p;
-	if (yych == 'B') goto yy957;
-	if (yych == 'b') goto yy957;
-	goto yy924;
-yy955:
-	++p;
-	{ return 0; }
-yy957:
-	yych = *++p;
-	if (yych == 'P') goto yy955;
-	if (yych == 'p') goto yy955;
-	goto yy924;
-}
-
+  {
+    unsigned char yych;
+    unsigned int yyaccept = 0;
+    yych = *p;
+    if (yych <= 'V') {
+      if (yych <= 'F') {
+        if (yych == 'D')
+          goto yy801;
+        if (yych >= 'F')
+          goto yy802;
+      } else {
+        if (yych == 'J')
+          goto yy803;
+        if (yych >= 'V')
+          goto yy804;
+      }
+    } else {
+      if (yych <= 'f') {
+        if (yych == 'd')
+          goto yy801;
+        if (yych >= 'f')
+          goto yy802;
+      } else {
+        if (yych <= 'j') {
+          if (yych >= 'j')
+            goto yy803;
+        } else {
+          if (yych == 'v')
+            goto yy804;
+        }
+      }
+    }
+    ++p;
+  yy800 : { return 0; }
+  yy801:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'A')
+      goto yy805;
+    if (yych == 'a')
+      goto yy805;
+    goto yy800;
+  yy802:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'I')
+      goto yy807;
+    if (yych == 'i')
+      goto yy807;
+    goto yy800;
+  yy803:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'A')
+      goto yy808;
+    if (yych == 'a')
+      goto yy808;
+    goto yy800;
+  yy804:
+    yyaccept = 0;
+    yych = *(marker = ++p);
+    if (yych == 'B')
+      goto yy809;
+    if (yych == 'b')
+      goto yy809;
+    goto yy800;
+  yy805:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy810;
+    if (yych == 't')
+      goto yy810;
+  yy806:
+    p = marker;
+    if (yyaccept == 0) {
+      goto yy800;
+    } else {
+      goto yy818;
+    }
+  yy807:
+    yych = *++p;
+    if (yych == 'L')
+      goto yy811;
+    if (yych == 'l')
+      goto yy811;
+    goto yy806;
+  yy808:
+    yych = *++p;
+    if (yych == 'V')
+      goto yy812;
+    if (yych == 'v')
+      goto yy812;
+    goto yy806;
+  yy809:
+    yych = *++p;
+    if (yych == 'S')
+      goto yy813;
+    if (yych == 's')
+      goto yy813;
+    goto yy806;
+  yy810:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy814;
+    if (yych == 'a')
+      goto yy814;
+    goto yy806;
+  yy811:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy815;
+    if (yych == 'e')
+      goto yy815;
+    goto yy806;
+  yy812:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy809;
+    if (yych == 'a')
+      goto yy809;
+    goto yy806;
+  yy813:
+    yych = *++p;
+    if (yych == 'C')
+      goto yy816;
+    if (yych == 'c')
+      goto yy816;
+    goto yy806;
+  yy814:
+    yych = *++p;
+    if (yych == ':')
+      goto yy817;
+    goto yy806;
+  yy815:
+    yych = *++p;
+    if (yych == ':')
+      goto yy819;
+    goto yy806;
+  yy816:
+    yych = *++p;
+    if (yych == 'R')
+      goto yy820;
+    if (yych == 'r')
+      goto yy820;
+    goto yy806;
+  yy817:
+    yyaccept = 1;
+    yych = *(marker = ++p);
+    if (yych == 'I')
+      goto yy821;
+    if (yych == 'i')
+      goto yy821;
+  yy818 : { return (bufsize_t)(p - start); }
+  yy819:
+    ++p;
+    goto yy818;
+  yy820:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy822;
+    if (yych == 'i')
+      goto yy822;
+    goto yy806;
+  yy821:
+    yych = *++p;
+    if (yych == 'M')
+      goto yy823;
+    if (yych == 'm')
+      goto yy823;
+    goto yy806;
+  yy822:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy824;
+    if (yych == 'p')
+      goto yy824;
+    goto yy806;
+  yy823:
+    yych = *++p;
+    if (yych == 'A')
+      goto yy825;
+    if (yych == 'a')
+      goto yy825;
+    goto yy806;
+  yy824:
+    yych = *++p;
+    if (yych == 'T')
+      goto yy815;
+    if (yych == 't')
+      goto yy815;
+    goto yy806;
+  yy825:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy826;
+    if (yych != 'g')
+      goto yy806;
+  yy826:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy827;
+    if (yych != 'e')
+      goto yy806;
+  yy827:
+    yych = *++p;
+    if (yych != '/')
+      goto yy806;
+    yych = *++p;
+    if (yych <= 'W') {
+      if (yych <= 'J') {
+        if (yych == 'G')
+          goto yy828;
+        if (yych <= 'I')
+          goto yy806;
+        goto yy829;
+      } else {
+        if (yych == 'P')
+          goto yy830;
+        if (yych <= 'V')
+          goto yy806;
+        goto yy831;
+      }
+    } else {
+      if (yych <= 'j') {
+        if (yych == 'g')
+          goto yy828;
+        if (yych <= 'i')
+          goto yy806;
+        goto yy829;
+      } else {
+        if (yych <= 'p') {
+          if (yych <= 'o')
+            goto yy806;
+          goto yy830;
+        } else {
+          if (yych == 'w')
+            goto yy831;
+          goto yy806;
+        }
+      }
+    }
+  yy828:
+    yych = *++p;
+    if (yych == 'I')
+      goto yy832;
+    if (yych == 'i')
+      goto yy832;
+    goto yy806;
+  yy829:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy833;
+    if (yych == 'p')
+      goto yy833;
+    goto yy806;
+  yy830:
+    yych = *++p;
+    if (yych == 'N')
+      goto yy834;
+    if (yych == 'n')
+      goto yy834;
+    goto yy806;
+  yy831:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy835;
+    if (yych == 'e')
+      goto yy835;
+    goto yy806;
+  yy832:
+    yych = *++p;
+    if (yych == 'F')
+      goto yy836;
+    if (yych == 'f')
+      goto yy836;
+    goto yy806;
+  yy833:
+    yych = *++p;
+    if (yych == 'E')
+      goto yy834;
+    if (yych != 'e')
+      goto yy806;
+  yy834:
+    yych = *++p;
+    if (yych == 'G')
+      goto yy836;
+    if (yych == 'g')
+      goto yy836;
+    goto yy806;
+  yy835:
+    yych = *++p;
+    if (yych == 'B')
+      goto yy837;
+    if (yych == 'b')
+      goto yy837;
+    goto yy806;
+  yy836:
+    ++p;
+    { return 0; }
+  yy837:
+    yych = *++p;
+    if (yych == 'P')
+      goto yy836;
+    if (yych == 'p')
+      goto yy836;
+    goto yy806;
+  }
 }
 
 // Scans a footnote definition opening.
-bufsize_t _scan_footnote_definition(const unsigned char *p)
-{
+bufsize_t _scan_footnote_definition(const unsigned char *p) {
   const unsigned char *marker = NULL;
   const unsigned char *start = p;
 
-{
-	unsigned char yych;
-	static const unsigned char yybm[] = {
-		  0,  64,  64,  64,  64,  64,  64,  64, 
-		 64, 128,   0,  64,  64,   0,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		128,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,   0,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  64, 
-		 64,  64,  64,  64,  64,  64,  64,  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, 
-	};
-	yych = *p;
-	if (yych == '[') goto yy962;
-	++p;
-yy961:
-	{ return 0; }
-yy962:
-	yych = *(marker = ++p);
-	if (yych != '^') goto yy961;
-	yych = *++p;
-	if (yych != ']') goto yy966;
-yy964:
-	p = marker;
-	goto yy961;
-yy965:
-	yych = *++p;
-yy966:
-	if (yybm[0+yych] & 64) {
-		goto yy965;
-	}
-	if (yych <= 0xEC) {
-		if (yych <= 0xC1) {
-			if (yych <= ' ') goto yy964;
-			if (yych <= ']') goto yy974;
-			goto yy964;
-		} else {
-			if (yych <= 0xDF) goto yy967;
-			if (yych <= 0xE0) goto yy968;
-			goto yy969;
-		}
-	} else {
-		if (yych <= 0xF0) {
-			if (yych <= 0xED) goto yy970;
-			if (yych <= 0xEF) goto yy969;
-			goto yy971;
-		} else {
-			if (yych <= 0xF3) goto yy972;
-			if (yych <= 0xF4) goto yy973;
-			goto yy964;
-		}
-	}
-yy967:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy964;
-	if (yych <= 0xBF) goto yy965;
-	goto yy964;
-yy968:
-	yych = *++p;
-	if (yych <= 0x9F) goto yy964;
-	if (yych <= 0xBF) goto yy967;
-	goto yy964;
-yy969:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy964;
-	if (yych <= 0xBF) goto yy967;
-	goto yy964;
-yy970:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy964;
-	if (yych <= 0x9F) goto yy967;
-	goto yy964;
-yy971:
-	yych = *++p;
-	if (yych <= 0x8F) goto yy964;
-	if (yych <= 0xBF) goto yy969;
-	goto yy964;
-yy972:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy964;
-	if (yych <= 0xBF) goto yy969;
-	goto yy964;
-yy973:
-	yych = *++p;
-	if (yych <= 0x7F) goto yy964;
-	if (yych <= 0x8F) goto yy969;
-	goto yy964;
-yy974:
-	yych = *++p;
-	if (yych != ':') goto yy964;
-yy975:
-	yych = *++p;
-	if (yybm[0+yych] & 128) {
-		goto yy975;
-	}
-	{ return (bufsize_t)(p - start); }
-}
-
+  {
+    unsigned char yych;
+    static const unsigned char yybm[] = {
+        0,   64, 64, 64, 64, 64, 64, 64, 64, 128, 0,  64, 64, 0,  64, 64,
+        64,  64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64,
+        128, 64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64,
+        64,  64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64,
+        64,  64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64,
+        64,  64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 0,  64, 64,
+        64,  64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 64,
+        64,  64, 64, 64, 64, 64, 64, 64, 64, 64,  64, 64, 64, 64, 64, 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,
+    };
+    yych = *p;
+    if (yych == '[')
+      goto yy840;
+    ++p;
+  yy839 : { return 0; }
+  yy840:
+    yych = *(marker = ++p);
+    if (yych != '^')
+      goto yy839;
+    yych = *++p;
+    if (yych != ']')
+      goto yy843;
+  yy841:
+    p = marker;
+    goto yy839;
+  yy842:
+    yych = *++p;
+  yy843:
+    if (yybm[0 + yych] & 64) {
+      goto yy842;
+    }
+    if (yych <= 0xEC) {
+      if (yych <= 0xC1) {
+        if (yych <= ' ')
+          goto yy841;
+        if (yych <= ']')
+          goto yy851;
+        goto yy841;
+      } else {
+        if (yych <= 0xDF)
+          goto yy844;
+        if (yych <= 0xE0)
+          goto yy845;
+        goto yy846;
+      }
+    } else {
+      if (yych <= 0xF0) {
+        if (yych <= 0xED)
+          goto yy847;
+        if (yych <= 0xEF)
+          goto yy846;
+        goto yy848;
+      } else {
+        if (yych <= 0xF3)
+          goto yy849;
+        if (yych <= 0xF4)
+          goto yy850;
+        goto yy841;
+      }
+    }
+  yy844:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy841;
+    if (yych <= 0xBF)
+      goto yy842;
+    goto yy841;
+  yy845:
+    yych = *++p;
+    if (yych <= 0x9F)
+      goto yy841;
+    if (yych <= 0xBF)
+      goto yy844;
+    goto yy841;
+  yy846:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy841;
+    if (yych <= 0xBF)
+      goto yy844;
+    goto yy841;
+  yy847:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy841;
+    if (yych <= 0x9F)
+      goto yy844;
+    goto yy841;
+  yy848:
+    yych = *++p;
+    if (yych <= 0x8F)
+      goto yy841;
+    if (yych <= 0xBF)
+      goto yy846;
+    goto yy841;
+  yy849:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy841;
+    if (yych <= 0xBF)
+      goto yy846;
+    goto yy841;
+  yy850:
+    yych = *++p;
+    if (yych <= 0x7F)
+      goto yy841;
+    if (yych <= 0x8F)
+      goto yy846;
+    goto yy841;
+  yy851:
+    yych = *++p;
+    if (yych != ':')
+      goto yy841;
+  yy852:
+    yych = *++p;
+    if (yybm[0 + yych] & 128) {
+      goto yy852;
+    }
+    { return (bufsize_t)(p - start); }
+  }
 }
Index: cmarkgfm-2022.10.27/third_party/cmark/src/scanners.h
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/scanners.h
+++ cmarkgfm-2022.10.27/third_party/cmark/src/scanners.h
@@ -15,6 +15,10 @@ bufsize_t _scan_autolink_uri(const unsig
 bufsize_t _scan_autolink_email(const unsigned char *p);
 bufsize_t _scan_html_tag(const unsigned char *p);
 bufsize_t _scan_liberal_html_tag(const unsigned char *p);
+bufsize_t _scan_html_comment(const unsigned char *p);
+bufsize_t _scan_html_pi(const unsigned char *p);
+bufsize_t _scan_html_declaration(const unsigned char *p);
+bufsize_t _scan_html_cdata(const unsigned char *p);
 bufsize_t _scan_html_block_start(const unsigned char *p);
 bufsize_t _scan_html_block_start_7(const unsigned char *p);
 bufsize_t _scan_html_block_end_1(const unsigned char *p);
@@ -37,6 +41,10 @@ bufsize_t _scan_footnote_definition(cons
 #define scan_autolink_email(c, n) _scan_at(&_scan_autolink_email, c, n)
 #define scan_html_tag(c, n) _scan_at(&_scan_html_tag, c, n)
 #define scan_liberal_html_tag(c, n) _scan_at(&_scan_liberal_html_tag, c, n)
+#define scan_html_comment(c, n) _scan_at(&_scan_html_comment, c, n)
+#define scan_html_pi(c, n) _scan_at(&_scan_html_pi, c, n)
+#define scan_html_declaration(c, n) _scan_at(&_scan_html_declaration, c, n)
+#define scan_html_cdata(c, n) _scan_at(&_scan_html_cdata, c, n)
 #define scan_html_block_start(c, n) _scan_at(&_scan_html_block_start, c, n)
 #define scan_html_block_start_7(c, n) _scan_at(&_scan_html_block_start_7, c, n)
 #define scan_html_block_end_1(c, n) _scan_at(&_scan_html_block_end_1, c, n)
Index: cmarkgfm-2022.10.27/third_party/cmark/src/xml.c
===================================================================
--- cmarkgfm-2022.10.27.orig/third_party/cmark/src/xml.c
+++ cmarkgfm-2022.10.27/third_party/cmark/src/xml.c
@@ -11,6 +11,7 @@
 #include "syntax_extension.h"
 
 #define BUFFER_SIZE 100
+#define MAX_INDENT 40
 
 // Functions to convert cmark_nodes to XML strings.
 
@@ -26,7 +27,7 @@ struct render_state {
 
 static CMARK_INLINE void indent(struct render_state *state) {
   int i;
-  for (i = 0; i < state->indent; i++) {
+  for (i = 0; i < state->indent && i < MAX_INDENT; i++) {
     cmark_strbuf_putc(state->xml, ' ');
   }
 }
openSUSE Build Service is sponsored by