cmark-gfm 0.2.5 → 0.2.6
raw patch · 30 files changed
+14846/−10981 lines, 30 filesdep ~bytestringdep ~textPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: bytestring, text
API changes (from Hackage documentation)
Files
- cbits/arena.c +9/−8
- cbits/autolink.c +204/−152
- cbits/blocks.c +29/−3
- cbits/cmark-gfm-core-extensions.h +11/−11
- cbits/cmark-gfm-extension_api.h +1/−0
- cbits/cmark-gfm-extensions_export.h +0/−42
- cbits/cmark-gfm.h +18/−2
- cbits/cmark-gfm_version.h +2/−2
- cbits/cmark.c +3/−3
- cbits/commonmark.c +19/−34
- cbits/html.c +22/−6
- cbits/inlines.c +130/−58
- cbits/latex.c +6/−4
- cbits/man.c +7/−11
- cbits/map.c +11/−4
- cbits/map.h +5/−2
- cbits/node.c +76/−10
- cbits/node.h +43/−1
- cbits/parser.h +1/−0
- cbits/plaintext.c +12/−29
- cbits/references.c +1/−0
- cbits/render.c +15/−7
- cbits/scanners.c +14055/−10507
- cbits/scanners.h +8/−0
- cbits/strikethrough.c +1/−1
- cbits/table.c +146/−77
- cbits/xml.c +2/−1
- changelog +4/−0
- cmark-gfm.cabal +4/−5
- test/test-cmark.hs +1/−1
cbits/arena.c view
@@ -68,15 +68,16 @@ 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);- }- if (sz > A->sz - A->used) {- A = alloc_arena_chunk(A->sz + A->sz / 2, A);+ 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; }- 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 @@ 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; }
cbits/autolink.c view
@@ -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 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 @@ * * 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 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 @@ 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 @@ 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 @@ 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,7 +267,12 @@ 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 @@ // 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; } - char prev_char = data[-rewind - len - 1];+ if (len == (max_rewind - rewind)) {+ return true;+ } + 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;-- 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;+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); - data += offset;- size -= offset;+ uint8_t *data = text->as.literal.data;+ size_t remaining = text->as.literal.len; - at = (uint8_t *)memchr(data, '@', size);- if (!at)- return;+ 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; - 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_chunk_to_cstr(parser->mem, &text->as.literal);+ 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_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_insert_after(text, link_node); - 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 @@ } if (ev == CMARK_EVENT_ENTER && node->type == CMARK_NODE_TEXT) {- postprocess_text(parser, node, 0, /*depth*/0);+ postprocess_text(parser, node); } }
cbits/blocks.c view
@@ -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 @@ } 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 @@ 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 @@ 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 @@ 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 @@ (*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))) {
cbits/cmark-gfm-core-extensions.h view
@@ -6,45 +6,45 @@ #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
cbits/cmark-gfm-extension_api.h view
@@ -114,6 +114,7 @@ struct delimiter *previous; struct delimiter *next; cmark_node *inl_text;+ bufsize_t position; bufsize_t length; unsigned char delim_char; int can_open;
− cbits/cmark-gfm-extensions_export.h
@@ -1,42 +0,0 @@--#ifndef CMARK_GFM_EXTENSIONS_EXPORT_H-#define CMARK_GFM_EXTENSIONS_EXPORT_H--#ifdef CMARK_GFM_EXTENSIONS_STATIC_DEFINE-# define CMARK_GFM_EXTENSIONS_EXPORT-# define CMARK_GFM_EXTENSIONS_NO_EXPORT-#else-# ifndef CMARK_GFM_EXTENSIONS_EXPORT-# ifdef libcmark_gfm_extensions_EXPORTS- /* We are building this library */-# define CMARK_GFM_EXTENSIONS_EXPORT __attribute__((visibility("default")))-# else- /* We are using this library */-# define CMARK_GFM_EXTENSIONS_EXPORT __attribute__((visibility("default")))-# endif-# endif--# ifndef CMARK_GFM_EXTENSIONS_NO_EXPORT-# define CMARK_GFM_EXTENSIONS_NO_EXPORT __attribute__((visibility("hidden")))-# endif-#endif--#ifndef CMARK_GFM_EXTENSIONS_DEPRECATED-# define CMARK_GFM_EXTENSIONS_DEPRECATED __attribute__ ((__deprecated__))-#endif--#ifndef CMARK_GFM_EXTENSIONS_DEPRECATED_EXPORT-# define CMARK_GFM_EXTENSIONS_DEPRECATED_EXPORT CMARK_GFM_EXTENSIONS_EXPORT CMARK_GFM_EXTENSIONS_DEPRECATED-#endif--#ifndef CMARK_GFM_EXTENSIONS_DEPRECATED_NO_EXPORT-# define CMARK_GFM_EXTENSIONS_DEPRECATED_NO_EXPORT CMARK_GFM_EXTENSIONS_NO_EXPORT CMARK_GFM_EXTENSIONS_DEPRECATED-#endif--#if 0 /* DEFINE_NO_DEPRECATED */-# ifndef CMARK_GFM_EXTENSIONS_NO_DEPRECATED-# define CMARK_GFM_EXTENSIONS_NO_DEPRECATED-# endif-#endif--#endif /* CMARK_GFM_EXTENSIONS_EXPORT_H */
cbits/cmark-gfm.h view
@@ -111,13 +111,13 @@ * 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_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 *@@ -407,6 +412,17 @@ /** Sets the "tightness" of a list. Returns 1 on success, 0 on failure. */ 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. */
cbits/cmark-gfm_version.h view
@@ -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
cbits/cmark.c view
@@ -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 @@ 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; }
cbits/commonmark.c view
@@ -153,23 +153,8 @@ 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 @@ 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 @@ // 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 @@ 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 @@ 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;
cbits/html.c view
@@ -63,10 +63,16 @@ 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,8 +84,16 @@ 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 @@ 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;
cbits/inlines.c view
@@ -35,7 +35,6 @@ typedef struct bracket { struct bracket *previous;- struct delimiter *previous_delimiter; cmark_node *inl_text; bufsize_t position; bool image;@@ -45,9 +44,15 @@ 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 @@ 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 @@ } } +// 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ } // 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 @@ // 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 @@ } 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 @@ } } // 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 @@ 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 @@ } // 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 @@ 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 @@ // 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 @@ 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 @@ 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 @@ 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);
cbits/latex.c view
@@ -385,10 +385,12 @@ 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;
cbits/man.c view
@@ -74,7 +74,6 @@ 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 @@ 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 @@ 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;
cbits/map.c view
@@ -51,7 +51,7 @@ } 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 @@ 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 @@ 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 *map = (cmark_map *)mem->calloc(1, sizeof(cmark_map)); map->mem = mem; map->free = free;+ map->max_ref_size = UINT_MAX; return map; }
cbits/map.h view
@@ -10,7 +10,8 @@ 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 @@ 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; };
cbits/node.c view
@@ -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 @@ } 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 @@ 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_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 @@ 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:@@ -518,6 +559,31 @@ if (node->type == CMARK_NODE_LIST) { node->as.list.tight = tight == 1;+ 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;
cbits/node.h view
@@ -52,8 +52,14 @@ 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 @@ 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 @@ 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; }@@ -117,6 +152,13 @@ } 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 }
cbits/parser.h view
@@ -46,6 +46,7 @@ /* 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;
cbits/plaintext.c view
@@ -16,23 +16,8 @@ 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 @@ // 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 @@ 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
cbits/references.c view
@@ -32,6 +32,7 @@ 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++;
cbits/render.c view
@@ -31,13 +31,7 @@ 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 @@ 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
cbits/scanners.c view
@@ -1,10508 +1,14056 @@-/* Generated by re2c 1.3 */-#include <stdlib.h>-#include "chunk.h"-#include "scanners.h"--bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c, bufsize_t offset)-{- bufsize_t res;- unsigned char *ptr = (unsigned char *)c->data;-- if (ptr == NULL || offset > c->len) {- return 0;- } else {- unsigned char lim = ptr[c->len];-- ptr[c->len] = '\0';- res = scanner(ptr + offset);- ptr[c->len] = lim;- }-- return res;-}----// Try to match a scheme including colon.-bufsize_t _scan_scheme(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- yych = *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;-}--}--// Try to match URI autolink after first <, returning number of chars matched.-bufsize_t _scan_autolink_uri(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- static const unsigned char yybm[] = {- 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 0, 128, 0, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - };- yych = *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;-}--}--// Try to match email autolink after first <, returning num of chars matched.-bufsize_t _scan_autolink_email(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- static const unsigned char yybm[] = {- 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 128, 0, 128, 128, 128, 128, 128, - 0, 0, 128, 128, 0, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 128, 0, 128, - 0, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 0, 0, 0, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 128, 128, 128, 128, 128, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - };- yych = *p;- if (yych <= '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;-}--}--// Try to match an HTML tag after first <, returning num of chars matched.-bufsize_t _scan_html_tag(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- static const unsigned char yybm[] = {- /* table 1 .. 8: 0 */- 0, 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;- }- }-}--}--// 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 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;-}--}--// Try to match an HTML block tag start line, returning-// an integer code for the type of block (1-6, matching the spec).-// #7 is handled by a separate function, below.-bufsize_t _scan_html_block_start(const unsigned char *p)-{- const unsigned char *marker = NULL;--{- unsigned char yych;- yych = *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;-}--}--// Try to match an HTML block tag start line of type 7, returning-// 7 if successful, 0 if not.-bufsize_t _scan_html_block_start_7(const unsigned char *p)-{- const unsigned char *marker = NULL;--{- unsigned char yych;- unsigned int yyaccept = 0;- static const unsigned char yybm[] = {- 0, 224, 224, 224, 224, 224, 224, 224, - 224, 198, 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;-}--}--// Try to match an HTML block end line of type 1-bufsize_t _scan_html_block_end_1(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- unsigned int yyaccept = 0;- static const unsigned char yybm[] = {- 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;- }- }- }-}--}--// Try to match an HTML block end line of type 2-bufsize_t _scan_html_block_end_2(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- unsigned int yyaccept = 0;- static const unsigned char yybm[] = {- 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); }-}--}--// Try to match an HTML block end line of type 3-bufsize_t _scan_html_block_end_3(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- unsigned int yyaccept = 0;- static const unsigned char yybm[] = {- 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); }-}--}--// Try to match an HTML block end line of type 4-bufsize_t _scan_html_block_end_4(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- unsigned int yyaccept = 0;- static const unsigned char yybm[] = {- 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;-}--}--// Try to match an HTML block end line of type 5-bufsize_t _scan_html_block_end_5(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- unsigned int yyaccept = 0;- static const unsigned char yybm[] = {- 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); }-}--}--// Try to match a link title (in single quotes, in double quotes, or-// in parentheses), returning number of chars matched. Allow one-// level of internal nesting (quotes within quotes).-bufsize_t _scan_link_title(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- unsigned int yyaccept = 0;- static const unsigned char yybm[] = {- 0, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 208, 208, 208, 208, 208, 208, - 208, 208, 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;- }- }-}--}--// 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); }-}--}--// Match ATX heading start.-bufsize_t _scan_atx_heading_start(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- static const unsigned char yybm[] = {- 0, 0, 0, 0, 0, 0, 0, 0, - 0, 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;-}--}--// Match setext heading line. Return 1 for level-1 heading,-// 2 for level-2, 0 for no match.-bufsize_t _scan_setext_heading_line(const unsigned char *p)-{- const unsigned char *marker = NULL;--{- unsigned char yych;- static const unsigned char yybm[] = {- 0, 0, 0, 0, 0, 0, 0, 0, - 0, 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;- }-}--}--// Scan an opening code fence.-bufsize_t _scan_open_code_fence(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- static const unsigned char yybm[] = {- 0, 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;-}--}--// Scan a closing code fence with length at least len.-bufsize_t _scan_close_code_fence(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- static const unsigned char yybm[] = {- 0, 0, 0, 0, 0, 0, 0, 0, - 0, 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); }-}--}--// Scans an entity.-// Returns number of chars matched.-bufsize_t _scan_entity(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- yych = *p;- if (yych == '&') 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;- }- }-}--}--// Returns positive value if a URL begins in a way that is potentially-// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.-bufsize_t _scan_dangerous_url(const unsigned char *p)-{- const unsigned char *marker = NULL;- const unsigned char *start = p;--{- unsigned char yych;- unsigned int yyaccept = 0;- yych = *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;-}--}--// Scans a footnote definition opening.-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); }-}-+/* 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;+ }++ return res;+}++// Try to match a scheme including colon.+bufsize_t _scan_scheme(const unsigned char *p) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ unsigned char yych;+ yych = *p;+ 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) {+ 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 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) {+ 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 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;+ }+}++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[] = {+ 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;+ }+}++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, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 64,+ 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, 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) {+ const unsigned char *marker = NULL;++ {+ 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) {+ 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 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) {+ 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 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) {+ 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 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) {+ 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 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) {+ 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 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) {+ 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 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) {+ 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 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 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) {+ 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 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) {+ 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 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) {+ 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 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) {+ 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 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) {+ const unsigned char *marker = NULL;+ const unsigned char *start = p;++ {+ 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) {+ 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 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) {+ 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 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); }+ } }
cbits/scanners.h view
@@ -15,6 +15,10 @@ 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 @@ #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)
cbits/strikethrough.c view
@@ -67,6 +67,7 @@ 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 @@ cmark_inline_parser_remove_delimiter(inline_parser, opener); -done: return res; }
cbits/table.c view
@@ -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 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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,26 +306,30 @@ 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(); // Check for a matching header row. We call `row_from_string` with the entire@@ -263,22 +338,23 @@ 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 @@ 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 @@ 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 @@ 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 @@ 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 @@ } {- 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 @@ 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 @@ 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 @@ } } } 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 @@ 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 @@ 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);
cbits/xml.c view
@@ -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 @@ 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, ' '); } }
changelog view
@@ -1,3 +1,7 @@+cmark-gfm 0.2.6 (28 Aug 2023)++ * Pull in upstream changes (includes security fixes).+ cmark-gfm 0.2.5 (27 Sep 2022) * Add support for enabling footnotes (#26, Anton Sorokin).
cmark-gfm.cabal view
@@ -1,18 +1,18 @@ name: cmark-gfm-version: 0.2.5+version: 0.2.6 synopsis: Fast, accurate GitHub Flavored Markdown parser and renderer description: This package provides Haskell bindings for <https://github.com/github/cmark-gfm libcmark-gfm>, the reference parser for <https://github.github.com/gfm/ GitHub Flavored Markdown>, a fully specified variant of Markdown. It includes sources for- libcmark-gfm (0.29.0.gfm.6) and does not require prior installation of the+ libcmark-gfm (0.29.0.gfm.13) and does not require prior installation of the C library. homepage: https://github.com/kivikakk/cmark-gfm-hs license: BSD3 license-file: LICENSE-author: Ashe Connor+author: Asherah Connor maintainer: ashe@kivikakk.ee copyright: (C) 2015--17 John MacFarlane, (C) 2017--19 Ashe Connor category: Text@@ -51,7 +51,6 @@ cbits/table.h cbits/tagfilter.h cbits/tasklist.h- cbits/cmark-gfm-extensions_export.h cbits/map.h cbits/footnotes.h bench/sample.md@@ -70,7 +69,7 @@ exposed-modules: CMarkGFM build-depends: base >=4.5 && < 5.0, text >= 1.0 && < 2.1,- bytestring+ bytestring >= 0.11.5 && < 0.12 if impl(ghc < 7.6) build-depends: ghc-prim >= 0.2 default-language: Haskell2010
test/test-cmark.hs view
@@ -33,6 +33,6 @@ , "<xmp>\n" ~=? commonmarkToHtml [optUnsafe] [] "<xmp>" , "<xmp>\n" ~=? commonmarkToHtml [optUnsafe] [extTagfilter] "<xmp>" , "<ul>\n<li><input type=\"checkbox\" disabled=\"\" /> foo</li>\n<li><input type=\"checkbox\" checked=\"\" disabled=\"\" /> bar</li>\n</ul>\n" ~=? commonmarkToHtml [] [extTaskList] "- [ ] foo\n- [x] bar"- , "<p>Here is footnote<sup class=\"footnote-ref\"><a href=\"#fn-1\" id=\"fnref-1\" data-footnote-ref>1</a></sup></p>\n<section class=\"footnotes\" data-footnotes>\n<ol>\n<li id=\"fn-1\">\n<p>abc <a href=\"#fnref-1\" class=\"footnote-backref\" data-footnote-backref aria-label=\"Back to content\">↩</a></p>\n</li>\n</ol>\n</section>\n" ~=? commonmarkToHtml [optFootnotes] [] "Here is footnote[^1]\n\n[^1]: abc"+ , "<p>Here is footnote<sup class=\"footnote-ref\"><a href=\"#fn-1\" id=\"fnref-1\" data-footnote-ref>1</a></sup></p>\n<section class=\"footnotes\" data-footnotes>\n<ol>\n<li id=\"fn-1\">\n<p>abc <a href=\"#fnref-1\" class=\"footnote-backref\" data-footnote-backref data-footnote-backref-idx=\"1\" aria-label=\"Back to reference 1\">↩</a></p>\n</li>\n</ol>\n</section>\n" ~=? commonmarkToHtml [optFootnotes] [] "Here is footnote[^1]\n\n[^1]: abc" ]