/* Generated by re2c 0.14.3 */
#include <stdlib.h>
#include "chunk.h"
#include "scanners.h"

bufsize_t _scan_at(bufsize_t (*scanner)(const unsigned char *), cmark_chunk *c,
                   bufsize_t offset) {
  bufsize_t res;
  unsigned char *ptr = (unsigned char *)c->data;
  unsigned char lim = ptr[c->len];

  ptr[c->len] = '\0';
  res = scanner(ptr + offset);
  ptr[c->len] = lim;

  return res;
}

// Try to match a scheme including colon.
bufsize_t _scan_scheme(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;

    yych = *(marker = p);
    if (yych <= 'c') {
      if (yych <= 'M') {
        if (yych <= 'E') {
          if (yych <= 'A') {
            if (yych == '\n')
              goto yy2;
            if (yych <= '@')
              goto yy29;
            goto yy6;
          } else {
            if (yych <= 'B')
              goto yy24;
            if (yych <= 'C')
              goto yy3;
            if (yych <= 'D')
              goto yy4;
            goto yy25;
          }
        } else {
          if (yych <= 'I') {
            if (yych <= 'F')
              goto yy7;
            if (yych <= 'G')
              goto yy8;
            if (yych <= 'H')
              goto yy9;
            goto yy10;
          } else {
            if (yych <= 'J')
              goto yy5;
            if (yych <= 'K')
              goto yy26;
            if (yych <= 'L')
              goto yy11;
            goto yy12;
          }
        }
      } else {
        if (yych <= 'U') {
          if (yych <= 'Q') {
            if (yych <= 'N')
              goto yy13;
            if (yych <= 'O')
              goto yy14;
            if (yych <= 'P')
              goto yy15;
            goto yy27;
          } else {
            if (yych <= 'R')
              goto yy16;
            if (yych <= 'S')
              goto yy17;
            if (yych <= 'T')
              goto yy18;
            goto yy19;
          }
        } else {
          if (yych <= 'Y') {
            if (yych <= 'V')
              goto yy20;
            if (yych <= 'W')
              goto yy21;
            if (yych <= 'X')
              goto yy22;
            goto yy28;
          } else {
            if (yych <= '`') {
              if (yych <= 'Z')
                goto yy23;
              goto yy29;
            } else {
              if (yych <= 'a')
                goto yy6;
              if (yych <= 'b')
                goto yy24;
              goto yy3;
            }
          }
        }
      }
    } else {
      if (yych <= 't') {
        if (yych <= 'k') {
          if (yych <= 'g') {
            if (yych <= 'd')
              goto yy4;
            if (yych <= 'e')
              goto yy25;
            if (yych <= 'f')
              goto yy7;
            goto yy8;
          } else {
            if (yych <= 'h')
              goto yy9;
            if (yych <= 'i')
              goto yy10;
            if (yych <= 'j')
              goto yy5;
            goto yy26;
          }
        } else {
          if (yych <= 'o') {
            if (yych <= 'l')
              goto yy11;
            if (yych <= 'm')
              goto yy12;
            if (yych <= 'n')
              goto yy13;
            goto yy14;
          } else {
            if (yych <= 'q') {
              if (yych <= 'p')
                goto yy15;
              goto yy27;
            } else {
              if (yych <= 'r')
                goto yy16;
              if (yych <= 's')
                goto yy17;
              goto yy18;
            }
          }
        }
      } else {
        if (yych <= 0xC1) {
          if (yych <= 'x') {
            if (yych <= 'u')
              goto yy19;
            if (yych <= 'v')
              goto yy20;
            if (yych <= 'w')
              goto yy21;
            goto yy22;
          } else {
            if (yych <= 'y')
              goto yy28;
            if (yych <= 'z')
              goto yy23;
            if (yych <= 0x7F)
              goto yy29;
          }
        } else {
          if (yych <= 0xED) {
            if (yych <= 0xDF)
              goto yy30;
            if (yych <= 0xE0)
              goto yy32;
            if (yych <= 0xEC)
              goto yy33;
            goto yy37;
          } else {
            if (yych <= 0xF0) {
              if (yych <= 0xEF)
                goto yy33;
              goto yy34;
            } else {
              if (yych <= 0xF3)
                goto yy35;
              if (yych <= 0xF4)
                goto yy36;
            }
          }
        }
      }
    }
  yy2 : { return 0; }
  yy3:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy447;
    case 'H':
    case 'h':
      goto yy446;
    case 'I':
    case 'i':
      goto yy449;
    case 'O':
    case 'o':
      goto yy445;
    case 'R':
    case 'r':
      goto yy448;
    case 'V':
    case 'v':
      goto yy444;
    default:
      goto yy2;
    }
  yy4:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy420;
    case 'I':
    case 'i':
      goto yy419;
    case 'L':
    case 'l':
      goto yy417;
    case 'N':
    case 'n':
      goto yy418;
    case 'O':
    case 'o':
      goto yy421;
    case 'T':
    case 't':
      goto yy416;
    case 'V':
    case 'v':
      goto yy415;
    default:
      goto yy2;
    }
  yy5:
    yych = *(marker = ++p);
    if (yych <= 'M') {
      if (yych == 'A')
        goto yy407;
      if (yych <= 'L')
        goto yy2;
      goto yy406;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy2;
        goto yy407;
      } else {
        if (yych == 'm')
          goto yy406;
        goto yy2;
      }
    }
  yy6:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy388;
    case 'B':
    case 'b':
      goto yy387;
    case 'C':
    case 'c':
      goto yy386;
    case 'D':
    case 'd':
      goto yy385;
    case 'F':
    case 'f':
      goto yy384;
    case 'I':
    case 'i':
      goto yy383;
    case 'P':
    case 'p':
      goto yy382;
    case 'T':
    case 't':
      goto yy381;
    case 'W':
    case 'w':
      goto yy41;
    default:
      goto yy2;
    }
  yy7:
    yych = *(marker = ++p);
    if (yych <= 'T') {
      if (yych <= 'E') {
        if (yych == 'A')
          goto yy368;
        if (yych <= 'D')
          goto yy2;
        goto yy367;
      } else {
        if (yych == 'I')
          goto yy366;
        if (yych <= 'S')
          goto yy2;
        goto yy369;
      }
    } else {
      if (yych <= 'e') {
        if (yych == 'a')
          goto yy368;
        if (yych <= 'd')
          goto yy2;
        goto yy367;
      } else {
        if (yych <= 'i') {
          if (yych <= 'h')
            goto yy2;
          goto yy366;
        } else {
          if (yych == 't')
            goto yy369;
          goto yy2;
        }
      }
    }
  yy8:
    yych = *(marker = ++p);
    switch (yych) {
    case 'E':
    case 'e':
      goto yy351;
    case 'G':
    case 'g':
      goto yy41;
    case 'I':
    case 'i':
      goto yy349;
    case 'O':
    case 'o':
      goto yy350;
    case 'T':
    case 't':
      goto yy348;
    default:
      goto yy2;
    }
  yy9:
    yych = *(marker = ++p);
    if (yych <= 'S') {
      if (yych <= '3') {
        if (yych <= '2')
          goto yy2;
        goto yy344;
      } else {
        if (yych == 'C')
          goto yy342;
        goto yy2;
      }
    } else {
      if (yych <= 'c') {
        if (yych <= 'T')
          goto yy343;
        if (yych <= 'b')
          goto yy2;
        goto yy342;
      } else {
        if (yych == 't')
          goto yy343;
        goto yy2;
      }
    }
  yy10:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy324;
    case 'C':
    case 'c':
      goto yy321;
    case 'M':
    case 'm':
      goto yy323;
    case 'N':
    case 'n':
      goto yy322;
    case 'P':
    case 'p':
      goto yy320;
    case 'R':
    case 'r':
      goto yy319;
    case 'T':
    case 't':
      goto yy318;
    default:
      goto yy2;
    }
  yy11:
    yych = *(marker = ++p);
    if (yych <= 'D') {
      if (yych == 'A')
        goto yy312;
      if (yych <= 'C')
        goto yy2;
      goto yy311;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy2;
        goto yy312;
      } else {
        if (yych == 'd')
          goto yy311;
        goto yy2;
      }
    }
  yy12:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy278;
    case 'E':
    case 'e':
      goto yy277;
    case 'I':
    case 'i':
      goto yy280;
    case 'M':
    case 'm':
      goto yy276;
    case 'S':
    case 's':
      goto yy275;
    case 'T':
    case 't':
      goto yy279;
    case 'U':
    case 'u':
      goto yy274;
    case 'V':
    case 'v':
      goto yy273;
    default:
      goto yy2;
    }
  yy13:
    yych = *(marker = ++p);
    switch (yych) {
    case 'E':
    case 'e':
      goto yy268;
    case 'F':
    case 'f':
      goto yy267;
    case 'I':
    case 'i':
      goto yy266;
    case 'N':
    case 'n':
      goto yy265;
    case 'O':
    case 'o':
      goto yy264;
    default:
      goto yy2;
    }
  yy14:
    yych = *(marker = ++p);
    if (yych <= 'P') {
      if (yych == 'I')
        goto yy250;
      if (yych <= 'O')
        goto yy2;
      goto yy251;
    } else {
      if (yych <= 'i') {
        if (yych <= 'h')
          goto yy2;
        goto yy250;
      } else {
        if (yych == 'p')
          goto yy251;
        goto yy2;
      }
    }
  yy15:
    yych = *(marker = ++p);
    if (yych <= 'S') {
      if (yych <= 'L') {
        if (yych == 'A')
          goto yy232;
        if (yych <= 'K')
          goto yy2;
        goto yy231;
      } else {
        if (yych <= 'O') {
          if (yych <= 'N')
            goto yy2;
          goto yy233;
        } else {
          if (yych <= 'Q')
            goto yy2;
          if (yych <= 'R')
            goto yy230;
          goto yy229;
        }
      }
    } else {
      if (yych <= 'n') {
        if (yych <= 'a') {
          if (yych <= '`')
            goto yy2;
          goto yy232;
        } else {
          if (yych == 'l')
            goto yy231;
          goto yy2;
        }
      } else {
        if (yych <= 'q') {
          if (yych <= 'o')
            goto yy233;
          goto yy2;
        } else {
          if (yych <= 'r')
            goto yy230;
          if (yych <= 's')
            goto yy229;
          goto yy2;
        }
      }
    }
  yy16:
    yych = *(marker = ++p);
    if (yych <= 'T') {
      if (yych <= 'L') {
        if (yych == 'E')
          goto yy219;
        goto yy2;
      } else {
        if (yych <= 'M')
          goto yy218;
        if (yych <= 'R')
          goto yy2;
        if (yych <= 'S')
          goto yy217;
        goto yy216;
      }
    } else {
      if (yych <= 'm') {
        if (yych == 'e')
          goto yy219;
        if (yych <= 'l')
          goto yy2;
        goto yy218;
      } else {
        if (yych <= 'r')
          goto yy2;
        if (yych <= 's')
          goto yy217;
        if (yych <= 't')
          goto yy216;
        goto yy2;
      }
    }
  yy17:
    yych = *(marker = ++p);
    switch (yych) {
    case 'E':
    case 'e':
      goto yy172;
    case 'F':
    case 'f':
      goto yy171;
    case 'G':
    case 'g':
      goto yy170;
    case 'H':
    case 'h':
      goto yy175;
    case 'I':
    case 'i':
      goto yy174;
    case 'K':
    case 'k':
      goto yy169;
    case 'M':
    case 'm':
      goto yy168;
    case 'N':
    case 'n':
      goto yy173;
    case 'O':
    case 'o':
      goto yy167;
    case 'P':
    case 'p':
      goto yy166;
    case 'S':
    case 's':
      goto yy165;
    case 'T':
    case 't':
      goto yy164;
    case 'V':
    case 'v':
      goto yy163;
    default:
      goto yy2;
    }
  yy18:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy139;
    case 'E':
    case 'e':
      goto yy135;
    case 'F':
    case 'f':
      goto yy138;
    case 'H':
    case 'h':
      goto yy134;
    case 'I':
    case 'i':
      goto yy136;
    case 'N':
    case 'n':
      goto yy137;
    case 'V':
    case 'v':
      goto yy41;
    default:
      goto yy2;
    }
  yy19:
    yych = *(marker = ++p);
    if (yych <= 'T') {
      if (yych <= 'N') {
        if (yych == 'D')
          goto yy126;
        if (yych <= 'M')
          goto yy2;
        goto yy125;
      } else {
        if (yych == 'R')
          goto yy127;
        if (yych <= 'S')
          goto yy2;
        goto yy124;
      }
    } else {
      if (yych <= 'n') {
        if (yych == 'd')
          goto yy126;
        if (yych <= 'm')
          goto yy2;
        goto yy125;
      } else {
        if (yych <= 'r') {
          if (yych <= 'q')
            goto yy2;
          goto yy127;
        } else {
          if (yych == 't')
            goto yy124;
          goto yy2;
        }
      }
    }
  yy20:
    yych = *(marker = ++p);
    if (yych <= 'I') {
      if (yych == 'E')
        goto yy108;
      if (yych <= 'H')
        goto yy2;
      goto yy107;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy2;
        goto yy108;
      } else {
        if (yych == 'i')
          goto yy107;
        goto yy2;
      }
    }
  yy21:
    yych = *(marker = ++p);
    if (yych <= 'Y') {
      if (yych <= 'R') {
        if (yych == 'E')
          goto yy97;
        goto yy2;
      } else {
        if (yych <= 'S')
          goto yy98;
        if (yych <= 'T')
          goto yy96;
        if (yych <= 'X')
          goto yy2;
        goto yy95;
      }
    } else {
      if (yych <= 's') {
        if (yych == 'e')
          goto yy97;
        if (yych <= 'r')
          goto yy2;
        goto yy98;
      } else {
        if (yych <= 't')
          goto yy96;
        if (yych == 'y')
          goto yy95;
        goto yy2;
      }
    }
  yy22:
    yych = *(marker = ++p);
    if (yych <= 'R') {
      if (yych <= 'F') {
        if (yych == 'C')
          goto yy74;
        if (yych <= 'E')
          goto yy2;
        goto yy72;
      } else {
        if (yych == 'M')
          goto yy73;
        if (yych <= 'Q')
          goto yy2;
        goto yy71;
      }
    } else {
      if (yych <= 'f') {
        if (yych == 'c')
          goto yy74;
        if (yych <= 'e')
          goto yy2;
        goto yy72;
      } else {
        if (yych <= 'm') {
          if (yych <= 'l')
            goto yy2;
          goto yy73;
        } else {
          if (yych == 'r')
            goto yy71;
          goto yy2;
        }
      }
    }
  yy23:
    yych = *(marker = ++p);
    if (yych == '3')
      goto yy66;
    goto yy2;
  yy24:
    yych = *(marker = ++p);
    if (yych <= 'O') {
      if (yych <= 'H') {
        if (yych == 'E')
          goto yy56;
        goto yy2;
      } else {
        if (yych <= 'I')
          goto yy55;
        if (yych <= 'N')
          goto yy2;
        goto yy54;
      }
    } else {
      if (yych <= 'h') {
        if (yych == 'e')
          goto yy56;
        goto yy2;
      } else {
        if (yych <= 'i')
          goto yy55;
        if (yych == 'o')
          goto yy54;
        goto yy2;
      }
    }
  yy25:
    yych = *(marker = ++p);
    if (yych == 'D')
      goto yy52;
    if (yych == 'd')
      goto yy52;
    goto yy2;
  yy26:
    yych = *(marker = ++p);
    if (yych == 'E')
      goto yy47;
    if (yych == 'e')
      goto yy47;
    goto yy2;
  yy27:
    yych = *(marker = ++p);
    if (yych == 'U')
      goto yy44;
    if (yych == 'u')
      goto yy44;
    goto yy2;
  yy28:
    yych = *(marker = ++p);
    if (yych == 'M')
      goto yy38;
    if (yych == 'm')
      goto yy38;
    goto yy2;
  yy29:
    yych = *++p;
    goto yy2;
  yy30:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy31;
    if (yych <= 0xBF)
      goto yy29;
  yy31:
    p = marker;
    goto yy2;
  yy32:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy31;
    if (yych <= 0xBF)
      goto yy30;
    goto yy31;
  yy33:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy31;
    if (yych <= 0xBF)
      goto yy30;
    goto yy31;
  yy34:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy31;
    if (yych <= 0xBF)
      goto yy33;
    goto yy31;
  yy35:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy31;
    if (yych <= 0xBF)
      goto yy33;
    goto yy31;
  yy36:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy31;
    if (yych <= 0x8F)
      goto yy33;
    goto yy31;
  yy37:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy31;
    if (yych <= 0x9F)
      goto yy30;
    goto yy31;
  yy38:
    yych = *++p;
    if (yych == 'S')
      goto yy39;
    if (yych != 's')
      goto yy31;
  yy39:
    yych = *++p;
    if (yych == 'G')
      goto yy40;
    if (yych != 'g')
      goto yy31;
  yy40:
    yych = *++p;
    if (yych == 'R')
      goto yy41;
    if (yych != 'r')
      goto yy31;
  yy41:
    yych = *++p;
    if (yych != ':')
      goto yy31;
  yy42:
    ++p;
    { return (bufsize_t)(p - start); }
  yy44:
    yych = *++p;
    if (yych == 'E')
      goto yy45;
    if (yych != 'e')
      goto yy31;
  yy45:
    yych = *++p;
    if (yych == 'R')
      goto yy46;
    if (yych != 'r')
      goto yy31;
  yy46:
    yych = *++p;
    if (yych == 'Y')
      goto yy41;
    if (yych == 'y')
      goto yy41;
    goto yy31;
  yy47:
    yych = *++p;
    if (yych == 'Y')
      goto yy48;
    if (yych != 'y')
      goto yy31;
  yy48:
    yych = *++p;
    if (yych == 'P')
      goto yy49;
    if (yych != 'p')
      goto yy31;
  yy49:
    yych = *++p;
    if (yych == 'A')
      goto yy50;
    if (yych != 'a')
      goto yy31;
  yy50:
    yych = *++p;
    if (yych == 'R')
      goto yy51;
    if (yych != 'r')
      goto yy31;
  yy51:
    yych = *++p;
    if (yych == 'C')
      goto yy41;
    if (yych == 'c')
      goto yy41;
    goto yy31;
  yy52:
    yych = *++p;
    if (yych != '2')
      goto yy31;
    yych = *++p;
    if (yych == 'K')
      goto yy41;
    if (yych == 'k')
      goto yy41;
    goto yy31;
  yy54:
    yych = *++p;
    if (yych == 'L')
      goto yy65;
    if (yych == 'l')
      goto yy65;
    goto yy31;
  yy55:
    yych = *++p;
    if (yych == 'T')
      goto yy61;
    if (yych == 't')
      goto yy61;
    goto yy31;
  yy56:
    yych = *++p;
    if (yych == 'S')
      goto yy57;
    if (yych != 's')
      goto yy31;
  yy57:
    yych = *++p;
    if (yych == 'H')
      goto yy58;
    if (yych != 'h')
      goto yy31;
  yy58:
    yych = *++p;
    if (yych == 'A')
      goto yy59;
    if (yych != 'a')
      goto yy31;
  yy59:
    yych = *++p;
    if (yych == 'R')
      goto yy60;
    if (yych != 'r')
      goto yy31;
  yy60:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy61:
    yych = *++p;
    if (yych == 'C')
      goto yy62;
    if (yych != 'c')
      goto yy31;
  yy62:
    yych = *++p;
    if (yych == 'O')
      goto yy63;
    if (yych != 'o')
      goto yy31;
  yy63:
    yych = *++p;
    if (yych == 'I')
      goto yy64;
    if (yych != 'i')
      goto yy31;
  yy64:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy65:
    yych = *++p;
    if (yych == 'O')
      goto yy41;
    if (yych == 'o')
      goto yy41;
    goto yy31;
  yy66:
    yych = *++p;
    if (yych != '9')
      goto yy31;
    yych = *++p;
    if (yych != '.')
      goto yy31;
    yych = *++p;
    if (yych != '5')
      goto yy31;
    yych = *++p;
    if (yych != '0')
      goto yy31;
    yych = *++p;
    if (yych <= 'Q')
      goto yy31;
    if (yych <= 'S')
      goto yy41;
    if (yych <= 'q')
      goto yy31;
    if (yych <= 's')
      goto yy41;
    goto yy31;
  yy71:
    yych = *++p;
    if (yych == 'I')
      goto yy41;
    if (yych == 'i')
      goto yy41;
    goto yy31;
  yy72:
    yych = *++p;
    if (yych == 'I')
      goto yy93;
    if (yych == 'i')
      goto yy93;
    goto yy31;
  yy73:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy83;
      if (yych <= 'O')
        goto yy31;
      goto yy84;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy31;
        goto yy83;
      } else {
        if (yych == 'p')
          goto yy84;
        goto yy31;
      }
    }
  yy74:
    yych = *++p;
    if (yych == 'O')
      goto yy75;
    if (yych != 'o')
      goto yy31;
  yy75:
    yych = *++p;
    if (yych == 'N')
      goto yy76;
    if (yych != 'n')
      goto yy31;
  yy76:
    yych = *++p;
    if (yych == '-')
      goto yy77;
    if (yych == ':')
      goto yy42;
    goto yy31;
  yy77:
    yych = *++p;
    if (yych == 'U')
      goto yy78;
    if (yych != 'u')
      goto yy31;
  yy78:
    yych = *++p;
    if (yych == 'S')
      goto yy79;
    if (yych != 's')
      goto yy31;
  yy79:
    yych = *++p;
    if (yych == 'E')
      goto yy80;
    if (yych != 'e')
      goto yy31;
  yy80:
    yych = *++p;
    if (yych == 'R')
      goto yy81;
    if (yych != 'r')
      goto yy31;
  yy81:
    yych = *++p;
    if (yych == 'I')
      goto yy82;
    if (yych != 'i')
      goto yy31;
  yy82:
    yych = *++p;
    if (yych == 'D')
      goto yy41;
    if (yych == 'd')
      goto yy41;
    goto yy31;
  yy83:
    yych = *++p;
    if (yych == 'R')
      goto yy85;
    if (yych == 'r')
      goto yy85;
    goto yy31;
  yy84:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy85:
    yych = *++p;
    if (yych == 'P')
      goto yy86;
    if (yych != 'p')
      goto yy31;
  yy86:
    yych = *++p;
    if (yych == 'C')
      goto yy87;
    if (yych != 'c')
      goto yy31;
  yy87:
    yych = *++p;
    if (yych != '.')
      goto yy31;
    yych = *++p;
    if (yych == 'B')
      goto yy89;
    if (yych != 'b')
      goto yy31;
  yy89:
    yych = *++p;
    if (yych == 'E')
      goto yy90;
    if (yych != 'e')
      goto yy31;
  yy90:
    yych = *++p;
    if (yych == 'E')
      goto yy91;
    if (yych != 'e')
      goto yy31;
  yy91:
    yych = *++p;
    if (yych == 'P')
      goto yy92;
    if (yych != 'p')
      goto yy31;
  yy92:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy93:
    yych = *++p;
    if (yych == 'R')
      goto yy94;
    if (yych != 'r')
      goto yy31;
  yy94:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy95:
    yych = *++p;
    if (yych == 'C')
      goto yy103;
    if (yych == 'c')
      goto yy103;
    goto yy31;
  yy96:
    yych = *++p;
    if (yych == 'A')
      goto yy102;
    if (yych == 'a')
      goto yy102;
    goto yy31;
  yy97:
    yych = *++p;
    if (yych == 'B')
      goto yy99;
    if (yych == 'b')
      goto yy99;
    goto yy31;
  yy98:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy99:
    yych = *++p;
    if (yych == 'C')
      goto yy100;
    if (yych != 'c')
      goto yy31;
  yy100:
    yych = *++p;
    if (yych == 'A')
      goto yy101;
    if (yych != 'a')
      goto yy31;
  yy101:
    yych = *++p;
    if (yych == 'L')
      goto yy41;
    if (yych == 'l')
      goto yy41;
    goto yy31;
  yy102:
    yych = *++p;
    if (yych == 'I')
      goto yy41;
    if (yych == 'i')
      goto yy41;
    goto yy31;
  yy103:
    yych = *++p;
    if (yych == 'I')
      goto yy104;
    if (yych != 'i')
      goto yy31;
  yy104:
    yych = *++p;
    if (yych == 'W')
      goto yy105;
    if (yych != 'w')
      goto yy31;
  yy105:
    yych = *++p;
    if (yych == 'Y')
      goto yy106;
    if (yych != 'y')
      goto yy31;
  yy106:
    yych = *++p;
    if (yych == 'G')
      goto yy41;
    if (yych == 'g')
      goto yy41;
    goto yy31;
  yy107:
    yych = *++p;
    if (yych == 'E')
      goto yy116;
    if (yych == 'e')
      goto yy116;
    goto yy31;
  yy108:
    yych = *++p;
    if (yych <= 'N') {
      if (yych <= 'L')
        goto yy31;
      if (yych >= 'N')
        goto yy110;
    } else {
      if (yych <= 'l')
        goto yy31;
      if (yych <= 'm')
        goto yy109;
      if (yych <= 'n')
        goto yy110;
      goto yy31;
    }
  yy109:
    yych = *++p;
    if (yych == 'M')
      goto yy115;
    if (yych == 'm')
      goto yy115;
    goto yy31;
  yy110:
    yych = *++p;
    if (yych == 'T')
      goto yy111;
    if (yych != 't')
      goto yy31;
  yy111:
    yych = *++p;
    if (yych == 'R')
      goto yy112;
    if (yych != 'r')
      goto yy31;
  yy112:
    yych = *++p;
    if (yych == 'I')
      goto yy113;
    if (yych != 'i')
      goto yy31;
  yy113:
    yych = *++p;
    if (yych == 'L')
      goto yy114;
    if (yych != 'l')
      goto yy31;
  yy114:
    yych = *++p;
    if (yych == 'O')
      goto yy41;
    if (yych == 'o')
      goto yy41;
    goto yy31;
  yy115:
    yych = *++p;
    if (yych == 'I')
      goto yy41;
    if (yych == 'i')
      goto yy41;
    goto yy31;
  yy116:
    yych = *++p;
    if (yych == 'W')
      goto yy117;
    if (yych != 'w')
      goto yy31;
  yy117:
    yych = *++p;
    if (yych != '-')
      goto yy31;
    yych = *++p;
    if (yych == 'S')
      goto yy119;
    if (yych != 's')
      goto yy31;
  yy119:
    yych = *++p;
    if (yych == 'O')
      goto yy120;
    if (yych != 'o')
      goto yy31;
  yy120:
    yych = *++p;
    if (yych == 'U')
      goto yy121;
    if (yych != 'u')
      goto yy31;
  yy121:
    yych = *++p;
    if (yych == 'R')
      goto yy122;
    if (yych != 'r')
      goto yy31;
  yy122:
    yych = *++p;
    if (yych == 'C')
      goto yy123;
    if (yych != 'c')
      goto yy31;
  yy123:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy124:
    yych = *++p;
    if (yych == '2')
      goto yy131;
    goto yy31;
  yy125:
    yych = *++p;
    if (yych == 'R')
      goto yy128;
    if (yych == 'r')
      goto yy128;
    goto yy31;
  yy126:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy127:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy128:
    yych = *++p;
    if (yych == 'E')
      goto yy129;
    if (yych != 'e')
      goto yy31;
  yy129:
    yych = *++p;
    if (yych == 'A')
      goto yy130;
    if (yych != 'a')
      goto yy31;
  yy130:
    yych = *++p;
    if (yych == 'L')
      goto yy41;
    if (yych == 'l')
      goto yy41;
    goto yy31;
  yy131:
    yych = *++p;
    if (yych != '0')
      goto yy31;
    yych = *++p;
    if (yych != '0')
      goto yy31;
    yych = *++p;
    if (yych == '4')
      goto yy41;
    goto yy31;
  yy134:
    yych = *++p;
    if (yych == 'I')
      goto yy153;
    if (yych == 'i')
      goto yy153;
    goto yy31;
  yy135:
    yych = *++p;
    if (yych <= 'L') {
      if (yych == 'A')
        goto yy145;
      if (yych <= 'K')
        goto yy31;
      goto yy144;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy31;
        goto yy145;
      } else {
        if (yych == 'l')
          goto yy144;
        goto yy31;
      }
    }
  yy136:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy137:
    yych = *++p;
    if (yych == '3')
      goto yy141;
    goto yy31;
  yy138:
    yych = *++p;
    if (yych == 'T')
      goto yy140;
    if (yych == 't')
      goto yy140;
    goto yy31;
  yy139:
    yych = *++p;
    if (yych == 'G')
      goto yy41;
    if (yych == 'g')
      goto yy41;
    goto yy31;
  yy140:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy141:
    yych = *++p;
    if (yych != '2')
      goto yy31;
    yych = *++p;
    if (yych != '7')
      goto yy31;
    yych = *++p;
    if (yych == '0')
      goto yy41;
    goto yy31;
  yy144:
    yych = *++p;
    if (yych <= 'M') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'N')
        goto yy151;
      if (yych == 'n')
        goto yy151;
      goto yy31;
    }
  yy145:
    yych = *++p;
    if (yych == 'M')
      goto yy146;
    if (yych != 'm')
      goto yy31;
  yy146:
    yych = *++p;
    if (yych == 'S')
      goto yy147;
    if (yych != 's')
      goto yy31;
  yy147:
    yych = *++p;
    if (yych == 'P')
      goto yy148;
    if (yych != 'p')
      goto yy31;
  yy148:
    yych = *++p;
    if (yych == 'E')
      goto yy149;
    if (yych != 'e')
      goto yy31;
  yy149:
    yych = *++p;
    if (yych == 'A')
      goto yy150;
    if (yych != 'a')
      goto yy31;
  yy150:
    yych = *++p;
    if (yych == 'K')
      goto yy41;
    if (yych == 'k')
      goto yy41;
    goto yy31;
  yy151:
    yych = *++p;
    if (yych == 'E')
      goto yy152;
    if (yych != 'e')
      goto yy31;
  yy152:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy153:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'N')
        goto yy154;
      if (yych <= 'R')
        goto yy31;
      goto yy155;
    } else {
      if (yych <= 'n') {
        if (yych <= 'm')
          goto yy31;
      } else {
        if (yych == 's')
          goto yy155;
        goto yy31;
      }
    }
  yy154:
    yych = *++p;
    if (yych == 'G')
      goto yy162;
    if (yych == 'g')
      goto yy162;
    goto yy31;
  yy155:
    yych = *++p;
    if (yych == 'M')
      goto yy156;
    if (yych != 'm')
      goto yy31;
  yy156:
    yych = *++p;
    if (yych == 'E')
      goto yy157;
    if (yych != 'e')
      goto yy31;
  yy157:
    yych = *++p;
    if (yych == 'S')
      goto yy158;
    if (yych != 's')
      goto yy31;
  yy158:
    yych = *++p;
    if (yych == 'S')
      goto yy159;
    if (yych != 's')
      goto yy31;
  yy159:
    yych = *++p;
    if (yych == 'A')
      goto yy160;
    if (yych != 'a')
      goto yy31;
  yy160:
    yych = *++p;
    if (yych == 'G')
      goto yy161;
    if (yych != 'g')
      goto yy31;
  yy161:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy162:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy163:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy164:
    yych = *++p;
    if (yych == 'E')
      goto yy214;
    if (yych == 'e')
      goto yy214;
    goto yy31;
  yy165:
    yych = *++p;
    if (yych == 'H')
      goto yy41;
    if (yych == 'h')
      goto yy41;
    goto yy31;
  yy166:
    yych = *++p;
    if (yych == 'O')
      goto yy210;
    if (yych == 'o')
      goto yy210;
    goto yy31;
  yy167:
    yych = *++p;
    if (yych <= 'L') {
      if (yych == 'A')
        goto yy200;
      if (yych <= 'K')
        goto yy31;
      goto yy201;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy31;
        goto yy200;
      } else {
        if (yych == 'l')
          goto yy201;
        goto yy31;
      }
    }
  yy168:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'B')
        goto yy41;
      if (yych <= 'R')
        goto yy31;
      goto yy41;
    } else {
      if (yych <= 'b') {
        if (yych <= 'a')
          goto yy31;
        goto yy41;
      } else {
        if (yych == 's')
          goto yy41;
        goto yy31;
      }
    }
  yy169:
    yych = *++p;
    if (yych == 'Y')
      goto yy198;
    if (yych == 'y')
      goto yy198;
    goto yy31;
  yy170:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy171:
    yych = *++p;
    if (yych == 'T')
      goto yy197;
    if (yych == 't')
      goto yy197;
    goto yy31;
  yy172:
    yych = *++p;
    if (yych <= 'S') {
      if (yych <= 'C') {
        if (yych <= 'B')
          goto yy31;
        goto yy184;
      } else {
        if (yych <= 'Q')
          goto yy31;
        if (yych <= 'R')
          goto yy182;
        goto yy183;
      }
    } else {
      if (yych <= 'q') {
        if (yych == 'c')
          goto yy184;
        goto yy31;
      } else {
        if (yych <= 'r')
          goto yy182;
        if (yych <= 's')
          goto yy183;
        goto yy31;
      }
    }
  yy173:
    yych = *++p;
    if (yych == 'M')
      goto yy181;
    if (yych == 'm')
      goto yy181;
    goto yy31;
  yy174:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'E')
        goto yy178;
      if (yych <= 'O')
        goto yy31;
      goto yy179;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy31;
        goto yy178;
      } else {
        if (yych == 'p')
          goto yy179;
        goto yy31;
      }
    }
  yy175:
    yych = *++p;
    if (yych == 'T')
      goto yy176;
    if (yych != 't')
      goto yy31;
  yy176:
    yych = *++p;
    if (yych == 'T')
      goto yy177;
    if (yych != 't')
      goto yy31;
  yy177:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy178:
    yych = *++p;
    if (yych == 'V')
      goto yy180;
    if (yych == 'v')
      goto yy180;
    goto yy31;
  yy179:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy180:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy181:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy182:
    yych = *++p;
    if (yych == 'V')
      goto yy194;
    if (yych == 'v')
      goto yy194;
    goto yy31;
  yy183:
    yych = *++p;
    if (yych == 'S')
      goto yy191;
    if (yych == 's')
      goto yy191;
    goto yy31;
  yy184:
    yych = *++p;
    if (yych == 'O')
      goto yy185;
    if (yych != 'o')
      goto yy31;
  yy185:
    yych = *++p;
    if (yych == 'N')
      goto yy186;
    if (yych != 'n')
      goto yy31;
  yy186:
    yych = *++p;
    if (yych == 'D')
      goto yy187;
    if (yych != 'd')
      goto yy31;
  yy187:
    yych = *++p;
    if (yych == 'L')
      goto yy188;
    if (yych != 'l')
      goto yy31;
  yy188:
    yych = *++p;
    if (yych == 'I')
      goto yy189;
    if (yych != 'i')
      goto yy31;
  yy189:
    yych = *++p;
    if (yych == 'F')
      goto yy190;
    if (yych != 'f')
      goto yy31;
  yy190:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy191:
    yych = *++p;
    if (yych == 'I')
      goto yy192;
    if (yych != 'i')
      goto yy31;
  yy192:
    yych = *++p;
    if (yych == 'O')
      goto yy193;
    if (yych != 'o')
      goto yy31;
  yy193:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy194:
    yych = *++p;
    if (yych == 'I')
      goto yy195;
    if (yych != 'i')
      goto yy31;
  yy195:
    yych = *++p;
    if (yych == 'C')
      goto yy196;
    if (yych != 'c')
      goto yy31;
  yy196:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy197:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy198:
    yych = *++p;
    if (yych == 'P')
      goto yy199;
    if (yych != 'p')
      goto yy31;
  yy199:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy200:
    yych = *++p;
    if (yych == 'P')
      goto yy204;
    if (yych == 'p')
      goto yy204;
    goto yy31;
  yy201:
    yych = *++p;
    if (yych == 'D')
      goto yy202;
    if (yych != 'd')
      goto yy31;
  yy202:
    yych = *++p;
    if (yych == 'A')
      goto yy203;
    if (yych != 'a')
      goto yy31;
  yy203:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy204:
    yych = *++p;
    if (yych != '.')
      goto yy31;
    yych = *++p;
    if (yych == 'B')
      goto yy206;
    if (yych != 'b')
      goto yy31;
  yy206:
    yych = *++p;
    if (yych == 'E')
      goto yy207;
    if (yych != 'e')
      goto yy31;
  yy207:
    yych = *++p;
    if (yych == 'E')
      goto yy208;
    if (yych != 'e')
      goto yy31;
  yy208:
    yych = *++p;
    if (yych == 'P')
      goto yy209;
    if (yych != 'p')
      goto yy31;
  yy209:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy210:
    yych = *++p;
    if (yych == 'T')
      goto yy211;
    if (yych != 't')
      goto yy31;
  yy211:
    yych = *++p;
    if (yych == 'I')
      goto yy212;
    if (yych != 'i')
      goto yy31;
  yy212:
    yych = *++p;
    if (yych == 'F')
      goto yy213;
    if (yych != 'f')
      goto yy31;
  yy213:
    yych = *++p;
    if (yych == 'Y')
      goto yy41;
    if (yych == 'y')
      goto yy41;
    goto yy31;
  yy214:
    yych = *++p;
    if (yych == 'A')
      goto yy215;
    if (yych != 'a')
      goto yy31;
  yy215:
    yych = *++p;
    if (yych == 'M')
      goto yy41;
    if (yych == 'm')
      goto yy41;
    goto yy31;
  yy216:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'M')
        goto yy228;
      if (yych <= 'R')
        goto yy31;
      goto yy227;
    } else {
      if (yych <= 'm') {
        if (yych <= 'l')
          goto yy31;
        goto yy228;
      } else {
        if (yych == 's')
          goto yy227;
        goto yy31;
      }
    }
  yy217:
    yych = *++p;
    if (yych == 'Y')
      goto yy225;
    if (yych == 'y')
      goto yy225;
    goto yy31;
  yy218:
    yych = *++p;
    if (yych == 'I')
      goto yy41;
    if (yych == 'i')
      goto yy41;
    goto yy31;
  yy219:
    yych = *++p;
    if (yych == 'S')
      goto yy220;
    if (yych != 's')
      goto yy31;
  yy220:
    yych = *++p;
    if (yych <= 'N') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'O')
        goto yy221;
      if (yych != 'o')
        goto yy31;
    }
  yy221:
    yych = *++p;
    if (yych == 'U')
      goto yy222;
    if (yych != 'u')
      goto yy31;
  yy222:
    yych = *++p;
    if (yych == 'R')
      goto yy223;
    if (yych != 'r')
      goto yy31;
  yy223:
    yych = *++p;
    if (yych == 'C')
      goto yy224;
    if (yych != 'c')
      goto yy31;
  yy224:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy225:
    yych = *++p;
    if (yych == 'N')
      goto yy226;
    if (yych != 'n')
      goto yy31;
  yy226:
    yych = *++p;
    if (yych == 'C')
      goto yy41;
    if (yych == 'c')
      goto yy41;
    goto yy31;
  yy227:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy228:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy229:
    yych = *++p;
    if (yych == 'Y')
      goto yy249;
    if (yych == 'y')
      goto yy249;
    goto yy31;
  yy230:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == 'E')
        goto yy246;
      if (yych <= 'N')
        goto yy31;
      goto yy247;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy31;
        goto yy246;
      } else {
        if (yych == 'o')
          goto yy247;
        goto yy31;
      }
    }
  yy231:
    yych = *++p;
    if (yych == 'A')
      goto yy241;
    if (yych == 'a')
      goto yy241;
    goto yy31;
  yy232:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy234;
      if (yych <= 'O')
        goto yy31;
      goto yy235;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy31;
        goto yy234;
      } else {
        if (yych == 'p')
          goto yy235;
        goto yy31;
      }
    }
  yy233:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy234:
    yych = *++p;
    if (yych == 'M')
      goto yy41;
    if (yych == 'm')
      goto yy41;
    goto yy31;
  yy235:
    yych = *++p;
    if (yych == 'A')
      goto yy236;
    if (yych != 'a')
      goto yy31;
  yy236:
    yych = *++p;
    if (yych == 'R')
      goto yy237;
    if (yych != 'r')
      goto yy31;
  yy237:
    yych = *++p;
    if (yych == 'A')
      goto yy238;
    if (yych != 'a')
      goto yy31;
  yy238:
    yych = *++p;
    if (yych == 'Z')
      goto yy239;
    if (yych != 'z')
      goto yy31;
  yy239:
    yych = *++p;
    if (yych == 'Z')
      goto yy240;
    if (yych != 'z')
      goto yy31;
  yy240:
    yych = *++p;
    if (yych == 'I')
      goto yy41;
    if (yych == 'i')
      goto yy41;
    goto yy31;
  yy241:
    yych = *++p;
    if (yych == 'T')
      goto yy242;
    if (yych != 't')
      goto yy31;
  yy242:
    yych = *++p;
    if (yych == 'F')
      goto yy243;
    if (yych != 'f')
      goto yy31;
  yy243:
    yych = *++p;
    if (yych == 'O')
      goto yy244;
    if (yych != 'o')
      goto yy31;
  yy244:
    yych = *++p;
    if (yych == 'R')
      goto yy245;
    if (yych != 'r')
      goto yy31;
  yy245:
    yych = *++p;
    if (yych == 'M')
      goto yy41;
    if (yych == 'm')
      goto yy41;
    goto yy31;
  yy246:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy247:
    yych = *++p;
    if (yych == 'X')
      goto yy248;
    if (yych != 'x')
      goto yy31;
  yy248:
    yych = *++p;
    if (yych == 'Y')
      goto yy41;
    if (yych == 'y')
      goto yy41;
    goto yy31;
  yy249:
    yych = *++p;
    if (yych == 'C')
      goto yy41;
    if (yych == 'c')
      goto yy41;
    goto yy31;
  yy250:
    yych = *++p;
    if (yych == 'D')
      goto yy41;
    if (yych == 'd')
      goto yy41;
    goto yy31;
  yy251:
    yych = *++p;
    if (yych == 'A')
      goto yy252;
    if (yych != 'a')
      goto yy31;
  yy252:
    yych = *++p;
    if (yych == 'Q')
      goto yy253;
    if (yych != 'q')
      goto yy31;
  yy253:
    yych = *++p;
    if (yych == 'U')
      goto yy254;
    if (yych != 'u')
      goto yy31;
  yy254:
    yych = *++p;
    if (yych == 'E')
      goto yy255;
    if (yych != 'e')
      goto yy31;
  yy255:
    yych = *++p;
    if (yych == 'L')
      goto yy256;
    if (yych != 'l')
      goto yy31;
  yy256:
    yych = *++p;
    if (yych == 'O')
      goto yy257;
    if (yych != 'o')
      goto yy31;
  yy257:
    yych = *++p;
    if (yych == 'C')
      goto yy258;
    if (yych != 'c')
      goto yy31;
  yy258:
    yych = *++p;
    if (yych == 'K')
      goto yy259;
    if (yych != 'k')
      goto yy31;
  yy259:
    yych = *++p;
    if (yych == 'T')
      goto yy260;
    if (yych != 't')
      goto yy31;
  yy260:
    yych = *++p;
    if (yych == 'O')
      goto yy261;
    if (yych != 'o')
      goto yy31;
  yy261:
    yych = *++p;
    if (yych == 'K')
      goto yy262;
    if (yych != 'k')
      goto yy31;
  yy262:
    yych = *++p;
    if (yych == 'E')
      goto yy263;
    if (yych != 'e')
      goto yy31;
  yy263:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy264:
    yych = *++p;
    if (yych == 'T')
      goto yy271;
    if (yych == 't')
      goto yy271;
    goto yy31;
  yy265:
    yych = *++p;
    if (yych == 'T')
      goto yy270;
    if (yych == 't')
      goto yy270;
    goto yy31;
  yy266:
    yych = *++p;
    if (yych <= 'G') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'H')
        goto yy41;
      if (yych == 'h')
        goto yy41;
      goto yy31;
    }
  yy267:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy268:
    yych = *++p;
    if (yych == 'W')
      goto yy269;
    if (yych != 'w')
      goto yy31;
  yy269:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy270:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy271:
    yych = *++p;
    if (yych == 'E')
      goto yy272;
    if (yych != 'e')
      goto yy31;
  yy272:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy273:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy274:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'M')
        goto yy305;
      if (yych <= 'O')
        goto yy31;
      goto yy304;
    } else {
      if (yych <= 'm') {
        if (yych <= 'l')
          goto yy31;
        goto yy305;
      } else {
        if (yych == 'p')
          goto yy304;
        goto yy31;
      }
    }
  yy275:
    yych = *++p;
    if (yych <= 'Q') {
      if (yych <= '-') {
        if (yych <= ',')
          goto yy31;
        goto yy297;
      } else {
        if (yych == 'N')
          goto yy298;
        goto yy31;
      }
    } else {
      if (yych <= 'n') {
        if (yych <= 'R')
          goto yy296;
        if (yych <= 'm')
          goto yy31;
        goto yy298;
      } else {
        if (yych == 'r')
          goto yy296;
        goto yy31;
      }
    }
  yy276:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy277:
    yych = *++p;
    if (yych == 'S')
      goto yy292;
    if (yych == 's')
      goto yy292;
    goto yy31;
  yy278:
    yych = *++p;
    switch (yych) {
    case 'G':
    case 'g':
      goto yy283;
    case 'I':
    case 'i':
      goto yy282;
    case 'P':
    case 'p':
      goto yy284;
    case 'R':
    case 'r':
      goto yy285;
    default:
      goto yy31;
    }
  yy279:
    yych = *++p;
    if (yych == 'Q')
      goto yy281;
    if (yych == 'q')
      goto yy281;
    goto yy31;
  yy280:
    yych = *++p;
    if (yych == 'D')
      goto yy41;
    if (yych == 'd')
      goto yy41;
    goto yy31;
  yy281:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy282:
    yych = *++p;
    if (yych == 'L')
      goto yy290;
    if (yych == 'l')
      goto yy290;
    goto yy31;
  yy283:
    yych = *++p;
    if (yych == 'N')
      goto yy288;
    if (yych == 'n')
      goto yy288;
    goto yy31;
  yy284:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy285:
    yych = *++p;
    if (yych == 'K')
      goto yy286;
    if (yych != 'k')
      goto yy31;
  yy286:
    yych = *++p;
    if (yych == 'E')
      goto yy287;
    if (yych != 'e')
      goto yy31;
  yy287:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy288:
    yych = *++p;
    if (yych == 'E')
      goto yy289;
    if (yych != 'e')
      goto yy31;
  yy289:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy290:
    yych = *++p;
    if (yych == 'T')
      goto yy291;
    if (yych != 't')
      goto yy31;
  yy291:
    yych = *++p;
    if (yych == 'O')
      goto yy41;
    if (yych == 'o')
      goto yy41;
    goto yy31;
  yy292:
    yych = *++p;
    if (yych == 'S')
      goto yy293;
    if (yych != 's')
      goto yy31;
  yy293:
    yych = *++p;
    if (yych == 'A')
      goto yy294;
    if (yych != 'a')
      goto yy31;
  yy294:
    yych = *++p;
    if (yych == 'G')
      goto yy295;
    if (yych != 'g')
      goto yy31;
  yy295:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy296:
    yych = *++p;
    if (yych == 'P')
      goto yy303;
    if (yych == 'p')
      goto yy303;
    goto yy31;
  yy297:
    yych = *++p;
    if (yych == 'H')
      goto yy300;
    if (yych == 'h')
      goto yy300;
    goto yy31;
  yy298:
    yych = *++p;
    if (yych == 'I')
      goto yy299;
    if (yych != 'i')
      goto yy31;
  yy299:
    yych = *++p;
    if (yych == 'M')
      goto yy41;
    if (yych == 'm')
      goto yy41;
    goto yy31;
  yy300:
    yych = *++p;
    if (yych == 'E')
      goto yy301;
    if (yych != 'e')
      goto yy31;
  yy301:
    yych = *++p;
    if (yych == 'L')
      goto yy302;
    if (yych != 'l')
      goto yy31;
  yy302:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy303:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy304:
    yych = *++p;
    if (yych == 'D')
      goto yy308;
    if (yych == 'd')
      goto yy308;
    goto yy31;
  yy305:
    yych = *++p;
    if (yych == 'B')
      goto yy306;
    if (yych != 'b')
      goto yy31;
  yy306:
    yych = *++p;
    if (yych == 'L')
      goto yy307;
    if (yych != 'l')
      goto yy31;
  yy307:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy308:
    yych = *++p;
    if (yych == 'A')
      goto yy309;
    if (yych != 'a')
      goto yy31;
  yy309:
    yych = *++p;
    if (yych == 'T')
      goto yy310;
    if (yych != 't')
      goto yy31;
  yy310:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy311:
    yych = *++p;
    if (yych == 'A')
      goto yy316;
    if (yych == 'a')
      goto yy316;
    goto yy31;
  yy312:
    yych = *++p;
    if (yych == 'S')
      goto yy313;
    if (yych != 's')
      goto yy31;
  yy313:
    yych = *++p;
    if (yych == 'T')
      goto yy314;
    if (yych != 't')
      goto yy31;
  yy314:
    yych = *++p;
    if (yych == 'F')
      goto yy315;
    if (yych != 'f')
      goto yy31;
  yy315:
    yych = *++p;
    if (yych == 'M')
      goto yy41;
    if (yych == 'm')
      goto yy41;
    goto yy31;
  yy316:
    yych = *++p;
    if (yych == 'P')
      goto yy317;
    if (yych != 'p')
      goto yy31;
  yy317:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy318:
    yych = *++p;
    if (yych == 'M')
      goto yy341;
    if (yych == 'm')
      goto yy341;
    goto yy31;
  yy319:
    yych = *++p;
    if (yych <= 'I') {
      if (yych == 'C')
        goto yy330;
      if (yych <= 'H')
        goto yy31;
      goto yy329;
    } else {
      if (yych <= 'c') {
        if (yych <= 'b')
          goto yy31;
        goto yy330;
      } else {
        if (yych == 'i')
          goto yy329;
        goto yy31;
      }
    }
  yy320:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'N')
        goto yy41;
      if (yych <= 'O')
        goto yy31;
      goto yy41;
    } else {
      if (yych <= 'n') {
        if (yych <= 'm')
          goto yy31;
        goto yy41;
      } else {
        if (yych == 'p')
          goto yy41;
        goto yy31;
      }
    }
  yy321:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == 'A')
        goto yy327;
      if (yych <= 'N')
        goto yy31;
      goto yy328;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy31;
        goto yy327;
      } else {
        if (yych == 'o')
          goto yy328;
        goto yy31;
      }
    }
  yy322:
    yych = *++p;
    if (yych == 'F')
      goto yy326;
    if (yych == 'f')
      goto yy326;
    goto yy31;
  yy323:
    yych = *++p;
    if (yych <= '@') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'A')
        goto yy325;
      if (yych == 'a')
        goto yy325;
      goto yy31;
    }
  yy324:
    yych = *++p;
    if (yych == 'X')
      goto yy41;
    if (yych == 'x')
      goto yy41;
    goto yy31;
  yy325:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy326:
    yych = *++p;
    if (yych == 'O')
      goto yy41;
    if (yych == 'o')
      goto yy41;
    goto yy31;
  yy327:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy328:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy329:
    yych = *++p;
    if (yych == 'S')
      goto yy331;
    if (yych == 's')
      goto yy331;
    goto yy31;
  yy330:
    yych = *++p;
    if (yych <= ':') {
      if (yych == '6')
        goto yy41;
      if (yych <= '9')
        goto yy31;
      goto yy42;
    } else {
      if (yych <= 'S') {
        if (yych <= 'R')
          goto yy31;
        goto yy41;
      } else {
        if (yych == 's')
          goto yy41;
        goto yy31;
      }
    }
  yy331:
    yych = *++p;
    if (yych == '.')
      goto yy332;
    if (yych == ':')
      goto yy42;
    goto yy31;
  yy332:
    yych = *++p;
    if (yych <= 'X') {
      if (yych <= 'K') {
        if (yych == 'B')
          goto yy335;
        goto yy31;
      } else {
        if (yych <= 'L')
          goto yy333;
        if (yych <= 'W')
          goto yy31;
        goto yy334;
      }
    } else {
      if (yych <= 'k') {
        if (yych == 'b')
          goto yy335;
        goto yy31;
      } else {
        if (yych <= 'l')
          goto yy333;
        if (yych == 'x')
          goto yy334;
        goto yy31;
      }
    }
  yy333:
    yych = *++p;
    if (yych == 'W')
      goto yy340;
    if (yych == 'w')
      goto yy340;
    goto yy31;
  yy334:
    yych = *++p;
    if (yych == 'P')
      goto yy338;
    if (yych == 'p')
      goto yy338;
    goto yy31;
  yy335:
    yych = *++p;
    if (yych == 'E')
      goto yy336;
    if (yych != 'e')
      goto yy31;
  yy336:
    yych = *++p;
    if (yych == 'E')
      goto yy337;
    if (yych != 'e')
      goto yy31;
  yy337:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy338:
    yych = *++p;
    if (yych == 'C')
      goto yy339;
    if (yych != 'c')
      goto yy31;
  yy339:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy340:
    yych = *++p;
    if (yych == 'Z')
      goto yy41;
    if (yych == 'z')
      goto yy41;
    goto yy31;
  yy341:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy342:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy343:
    yych = *++p;
    if (yych == 'T')
      goto yy346;
    if (yych == 't')
      goto yy346;
    goto yy31;
  yy344:
    yych = *++p;
    if (yych != '2')
      goto yy31;
    yych = *++p;
    if (yych == '3')
      goto yy41;
    goto yy31;
  yy346:
    yych = *++p;
    if (yych == 'P')
      goto yy347;
    if (yych != 'p')
      goto yy31;
  yy347:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy348:
    yych = *++p;
    if (yych == 'A')
      goto yy364;
    if (yych == 'a')
      goto yy364;
    goto yy31;
  yy349:
    yych = *++p;
    if (yych <= 'Z') {
      if (yych == 'T')
        goto yy41;
      if (yych <= 'Y')
        goto yy31;
      goto yy355;
    } else {
      if (yych <= 't') {
        if (yych <= 's')
          goto yy31;
        goto yy41;
      } else {
        if (yych == 'z')
          goto yy355;
        goto yy31;
      }
    }
  yy350:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'P')
        goto yy352;
      if (yych == 'p')
        goto yy352;
      goto yy31;
    }
  yy351:
    yych = *++p;
    if (yych == 'O')
      goto yy41;
    if (yych == 'o')
      goto yy41;
    goto yy31;
  yy352:
    yych = *++p;
    if (yych == 'H')
      goto yy353;
    if (yych != 'h')
      goto yy31;
  yy353:
    yych = *++p;
    if (yych == 'E')
      goto yy354;
    if (yych != 'e')
      goto yy31;
  yy354:
    yych = *++p;
    if (yych == 'R')
      goto yy41;
    if (yych == 'r')
      goto yy41;
    goto yy31;
  yy355:
    yych = *++p;
    if (yych == 'M')
      goto yy356;
    if (yych != 'm')
      goto yy31;
  yy356:
    yych = *++p;
    if (yych == 'O')
      goto yy357;
    if (yych != 'o')
      goto yy31;
  yy357:
    yych = *++p;
    if (yych == 'P')
      goto yy358;
    if (yych != 'p')
      goto yy31;
  yy358:
    yych = *++p;
    if (yych == 'R')
      goto yy359;
    if (yych != 'r')
      goto yy31;
  yy359:
    yych = *++p;
    if (yych == 'O')
      goto yy360;
    if (yych != 'o')
      goto yy31;
  yy360:
    yych = *++p;
    if (yych == 'J')
      goto yy361;
    if (yych != 'j')
      goto yy31;
  yy361:
    yych = *++p;
    if (yych == 'E')
      goto yy362;
    if (yych != 'e')
      goto yy31;
  yy362:
    yych = *++p;
    if (yych == 'C')
      goto yy363;
    if (yych != 'c')
      goto yy31;
  yy363:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy364:
    yych = *++p;
    if (yych == 'L')
      goto yy365;
    if (yych != 'l')
      goto yy31;
  yy365:
    yych = *++p;
    if (yych == 'K')
      goto yy41;
    if (yych == 'k')
      goto yy41;
    goto yy31;
  yy366:
    yych = *++p;
    if (yych <= 'S') {
      if (yych <= 'M') {
        if (yych == 'L')
          goto yy376;
        goto yy31;
      } else {
        if (yych <= 'N')
          goto yy377;
        if (yych <= 'R')
          goto yy31;
        goto yy378;
      }
    } else {
      if (yych <= 'm') {
        if (yych == 'l')
          goto yy376;
        goto yy31;
      } else {
        if (yych <= 'n')
          goto yy377;
        if (yych == 's')
          goto yy378;
        goto yy31;
      }
    }
  yy367:
    yych = *++p;
    if (yych == 'E')
      goto yy375;
    if (yych == 'e')
      goto yy375;
    goto yy31;
  yy368:
    yych = *++p;
    if (yych == 'C')
      goto yy370;
    if (yych == 'c')
      goto yy370;
    goto yy31;
  yy369:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy370:
    yych = *++p;
    if (yych == 'E')
      goto yy371;
    if (yych != 'e')
      goto yy31;
  yy371:
    yych = *++p;
    if (yych == 'T')
      goto yy372;
    if (yych != 't')
      goto yy31;
  yy372:
    yych = *++p;
    if (yych == 'I')
      goto yy373;
    if (yych != 'i')
      goto yy31;
  yy373:
    yych = *++p;
    if (yych == 'M')
      goto yy374;
    if (yych != 'm')
      goto yy31;
  yy374:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy375:
    yych = *++p;
    if (yych == 'D')
      goto yy41;
    if (yych == 'd')
      goto yy41;
    goto yy31;
  yy376:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy377:
    yych = *++p;
    if (yych == 'G')
      goto yy379;
    if (yych == 'g')
      goto yy379;
    goto yy31;
  yy378:
    yych = *++p;
    if (yych == 'H')
      goto yy41;
    if (yych == 'h')
      goto yy41;
    goto yy31;
  yy379:
    yych = *++p;
    if (yych == 'E')
      goto yy380;
    if (yych != 'e')
      goto yy31;
  yy380:
    yych = *++p;
    if (yych == 'R')
      goto yy41;
    if (yych == 'r')
      goto yy41;
    goto yy31;
  yy381:
    yych = *++p;
    if (yych == 'T')
      goto yy399;
    if (yych == 't')
      goto yy399;
    goto yy31;
  yy382:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy383:
    yych = *++p;
    if (yych == 'M')
      goto yy41;
    if (yych == 'm')
      goto yy41;
    goto yy31;
  yy384:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'P')
        goto yy41;
      if (yych <= 'R')
        goto yy31;
      goto yy41;
    } else {
      if (yych <= 'p') {
        if (yych <= 'o')
          goto yy31;
        goto yy41;
      } else {
        if (yych == 's')
          goto yy41;
        goto yy31;
      }
    }
  yy385:
    yych = *++p;
    if (yych == 'I')
      goto yy393;
    if (yych == 'i')
      goto yy393;
    goto yy31;
  yy386:
    yych = *++p;
    if (yych == 'A')
      goto yy392;
    if (yych == 'a')
      goto yy392;
    goto yy31;
  yy387:
    yych = *++p;
    if (yych == 'O')
      goto yy390;
    if (yych == 'o')
      goto yy390;
    goto yy31;
  yy388:
    yych = *++p;
    if (yych == 'A')
      goto yy389;
    if (yych != 'a')
      goto yy31;
  yy389:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy42;
      goto yy31;
    } else {
      if (yych <= 'S')
        goto yy41;
      if (yych == 's')
        goto yy41;
      goto yy31;
    }
  yy390:
    yych = *++p;
    if (yych == 'U')
      goto yy391;
    if (yych != 'u')
      goto yy31;
  yy391:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy392:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy393:
    yych = *++p;
    if (yych == 'U')
      goto yy394;
    if (yych != 'u')
      goto yy31;
  yy394:
    yych = *++p;
    if (yych == 'M')
      goto yy395;
    if (yych != 'm')
      goto yy31;
  yy395:
    yych = *++p;
    if (yych == 'X')
      goto yy396;
    if (yych != 'x')
      goto yy31;
  yy396:
    yych = *++p;
    if (yych == 'T')
      goto yy397;
    if (yych != 't')
      goto yy31;
  yy397:
    yych = *++p;
    if (yych == 'R')
      goto yy398;
    if (yych != 'r')
      goto yy31;
  yy398:
    yych = *++p;
    if (yych == 'A')
      goto yy41;
    if (yych == 'a')
      goto yy41;
    goto yy31;
  yy399:
    yych = *++p;
    if (yych == 'A')
      goto yy400;
    if (yych != 'a')
      goto yy31;
  yy400:
    yych = *++p;
    if (yych == 'C')
      goto yy401;
    if (yych != 'c')
      goto yy31;
  yy401:
    yych = *++p;
    if (yych == 'H')
      goto yy402;
    if (yych != 'h')
      goto yy31;
  yy402:
    yych = *++p;
    if (yych == 'M')
      goto yy403;
    if (yych != 'm')
      goto yy31;
  yy403:
    yych = *++p;
    if (yych == 'E')
      goto yy404;
    if (yych != 'e')
      goto yy31;
  yy404:
    yych = *++p;
    if (yych == 'N')
      goto yy405;
    if (yych != 'n')
      goto yy31;
  yy405:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy406:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy407:
    yych = *++p;
    if (yych <= 'V') {
      if (yych == 'R')
        goto yy41;
      if (yych <= 'U')
        goto yy31;
    } else {
      if (yych <= 'r') {
        if (yych <= 'q')
          goto yy31;
        goto yy41;
      } else {
        if (yych != 'v')
          goto yy31;
      }
    }
    yych = *++p;
    if (yych == 'A')
      goto yy409;
    if (yych != 'a')
      goto yy31;
  yy409:
    yych = *++p;
    if (yych == 'S')
      goto yy410;
    if (yych != 's')
      goto yy31;
  yy410:
    yych = *++p;
    if (yych == 'C')
      goto yy411;
    if (yych != 'c')
      goto yy31;
  yy411:
    yych = *++p;
    if (yych == 'R')
      goto yy412;
    if (yych != 'r')
      goto yy31;
  yy412:
    yych = *++p;
    if (yych == 'I')
      goto yy413;
    if (yych != 'i')
      goto yy31;
  yy413:
    yych = *++p;
    if (yych == 'P')
      goto yy414;
    if (yych != 'p')
      goto yy31;
  yy414:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy415:
    yych = *++p;
    if (yych == 'B')
      goto yy41;
    if (yych == 'b')
      goto yy41;
    goto yy31;
  yy416:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy417:
    yych = *++p;
    if (yych == 'N')
      goto yy424;
    if (yych == 'n')
      goto yy424;
    goto yy31;
  yy418:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy419:
    yych = *++p;
    if (yych == 'C')
      goto yy423;
    if (yych == 'c')
      goto yy423;
    goto yy31;
  yy420:
    yych = *++p;
    if (yych <= 'V') {
      if (yych == 'T')
        goto yy422;
      if (yych <= 'U')
        goto yy31;
      goto yy41;
    } else {
      if (yych <= 't') {
        if (yych <= 's')
          goto yy31;
        goto yy422;
      } else {
        if (yych == 'v')
          goto yy41;
        goto yy31;
      }
    }
  yy421:
    yych = *++p;
    if (yych == 'I')
      goto yy41;
    if (yych == 'i')
      goto yy41;
    goto yy31;
  yy422:
    yych = *++p;
    if (yych == 'A')
      goto yy41;
    if (yych == 'a')
      goto yy41;
    goto yy31;
  yy423:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy424:
    yych = *++p;
    if (yych == 'A')
      goto yy425;
    if (yych != 'a')
      goto yy31;
  yy425:
    yych = *++p;
    if (yych != '-')
      goto yy31;
    yych = *++p;
    if (yych == 'P')
      goto yy427;
    if (yych != 'p')
      goto yy31;
  yy427:
    yych = *++p;
    if (yych == 'L')
      goto yy428;
    if (yych != 'l')
      goto yy31;
  yy428:
    yych = *++p;
    if (yych == 'A')
      goto yy429;
    if (yych != 'a')
      goto yy31;
  yy429:
    yych = *++p;
    if (yych == 'Y')
      goto yy430;
    if (yych != 'y')
      goto yy31;
  yy430:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'C')
        goto yy431;
      if (yych <= 'R')
        goto yy31;
      goto yy432;
    } else {
      if (yych <= 'c') {
        if (yych <= 'b')
          goto yy31;
      } else {
        if (yych == 's')
          goto yy432;
        goto yy31;
      }
    }
  yy431:
    yych = *++p;
    if (yych == 'O')
      goto yy437;
    if (yych == 'o')
      goto yy437;
    goto yy31;
  yy432:
    yych = *++p;
    if (yych == 'I')
      goto yy433;
    if (yych != 'i')
      goto yy31;
  yy433:
    yych = *++p;
    if (yych == 'N')
      goto yy434;
    if (yych != 'n')
      goto yy31;
  yy434:
    yych = *++p;
    if (yych == 'G')
      goto yy435;
    if (yych != 'g')
      goto yy31;
  yy435:
    yych = *++p;
    if (yych == 'L')
      goto yy436;
    if (yych != 'l')
      goto yy31;
  yy436:
    yych = *++p;
    if (yych == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  yy437:
    yych = *++p;
    if (yych == 'N')
      goto yy438;
    if (yych != 'n')
      goto yy31;
  yy438:
    yych = *++p;
    if (yych == 'T')
      goto yy439;
    if (yych != 't')
      goto yy31;
  yy439:
    yych = *++p;
    if (yych == 'A')
      goto yy440;
    if (yych != 'a')
      goto yy31;
  yy440:
    yych = *++p;
    if (yych == 'I')
      goto yy441;
    if (yych != 'i')
      goto yy31;
  yy441:
    yych = *++p;
    if (yych == 'N')
      goto yy442;
    if (yych != 'n')
      goto yy31;
  yy442:
    yych = *++p;
    if (yych == 'E')
      goto yy443;
    if (yych != 'e')
      goto yy31;
  yy443:
    yych = *++p;
    if (yych == 'R')
      goto yy41;
    if (yych == 'r')
      goto yy41;
    goto yy31;
  yy444:
    yych = *++p;
    if (yych == 'S')
      goto yy41;
    if (yych == 's')
      goto yy41;
    goto yy31;
  yy445:
    yych = *++p;
    if (yych <= 'N') {
      if (yych <= 'A') {
        if (yych <= '@')
          goto yy31;
        goto yy467;
      } else {
        if (yych <= 'L')
          goto yy31;
        if (yych <= 'M')
          goto yy468;
        goto yy469;
      }
    } else {
      if (yych <= 'l') {
        if (yych == 'a')
          goto yy467;
        goto yy31;
      } else {
        if (yych <= 'm')
          goto yy468;
        if (yych <= 'n')
          goto yy469;
        goto yy31;
      }
    }
  yy446:
    yych = *++p;
    if (yych == 'R')
      goto yy454;
    if (yych == 'r')
      goto yy454;
    goto yy31;
  yy447:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy451;
      if (yych <= 'O')
        goto yy31;
      goto yy41;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy31;
        goto yy451;
      } else {
        if (yych == 'p')
          goto yy41;
        goto yy31;
      }
    }
  yy448:
    yych = *++p;
    if (yych == 'I')
      goto yy450;
    if (yych == 'i')
      goto yy450;
    goto yy31;
  yy449:
    yych = *++p;
    if (yych == 'D')
      goto yy41;
    if (yych == 'd')
      goto yy41;
    goto yy31;
  yy450:
    yych = *++p;
    if (yych == 'D')
      goto yy41;
    if (yych == 'd')
      goto yy41;
    goto yy31;
  yy451:
    yych = *++p;
    if (yych == 'L')
      goto yy452;
    if (yych != 'l')
      goto yy31;
  yy452:
    yych = *++p;
    if (yych == 'T')
      goto yy453;
    if (yych != 't')
      goto yy31;
  yy453:
    yych = *++p;
    if (yych == 'O')
      goto yy41;
    if (yych == 'o')
      goto yy41;
    goto yy31;
  yy454:
    yych = *++p;
    if (yych == 'O')
      goto yy455;
    if (yych != 'o')
      goto yy31;
  yy455:
    yych = *++p;
    if (yych == 'M')
      goto yy456;
    if (yych != 'm')
      goto yy31;
  yy456:
    yych = *++p;
    if (yych == 'E')
      goto yy457;
    if (yych != 'e')
      goto yy31;
  yy457:
    yych = *++p;
    if (yych == '-')
      goto yy458;
    if (yych == ':')
      goto yy42;
    goto yy31;
  yy458:
    yych = *++p;
    if (yych == 'E')
      goto yy459;
    if (yych != 'e')
      goto yy31;
  yy459:
    yych = *++p;
    if (yych == 'X')
      goto yy460;
    if (yych != 'x')
      goto yy31;
  yy460:
    yych = *++p;
    if (yych == 'T')
      goto yy461;
    if (yych != 't')
      goto yy31;
  yy461:
    yych = *++p;
    if (yych == 'E')
      goto yy462;
    if (yych != 'e')
      goto yy31;
  yy462:
    yych = *++p;
    if (yych == 'N')
      goto yy463;
    if (yych != 'n')
      goto yy31;
  yy463:
    yych = *++p;
    if (yych == 'S')
      goto yy464;
    if (yych != 's')
      goto yy31;
  yy464:
    yych = *++p;
    if (yych == 'I')
      goto yy465;
    if (yych != 'i')
      goto yy31;
  yy465:
    yych = *++p;
    if (yych == 'O')
      goto yy466;
    if (yych != 'o')
      goto yy31;
  yy466:
    yych = *++p;
    if (yych == 'N')
      goto yy41;
    if (yych == 'n')
      goto yy41;
    goto yy31;
  yy467:
    yych = *++p;
    if (yych == 'P')
      goto yy41;
    if (yych == 'p')
      goto yy41;
    goto yy31;
  yy468:
    yych = *++p;
    if (yych == '-')
      goto yy473;
    goto yy31;
  yy469:
    yych = *++p;
    if (yych == 'T')
      goto yy470;
    if (yych != 't')
      goto yy31;
  yy470:
    yych = *++p;
    if (yych == 'E')
      goto yy471;
    if (yych != 'e')
      goto yy31;
  yy471:
    yych = *++p;
    if (yych == 'N')
      goto yy472;
    if (yych != 'n')
      goto yy31;
  yy472:
    yych = *++p;
    if (yych == 'T')
      goto yy41;
    if (yych == 't')
      goto yy41;
    goto yy31;
  yy473:
    yych = *++p;
    if (yych == 'E')
      goto yy474;
    if (yych != 'e')
      goto yy31;
  yy474:
    yych = *++p;
    if (yych == 'V')
      goto yy475;
    if (yych != 'v')
      goto yy31;
  yy475:
    yych = *++p;
    if (yych == 'E')
      goto yy476;
    if (yych != 'e')
      goto yy31;
  yy476:
    yych = *++p;
    if (yych == 'N')
      goto yy477;
    if (yych != 'n')
      goto yy31;
  yy477:
    yych = *++p;
    if (yych == 'T')
      goto yy478;
    if (yych != 't')
      goto yy31;
  yy478:
    yych = *++p;
    if (yych == 'B')
      goto yy479;
    if (yych != 'b')
      goto yy31;
  yy479:
    yych = *++p;
    if (yych == 'R')
      goto yy480;
    if (yych != 'r')
      goto yy31;
  yy480:
    yych = *++p;
    if (yych == 'I')
      goto yy481;
    if (yych != 'i')
      goto yy31;
  yy481:
    yych = *++p;
    if (yych == 'T')
      goto yy482;
    if (yych != 't')
      goto yy31;
  yy482:
    yych = *++p;
    if (yych == 'E')
      goto yy483;
    if (yych != 'e')
      goto yy31;
  yy483:
    yych = *++p;
    if (yych != '-')
      goto yy31;
    yych = *++p;
    if (yych == 'A')
      goto yy485;
    if (yych != 'a')
      goto yy31;
  yy485:
    yych = *++p;
    if (yych == 'T')
      goto yy486;
    if (yych != 't')
      goto yy31;
  yy486:
    yych = *++p;
    if (yych == 'T')
      goto yy487;
    if (yych != 't')
      goto yy31;
  yy487:
    yych = *++p;
    if (yych == 'E')
      goto yy488;
    if (yych != 'e')
      goto yy31;
  yy488:
    yych = *++p;
    if (yych == 'N')
      goto yy489;
    if (yych != 'n')
      goto yy31;
  yy489:
    yych = *++p;
    if (yych == 'D')
      goto yy490;
    if (yych != 'd')
      goto yy31;
  yy490:
    yych = *++p;
    if (yych == 'E')
      goto yy491;
    if (yych != 'e')
      goto yy31;
  yy491:
    ++p;
    if ((yych = *p) == 'E')
      goto yy41;
    if (yych == 'e')
      goto yy41;
    goto yy31;
  }
}

// Try to match URI autolink after first <, returning number of chars matched.
bufsize_t _scan_autolink_uri(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 0,   128, 0,   128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 'c') {
      if (yych <= 'M') {
        if (yych <= 'E') {
          if (yych <= 'A') {
            if (yych == '\n')
              goto yy494;
            if (yych <= '@')
              goto yy521;
            goto yy498;
          } else {
            if (yych <= 'B')
              goto yy516;
            if (yych <= 'C')
              goto yy495;
            if (yych <= 'D')
              goto yy496;
            goto yy517;
          }
        } else {
          if (yych <= 'I') {
            if (yych <= 'F')
              goto yy499;
            if (yych <= 'G')
              goto yy500;
            if (yych <= 'H')
              goto yy501;
            goto yy502;
          } else {
            if (yych <= 'J')
              goto yy497;
            if (yych <= 'K')
              goto yy518;
            if (yych <= 'L')
              goto yy503;
            goto yy504;
          }
        }
      } else {
        if (yych <= 'U') {
          if (yych <= 'Q') {
            if (yych <= 'N')
              goto yy505;
            if (yych <= 'O')
              goto yy506;
            if (yych <= 'P')
              goto yy507;
            goto yy519;
          } else {
            if (yych <= 'R')
              goto yy508;
            if (yych <= 'S')
              goto yy509;
            if (yych <= 'T')
              goto yy510;
            goto yy511;
          }
        } else {
          if (yych <= 'Y') {
            if (yych <= 'V')
              goto yy512;
            if (yych <= 'W')
              goto yy513;
            if (yych <= 'X')
              goto yy514;
            goto yy520;
          } else {
            if (yych <= '`') {
              if (yych <= 'Z')
                goto yy515;
              goto yy521;
            } else {
              if (yych <= 'a')
                goto yy498;
              if (yych <= 'b')
                goto yy516;
              goto yy495;
            }
          }
        }
      }
    } else {
      if (yych <= 't') {
        if (yych <= 'k') {
          if (yych <= 'g') {
            if (yych <= 'd')
              goto yy496;
            if (yych <= 'e')
              goto yy517;
            if (yych <= 'f')
              goto yy499;
            goto yy500;
          } else {
            if (yych <= 'h')
              goto yy501;
            if (yych <= 'i')
              goto yy502;
            if (yych <= 'j')
              goto yy497;
            goto yy518;
          }
        } else {
          if (yych <= 'o') {
            if (yych <= 'l')
              goto yy503;
            if (yych <= 'm')
              goto yy504;
            if (yych <= 'n')
              goto yy505;
            goto yy506;
          } else {
            if (yych <= 'q') {
              if (yych <= 'p')
                goto yy507;
              goto yy519;
            } else {
              if (yych <= 'r')
                goto yy508;
              if (yych <= 's')
                goto yy509;
              goto yy510;
            }
          }
        }
      } else {
        if (yych <= 0xC1) {
          if (yych <= 'x') {
            if (yych <= 'u')
              goto yy511;
            if (yych <= 'v')
              goto yy512;
            if (yych <= 'w')
              goto yy513;
            goto yy514;
          } else {
            if (yych <= 'y')
              goto yy520;
            if (yych <= 'z')
              goto yy515;
            if (yych <= 0x7F)
              goto yy521;
          }
        } else {
          if (yych <= 0xED) {
            if (yych <= 0xDF)
              goto yy522;
            if (yych <= 0xE0)
              goto yy524;
            if (yych <= 0xEC)
              goto yy525;
            goto yy529;
          } else {
            if (yych <= 0xF0) {
              if (yych <= 0xEF)
                goto yy525;
              goto yy526;
            } else {
              if (yych <= 0xF3)
                goto yy527;
              if (yych <= 0xF4)
                goto yy528;
            }
          }
        }
      }
    }
  yy494 : { return 0; }
  yy495:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy948;
    case 'H':
    case 'h':
      goto yy947;
    case 'I':
    case 'i':
      goto yy950;
    case 'O':
    case 'o':
      goto yy946;
    case 'R':
    case 'r':
      goto yy949;
    case 'V':
    case 'v':
      goto yy945;
    default:
      goto yy494;
    }
  yy496:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy921;
    case 'I':
    case 'i':
      goto yy920;
    case 'L':
    case 'l':
      goto yy918;
    case 'N':
    case 'n':
      goto yy919;
    case 'O':
    case 'o':
      goto yy922;
    case 'T':
    case 't':
      goto yy917;
    case 'V':
    case 'v':
      goto yy916;
    default:
      goto yy494;
    }
  yy497:
    yych = *(marker = ++p);
    if (yych <= 'M') {
      if (yych == 'A')
        goto yy908;
      if (yych <= 'L')
        goto yy494;
      goto yy907;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy494;
        goto yy908;
      } else {
        if (yych == 'm')
          goto yy907;
        goto yy494;
      }
    }
  yy498:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy889;
    case 'B':
    case 'b':
      goto yy888;
    case 'C':
    case 'c':
      goto yy887;
    case 'D':
    case 'd':
      goto yy886;
    case 'F':
    case 'f':
      goto yy885;
    case 'I':
    case 'i':
      goto yy884;
    case 'P':
    case 'p':
      goto yy883;
    case 'T':
    case 't':
      goto yy882;
    case 'W':
    case 'w':
      goto yy533;
    default:
      goto yy494;
    }
  yy499:
    yych = *(marker = ++p);
    if (yych <= 'T') {
      if (yych <= 'E') {
        if (yych == 'A')
          goto yy869;
        if (yych <= 'D')
          goto yy494;
        goto yy868;
      } else {
        if (yych == 'I')
          goto yy867;
        if (yych <= 'S')
          goto yy494;
        goto yy870;
      }
    } else {
      if (yych <= 'e') {
        if (yych == 'a')
          goto yy869;
        if (yych <= 'd')
          goto yy494;
        goto yy868;
      } else {
        if (yych <= 'i') {
          if (yych <= 'h')
            goto yy494;
          goto yy867;
        } else {
          if (yych == 't')
            goto yy870;
          goto yy494;
        }
      }
    }
  yy500:
    yych = *(marker = ++p);
    switch (yych) {
    case 'E':
    case 'e':
      goto yy852;
    case 'G':
    case 'g':
      goto yy533;
    case 'I':
    case 'i':
      goto yy850;
    case 'O':
    case 'o':
      goto yy851;
    case 'T':
    case 't':
      goto yy849;
    default:
      goto yy494;
    }
  yy501:
    yych = *(marker = ++p);
    if (yych <= 'S') {
      if (yych <= '3') {
        if (yych <= '2')
          goto yy494;
        goto yy845;
      } else {
        if (yych == 'C')
          goto yy843;
        goto yy494;
      }
    } else {
      if (yych <= 'c') {
        if (yych <= 'T')
          goto yy844;
        if (yych <= 'b')
          goto yy494;
        goto yy843;
      } else {
        if (yych == 't')
          goto yy844;
        goto yy494;
      }
    }
  yy502:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy825;
    case 'C':
    case 'c':
      goto yy822;
    case 'M':
    case 'm':
      goto yy824;
    case 'N':
    case 'n':
      goto yy823;
    case 'P':
    case 'p':
      goto yy821;
    case 'R':
    case 'r':
      goto yy820;
    case 'T':
    case 't':
      goto yy819;
    default:
      goto yy494;
    }
  yy503:
    yych = *(marker = ++p);
    if (yych <= 'D') {
      if (yych == 'A')
        goto yy813;
      if (yych <= 'C')
        goto yy494;
      goto yy812;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy494;
        goto yy813;
      } else {
        if (yych == 'd')
          goto yy812;
        goto yy494;
      }
    }
  yy504:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy779;
    case 'E':
    case 'e':
      goto yy778;
    case 'I':
    case 'i':
      goto yy781;
    case 'M':
    case 'm':
      goto yy777;
    case 'S':
    case 's':
      goto yy776;
    case 'T':
    case 't':
      goto yy780;
    case 'U':
    case 'u':
      goto yy775;
    case 'V':
    case 'v':
      goto yy774;
    default:
      goto yy494;
    }
  yy505:
    yych = *(marker = ++p);
    switch (yych) {
    case 'E':
    case 'e':
      goto yy769;
    case 'F':
    case 'f':
      goto yy768;
    case 'I':
    case 'i':
      goto yy767;
    case 'N':
    case 'n':
      goto yy766;
    case 'O':
    case 'o':
      goto yy765;
    default:
      goto yy494;
    }
  yy506:
    yych = *(marker = ++p);
    if (yych <= 'P') {
      if (yych == 'I')
        goto yy751;
      if (yych <= 'O')
        goto yy494;
      goto yy752;
    } else {
      if (yych <= 'i') {
        if (yych <= 'h')
          goto yy494;
        goto yy751;
      } else {
        if (yych == 'p')
          goto yy752;
        goto yy494;
      }
    }
  yy507:
    yych = *(marker = ++p);
    if (yych <= 'S') {
      if (yych <= 'L') {
        if (yych == 'A')
          goto yy733;
        if (yych <= 'K')
          goto yy494;
        goto yy732;
      } else {
        if (yych <= 'O') {
          if (yych <= 'N')
            goto yy494;
          goto yy734;
        } else {
          if (yych <= 'Q')
            goto yy494;
          if (yych <= 'R')
            goto yy731;
          goto yy730;
        }
      }
    } else {
      if (yych <= 'n') {
        if (yych <= 'a') {
          if (yych <= '`')
            goto yy494;
          goto yy733;
        } else {
          if (yych == 'l')
            goto yy732;
          goto yy494;
        }
      } else {
        if (yych <= 'q') {
          if (yych <= 'o')
            goto yy734;
          goto yy494;
        } else {
          if (yych <= 'r')
            goto yy731;
          if (yych <= 's')
            goto yy730;
          goto yy494;
        }
      }
    }
  yy508:
    yych = *(marker = ++p);
    if (yych <= 'T') {
      if (yych <= 'L') {
        if (yych == 'E')
          goto yy720;
        goto yy494;
      } else {
        if (yych <= 'M')
          goto yy719;
        if (yych <= 'R')
          goto yy494;
        if (yych <= 'S')
          goto yy718;
        goto yy717;
      }
    } else {
      if (yych <= 'm') {
        if (yych == 'e')
          goto yy720;
        if (yych <= 'l')
          goto yy494;
        goto yy719;
      } else {
        if (yych <= 'r')
          goto yy494;
        if (yych <= 's')
          goto yy718;
        if (yych <= 't')
          goto yy717;
        goto yy494;
      }
    }
  yy509:
    yych = *(marker = ++p);
    switch (yych) {
    case 'E':
    case 'e':
      goto yy673;
    case 'F':
    case 'f':
      goto yy672;
    case 'G':
    case 'g':
      goto yy671;
    case 'H':
    case 'h':
      goto yy676;
    case 'I':
    case 'i':
      goto yy675;
    case 'K':
    case 'k':
      goto yy670;
    case 'M':
    case 'm':
      goto yy669;
    case 'N':
    case 'n':
      goto yy674;
    case 'O':
    case 'o':
      goto yy668;
    case 'P':
    case 'p':
      goto yy667;
    case 'S':
    case 's':
      goto yy666;
    case 'T':
    case 't':
      goto yy665;
    case 'V':
    case 'v':
      goto yy664;
    default:
      goto yy494;
    }
  yy510:
    yych = *(marker = ++p);
    switch (yych) {
    case 'A':
    case 'a':
      goto yy640;
    case 'E':
    case 'e':
      goto yy636;
    case 'F':
    case 'f':
      goto yy639;
    case 'H':
    case 'h':
      goto yy635;
    case 'I':
    case 'i':
      goto yy637;
    case 'N':
    case 'n':
      goto yy638;
    case 'V':
    case 'v':
      goto yy533;
    default:
      goto yy494;
    }
  yy511:
    yych = *(marker = ++p);
    if (yych <= 'T') {
      if (yych <= 'N') {
        if (yych == 'D')
          goto yy627;
        if (yych <= 'M')
          goto yy494;
        goto yy626;
      } else {
        if (yych == 'R')
          goto yy628;
        if (yych <= 'S')
          goto yy494;
        goto yy625;
      }
    } else {
      if (yych <= 'n') {
        if (yych == 'd')
          goto yy627;
        if (yych <= 'm')
          goto yy494;
        goto yy626;
      } else {
        if (yych <= 'r') {
          if (yych <= 'q')
            goto yy494;
          goto yy628;
        } else {
          if (yych == 't')
            goto yy625;
          goto yy494;
        }
      }
    }
  yy512:
    yych = *(marker = ++p);
    if (yych <= 'I') {
      if (yych == 'E')
        goto yy609;
      if (yych <= 'H')
        goto yy494;
      goto yy608;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy494;
        goto yy609;
      } else {
        if (yych == 'i')
          goto yy608;
        goto yy494;
      }
    }
  yy513:
    yych = *(marker = ++p);
    if (yych <= 'Y') {
      if (yych <= 'R') {
        if (yych == 'E')
          goto yy598;
        goto yy494;
      } else {
        if (yych <= 'S')
          goto yy599;
        if (yych <= 'T')
          goto yy597;
        if (yych <= 'X')
          goto yy494;
        goto yy596;
      }
    } else {
      if (yych <= 's') {
        if (yych == 'e')
          goto yy598;
        if (yych <= 'r')
          goto yy494;
        goto yy599;
      } else {
        if (yych <= 't')
          goto yy597;
        if (yych == 'y')
          goto yy596;
        goto yy494;
      }
    }
  yy514:
    yych = *(marker = ++p);
    if (yych <= 'R') {
      if (yych <= 'F') {
        if (yych == 'C')
          goto yy575;
        if (yych <= 'E')
          goto yy494;
        goto yy573;
      } else {
        if (yych == 'M')
          goto yy574;
        if (yych <= 'Q')
          goto yy494;
        goto yy572;
      }
    } else {
      if (yych <= 'f') {
        if (yych == 'c')
          goto yy575;
        if (yych <= 'e')
          goto yy494;
        goto yy573;
      } else {
        if (yych <= 'm') {
          if (yych <= 'l')
            goto yy494;
          goto yy574;
        } else {
          if (yych == 'r')
            goto yy572;
          goto yy494;
        }
      }
    }
  yy515:
    yych = *(marker = ++p);
    if (yych == '3')
      goto yy567;
    goto yy494;
  yy516:
    yych = *(marker = ++p);
    if (yych <= 'O') {
      if (yych <= 'H') {
        if (yych == 'E')
          goto yy557;
        goto yy494;
      } else {
        if (yych <= 'I')
          goto yy556;
        if (yych <= 'N')
          goto yy494;
        goto yy555;
      }
    } else {
      if (yych <= 'h') {
        if (yych == 'e')
          goto yy557;
        goto yy494;
      } else {
        if (yych <= 'i')
          goto yy556;
        if (yych == 'o')
          goto yy555;
        goto yy494;
      }
    }
  yy517:
    yych = *(marker = ++p);
    if (yych == 'D')
      goto yy553;
    if (yych == 'd')
      goto yy553;
    goto yy494;
  yy518:
    yych = *(marker = ++p);
    if (yych == 'E')
      goto yy548;
    if (yych == 'e')
      goto yy548;
    goto yy494;
  yy519:
    yych = *(marker = ++p);
    if (yych == 'U')
      goto yy545;
    if (yych == 'u')
      goto yy545;
    goto yy494;
  yy520:
    yych = *(marker = ++p);
    if (yych == 'M')
      goto yy530;
    if (yych == 'm')
      goto yy530;
    goto yy494;
  yy521:
    yych = *++p;
    goto yy494;
  yy522:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy521;
  yy523:
    p = marker;
    goto yy494;
  yy524:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy522;
    goto yy523;
  yy525:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy522;
    goto yy523;
  yy526:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy525;
    goto yy523;
  yy527:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy525;
    goto yy523;
  yy528:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0x8F)
      goto yy525;
    goto yy523;
  yy529:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0x9F)
      goto yy522;
    goto yy523;
  yy530:
    yych = *++p;
    if (yych == 'S')
      goto yy531;
    if (yych != 's')
      goto yy523;
  yy531:
    yych = *++p;
    if (yych == 'G')
      goto yy532;
    if (yych != 'g')
      goto yy523;
  yy532:
    yych = *++p;
    if (yych == 'R')
      goto yy533;
    if (yych != 'r')
      goto yy523;
  yy533:
    yych = *++p;
    if (yych != ':')
      goto yy523;
  yy534:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy534;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '<')
          goto yy523;
        if (yych <= '>')
          goto yy543;
        goto yy523;
      } else {
        if (yych <= 0xDF)
          goto yy536;
        if (yych <= 0xE0)
          goto yy537;
        goto yy538;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy542;
        if (yych <= 0xEF)
          goto yy538;
        goto yy539;
      } else {
        if (yych <= 0xF3)
          goto yy540;
        if (yych <= 0xF4)
          goto yy541;
        goto yy523;
      }
    }
  yy536:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy534;
    goto yy523;
  yy537:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy536;
    goto yy523;
  yy538:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy536;
    goto yy523;
  yy539:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy538;
    goto yy523;
  yy540:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0xBF)
      goto yy538;
    goto yy523;
  yy541:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0x8F)
      goto yy538;
    goto yy523;
  yy542:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy523;
    if (yych <= 0x9F)
      goto yy536;
    goto yy523;
  yy543:
    ++p;
    { return (bufsize_t)(p - start); }
  yy545:
    yych = *++p;
    if (yych == 'E')
      goto yy546;
    if (yych != 'e')
      goto yy523;
  yy546:
    yych = *++p;
    if (yych == 'R')
      goto yy547;
    if (yych != 'r')
      goto yy523;
  yy547:
    yych = *++p;
    if (yych == 'Y')
      goto yy533;
    if (yych == 'y')
      goto yy533;
    goto yy523;
  yy548:
    yych = *++p;
    if (yych == 'Y')
      goto yy549;
    if (yych != 'y')
      goto yy523;
  yy549:
    yych = *++p;
    if (yych == 'P')
      goto yy550;
    if (yych != 'p')
      goto yy523;
  yy550:
    yych = *++p;
    if (yych == 'A')
      goto yy551;
    if (yych != 'a')
      goto yy523;
  yy551:
    yych = *++p;
    if (yych == 'R')
      goto yy552;
    if (yych != 'r')
      goto yy523;
  yy552:
    yych = *++p;
    if (yych == 'C')
      goto yy533;
    if (yych == 'c')
      goto yy533;
    goto yy523;
  yy553:
    yych = *++p;
    if (yych != '2')
      goto yy523;
    yych = *++p;
    if (yych == 'K')
      goto yy533;
    if (yych == 'k')
      goto yy533;
    goto yy523;
  yy555:
    yych = *++p;
    if (yych == 'L')
      goto yy566;
    if (yych == 'l')
      goto yy566;
    goto yy523;
  yy556:
    yych = *++p;
    if (yych == 'T')
      goto yy562;
    if (yych == 't')
      goto yy562;
    goto yy523;
  yy557:
    yych = *++p;
    if (yych == 'S')
      goto yy558;
    if (yych != 's')
      goto yy523;
  yy558:
    yych = *++p;
    if (yych == 'H')
      goto yy559;
    if (yych != 'h')
      goto yy523;
  yy559:
    yych = *++p;
    if (yych == 'A')
      goto yy560;
    if (yych != 'a')
      goto yy523;
  yy560:
    yych = *++p;
    if (yych == 'R')
      goto yy561;
    if (yych != 'r')
      goto yy523;
  yy561:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy562:
    yych = *++p;
    if (yych == 'C')
      goto yy563;
    if (yych != 'c')
      goto yy523;
  yy563:
    yych = *++p;
    if (yych == 'O')
      goto yy564;
    if (yych != 'o')
      goto yy523;
  yy564:
    yych = *++p;
    if (yych == 'I')
      goto yy565;
    if (yych != 'i')
      goto yy523;
  yy565:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy566:
    yych = *++p;
    if (yych == 'O')
      goto yy533;
    if (yych == 'o')
      goto yy533;
    goto yy523;
  yy567:
    yych = *++p;
    if (yych != '9')
      goto yy523;
    yych = *++p;
    if (yych != '.')
      goto yy523;
    yych = *++p;
    if (yych != '5')
      goto yy523;
    yych = *++p;
    if (yych != '0')
      goto yy523;
    yych = *++p;
    if (yych <= 'Q')
      goto yy523;
    if (yych <= 'S')
      goto yy533;
    if (yych <= 'q')
      goto yy523;
    if (yych <= 's')
      goto yy533;
    goto yy523;
  yy572:
    yych = *++p;
    if (yych == 'I')
      goto yy533;
    if (yych == 'i')
      goto yy533;
    goto yy523;
  yy573:
    yych = *++p;
    if (yych == 'I')
      goto yy594;
    if (yych == 'i')
      goto yy594;
    goto yy523;
  yy574:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy584;
      if (yych <= 'O')
        goto yy523;
      goto yy585;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy523;
        goto yy584;
      } else {
        if (yych == 'p')
          goto yy585;
        goto yy523;
      }
    }
  yy575:
    yych = *++p;
    if (yych == 'O')
      goto yy576;
    if (yych != 'o')
      goto yy523;
  yy576:
    yych = *++p;
    if (yych == 'N')
      goto yy577;
    if (yych != 'n')
      goto yy523;
  yy577:
    yych = *++p;
    if (yych == '-')
      goto yy578;
    if (yych == ':')
      goto yy534;
    goto yy523;
  yy578:
    yych = *++p;
    if (yych == 'U')
      goto yy579;
    if (yych != 'u')
      goto yy523;
  yy579:
    yych = *++p;
    if (yych == 'S')
      goto yy580;
    if (yych != 's')
      goto yy523;
  yy580:
    yych = *++p;
    if (yych == 'E')
      goto yy581;
    if (yych != 'e')
      goto yy523;
  yy581:
    yych = *++p;
    if (yych == 'R')
      goto yy582;
    if (yych != 'r')
      goto yy523;
  yy582:
    yych = *++p;
    if (yych == 'I')
      goto yy583;
    if (yych != 'i')
      goto yy523;
  yy583:
    yych = *++p;
    if (yych == 'D')
      goto yy533;
    if (yych == 'd')
      goto yy533;
    goto yy523;
  yy584:
    yych = *++p;
    if (yych == 'R')
      goto yy586;
    if (yych == 'r')
      goto yy586;
    goto yy523;
  yy585:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy586:
    yych = *++p;
    if (yych == 'P')
      goto yy587;
    if (yych != 'p')
      goto yy523;
  yy587:
    yych = *++p;
    if (yych == 'C')
      goto yy588;
    if (yych != 'c')
      goto yy523;
  yy588:
    yych = *++p;
    if (yych != '.')
      goto yy523;
    yych = *++p;
    if (yych == 'B')
      goto yy590;
    if (yych != 'b')
      goto yy523;
  yy590:
    yych = *++p;
    if (yych == 'E')
      goto yy591;
    if (yych != 'e')
      goto yy523;
  yy591:
    yych = *++p;
    if (yych == 'E')
      goto yy592;
    if (yych != 'e')
      goto yy523;
  yy592:
    yych = *++p;
    if (yych == 'P')
      goto yy593;
    if (yych != 'p')
      goto yy523;
  yy593:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy594:
    yych = *++p;
    if (yych == 'R')
      goto yy595;
    if (yych != 'r')
      goto yy523;
  yy595:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy596:
    yych = *++p;
    if (yych == 'C')
      goto yy604;
    if (yych == 'c')
      goto yy604;
    goto yy523;
  yy597:
    yych = *++p;
    if (yych == 'A')
      goto yy603;
    if (yych == 'a')
      goto yy603;
    goto yy523;
  yy598:
    yych = *++p;
    if (yych == 'B')
      goto yy600;
    if (yych == 'b')
      goto yy600;
    goto yy523;
  yy599:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy600:
    yych = *++p;
    if (yych == 'C')
      goto yy601;
    if (yych != 'c')
      goto yy523;
  yy601:
    yych = *++p;
    if (yych == 'A')
      goto yy602;
    if (yych != 'a')
      goto yy523;
  yy602:
    yych = *++p;
    if (yych == 'L')
      goto yy533;
    if (yych == 'l')
      goto yy533;
    goto yy523;
  yy603:
    yych = *++p;
    if (yych == 'I')
      goto yy533;
    if (yych == 'i')
      goto yy533;
    goto yy523;
  yy604:
    yych = *++p;
    if (yych == 'I')
      goto yy605;
    if (yych != 'i')
      goto yy523;
  yy605:
    yych = *++p;
    if (yych == 'W')
      goto yy606;
    if (yych != 'w')
      goto yy523;
  yy606:
    yych = *++p;
    if (yych == 'Y')
      goto yy607;
    if (yych != 'y')
      goto yy523;
  yy607:
    yych = *++p;
    if (yych == 'G')
      goto yy533;
    if (yych == 'g')
      goto yy533;
    goto yy523;
  yy608:
    yych = *++p;
    if (yych == 'E')
      goto yy617;
    if (yych == 'e')
      goto yy617;
    goto yy523;
  yy609:
    yych = *++p;
    if (yych <= 'N') {
      if (yych <= 'L')
        goto yy523;
      if (yych >= 'N')
        goto yy611;
    } else {
      if (yych <= 'l')
        goto yy523;
      if (yych <= 'm')
        goto yy610;
      if (yych <= 'n')
        goto yy611;
      goto yy523;
    }
  yy610:
    yych = *++p;
    if (yych == 'M')
      goto yy616;
    if (yych == 'm')
      goto yy616;
    goto yy523;
  yy611:
    yych = *++p;
    if (yych == 'T')
      goto yy612;
    if (yych != 't')
      goto yy523;
  yy612:
    yych = *++p;
    if (yych == 'R')
      goto yy613;
    if (yych != 'r')
      goto yy523;
  yy613:
    yych = *++p;
    if (yych == 'I')
      goto yy614;
    if (yych != 'i')
      goto yy523;
  yy614:
    yych = *++p;
    if (yych == 'L')
      goto yy615;
    if (yych != 'l')
      goto yy523;
  yy615:
    yych = *++p;
    if (yych == 'O')
      goto yy533;
    if (yych == 'o')
      goto yy533;
    goto yy523;
  yy616:
    yych = *++p;
    if (yych == 'I')
      goto yy533;
    if (yych == 'i')
      goto yy533;
    goto yy523;
  yy617:
    yych = *++p;
    if (yych == 'W')
      goto yy618;
    if (yych != 'w')
      goto yy523;
  yy618:
    yych = *++p;
    if (yych != '-')
      goto yy523;
    yych = *++p;
    if (yych == 'S')
      goto yy620;
    if (yych != 's')
      goto yy523;
  yy620:
    yych = *++p;
    if (yych == 'O')
      goto yy621;
    if (yych != 'o')
      goto yy523;
  yy621:
    yych = *++p;
    if (yych == 'U')
      goto yy622;
    if (yych != 'u')
      goto yy523;
  yy622:
    yych = *++p;
    if (yych == 'R')
      goto yy623;
    if (yych != 'r')
      goto yy523;
  yy623:
    yych = *++p;
    if (yych == 'C')
      goto yy624;
    if (yych != 'c')
      goto yy523;
  yy624:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy625:
    yych = *++p;
    if (yych == '2')
      goto yy632;
    goto yy523;
  yy626:
    yych = *++p;
    if (yych == 'R')
      goto yy629;
    if (yych == 'r')
      goto yy629;
    goto yy523;
  yy627:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy628:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy629:
    yych = *++p;
    if (yych == 'E')
      goto yy630;
    if (yych != 'e')
      goto yy523;
  yy630:
    yych = *++p;
    if (yych == 'A')
      goto yy631;
    if (yych != 'a')
      goto yy523;
  yy631:
    yych = *++p;
    if (yych == 'L')
      goto yy533;
    if (yych == 'l')
      goto yy533;
    goto yy523;
  yy632:
    yych = *++p;
    if (yych != '0')
      goto yy523;
    yych = *++p;
    if (yych != '0')
      goto yy523;
    yych = *++p;
    if (yych == '4')
      goto yy533;
    goto yy523;
  yy635:
    yych = *++p;
    if (yych == 'I')
      goto yy654;
    if (yych == 'i')
      goto yy654;
    goto yy523;
  yy636:
    yych = *++p;
    if (yych <= 'L') {
      if (yych == 'A')
        goto yy646;
      if (yych <= 'K')
        goto yy523;
      goto yy645;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy523;
        goto yy646;
      } else {
        if (yych == 'l')
          goto yy645;
        goto yy523;
      }
    }
  yy637:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy638:
    yych = *++p;
    if (yych == '3')
      goto yy642;
    goto yy523;
  yy639:
    yych = *++p;
    if (yych == 'T')
      goto yy641;
    if (yych == 't')
      goto yy641;
    goto yy523;
  yy640:
    yych = *++p;
    if (yych == 'G')
      goto yy533;
    if (yych == 'g')
      goto yy533;
    goto yy523;
  yy641:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy642:
    yych = *++p;
    if (yych != '2')
      goto yy523;
    yych = *++p;
    if (yych != '7')
      goto yy523;
    yych = *++p;
    if (yych == '0')
      goto yy533;
    goto yy523;
  yy645:
    yych = *++p;
    if (yych <= 'M') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'N')
        goto yy652;
      if (yych == 'n')
        goto yy652;
      goto yy523;
    }
  yy646:
    yych = *++p;
    if (yych == 'M')
      goto yy647;
    if (yych != 'm')
      goto yy523;
  yy647:
    yych = *++p;
    if (yych == 'S')
      goto yy648;
    if (yych != 's')
      goto yy523;
  yy648:
    yych = *++p;
    if (yych == 'P')
      goto yy649;
    if (yych != 'p')
      goto yy523;
  yy649:
    yych = *++p;
    if (yych == 'E')
      goto yy650;
    if (yych != 'e')
      goto yy523;
  yy650:
    yych = *++p;
    if (yych == 'A')
      goto yy651;
    if (yych != 'a')
      goto yy523;
  yy651:
    yych = *++p;
    if (yych == 'K')
      goto yy533;
    if (yych == 'k')
      goto yy533;
    goto yy523;
  yy652:
    yych = *++p;
    if (yych == 'E')
      goto yy653;
    if (yych != 'e')
      goto yy523;
  yy653:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy654:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'N')
        goto yy655;
      if (yych <= 'R')
        goto yy523;
      goto yy656;
    } else {
      if (yych <= 'n') {
        if (yych <= 'm')
          goto yy523;
      } else {
        if (yych == 's')
          goto yy656;
        goto yy523;
      }
    }
  yy655:
    yych = *++p;
    if (yych == 'G')
      goto yy663;
    if (yych == 'g')
      goto yy663;
    goto yy523;
  yy656:
    yych = *++p;
    if (yych == 'M')
      goto yy657;
    if (yych != 'm')
      goto yy523;
  yy657:
    yych = *++p;
    if (yych == 'E')
      goto yy658;
    if (yych != 'e')
      goto yy523;
  yy658:
    yych = *++p;
    if (yych == 'S')
      goto yy659;
    if (yych != 's')
      goto yy523;
  yy659:
    yych = *++p;
    if (yych == 'S')
      goto yy660;
    if (yych != 's')
      goto yy523;
  yy660:
    yych = *++p;
    if (yych == 'A')
      goto yy661;
    if (yych != 'a')
      goto yy523;
  yy661:
    yych = *++p;
    if (yych == 'G')
      goto yy662;
    if (yych != 'g')
      goto yy523;
  yy662:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy663:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy664:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy665:
    yych = *++p;
    if (yych == 'E')
      goto yy715;
    if (yych == 'e')
      goto yy715;
    goto yy523;
  yy666:
    yych = *++p;
    if (yych == 'H')
      goto yy533;
    if (yych == 'h')
      goto yy533;
    goto yy523;
  yy667:
    yych = *++p;
    if (yych == 'O')
      goto yy711;
    if (yych == 'o')
      goto yy711;
    goto yy523;
  yy668:
    yych = *++p;
    if (yych <= 'L') {
      if (yych == 'A')
        goto yy701;
      if (yych <= 'K')
        goto yy523;
      goto yy702;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy523;
        goto yy701;
      } else {
        if (yych == 'l')
          goto yy702;
        goto yy523;
      }
    }
  yy669:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'B')
        goto yy533;
      if (yych <= 'R')
        goto yy523;
      goto yy533;
    } else {
      if (yych <= 'b') {
        if (yych <= 'a')
          goto yy523;
        goto yy533;
      } else {
        if (yych == 's')
          goto yy533;
        goto yy523;
      }
    }
  yy670:
    yych = *++p;
    if (yych == 'Y')
      goto yy699;
    if (yych == 'y')
      goto yy699;
    goto yy523;
  yy671:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy672:
    yych = *++p;
    if (yych == 'T')
      goto yy698;
    if (yych == 't')
      goto yy698;
    goto yy523;
  yy673:
    yych = *++p;
    if (yych <= 'S') {
      if (yych <= 'C') {
        if (yych <= 'B')
          goto yy523;
        goto yy685;
      } else {
        if (yych <= 'Q')
          goto yy523;
        if (yych <= 'R')
          goto yy683;
        goto yy684;
      }
    } else {
      if (yych <= 'q') {
        if (yych == 'c')
          goto yy685;
        goto yy523;
      } else {
        if (yych <= 'r')
          goto yy683;
        if (yych <= 's')
          goto yy684;
        goto yy523;
      }
    }
  yy674:
    yych = *++p;
    if (yych == 'M')
      goto yy682;
    if (yych == 'm')
      goto yy682;
    goto yy523;
  yy675:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'E')
        goto yy679;
      if (yych <= 'O')
        goto yy523;
      goto yy680;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy523;
        goto yy679;
      } else {
        if (yych == 'p')
          goto yy680;
        goto yy523;
      }
    }
  yy676:
    yych = *++p;
    if (yych == 'T')
      goto yy677;
    if (yych != 't')
      goto yy523;
  yy677:
    yych = *++p;
    if (yych == 'T')
      goto yy678;
    if (yych != 't')
      goto yy523;
  yy678:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy679:
    yych = *++p;
    if (yych == 'V')
      goto yy681;
    if (yych == 'v')
      goto yy681;
    goto yy523;
  yy680:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy681:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy682:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy683:
    yych = *++p;
    if (yych == 'V')
      goto yy695;
    if (yych == 'v')
      goto yy695;
    goto yy523;
  yy684:
    yych = *++p;
    if (yych == 'S')
      goto yy692;
    if (yych == 's')
      goto yy692;
    goto yy523;
  yy685:
    yych = *++p;
    if (yych == 'O')
      goto yy686;
    if (yych != 'o')
      goto yy523;
  yy686:
    yych = *++p;
    if (yych == 'N')
      goto yy687;
    if (yych != 'n')
      goto yy523;
  yy687:
    yych = *++p;
    if (yych == 'D')
      goto yy688;
    if (yych != 'd')
      goto yy523;
  yy688:
    yych = *++p;
    if (yych == 'L')
      goto yy689;
    if (yych != 'l')
      goto yy523;
  yy689:
    yych = *++p;
    if (yych == 'I')
      goto yy690;
    if (yych != 'i')
      goto yy523;
  yy690:
    yych = *++p;
    if (yych == 'F')
      goto yy691;
    if (yych != 'f')
      goto yy523;
  yy691:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy692:
    yych = *++p;
    if (yych == 'I')
      goto yy693;
    if (yych != 'i')
      goto yy523;
  yy693:
    yych = *++p;
    if (yych == 'O')
      goto yy694;
    if (yych != 'o')
      goto yy523;
  yy694:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy695:
    yych = *++p;
    if (yych == 'I')
      goto yy696;
    if (yych != 'i')
      goto yy523;
  yy696:
    yych = *++p;
    if (yych == 'C')
      goto yy697;
    if (yych != 'c')
      goto yy523;
  yy697:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy698:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy699:
    yych = *++p;
    if (yych == 'P')
      goto yy700;
    if (yych != 'p')
      goto yy523;
  yy700:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy701:
    yych = *++p;
    if (yych == 'P')
      goto yy705;
    if (yych == 'p')
      goto yy705;
    goto yy523;
  yy702:
    yych = *++p;
    if (yych == 'D')
      goto yy703;
    if (yych != 'd')
      goto yy523;
  yy703:
    yych = *++p;
    if (yych == 'A')
      goto yy704;
    if (yych != 'a')
      goto yy523;
  yy704:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy705:
    yych = *++p;
    if (yych != '.')
      goto yy523;
    yych = *++p;
    if (yych == 'B')
      goto yy707;
    if (yych != 'b')
      goto yy523;
  yy707:
    yych = *++p;
    if (yych == 'E')
      goto yy708;
    if (yych != 'e')
      goto yy523;
  yy708:
    yych = *++p;
    if (yych == 'E')
      goto yy709;
    if (yych != 'e')
      goto yy523;
  yy709:
    yych = *++p;
    if (yych == 'P')
      goto yy710;
    if (yych != 'p')
      goto yy523;
  yy710:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy711:
    yych = *++p;
    if (yych == 'T')
      goto yy712;
    if (yych != 't')
      goto yy523;
  yy712:
    yych = *++p;
    if (yych == 'I')
      goto yy713;
    if (yych != 'i')
      goto yy523;
  yy713:
    yych = *++p;
    if (yych == 'F')
      goto yy714;
    if (yych != 'f')
      goto yy523;
  yy714:
    yych = *++p;
    if (yych == 'Y')
      goto yy533;
    if (yych == 'y')
      goto yy533;
    goto yy523;
  yy715:
    yych = *++p;
    if (yych == 'A')
      goto yy716;
    if (yych != 'a')
      goto yy523;
  yy716:
    yych = *++p;
    if (yych == 'M')
      goto yy533;
    if (yych == 'm')
      goto yy533;
    goto yy523;
  yy717:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'M')
        goto yy729;
      if (yych <= 'R')
        goto yy523;
      goto yy728;
    } else {
      if (yych <= 'm') {
        if (yych <= 'l')
          goto yy523;
        goto yy729;
      } else {
        if (yych == 's')
          goto yy728;
        goto yy523;
      }
    }
  yy718:
    yych = *++p;
    if (yych == 'Y')
      goto yy726;
    if (yych == 'y')
      goto yy726;
    goto yy523;
  yy719:
    yych = *++p;
    if (yych == 'I')
      goto yy533;
    if (yych == 'i')
      goto yy533;
    goto yy523;
  yy720:
    yych = *++p;
    if (yych == 'S')
      goto yy721;
    if (yych != 's')
      goto yy523;
  yy721:
    yych = *++p;
    if (yych <= 'N') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'O')
        goto yy722;
      if (yych != 'o')
        goto yy523;
    }
  yy722:
    yych = *++p;
    if (yych == 'U')
      goto yy723;
    if (yych != 'u')
      goto yy523;
  yy723:
    yych = *++p;
    if (yych == 'R')
      goto yy724;
    if (yych != 'r')
      goto yy523;
  yy724:
    yych = *++p;
    if (yych == 'C')
      goto yy725;
    if (yych != 'c')
      goto yy523;
  yy725:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy726:
    yych = *++p;
    if (yych == 'N')
      goto yy727;
    if (yych != 'n')
      goto yy523;
  yy727:
    yych = *++p;
    if (yych == 'C')
      goto yy533;
    if (yych == 'c')
      goto yy533;
    goto yy523;
  yy728:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy729:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy730:
    yych = *++p;
    if (yych == 'Y')
      goto yy750;
    if (yych == 'y')
      goto yy750;
    goto yy523;
  yy731:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == 'E')
        goto yy747;
      if (yych <= 'N')
        goto yy523;
      goto yy748;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy523;
        goto yy747;
      } else {
        if (yych == 'o')
          goto yy748;
        goto yy523;
      }
    }
  yy732:
    yych = *++p;
    if (yych == 'A')
      goto yy742;
    if (yych == 'a')
      goto yy742;
    goto yy523;
  yy733:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy735;
      if (yych <= 'O')
        goto yy523;
      goto yy736;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy523;
        goto yy735;
      } else {
        if (yych == 'p')
          goto yy736;
        goto yy523;
      }
    }
  yy734:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy735:
    yych = *++p;
    if (yych == 'M')
      goto yy533;
    if (yych == 'm')
      goto yy533;
    goto yy523;
  yy736:
    yych = *++p;
    if (yych == 'A')
      goto yy737;
    if (yych != 'a')
      goto yy523;
  yy737:
    yych = *++p;
    if (yych == 'R')
      goto yy738;
    if (yych != 'r')
      goto yy523;
  yy738:
    yych = *++p;
    if (yych == 'A')
      goto yy739;
    if (yych != 'a')
      goto yy523;
  yy739:
    yych = *++p;
    if (yych == 'Z')
      goto yy740;
    if (yych != 'z')
      goto yy523;
  yy740:
    yych = *++p;
    if (yych == 'Z')
      goto yy741;
    if (yych != 'z')
      goto yy523;
  yy741:
    yych = *++p;
    if (yych == 'I')
      goto yy533;
    if (yych == 'i')
      goto yy533;
    goto yy523;
  yy742:
    yych = *++p;
    if (yych == 'T')
      goto yy743;
    if (yych != 't')
      goto yy523;
  yy743:
    yych = *++p;
    if (yych == 'F')
      goto yy744;
    if (yych != 'f')
      goto yy523;
  yy744:
    yych = *++p;
    if (yych == 'O')
      goto yy745;
    if (yych != 'o')
      goto yy523;
  yy745:
    yych = *++p;
    if (yych == 'R')
      goto yy746;
    if (yych != 'r')
      goto yy523;
  yy746:
    yych = *++p;
    if (yych == 'M')
      goto yy533;
    if (yych == 'm')
      goto yy533;
    goto yy523;
  yy747:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy748:
    yych = *++p;
    if (yych == 'X')
      goto yy749;
    if (yych != 'x')
      goto yy523;
  yy749:
    yych = *++p;
    if (yych == 'Y')
      goto yy533;
    if (yych == 'y')
      goto yy533;
    goto yy523;
  yy750:
    yych = *++p;
    if (yych == 'C')
      goto yy533;
    if (yych == 'c')
      goto yy533;
    goto yy523;
  yy751:
    yych = *++p;
    if (yych == 'D')
      goto yy533;
    if (yych == 'd')
      goto yy533;
    goto yy523;
  yy752:
    yych = *++p;
    if (yych == 'A')
      goto yy753;
    if (yych != 'a')
      goto yy523;
  yy753:
    yych = *++p;
    if (yych == 'Q')
      goto yy754;
    if (yych != 'q')
      goto yy523;
  yy754:
    yych = *++p;
    if (yych == 'U')
      goto yy755;
    if (yych != 'u')
      goto yy523;
  yy755:
    yych = *++p;
    if (yych == 'E')
      goto yy756;
    if (yych != 'e')
      goto yy523;
  yy756:
    yych = *++p;
    if (yych == 'L')
      goto yy757;
    if (yych != 'l')
      goto yy523;
  yy757:
    yych = *++p;
    if (yych == 'O')
      goto yy758;
    if (yych != 'o')
      goto yy523;
  yy758:
    yych = *++p;
    if (yych == 'C')
      goto yy759;
    if (yych != 'c')
      goto yy523;
  yy759:
    yych = *++p;
    if (yych == 'K')
      goto yy760;
    if (yych != 'k')
      goto yy523;
  yy760:
    yych = *++p;
    if (yych == 'T')
      goto yy761;
    if (yych != 't')
      goto yy523;
  yy761:
    yych = *++p;
    if (yych == 'O')
      goto yy762;
    if (yych != 'o')
      goto yy523;
  yy762:
    yych = *++p;
    if (yych == 'K')
      goto yy763;
    if (yych != 'k')
      goto yy523;
  yy763:
    yych = *++p;
    if (yych == 'E')
      goto yy764;
    if (yych != 'e')
      goto yy523;
  yy764:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy765:
    yych = *++p;
    if (yych == 'T')
      goto yy772;
    if (yych == 't')
      goto yy772;
    goto yy523;
  yy766:
    yych = *++p;
    if (yych == 'T')
      goto yy771;
    if (yych == 't')
      goto yy771;
    goto yy523;
  yy767:
    yych = *++p;
    if (yych <= 'G') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'H')
        goto yy533;
      if (yych == 'h')
        goto yy533;
      goto yy523;
    }
  yy768:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy769:
    yych = *++p;
    if (yych == 'W')
      goto yy770;
    if (yych != 'w')
      goto yy523;
  yy770:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy771:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy772:
    yych = *++p;
    if (yych == 'E')
      goto yy773;
    if (yych != 'e')
      goto yy523;
  yy773:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy774:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy775:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'M')
        goto yy806;
      if (yych <= 'O')
        goto yy523;
      goto yy805;
    } else {
      if (yych <= 'm') {
        if (yych <= 'l')
          goto yy523;
        goto yy806;
      } else {
        if (yych == 'p')
          goto yy805;
        goto yy523;
      }
    }
  yy776:
    yych = *++p;
    if (yych <= 'Q') {
      if (yych <= '-') {
        if (yych <= ',')
          goto yy523;
        goto yy798;
      } else {
        if (yych == 'N')
          goto yy799;
        goto yy523;
      }
    } else {
      if (yych <= 'n') {
        if (yych <= 'R')
          goto yy797;
        if (yych <= 'm')
          goto yy523;
        goto yy799;
      } else {
        if (yych == 'r')
          goto yy797;
        goto yy523;
      }
    }
  yy777:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy778:
    yych = *++p;
    if (yych == 'S')
      goto yy793;
    if (yych == 's')
      goto yy793;
    goto yy523;
  yy779:
    yych = *++p;
    switch (yych) {
    case 'G':
    case 'g':
      goto yy784;
    case 'I':
    case 'i':
      goto yy783;
    case 'P':
    case 'p':
      goto yy785;
    case 'R':
    case 'r':
      goto yy786;
    default:
      goto yy523;
    }
  yy780:
    yych = *++p;
    if (yych == 'Q')
      goto yy782;
    if (yych == 'q')
      goto yy782;
    goto yy523;
  yy781:
    yych = *++p;
    if (yych == 'D')
      goto yy533;
    if (yych == 'd')
      goto yy533;
    goto yy523;
  yy782:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy783:
    yych = *++p;
    if (yych == 'L')
      goto yy791;
    if (yych == 'l')
      goto yy791;
    goto yy523;
  yy784:
    yych = *++p;
    if (yych == 'N')
      goto yy789;
    if (yych == 'n')
      goto yy789;
    goto yy523;
  yy785:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy786:
    yych = *++p;
    if (yych == 'K')
      goto yy787;
    if (yych != 'k')
      goto yy523;
  yy787:
    yych = *++p;
    if (yych == 'E')
      goto yy788;
    if (yych != 'e')
      goto yy523;
  yy788:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy789:
    yych = *++p;
    if (yych == 'E')
      goto yy790;
    if (yych != 'e')
      goto yy523;
  yy790:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy791:
    yych = *++p;
    if (yych == 'T')
      goto yy792;
    if (yych != 't')
      goto yy523;
  yy792:
    yych = *++p;
    if (yych == 'O')
      goto yy533;
    if (yych == 'o')
      goto yy533;
    goto yy523;
  yy793:
    yych = *++p;
    if (yych == 'S')
      goto yy794;
    if (yych != 's')
      goto yy523;
  yy794:
    yych = *++p;
    if (yych == 'A')
      goto yy795;
    if (yych != 'a')
      goto yy523;
  yy795:
    yych = *++p;
    if (yych == 'G')
      goto yy796;
    if (yych != 'g')
      goto yy523;
  yy796:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy797:
    yych = *++p;
    if (yych == 'P')
      goto yy804;
    if (yych == 'p')
      goto yy804;
    goto yy523;
  yy798:
    yych = *++p;
    if (yych == 'H')
      goto yy801;
    if (yych == 'h')
      goto yy801;
    goto yy523;
  yy799:
    yych = *++p;
    if (yych == 'I')
      goto yy800;
    if (yych != 'i')
      goto yy523;
  yy800:
    yych = *++p;
    if (yych == 'M')
      goto yy533;
    if (yych == 'm')
      goto yy533;
    goto yy523;
  yy801:
    yych = *++p;
    if (yych == 'E')
      goto yy802;
    if (yych != 'e')
      goto yy523;
  yy802:
    yych = *++p;
    if (yych == 'L')
      goto yy803;
    if (yych != 'l')
      goto yy523;
  yy803:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy804:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy805:
    yych = *++p;
    if (yych == 'D')
      goto yy809;
    if (yych == 'd')
      goto yy809;
    goto yy523;
  yy806:
    yych = *++p;
    if (yych == 'B')
      goto yy807;
    if (yych != 'b')
      goto yy523;
  yy807:
    yych = *++p;
    if (yych == 'L')
      goto yy808;
    if (yych != 'l')
      goto yy523;
  yy808:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy809:
    yych = *++p;
    if (yych == 'A')
      goto yy810;
    if (yych != 'a')
      goto yy523;
  yy810:
    yych = *++p;
    if (yych == 'T')
      goto yy811;
    if (yych != 't')
      goto yy523;
  yy811:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy812:
    yych = *++p;
    if (yych == 'A')
      goto yy817;
    if (yych == 'a')
      goto yy817;
    goto yy523;
  yy813:
    yych = *++p;
    if (yych == 'S')
      goto yy814;
    if (yych != 's')
      goto yy523;
  yy814:
    yych = *++p;
    if (yych == 'T')
      goto yy815;
    if (yych != 't')
      goto yy523;
  yy815:
    yych = *++p;
    if (yych == 'F')
      goto yy816;
    if (yych != 'f')
      goto yy523;
  yy816:
    yych = *++p;
    if (yych == 'M')
      goto yy533;
    if (yych == 'm')
      goto yy533;
    goto yy523;
  yy817:
    yych = *++p;
    if (yych == 'P')
      goto yy818;
    if (yych != 'p')
      goto yy523;
  yy818:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy819:
    yych = *++p;
    if (yych == 'M')
      goto yy842;
    if (yych == 'm')
      goto yy842;
    goto yy523;
  yy820:
    yych = *++p;
    if (yych <= 'I') {
      if (yych == 'C')
        goto yy831;
      if (yych <= 'H')
        goto yy523;
      goto yy830;
    } else {
      if (yych <= 'c') {
        if (yych <= 'b')
          goto yy523;
        goto yy831;
      } else {
        if (yych == 'i')
          goto yy830;
        goto yy523;
      }
    }
  yy821:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'N')
        goto yy533;
      if (yych <= 'O')
        goto yy523;
      goto yy533;
    } else {
      if (yych <= 'n') {
        if (yych <= 'm')
          goto yy523;
        goto yy533;
      } else {
        if (yych == 'p')
          goto yy533;
        goto yy523;
      }
    }
  yy822:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == 'A')
        goto yy828;
      if (yych <= 'N')
        goto yy523;
      goto yy829;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy523;
        goto yy828;
      } else {
        if (yych == 'o')
          goto yy829;
        goto yy523;
      }
    }
  yy823:
    yych = *++p;
    if (yych == 'F')
      goto yy827;
    if (yych == 'f')
      goto yy827;
    goto yy523;
  yy824:
    yych = *++p;
    if (yych <= '@') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'A')
        goto yy826;
      if (yych == 'a')
        goto yy826;
      goto yy523;
    }
  yy825:
    yych = *++p;
    if (yych == 'X')
      goto yy533;
    if (yych == 'x')
      goto yy533;
    goto yy523;
  yy826:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy827:
    yych = *++p;
    if (yych == 'O')
      goto yy533;
    if (yych == 'o')
      goto yy533;
    goto yy523;
  yy828:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy829:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy830:
    yych = *++p;
    if (yych == 'S')
      goto yy832;
    if (yych == 's')
      goto yy832;
    goto yy523;
  yy831:
    yych = *++p;
    if (yych <= ':') {
      if (yych == '6')
        goto yy533;
      if (yych <= '9')
        goto yy523;
      goto yy534;
    } else {
      if (yych <= 'S') {
        if (yych <= 'R')
          goto yy523;
        goto yy533;
      } else {
        if (yych == 's')
          goto yy533;
        goto yy523;
      }
    }
  yy832:
    yych = *++p;
    if (yych == '.')
      goto yy833;
    if (yych == ':')
      goto yy534;
    goto yy523;
  yy833:
    yych = *++p;
    if (yych <= 'X') {
      if (yych <= 'K') {
        if (yych == 'B')
          goto yy836;
        goto yy523;
      } else {
        if (yych <= 'L')
          goto yy834;
        if (yych <= 'W')
          goto yy523;
        goto yy835;
      }
    } else {
      if (yych <= 'k') {
        if (yych == 'b')
          goto yy836;
        goto yy523;
      } else {
        if (yych <= 'l')
          goto yy834;
        if (yych == 'x')
          goto yy835;
        goto yy523;
      }
    }
  yy834:
    yych = *++p;
    if (yych == 'W')
      goto yy841;
    if (yych == 'w')
      goto yy841;
    goto yy523;
  yy835:
    yych = *++p;
    if (yych == 'P')
      goto yy839;
    if (yych == 'p')
      goto yy839;
    goto yy523;
  yy836:
    yych = *++p;
    if (yych == 'E')
      goto yy837;
    if (yych != 'e')
      goto yy523;
  yy837:
    yych = *++p;
    if (yych == 'E')
      goto yy838;
    if (yych != 'e')
      goto yy523;
  yy838:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy839:
    yych = *++p;
    if (yych == 'C')
      goto yy840;
    if (yych != 'c')
      goto yy523;
  yy840:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy841:
    yych = *++p;
    if (yych == 'Z')
      goto yy533;
    if (yych == 'z')
      goto yy533;
    goto yy523;
  yy842:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy843:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy844:
    yych = *++p;
    if (yych == 'T')
      goto yy847;
    if (yych == 't')
      goto yy847;
    goto yy523;
  yy845:
    yych = *++p;
    if (yych != '2')
      goto yy523;
    yych = *++p;
    if (yych == '3')
      goto yy533;
    goto yy523;
  yy847:
    yych = *++p;
    if (yych == 'P')
      goto yy848;
    if (yych != 'p')
      goto yy523;
  yy848:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy849:
    yych = *++p;
    if (yych == 'A')
      goto yy865;
    if (yych == 'a')
      goto yy865;
    goto yy523;
  yy850:
    yych = *++p;
    if (yych <= 'Z') {
      if (yych == 'T')
        goto yy533;
      if (yych <= 'Y')
        goto yy523;
      goto yy856;
    } else {
      if (yych <= 't') {
        if (yych <= 's')
          goto yy523;
        goto yy533;
      } else {
        if (yych == 'z')
          goto yy856;
        goto yy523;
      }
    }
  yy851:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'P')
        goto yy853;
      if (yych == 'p')
        goto yy853;
      goto yy523;
    }
  yy852:
    yych = *++p;
    if (yych == 'O')
      goto yy533;
    if (yych == 'o')
      goto yy533;
    goto yy523;
  yy853:
    yych = *++p;
    if (yych == 'H')
      goto yy854;
    if (yych != 'h')
      goto yy523;
  yy854:
    yych = *++p;
    if (yych == 'E')
      goto yy855;
    if (yych != 'e')
      goto yy523;
  yy855:
    yych = *++p;
    if (yych == 'R')
      goto yy533;
    if (yych == 'r')
      goto yy533;
    goto yy523;
  yy856:
    yych = *++p;
    if (yych == 'M')
      goto yy857;
    if (yych != 'm')
      goto yy523;
  yy857:
    yych = *++p;
    if (yych == 'O')
      goto yy858;
    if (yych != 'o')
      goto yy523;
  yy858:
    yych = *++p;
    if (yych == 'P')
      goto yy859;
    if (yych != 'p')
      goto yy523;
  yy859:
    yych = *++p;
    if (yych == 'R')
      goto yy860;
    if (yych != 'r')
      goto yy523;
  yy860:
    yych = *++p;
    if (yych == 'O')
      goto yy861;
    if (yych != 'o')
      goto yy523;
  yy861:
    yych = *++p;
    if (yych == 'J')
      goto yy862;
    if (yych != 'j')
      goto yy523;
  yy862:
    yych = *++p;
    if (yych == 'E')
      goto yy863;
    if (yych != 'e')
      goto yy523;
  yy863:
    yych = *++p;
    if (yych == 'C')
      goto yy864;
    if (yych != 'c')
      goto yy523;
  yy864:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy865:
    yych = *++p;
    if (yych == 'L')
      goto yy866;
    if (yych != 'l')
      goto yy523;
  yy866:
    yych = *++p;
    if (yych == 'K')
      goto yy533;
    if (yych == 'k')
      goto yy533;
    goto yy523;
  yy867:
    yych = *++p;
    if (yych <= 'S') {
      if (yych <= 'M') {
        if (yych == 'L')
          goto yy877;
        goto yy523;
      } else {
        if (yych <= 'N')
          goto yy878;
        if (yych <= 'R')
          goto yy523;
        goto yy879;
      }
    } else {
      if (yych <= 'm') {
        if (yych == 'l')
          goto yy877;
        goto yy523;
      } else {
        if (yych <= 'n')
          goto yy878;
        if (yych == 's')
          goto yy879;
        goto yy523;
      }
    }
  yy868:
    yych = *++p;
    if (yych == 'E')
      goto yy876;
    if (yych == 'e')
      goto yy876;
    goto yy523;
  yy869:
    yych = *++p;
    if (yych == 'C')
      goto yy871;
    if (yych == 'c')
      goto yy871;
    goto yy523;
  yy870:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy871:
    yych = *++p;
    if (yych == 'E')
      goto yy872;
    if (yych != 'e')
      goto yy523;
  yy872:
    yych = *++p;
    if (yych == 'T')
      goto yy873;
    if (yych != 't')
      goto yy523;
  yy873:
    yych = *++p;
    if (yych == 'I')
      goto yy874;
    if (yych != 'i')
      goto yy523;
  yy874:
    yych = *++p;
    if (yych == 'M')
      goto yy875;
    if (yych != 'm')
      goto yy523;
  yy875:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy876:
    yych = *++p;
    if (yych == 'D')
      goto yy533;
    if (yych == 'd')
      goto yy533;
    goto yy523;
  yy877:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy878:
    yych = *++p;
    if (yych == 'G')
      goto yy880;
    if (yych == 'g')
      goto yy880;
    goto yy523;
  yy879:
    yych = *++p;
    if (yych == 'H')
      goto yy533;
    if (yych == 'h')
      goto yy533;
    goto yy523;
  yy880:
    yych = *++p;
    if (yych == 'E')
      goto yy881;
    if (yych != 'e')
      goto yy523;
  yy881:
    yych = *++p;
    if (yych == 'R')
      goto yy533;
    if (yych == 'r')
      goto yy533;
    goto yy523;
  yy882:
    yych = *++p;
    if (yych == 'T')
      goto yy900;
    if (yych == 't')
      goto yy900;
    goto yy523;
  yy883:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy884:
    yych = *++p;
    if (yych == 'M')
      goto yy533;
    if (yych == 'm')
      goto yy533;
    goto yy523;
  yy885:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'P')
        goto yy533;
      if (yych <= 'R')
        goto yy523;
      goto yy533;
    } else {
      if (yych <= 'p') {
        if (yych <= 'o')
          goto yy523;
        goto yy533;
      } else {
        if (yych == 's')
          goto yy533;
        goto yy523;
      }
    }
  yy886:
    yych = *++p;
    if (yych == 'I')
      goto yy894;
    if (yych == 'i')
      goto yy894;
    goto yy523;
  yy887:
    yych = *++p;
    if (yych == 'A')
      goto yy893;
    if (yych == 'a')
      goto yy893;
    goto yy523;
  yy888:
    yych = *++p;
    if (yych == 'O')
      goto yy891;
    if (yych == 'o')
      goto yy891;
    goto yy523;
  yy889:
    yych = *++p;
    if (yych == 'A')
      goto yy890;
    if (yych != 'a')
      goto yy523;
  yy890:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == ':')
        goto yy534;
      goto yy523;
    } else {
      if (yych <= 'S')
        goto yy533;
      if (yych == 's')
        goto yy533;
      goto yy523;
    }
  yy891:
    yych = *++p;
    if (yych == 'U')
      goto yy892;
    if (yych != 'u')
      goto yy523;
  yy892:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy893:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy894:
    yych = *++p;
    if (yych == 'U')
      goto yy895;
    if (yych != 'u')
      goto yy523;
  yy895:
    yych = *++p;
    if (yych == 'M')
      goto yy896;
    if (yych != 'm')
      goto yy523;
  yy896:
    yych = *++p;
    if (yych == 'X')
      goto yy897;
    if (yych != 'x')
      goto yy523;
  yy897:
    yych = *++p;
    if (yych == 'T')
      goto yy898;
    if (yych != 't')
      goto yy523;
  yy898:
    yych = *++p;
    if (yych == 'R')
      goto yy899;
    if (yych != 'r')
      goto yy523;
  yy899:
    yych = *++p;
    if (yych == 'A')
      goto yy533;
    if (yych == 'a')
      goto yy533;
    goto yy523;
  yy900:
    yych = *++p;
    if (yych == 'A')
      goto yy901;
    if (yych != 'a')
      goto yy523;
  yy901:
    yych = *++p;
    if (yych == 'C')
      goto yy902;
    if (yych != 'c')
      goto yy523;
  yy902:
    yych = *++p;
    if (yych == 'H')
      goto yy903;
    if (yych != 'h')
      goto yy523;
  yy903:
    yych = *++p;
    if (yych == 'M')
      goto yy904;
    if (yych != 'm')
      goto yy523;
  yy904:
    yych = *++p;
    if (yych == 'E')
      goto yy905;
    if (yych != 'e')
      goto yy523;
  yy905:
    yych = *++p;
    if (yych == 'N')
      goto yy906;
    if (yych != 'n')
      goto yy523;
  yy906:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy907:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy908:
    yych = *++p;
    if (yych <= 'V') {
      if (yych == 'R')
        goto yy533;
      if (yych <= 'U')
        goto yy523;
    } else {
      if (yych <= 'r') {
        if (yych <= 'q')
          goto yy523;
        goto yy533;
      } else {
        if (yych != 'v')
          goto yy523;
      }
    }
    yych = *++p;
    if (yych == 'A')
      goto yy910;
    if (yych != 'a')
      goto yy523;
  yy910:
    yych = *++p;
    if (yych == 'S')
      goto yy911;
    if (yych != 's')
      goto yy523;
  yy911:
    yych = *++p;
    if (yych == 'C')
      goto yy912;
    if (yych != 'c')
      goto yy523;
  yy912:
    yych = *++p;
    if (yych == 'R')
      goto yy913;
    if (yych != 'r')
      goto yy523;
  yy913:
    yych = *++p;
    if (yych == 'I')
      goto yy914;
    if (yych != 'i')
      goto yy523;
  yy914:
    yych = *++p;
    if (yych == 'P')
      goto yy915;
    if (yych != 'p')
      goto yy523;
  yy915:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy916:
    yych = *++p;
    if (yych == 'B')
      goto yy533;
    if (yych == 'b')
      goto yy533;
    goto yy523;
  yy917:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy918:
    yych = *++p;
    if (yych == 'N')
      goto yy925;
    if (yych == 'n')
      goto yy925;
    goto yy523;
  yy919:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy920:
    yych = *++p;
    if (yych == 'C')
      goto yy924;
    if (yych == 'c')
      goto yy924;
    goto yy523;
  yy921:
    yych = *++p;
    if (yych <= 'V') {
      if (yych == 'T')
        goto yy923;
      if (yych <= 'U')
        goto yy523;
      goto yy533;
    } else {
      if (yych <= 't') {
        if (yych <= 's')
          goto yy523;
        goto yy923;
      } else {
        if (yych == 'v')
          goto yy533;
        goto yy523;
      }
    }
  yy922:
    yych = *++p;
    if (yych == 'I')
      goto yy533;
    if (yych == 'i')
      goto yy533;
    goto yy523;
  yy923:
    yych = *++p;
    if (yych == 'A')
      goto yy533;
    if (yych == 'a')
      goto yy533;
    goto yy523;
  yy924:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy925:
    yych = *++p;
    if (yych == 'A')
      goto yy926;
    if (yych != 'a')
      goto yy523;
  yy926:
    yych = *++p;
    if (yych != '-')
      goto yy523;
    yych = *++p;
    if (yych == 'P')
      goto yy928;
    if (yych != 'p')
      goto yy523;
  yy928:
    yych = *++p;
    if (yych == 'L')
      goto yy929;
    if (yych != 'l')
      goto yy523;
  yy929:
    yych = *++p;
    if (yych == 'A')
      goto yy930;
    if (yych != 'a')
      goto yy523;
  yy930:
    yych = *++p;
    if (yych == 'Y')
      goto yy931;
    if (yych != 'y')
      goto yy523;
  yy931:
    yych = *++p;
    if (yych <= 'S') {
      if (yych == 'C')
        goto yy932;
      if (yych <= 'R')
        goto yy523;
      goto yy933;
    } else {
      if (yych <= 'c') {
        if (yych <= 'b')
          goto yy523;
      } else {
        if (yych == 's')
          goto yy933;
        goto yy523;
      }
    }
  yy932:
    yych = *++p;
    if (yych == 'O')
      goto yy938;
    if (yych == 'o')
      goto yy938;
    goto yy523;
  yy933:
    yych = *++p;
    if (yych == 'I')
      goto yy934;
    if (yych != 'i')
      goto yy523;
  yy934:
    yych = *++p;
    if (yych == 'N')
      goto yy935;
    if (yych != 'n')
      goto yy523;
  yy935:
    yych = *++p;
    if (yych == 'G')
      goto yy936;
    if (yych != 'g')
      goto yy523;
  yy936:
    yych = *++p;
    if (yych == 'L')
      goto yy937;
    if (yych != 'l')
      goto yy523;
  yy937:
    yych = *++p;
    if (yych == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  yy938:
    yych = *++p;
    if (yych == 'N')
      goto yy939;
    if (yych != 'n')
      goto yy523;
  yy939:
    yych = *++p;
    if (yych == 'T')
      goto yy940;
    if (yych != 't')
      goto yy523;
  yy940:
    yych = *++p;
    if (yych == 'A')
      goto yy941;
    if (yych != 'a')
      goto yy523;
  yy941:
    yych = *++p;
    if (yych == 'I')
      goto yy942;
    if (yych != 'i')
      goto yy523;
  yy942:
    yych = *++p;
    if (yych == 'N')
      goto yy943;
    if (yych != 'n')
      goto yy523;
  yy943:
    yych = *++p;
    if (yych == 'E')
      goto yy944;
    if (yych != 'e')
      goto yy523;
  yy944:
    yych = *++p;
    if (yych == 'R')
      goto yy533;
    if (yych == 'r')
      goto yy533;
    goto yy523;
  yy945:
    yych = *++p;
    if (yych == 'S')
      goto yy533;
    if (yych == 's')
      goto yy533;
    goto yy523;
  yy946:
    yych = *++p;
    if (yych <= 'N') {
      if (yych <= 'A') {
        if (yych <= '@')
          goto yy523;
        goto yy968;
      } else {
        if (yych <= 'L')
          goto yy523;
        if (yych <= 'M')
          goto yy969;
        goto yy970;
      }
    } else {
      if (yych <= 'l') {
        if (yych == 'a')
          goto yy968;
        goto yy523;
      } else {
        if (yych <= 'm')
          goto yy969;
        if (yych <= 'n')
          goto yy970;
        goto yy523;
      }
    }
  yy947:
    yych = *++p;
    if (yych == 'R')
      goto yy955;
    if (yych == 'r')
      goto yy955;
    goto yy523;
  yy948:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy952;
      if (yych <= 'O')
        goto yy523;
      goto yy533;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy523;
        goto yy952;
      } else {
        if (yych == 'p')
          goto yy533;
        goto yy523;
      }
    }
  yy949:
    yych = *++p;
    if (yych == 'I')
      goto yy951;
    if (yych == 'i')
      goto yy951;
    goto yy523;
  yy950:
    yych = *++p;
    if (yych == 'D')
      goto yy533;
    if (yych == 'd')
      goto yy533;
    goto yy523;
  yy951:
    yych = *++p;
    if (yych == 'D')
      goto yy533;
    if (yych == 'd')
      goto yy533;
    goto yy523;
  yy952:
    yych = *++p;
    if (yych == 'L')
      goto yy953;
    if (yych != 'l')
      goto yy523;
  yy953:
    yych = *++p;
    if (yych == 'T')
      goto yy954;
    if (yych != 't')
      goto yy523;
  yy954:
    yych = *++p;
    if (yych == 'O')
      goto yy533;
    if (yych == 'o')
      goto yy533;
    goto yy523;
  yy955:
    yych = *++p;
    if (yych == 'O')
      goto yy956;
    if (yych != 'o')
      goto yy523;
  yy956:
    yych = *++p;
    if (yych == 'M')
      goto yy957;
    if (yych != 'm')
      goto yy523;
  yy957:
    yych = *++p;
    if (yych == 'E')
      goto yy958;
    if (yych != 'e')
      goto yy523;
  yy958:
    yych = *++p;
    if (yych == '-')
      goto yy959;
    if (yych == ':')
      goto yy534;
    goto yy523;
  yy959:
    yych = *++p;
    if (yych == 'E')
      goto yy960;
    if (yych != 'e')
      goto yy523;
  yy960:
    yych = *++p;
    if (yych == 'X')
      goto yy961;
    if (yych != 'x')
      goto yy523;
  yy961:
    yych = *++p;
    if (yych == 'T')
      goto yy962;
    if (yych != 't')
      goto yy523;
  yy962:
    yych = *++p;
    if (yych == 'E')
      goto yy963;
    if (yych != 'e')
      goto yy523;
  yy963:
    yych = *++p;
    if (yych == 'N')
      goto yy964;
    if (yych != 'n')
      goto yy523;
  yy964:
    yych = *++p;
    if (yych == 'S')
      goto yy965;
    if (yych != 's')
      goto yy523;
  yy965:
    yych = *++p;
    if (yych == 'I')
      goto yy966;
    if (yych != 'i')
      goto yy523;
  yy966:
    yych = *++p;
    if (yych == 'O')
      goto yy967;
    if (yych != 'o')
      goto yy523;
  yy967:
    yych = *++p;
    if (yych == 'N')
      goto yy533;
    if (yych == 'n')
      goto yy533;
    goto yy523;
  yy968:
    yych = *++p;
    if (yych == 'P')
      goto yy533;
    if (yych == 'p')
      goto yy533;
    goto yy523;
  yy969:
    yych = *++p;
    if (yych == '-')
      goto yy974;
    goto yy523;
  yy970:
    yych = *++p;
    if (yych == 'T')
      goto yy971;
    if (yych != 't')
      goto yy523;
  yy971:
    yych = *++p;
    if (yych == 'E')
      goto yy972;
    if (yych != 'e')
      goto yy523;
  yy972:
    yych = *++p;
    if (yych == 'N')
      goto yy973;
    if (yych != 'n')
      goto yy523;
  yy973:
    yych = *++p;
    if (yych == 'T')
      goto yy533;
    if (yych == 't')
      goto yy533;
    goto yy523;
  yy974:
    yych = *++p;
    if (yych == 'E')
      goto yy975;
    if (yych != 'e')
      goto yy523;
  yy975:
    yych = *++p;
    if (yych == 'V')
      goto yy976;
    if (yych != 'v')
      goto yy523;
  yy976:
    yych = *++p;
    if (yych == 'E')
      goto yy977;
    if (yych != 'e')
      goto yy523;
  yy977:
    yych = *++p;
    if (yych == 'N')
      goto yy978;
    if (yych != 'n')
      goto yy523;
  yy978:
    yych = *++p;
    if (yych == 'T')
      goto yy979;
    if (yych != 't')
      goto yy523;
  yy979:
    yych = *++p;
    if (yych == 'B')
      goto yy980;
    if (yych != 'b')
      goto yy523;
  yy980:
    yych = *++p;
    if (yych == 'R')
      goto yy981;
    if (yych != 'r')
      goto yy523;
  yy981:
    yych = *++p;
    if (yych == 'I')
      goto yy982;
    if (yych != 'i')
      goto yy523;
  yy982:
    yych = *++p;
    if (yych == 'T')
      goto yy983;
    if (yych != 't')
      goto yy523;
  yy983:
    yych = *++p;
    if (yych == 'E')
      goto yy984;
    if (yych != 'e')
      goto yy523;
  yy984:
    yych = *++p;
    if (yych != '-')
      goto yy523;
    yych = *++p;
    if (yych == 'A')
      goto yy986;
    if (yych != 'a')
      goto yy523;
  yy986:
    yych = *++p;
    if (yych == 'T')
      goto yy987;
    if (yych != 't')
      goto yy523;
  yy987:
    yych = *++p;
    if (yych == 'T')
      goto yy988;
    if (yych != 't')
      goto yy523;
  yy988:
    yych = *++p;
    if (yych == 'E')
      goto yy989;
    if (yych != 'e')
      goto yy523;
  yy989:
    yych = *++p;
    if (yych == 'N')
      goto yy990;
    if (yych != 'n')
      goto yy523;
  yy990:
    yych = *++p;
    if (yych == 'D')
      goto yy991;
    if (yych != 'd')
      goto yy523;
  yy991:
    yych = *++p;
    if (yych == 'E')
      goto yy992;
    if (yych != 'e')
      goto yy523;
  yy992:
    ++p;
    if ((yych = *p) == 'E')
      goto yy533;
    if (yych == 'e')
      goto yy533;
    goto yy523;
  }
}

// Try to match email autolink after first <, returning num of chars matched.
bufsize_t _scan_autolink_email(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   128, 0,   128, 128, 128, 128, 128, 0,   0,
        128, 128, 0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   128, 0,   128, 0,   128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 0,   0,   0,   128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= '?') {
      if (yych <= ')') {
        if (yych <= ' ') {
          if (yych != '\n')
            goto yy997;
        } else {
          if (yych == '"')
            goto yy997;
          if (yych <= '\'')
            goto yy996;
          goto yy997;
        }
      } else {
        if (yych <= '9') {
          if (yych == ',')
            goto yy997;
          goto yy996;
        } else {
          if (yych == '=')
            goto yy996;
          if (yych <= '>')
            goto yy997;
          goto yy996;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= ']') {
          if (yych <= '@')
            goto yy997;
          if (yych <= 'Z')
            goto yy996;
          goto yy997;
        } else {
          if (yych <= '~')
            goto yy996;
          if (yych <= 0x7F)
            goto yy997;
          if (yych >= 0xC2)
            goto yy998;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1000;
          if (yych == 0xED)
            goto yy1005;
          goto yy1001;
        } else {
          if (yych <= 0xF0)
            goto yy1002;
          if (yych <= 0xF3)
            goto yy1003;
          if (yych <= 0xF4)
            goto yy1004;
        }
      }
    }
  yy995 : { return 0; }
  yy996:
    yych = *(marker = ++p);
    if (yych <= ',') {
      if (yych <= '"') {
        if (yych == '!')
          goto yy1008;
        goto yy995;
      } else {
        if (yych <= '\'')
          goto yy1008;
        if (yych <= ')')
          goto yy995;
        if (yych <= '+')
          goto yy1008;
        goto yy995;
      }
    } else {
      if (yych <= '>') {
        if (yych <= '9')
          goto yy1008;
        if (yych == '=')
          goto yy1008;
        goto yy995;
      } else {
        if (yych <= 'Z')
          goto yy1008;
        if (yych <= ']')
          goto yy995;
        if (yych <= '~')
          goto yy1008;
        goto yy995;
      }
    }
  yy997:
    yych = *++p;
    goto yy995;
  yy998:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy999;
    if (yych <= 0xBF)
      goto yy997;
  yy999:
    p = marker;
    goto yy995;
  yy1000:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy999;
    if (yych <= 0xBF)
      goto yy998;
    goto yy999;
  yy1001:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy999;
    if (yych <= 0xBF)
      goto yy998;
    goto yy999;
  yy1002:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy999;
    if (yych <= 0xBF)
      goto yy1001;
    goto yy999;
  yy1003:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy999;
    if (yych <= 0xBF)
      goto yy1001;
    goto yy999;
  yy1004:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy999;
    if (yych <= 0x8F)
      goto yy1001;
    goto yy999;
  yy1005:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy999;
    if (yych <= 0x9F)
      goto yy998;
    goto yy999;
  yy1006:
    yych = *++p;
    if (yych <= '@') {
      if (yych <= '/')
        goto yy999;
      if (yych <= '9')
        goto yy1009;
      goto yy999;
    } else {
      if (yych <= 'Z')
        goto yy1009;
      if (yych <= '`')
        goto yy999;
      if (yych <= 'z')
        goto yy1009;
      goto yy999;
    }
  yy1007:
    ++p;
    yych = *p;
  yy1008:
    if (yybm[0 + yych] & 128) {
      goto yy1007;
    }
    if (yych <= '>')
      goto yy999;
    if (yych <= '@')
      goto yy1006;
    goto yy999;
  yy1009:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1011;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1011;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1011;
        goto yy999;
      }
    }
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1139;
      if (yych <= '/')
        goto yy999;
      goto yy1140;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1140;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1140;
        goto yy999;
      }
    }
  yy1011:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych <= '-')
          goto yy1139;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1140;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1140;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1140;
        goto yy999;
      }
    }
  yy1012:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '/')
        goto yy999;
      if (yych <= '9')
        goto yy1015;
      goto yy999;
    } else {
      if (yych <= 'Z')
        goto yy1015;
      if (yych <= '`')
        goto yy999;
      if (yych <= 'z')
        goto yy1015;
      goto yy999;
    }
  yy1013:
    ++p;
    { return (bufsize_t)(p - start); }
  yy1015:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1017;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1017;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1017;
        goto yy999;
      }
    }
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1018;
      if (yych <= '/')
        goto yy999;
      goto yy1019;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1019;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1019;
        goto yy999;
      }
    }
  yy1017:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1019;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1019;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1019;
        goto yy999;
      }
    }
  yy1018:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1020;
      if (yych <= '/')
        goto yy999;
      goto yy1021;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1021;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1021;
        goto yy999;
      }
    }
  yy1019:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1021;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1021;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1021;
        goto yy999;
      }
    }
  yy1020:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1022;
      if (yych <= '/')
        goto yy999;
      goto yy1023;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1023;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1023;
        goto yy999;
      }
    }
  yy1021:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1023;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1023;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1023;
        goto yy999;
      }
    }
  yy1022:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1024;
      if (yych <= '/')
        goto yy999;
      goto yy1025;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1025;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1025;
        goto yy999;
      }
    }
  yy1023:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1025;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1025;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1025;
        goto yy999;
      }
    }
  yy1024:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1026;
      if (yych <= '/')
        goto yy999;
      goto yy1027;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1027;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1027;
        goto yy999;
      }
    }
  yy1025:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1027;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1027;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1027;
        goto yy999;
      }
    }
  yy1026:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1028;
      if (yych <= '/')
        goto yy999;
      goto yy1029;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1029;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1029;
        goto yy999;
      }
    }
  yy1027:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1029;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1029;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1029;
        goto yy999;
      }
    }
  yy1028:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1030;
      if (yych <= '/')
        goto yy999;
      goto yy1031;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1031;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1031;
        goto yy999;
      }
    }
  yy1029:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1031;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1031;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1031;
        goto yy999;
      }
    }
  yy1030:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1032;
      if (yych <= '/')
        goto yy999;
      goto yy1033;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1033;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1033;
        goto yy999;
      }
    }
  yy1031:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1033;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1033;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1033;
        goto yy999;
      }
    }
  yy1032:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1034;
      if (yych <= '/')
        goto yy999;
      goto yy1035;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1035;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1035;
        goto yy999;
      }
    }
  yy1033:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1035;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1035;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1035;
        goto yy999;
      }
    }
  yy1034:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1036;
      if (yych <= '/')
        goto yy999;
      goto yy1037;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1037;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1037;
        goto yy999;
      }
    }
  yy1035:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1037;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1037;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1037;
        goto yy999;
      }
    }
  yy1036:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1038;
      if (yych <= '/')
        goto yy999;
      goto yy1039;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1039;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1039;
        goto yy999;
      }
    }
  yy1037:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1039;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1039;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1039;
        goto yy999;
      }
    }
  yy1038:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1040;
      if (yych <= '/')
        goto yy999;
      goto yy1041;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1041;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1041;
        goto yy999;
      }
    }
  yy1039:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1041;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1041;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1041;
        goto yy999;
      }
    }
  yy1040:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1042;
      if (yych <= '/')
        goto yy999;
      goto yy1043;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1043;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1043;
        goto yy999;
      }
    }
  yy1041:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1043;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1043;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1043;
        goto yy999;
      }
    }
  yy1042:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1044;
      if (yych <= '/')
        goto yy999;
      goto yy1045;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1045;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1045;
        goto yy999;
      }
    }
  yy1043:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1045;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1045;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1045;
        goto yy999;
      }
    }
  yy1044:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1046;
      if (yych <= '/')
        goto yy999;
      goto yy1047;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1047;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1047;
        goto yy999;
      }
    }
  yy1045:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1047;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1047;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1047;
        goto yy999;
      }
    }
  yy1046:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1048;
      if (yych <= '/')
        goto yy999;
      goto yy1049;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1049;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1049;
        goto yy999;
      }
    }
  yy1047:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1049;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1049;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1049;
        goto yy999;
      }
    }
  yy1048:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1050;
      if (yych <= '/')
        goto yy999;
      goto yy1051;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1051;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1051;
        goto yy999;
      }
    }
  yy1049:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1051;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1051;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1051;
        goto yy999;
      }
    }
  yy1050:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1052;
      if (yych <= '/')
        goto yy999;
      goto yy1053;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1053;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1053;
        goto yy999;
      }
    }
  yy1051:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1053;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1053;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1053;
        goto yy999;
      }
    }
  yy1052:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1054;
      if (yych <= '/')
        goto yy999;
      goto yy1055;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1055;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1055;
        goto yy999;
      }
    }
  yy1053:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1055;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1055;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1055;
        goto yy999;
      }
    }
  yy1054:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1056;
      if (yych <= '/')
        goto yy999;
      goto yy1057;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1057;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1057;
        goto yy999;
      }
    }
  yy1055:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1057;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1057;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1057;
        goto yy999;
      }
    }
  yy1056:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1058;
      if (yych <= '/')
        goto yy999;
      goto yy1059;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1059;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1059;
        goto yy999;
      }
    }
  yy1057:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1059;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1059;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1059;
        goto yy999;
      }
    }
  yy1058:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1060;
      if (yych <= '/')
        goto yy999;
      goto yy1061;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1061;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1061;
        goto yy999;
      }
    }
  yy1059:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1061;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1061;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1061;
        goto yy999;
      }
    }
  yy1060:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1062;
      if (yych <= '/')
        goto yy999;
      goto yy1063;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1063;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1063;
        goto yy999;
      }
    }
  yy1061:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1063;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1063;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1063;
        goto yy999;
      }
    }
  yy1062:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1064;
      if (yych <= '/')
        goto yy999;
      goto yy1065;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1065;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1065;
        goto yy999;
      }
    }
  yy1063:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1065;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1065;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1065;
        goto yy999;
      }
    }
  yy1064:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1066;
      if (yych <= '/')
        goto yy999;
      goto yy1067;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1067;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1067;
        goto yy999;
      }
    }
  yy1065:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1067;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1067;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1067;
        goto yy999;
      }
    }
  yy1066:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1068;
      if (yych <= '/')
        goto yy999;
      goto yy1069;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1069;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1069;
        goto yy999;
      }
    }
  yy1067:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1069;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1069;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1069;
        goto yy999;
      }
    }
  yy1068:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1070;
      if (yych <= '/')
        goto yy999;
      goto yy1071;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1071;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1071;
        goto yy999;
      }
    }
  yy1069:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1071;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1071;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1071;
        goto yy999;
      }
    }
  yy1070:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1072;
      if (yych <= '/')
        goto yy999;
      goto yy1073;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1073;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1073;
        goto yy999;
      }
    }
  yy1071:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1073;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1073;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1073;
        goto yy999;
      }
    }
  yy1072:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1074;
      if (yych <= '/')
        goto yy999;
      goto yy1075;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1075;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1075;
        goto yy999;
      }
    }
  yy1073:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1075;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1075;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1075;
        goto yy999;
      }
    }
  yy1074:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1076;
      if (yych <= '/')
        goto yy999;
      goto yy1077;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1077;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1077;
        goto yy999;
      }
    }
  yy1075:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1077;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1077;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1077;
        goto yy999;
      }
    }
  yy1076:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1078;
      if (yych <= '/')
        goto yy999;
      goto yy1079;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1079;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1079;
        goto yy999;
      }
    }
  yy1077:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1079;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1079;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1079;
        goto yy999;
      }
    }
  yy1078:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1080;
      if (yych <= '/')
        goto yy999;
      goto yy1081;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1081;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1081;
        goto yy999;
      }
    }
  yy1079:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1081;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1081;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1081;
        goto yy999;
      }
    }
  yy1080:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1082;
      if (yych <= '/')
        goto yy999;
      goto yy1083;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1083;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1083;
        goto yy999;
      }
    }
  yy1081:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1083;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1083;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1083;
        goto yy999;
      }
    }
  yy1082:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1084;
      if (yych <= '/')
        goto yy999;
      goto yy1085;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1085;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1085;
        goto yy999;
      }
    }
  yy1083:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1085;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1085;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1085;
        goto yy999;
      }
    }
  yy1084:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1086;
      if (yych <= '/')
        goto yy999;
      goto yy1087;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1087;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1087;
        goto yy999;
      }
    }
  yy1085:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1087;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1087;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1087;
        goto yy999;
      }
    }
  yy1086:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1088;
      if (yych <= '/')
        goto yy999;
      goto yy1089;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1089;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1089;
        goto yy999;
      }
    }
  yy1087:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1089;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1089;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1089;
        goto yy999;
      }
    }
  yy1088:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1090;
      if (yych <= '/')
        goto yy999;
      goto yy1091;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1091;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1091;
        goto yy999;
      }
    }
  yy1089:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1091;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1091;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1091;
        goto yy999;
      }
    }
  yy1090:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1092;
      if (yych <= '/')
        goto yy999;
      goto yy1093;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1093;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1093;
        goto yy999;
      }
    }
  yy1091:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1093;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1093;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1093;
        goto yy999;
      }
    }
  yy1092:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1094;
      if (yych <= '/')
        goto yy999;
      goto yy1095;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1095;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1095;
        goto yy999;
      }
    }
  yy1093:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1095;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1095;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1095;
        goto yy999;
      }
    }
  yy1094:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1096;
      if (yych <= '/')
        goto yy999;
      goto yy1097;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1097;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1097;
        goto yy999;
      }
    }
  yy1095:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1097;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1097;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1097;
        goto yy999;
      }
    }
  yy1096:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1098;
      if (yych <= '/')
        goto yy999;
      goto yy1099;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1099;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1099;
        goto yy999;
      }
    }
  yy1097:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1099;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1099;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1099;
        goto yy999;
      }
    }
  yy1098:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1100;
      if (yych <= '/')
        goto yy999;
      goto yy1101;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1101;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1101;
        goto yy999;
      }
    }
  yy1099:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1101;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1101;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1101;
        goto yy999;
      }
    }
  yy1100:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1102;
      if (yych <= '/')
        goto yy999;
      goto yy1103;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1103;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1103;
        goto yy999;
      }
    }
  yy1101:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1103;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1103;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1103;
        goto yy999;
      }
    }
  yy1102:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1104;
      if (yych <= '/')
        goto yy999;
      goto yy1105;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1105;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1105;
        goto yy999;
      }
    }
  yy1103:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1105;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1105;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1105;
        goto yy999;
      }
    }
  yy1104:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1106;
      if (yych <= '/')
        goto yy999;
      goto yy1107;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1107;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1107;
        goto yy999;
      }
    }
  yy1105:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1107;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1107;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1107;
        goto yy999;
      }
    }
  yy1106:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1108;
      if (yych <= '/')
        goto yy999;
      goto yy1109;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1109;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1109;
        goto yy999;
      }
    }
  yy1107:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1109;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1109;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1109;
        goto yy999;
      }
    }
  yy1108:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1110;
      if (yych <= '/')
        goto yy999;
      goto yy1111;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1111;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1111;
        goto yy999;
      }
    }
  yy1109:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1111;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1111;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1111;
        goto yy999;
      }
    }
  yy1110:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1112;
      if (yych <= '/')
        goto yy999;
      goto yy1113;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1113;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1113;
        goto yy999;
      }
    }
  yy1111:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1113;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1113;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1113;
        goto yy999;
      }
    }
  yy1112:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1114;
      if (yych <= '/')
        goto yy999;
      goto yy1115;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1115;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1115;
        goto yy999;
      }
    }
  yy1113:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1115;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1115;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1115;
        goto yy999;
      }
    }
  yy1114:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1116;
      if (yych <= '/')
        goto yy999;
      goto yy1117;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1117;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1117;
        goto yy999;
      }
    }
  yy1115:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1117;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1117;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1117;
        goto yy999;
      }
    }
  yy1116:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1118;
      if (yych <= '/')
        goto yy999;
      goto yy1119;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1119;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1119;
        goto yy999;
      }
    }
  yy1117:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1119;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1119;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1119;
        goto yy999;
      }
    }
  yy1118:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1120;
      if (yych <= '/')
        goto yy999;
      goto yy1121;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1121;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1121;
        goto yy999;
      }
    }
  yy1119:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1121;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1121;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1121;
        goto yy999;
      }
    }
  yy1120:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1122;
      if (yych <= '/')
        goto yy999;
      goto yy1123;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1123;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1123;
        goto yy999;
      }
    }
  yy1121:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1123;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1123;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1123;
        goto yy999;
      }
    }
  yy1122:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1124;
      if (yych <= '/')
        goto yy999;
      goto yy1125;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1125;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1125;
        goto yy999;
      }
    }
  yy1123:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1125;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1125;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1125;
        goto yy999;
      }
    }
  yy1124:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1126;
      if (yych <= '/')
        goto yy999;
      goto yy1127;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1127;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1127;
        goto yy999;
      }
    }
  yy1125:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1127;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1127;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1127;
        goto yy999;
      }
    }
  yy1126:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1128;
      if (yych <= '/')
        goto yy999;
      goto yy1129;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1129;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1129;
        goto yy999;
      }
    }
  yy1127:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1129;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1129;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1129;
        goto yy999;
      }
    }
  yy1128:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1130;
      if (yych <= '/')
        goto yy999;
      goto yy1131;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1131;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1131;
        goto yy999;
      }
    }
  yy1129:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1131;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1131;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1131;
        goto yy999;
      }
    }
  yy1130:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1132;
      if (yych <= '/')
        goto yy999;
      goto yy1133;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1133;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1133;
        goto yy999;
      }
    }
  yy1131:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1133;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1133;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1133;
        goto yy999;
      }
    }
  yy1132:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1134;
      if (yych <= '/')
        goto yy999;
      goto yy1135;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1135;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1135;
        goto yy999;
      }
    }
  yy1133:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1135;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1135;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1135;
        goto yy999;
      }
    }
  yy1134:
    ++p;
    yych = *p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1136;
      if (yych <= '/')
        goto yy999;
      goto yy1137;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1137;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1137;
        goto yy999;
      }
    }
  yy1135:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1137;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1137;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1137;
        goto yy999;
      }
    }
  yy1136:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '/')
        goto yy999;
      if (yych <= '9')
        goto yy1138;
      goto yy999;
    } else {
      if (yych <= 'Z')
        goto yy1138;
      if (yych <= '`')
        goto yy999;
      if (yych <= 'z')
        goto yy1138;
      goto yy999;
    }
  yy1137:
    ++p;
    yych = *p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= '-')
          goto yy999;
        goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych >= ':')
          goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych >= '{')
          goto yy999;
      }
    }
  yy1138:
    ++p;
    yych = *p;
    if (yych == '.')
      goto yy1012;
    if (yych == '>')
      goto yy1013;
    goto yy999;
  yy1139:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1141;
      if (yych <= '/')
        goto yy999;
      goto yy1142;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1142;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1142;
        goto yy999;
      }
    }
  yy1140:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1142;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1142;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1142;
        goto yy999;
      }
    }
  yy1141:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1143;
      if (yych <= '/')
        goto yy999;
      goto yy1144;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1144;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1144;
        goto yy999;
      }
    }
  yy1142:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1144;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1144;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1144;
        goto yy999;
      }
    }
  yy1143:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1145;
      if (yych <= '/')
        goto yy999;
      goto yy1146;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1146;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1146;
        goto yy999;
      }
    }
  yy1144:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1146;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1146;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1146;
        goto yy999;
      }
    }
  yy1145:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1147;
      if (yych <= '/')
        goto yy999;
      goto yy1148;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1148;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1148;
        goto yy999;
      }
    }
  yy1146:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1148;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1148;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1148;
        goto yy999;
      }
    }
  yy1147:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1149;
      if (yych <= '/')
        goto yy999;
      goto yy1150;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1150;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1150;
        goto yy999;
      }
    }
  yy1148:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1150;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1150;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1150;
        goto yy999;
      }
    }
  yy1149:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1151;
      if (yych <= '/')
        goto yy999;
      goto yy1152;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1152;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1152;
        goto yy999;
      }
    }
  yy1150:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1152;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1152;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1152;
        goto yy999;
      }
    }
  yy1151:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1153;
      if (yych <= '/')
        goto yy999;
      goto yy1154;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1154;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1154;
        goto yy999;
      }
    }
  yy1152:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1154;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1154;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1154;
        goto yy999;
      }
    }
  yy1153:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1155;
      if (yych <= '/')
        goto yy999;
      goto yy1156;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1156;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1156;
        goto yy999;
      }
    }
  yy1154:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1156;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1156;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1156;
        goto yy999;
      }
    }
  yy1155:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1157;
      if (yych <= '/')
        goto yy999;
      goto yy1158;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1158;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1158;
        goto yy999;
      }
    }
  yy1156:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1158;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1158;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1158;
        goto yy999;
      }
    }
  yy1157:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1159;
      if (yych <= '/')
        goto yy999;
      goto yy1160;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1160;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1160;
        goto yy999;
      }
    }
  yy1158:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1160;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1160;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1160;
        goto yy999;
      }
    }
  yy1159:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1161;
      if (yych <= '/')
        goto yy999;
      goto yy1162;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1162;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1162;
        goto yy999;
      }
    }
  yy1160:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1162;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1162;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1162;
        goto yy999;
      }
    }
  yy1161:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1163;
      if (yych <= '/')
        goto yy999;
      goto yy1164;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1164;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1164;
        goto yy999;
      }
    }
  yy1162:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1164;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1164;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1164;
        goto yy999;
      }
    }
  yy1163:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1165;
      if (yych <= '/')
        goto yy999;
      goto yy1166;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1166;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1166;
        goto yy999;
      }
    }
  yy1164:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1166;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1166;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1166;
        goto yy999;
      }
    }
  yy1165:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1167;
      if (yych <= '/')
        goto yy999;
      goto yy1168;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1168;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1168;
        goto yy999;
      }
    }
  yy1166:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1168;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1168;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1168;
        goto yy999;
      }
    }
  yy1167:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1169;
      if (yych <= '/')
        goto yy999;
      goto yy1170;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1170;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1170;
        goto yy999;
      }
    }
  yy1168:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1170;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1170;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1170;
        goto yy999;
      }
    }
  yy1169:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1171;
      if (yych <= '/')
        goto yy999;
      goto yy1172;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1172;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1172;
        goto yy999;
      }
    }
  yy1170:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1172;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1172;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1172;
        goto yy999;
      }
    }
  yy1171:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1173;
      if (yych <= '/')
        goto yy999;
      goto yy1174;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1174;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1174;
        goto yy999;
      }
    }
  yy1172:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1174;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1174;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1174;
        goto yy999;
      }
    }
  yy1173:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1175;
      if (yych <= '/')
        goto yy999;
      goto yy1176;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1176;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1176;
        goto yy999;
      }
    }
  yy1174:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1176;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1176;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1176;
        goto yy999;
      }
    }
  yy1175:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1177;
      if (yych <= '/')
        goto yy999;
      goto yy1178;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1178;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1178;
        goto yy999;
      }
    }
  yy1176:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1178;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1178;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1178;
        goto yy999;
      }
    }
  yy1177:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1179;
      if (yych <= '/')
        goto yy999;
      goto yy1180;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1180;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1180;
        goto yy999;
      }
    }
  yy1178:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1180;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1180;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1180;
        goto yy999;
      }
    }
  yy1179:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1181;
      if (yych <= '/')
        goto yy999;
      goto yy1182;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1182;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1182;
        goto yy999;
      }
    }
  yy1180:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1182;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1182;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1182;
        goto yy999;
      }
    }
  yy1181:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1183;
      if (yych <= '/')
        goto yy999;
      goto yy1184;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1184;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1184;
        goto yy999;
      }
    }
  yy1182:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1184;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1184;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1184;
        goto yy999;
      }
    }
  yy1183:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1185;
      if (yych <= '/')
        goto yy999;
      goto yy1186;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1186;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1186;
        goto yy999;
      }
    }
  yy1184:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1186;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1186;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1186;
        goto yy999;
      }
    }
  yy1185:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1187;
      if (yych <= '/')
        goto yy999;
      goto yy1188;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1188;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1188;
        goto yy999;
      }
    }
  yy1186:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1188;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1188;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1188;
        goto yy999;
      }
    }
  yy1187:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1189;
      if (yych <= '/')
        goto yy999;
      goto yy1190;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1190;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1190;
        goto yy999;
      }
    }
  yy1188:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1190;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1190;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1190;
        goto yy999;
      }
    }
  yy1189:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1191;
      if (yych <= '/')
        goto yy999;
      goto yy1192;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1192;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1192;
        goto yy999;
      }
    }
  yy1190:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1192;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1192;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1192;
        goto yy999;
      }
    }
  yy1191:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1193;
      if (yych <= '/')
        goto yy999;
      goto yy1194;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1194;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1194;
        goto yy999;
      }
    }
  yy1192:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1194;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1194;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1194;
        goto yy999;
      }
    }
  yy1193:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1195;
      if (yych <= '/')
        goto yy999;
      goto yy1196;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1196;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1196;
        goto yy999;
      }
    }
  yy1194:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1196;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1196;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1196;
        goto yy999;
      }
    }
  yy1195:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1197;
      if (yych <= '/')
        goto yy999;
      goto yy1198;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1198;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1198;
        goto yy999;
      }
    }
  yy1196:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1198;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1198;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1198;
        goto yy999;
      }
    }
  yy1197:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1199;
      if (yych <= '/')
        goto yy999;
      goto yy1200;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1200;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1200;
        goto yy999;
      }
    }
  yy1198:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1200;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1200;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1200;
        goto yy999;
      }
    }
  yy1199:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1201;
      if (yych <= '/')
        goto yy999;
      goto yy1202;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1202;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1202;
        goto yy999;
      }
    }
  yy1200:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1202;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1202;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1202;
        goto yy999;
      }
    }
  yy1201:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1203;
      if (yych <= '/')
        goto yy999;
      goto yy1204;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1204;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1204;
        goto yy999;
      }
    }
  yy1202:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1204;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1204;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1204;
        goto yy999;
      }
    }
  yy1203:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1205;
      if (yych <= '/')
        goto yy999;
      goto yy1206;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1206;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1206;
        goto yy999;
      }
    }
  yy1204:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1206;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1206;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1206;
        goto yy999;
      }
    }
  yy1205:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1207;
      if (yych <= '/')
        goto yy999;
      goto yy1208;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1208;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1208;
        goto yy999;
      }
    }
  yy1206:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1208;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1208;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1208;
        goto yy999;
      }
    }
  yy1207:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1209;
      if (yych <= '/')
        goto yy999;
      goto yy1210;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1210;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1210;
        goto yy999;
      }
    }
  yy1208:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1210;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1210;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1210;
        goto yy999;
      }
    }
  yy1209:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1211;
      if (yych <= '/')
        goto yy999;
      goto yy1212;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1212;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1212;
        goto yy999;
      }
    }
  yy1210:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1212;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1212;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1212;
        goto yy999;
      }
    }
  yy1211:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1213;
      if (yych <= '/')
        goto yy999;
      goto yy1214;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1214;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1214;
        goto yy999;
      }
    }
  yy1212:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1214;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1214;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1214;
        goto yy999;
      }
    }
  yy1213:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1215;
      if (yych <= '/')
        goto yy999;
      goto yy1216;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1216;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1216;
        goto yy999;
      }
    }
  yy1214:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1216;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1216;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1216;
        goto yy999;
      }
    }
  yy1215:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1217;
      if (yych <= '/')
        goto yy999;
      goto yy1218;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1218;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1218;
        goto yy999;
      }
    }
  yy1216:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1218;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1218;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1218;
        goto yy999;
      }
    }
  yy1217:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1219;
      if (yych <= '/')
        goto yy999;
      goto yy1220;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1220;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1220;
        goto yy999;
      }
    }
  yy1218:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1220;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1220;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1220;
        goto yy999;
      }
    }
  yy1219:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1221;
      if (yych <= '/')
        goto yy999;
      goto yy1222;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1222;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1222;
        goto yy999;
      }
    }
  yy1220:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1222;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1222;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1222;
        goto yy999;
      }
    }
  yy1221:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1223;
      if (yych <= '/')
        goto yy999;
      goto yy1224;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1224;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1224;
        goto yy999;
      }
    }
  yy1222:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1224;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1224;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1224;
        goto yy999;
      }
    }
  yy1223:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1225;
      if (yych <= '/')
        goto yy999;
      goto yy1226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1226;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1226;
        goto yy999;
      }
    }
  yy1224:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1226;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1226;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1226;
        goto yy999;
      }
    }
  yy1225:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1227;
      if (yych <= '/')
        goto yy999;
      goto yy1228;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1228;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1228;
        goto yy999;
      }
    }
  yy1226:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1228;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1228;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1228;
        goto yy999;
      }
    }
  yy1227:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1229;
      if (yych <= '/')
        goto yy999;
      goto yy1230;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1230;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1230;
        goto yy999;
      }
    }
  yy1228:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1230;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1230;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1230;
        goto yy999;
      }
    }
  yy1229:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1231;
      if (yych <= '/')
        goto yy999;
      goto yy1232;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1232;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1232;
        goto yy999;
      }
    }
  yy1230:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1232;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1232;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1232;
        goto yy999;
      }
    }
  yy1231:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1233;
      if (yych <= '/')
        goto yy999;
      goto yy1234;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1234;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1234;
        goto yy999;
      }
    }
  yy1232:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1234;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1234;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1234;
        goto yy999;
      }
    }
  yy1233:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1235;
      if (yych <= '/')
        goto yy999;
      goto yy1236;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1236;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1236;
        goto yy999;
      }
    }
  yy1234:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1236;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1236;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1236;
        goto yy999;
      }
    }
  yy1235:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1237;
      if (yych <= '/')
        goto yy999;
      goto yy1238;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1238;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1238;
        goto yy999;
      }
    }
  yy1236:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1238;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1238;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1238;
        goto yy999;
      }
    }
  yy1237:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1239;
      if (yych <= '/')
        goto yy999;
      goto yy1240;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1240;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1240;
        goto yy999;
      }
    }
  yy1238:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1240;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1240;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1240;
        goto yy999;
      }
    }
  yy1239:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1241;
      if (yych <= '/')
        goto yy999;
      goto yy1242;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1242;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1242;
        goto yy999;
      }
    }
  yy1240:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1242;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1242;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1242;
        goto yy999;
      }
    }
  yy1241:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1243;
      if (yych <= '/')
        goto yy999;
      goto yy1244;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1244;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1244;
        goto yy999;
      }
    }
  yy1242:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1244;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1244;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1244;
        goto yy999;
      }
    }
  yy1243:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1245;
      if (yych <= '/')
        goto yy999;
      goto yy1246;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1246;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1246;
        goto yy999;
      }
    }
  yy1244:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1246;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1246;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1246;
        goto yy999;
      }
    }
  yy1245:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1247;
      if (yych <= '/')
        goto yy999;
      goto yy1248;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1248;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1248;
        goto yy999;
      }
    }
  yy1246:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1248;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1248;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1248;
        goto yy999;
      }
    }
  yy1247:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1249;
      if (yych <= '/')
        goto yy999;
      goto yy1250;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1250;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1250;
        goto yy999;
      }
    }
  yy1248:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1250;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1250;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1250;
        goto yy999;
      }
    }
  yy1249:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1251;
      if (yych <= '/')
        goto yy999;
      goto yy1252;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1252;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1252;
        goto yy999;
      }
    }
  yy1250:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1252;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1252;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1252;
        goto yy999;
      }
    }
  yy1251:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1253;
      if (yych <= '/')
        goto yy999;
      goto yy1254;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1254;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1254;
        goto yy999;
      }
    }
  yy1252:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1254;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1254;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1254;
        goto yy999;
      }
    }
  yy1253:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1255;
      if (yych <= '/')
        goto yy999;
      goto yy1256;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1256;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1256;
        goto yy999;
      }
    }
  yy1254:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1256;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1256;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1256;
        goto yy999;
      }
    }
  yy1255:
    yych = *++p;
    if (yych <= '9') {
      if (yych == '-')
        goto yy1257;
      if (yych <= '/')
        goto yy999;
      goto yy1258;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy999;
        goto yy1258;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1258;
        goto yy999;
      }
    }
  yy1256:
    yych = *++p;
    if (yych <= '=') {
      if (yych <= '.') {
        if (yych <= ',')
          goto yy999;
        if (yych >= '.')
          goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1258;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1258;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1258;
        goto yy999;
      }
    }
  yy1257:
    yych = *++p;
    if (yych <= '@') {
      if (yych <= '/')
        goto yy999;
      if (yych <= '9')
        goto yy1138;
      goto yy999;
    } else {
      if (yych <= 'Z')
        goto yy1138;
      if (yych <= '`')
        goto yy999;
      if (yych <= 'z')
        goto yy1138;
      goto yy999;
    }
  yy1258:
    ++p;
    if ((yych = *p) <= '=') {
      if (yych <= '.') {
        if (yych <= '-')
          goto yy999;
        goto yy1012;
      } else {
        if (yych <= '/')
          goto yy999;
        if (yych <= '9')
          goto yy1138;
        goto yy999;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1013;
        if (yych <= '@')
          goto yy999;
        goto yy1138;
      } else {
        if (yych <= '`')
          goto yy999;
        if (yych <= 'z')
          goto yy1138;
        goto yy999;
      }
    }
  }
}

// Try to match an HTML tag after first <, returning num of chars matched.
bufsize_t _scan_html_tag(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        /* table 1 .. 8: 0 */
        0,   230, 230, 230, 230, 230, 230, 230, 230, 199, 199, 199, 199, 199,
        230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230, 230,
        230, 230, 230, 230, 199, 230, 70,  230, 230, 230, 230, 134, 230, 230,
        230, 230, 230, 254, 246, 230, 254, 254, 254, 254, 254, 254, 254, 254,
        254, 254, 246, 230, 198, 198, 196, 230, 230, 254, 254, 254, 254, 254,
        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
        254, 254, 254, 254, 254, 254, 254, 230, 230, 226, 230, 246, 198, 254,
        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254,
        254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 230, 230, 230,
        230, 230, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
        /* table 9 .. 11: 256 */
        0,   160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 32,  160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 128, 160, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= '`') {
      if (yych <= '.') {
        if (yych <= '\n') {
          if (yych <= '\t')
            goto yy1266;
        } else {
          if (yych == '!')
            goto yy1264;
          goto yy1266;
        }
      } else {
        if (yych <= '?') {
          if (yych <= '/')
            goto yy1263;
          if (yych <= '>')
            goto yy1266;
          goto yy1265;
        } else {
          if (yych <= '@')
            goto yy1266;
          if (yych <= 'Z')
            goto yy1262;
          goto yy1266;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= 'z')
            goto yy1262;
          if (yych <= 0x7F)
            goto yy1266;
        } else {
          if (yych <= 0xDF)
            goto yy1267;
          if (yych <= 0xE0)
            goto yy1269;
          goto yy1270;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1274;
          if (yych <= 0xEF)
            goto yy1270;
          goto yy1271;
        } else {
          if (yych <= 0xF3)
            goto yy1272;
          if (yych <= 0xF4)
            goto yy1273;
        }
      }
    }
  yy1261 : { return 0; }
  yy1262:
    yych = *(marker = ++p);
    if (yych <= '/') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1261;
        if (yych <= '\r')
          goto yy1366;
        if (yych <= 0x1F)
          goto yy1261;
        goto yy1366;
      } else {
        if (yych == '-')
          goto yy1364;
        if (yych <= '.')
          goto yy1261;
        goto yy1368;
      }
    } else {
      if (yych <= '@') {
        if (yych <= '9')
          goto yy1364;
        if (yych == '>')
          goto yy1285;
        goto yy1261;
      } else {
        if (yych <= 'Z')
          goto yy1364;
        if (yych <= '`')
          goto yy1261;
        if (yych <= 'z')
          goto yy1364;
        goto yy1261;
      }
    }
  yy1263:
    yych = *(marker = ++p);
    if (yych <= '@')
      goto yy1261;
    if (yych <= 'Z')
      goto yy1360;
    if (yych <= '`')
      goto yy1261;
    if (yych <= 'z')
      goto yy1360;
    goto yy1261;
  yy1264:
    yych = *(marker = ++p);
    if (yybm[256 + yych] & 64) {
      goto yy1295;
    }
    if (yych == '-')
      goto yy1297;
    if (yych <= '@')
      goto yy1261;
    if (yych <= '[')
      goto yy1294;
    goto yy1261;
  yy1265:
    yych = *(marker = ++p);
    if (yych <= 0x00)
      goto yy1261;
    if (yych <= 0x7F)
      goto yy1276;
    if (yych <= 0xC1)
      goto yy1261;
    if (yych <= 0xF4)
      goto yy1276;
    goto yy1261;
  yy1266:
    yych = *++p;
    goto yy1261;
  yy1267:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1266;
  yy1268:
    p = marker;
    goto yy1261;
  yy1269:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1267;
    goto yy1268;
  yy1270:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1267;
    goto yy1268;
  yy1271:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1270;
    goto yy1268;
  yy1272:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1270;
    goto yy1268;
  yy1273:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1270;
    goto yy1268;
  yy1274:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1267;
    goto yy1268;
  yy1275:
    ++p;
    yych = *p;
  yy1276:
    if (yybm[256 + yych] & 32) {
      goto yy1275;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '?')
          goto yy1284;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1277;
        if (yych <= 0xE0)
          goto yy1278;
        goto yy1279;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1283;
        if (yych <= 0xEF)
          goto yy1279;
        goto yy1280;
      } else {
        if (yych <= 0xF3)
          goto yy1281;
        if (yych <= 0xF4)
          goto yy1282;
        goto yy1268;
      }
    }
  yy1277:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1275;
    goto yy1268;
  yy1278:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1277;
    goto yy1268;
  yy1279:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1277;
    goto yy1268;
  yy1280:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1279;
    goto yy1268;
  yy1281:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1279;
    goto yy1268;
  yy1282:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1279;
    goto yy1268;
  yy1283:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1277;
    goto yy1268;
  yy1284:
    ++p;
    yych = *p;
    if (yych <= 0xE0) {
      if (yych <= '>') {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '=')
          goto yy1275;
      } else {
        if (yych <= 0x7F)
          goto yy1275;
        if (yych <= 0xC1)
          goto yy1268;
        if (yych <= 0xDF)
          goto yy1287;
        goto yy1288;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1293;
        goto yy1289;
      } else {
        if (yych <= 0xF0)
          goto yy1290;
        if (yych <= 0xF3)
          goto yy1291;
        if (yych <= 0xF4)
          goto yy1292;
        goto yy1268;
      }
    }
  yy1285:
    ++p;
    { return (bufsize_t)(p - start); }
  yy1287:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1275;
    goto yy1268;
  yy1288:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1287;
    goto yy1268;
  yy1289:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1287;
    goto yy1268;
  yy1290:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1289;
    goto yy1268;
  yy1291:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1289;
    goto yy1268;
  yy1292:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1289;
    goto yy1268;
  yy1293:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1287;
    goto yy1268;
  yy1294:
    yych = *++p;
    if (yych == 'C')
      goto yy1330;
    if (yych == 'c')
      goto yy1330;
    goto yy1268;
  yy1295:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 1) {
      goto yy1319;
    }
    if (yych <= '@')
      goto yy1268;
    if (yych <= 'Z')
      goto yy1295;
    goto yy1268;
  yy1297:
    yych = *++p;
    if (yych != '-')
      goto yy1268;
    yych = *++p;
    if (yych <= 0xE0) {
      if (yych <= '=') {
        if (yych != '-')
          goto yy1301;
      } else {
        if (yych <= '>')
          goto yy1268;
        if (yych <= 0xC1)
          goto yy1301;
        if (yych <= 0xDF)
          goto yy1302;
        goto yy1303;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1308;
        goto yy1304;
      } else {
        if (yych <= 0xF0)
          goto yy1305;
        if (yych <= 0xF3)
          goto yy1306;
        if (yych <= 0xF4)
          goto yy1307;
        goto yy1301;
      }
    }
    yych = *++p;
    if (yych <= 0xE0) {
      if (yych <= '=') {
        if (yych == '-')
          goto yy1318;
        goto yy1301;
      } else {
        if (yych <= '>')
          goto yy1268;
        if (yych <= 0xC1)
          goto yy1301;
        if (yych <= 0xDF)
          goto yy1302;
        goto yy1303;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1308;
        goto yy1304;
      } else {
        if (yych <= 0xF0)
          goto yy1305;
        if (yych <= 0xF3)
          goto yy1306;
        if (yych <= 0xF4)
          goto yy1307;
        goto yy1301;
      }
    }
  yy1300:
    ++p;
    yych = *p;
  yy1301:
    if (yybm[256 + yych] & 128) {
      goto yy1300;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '-')
          goto yy1309;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1310;
        if (yych <= 0xE0)
          goto yy1311;
        goto yy1312;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1316;
        if (yych <= 0xEF)
          goto yy1312;
        goto yy1313;
      } else {
        if (yych <= 0xF3)
          goto yy1314;
        if (yych <= 0xF4)
          goto yy1315;
        goto yy1268;
      }
    }
  yy1302:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1300;
    goto yy1268;
  yy1303:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1302;
    goto yy1268;
  yy1304:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1302;
    goto yy1268;
  yy1305:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1304;
    goto yy1268;
  yy1306:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1304;
    goto yy1268;
  yy1307:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1304;
    goto yy1268;
  yy1308:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1302;
    goto yy1268;
  yy1309:
    ++p;
    yych = *p;
    if (yybm[256 + yych] & 128) {
      goto yy1300;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '-')
          goto yy1317;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1310;
        if (yych <= 0xE0)
          goto yy1311;
        goto yy1312;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1316;
        if (yych <= 0xEF)
          goto yy1312;
        goto yy1313;
      } else {
        if (yych <= 0xF3)
          goto yy1314;
        if (yych <= 0xF4)
          goto yy1315;
        goto yy1268;
      }
    }
  yy1310:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1300;
    goto yy1268;
  yy1311:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1310;
    goto yy1268;
  yy1312:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1310;
    goto yy1268;
  yy1313:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1312;
    goto yy1268;
  yy1314:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1312;
    goto yy1268;
  yy1315:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1312;
    goto yy1268;
  yy1316:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1310;
    goto yy1268;
  yy1317:
    yych = *++p;
    if (yych == '>')
      goto yy1285;
    goto yy1268;
  yy1318:
    yych = *++p;
    if (yych == '>')
      goto yy1285;
    goto yy1268;
  yy1319:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 1) {
      goto yy1319;
    }
    if (yych <= 0xE0) {
      if (yych <= '>') {
        if (yych <= 0x00)
          goto yy1268;
        if (yych >= '>')
          goto yy1285;
      } else {
        if (yych <= 0x7F)
          goto yy1321;
        if (yych <= 0xC1)
          goto yy1268;
        if (yych <= 0xDF)
          goto yy1323;
        goto yy1324;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1329;
        goto yy1325;
      } else {
        if (yych <= 0xF0)
          goto yy1326;
        if (yych <= 0xF3)
          goto yy1327;
        if (yych <= 0xF4)
          goto yy1328;
        goto yy1268;
      }
    }
  yy1321:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 2) {
      goto yy1321;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '>')
          goto yy1285;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1323;
        if (yych <= 0xE0)
          goto yy1324;
        goto yy1325;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1329;
        if (yych <= 0xEF)
          goto yy1325;
        goto yy1326;
      } else {
        if (yych <= 0xF3)
          goto yy1327;
        if (yych <= 0xF4)
          goto yy1328;
        goto yy1268;
      }
    }
  yy1323:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1321;
    goto yy1268;
  yy1324:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1323;
    goto yy1268;
  yy1325:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1323;
    goto yy1268;
  yy1326:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1325;
    goto yy1268;
  yy1327:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1325;
    goto yy1268;
  yy1328:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1325;
    goto yy1268;
  yy1329:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1323;
    goto yy1268;
  yy1330:
    yych = *++p;
    if (yych == 'D')
      goto yy1331;
    if (yych != 'd')
      goto yy1268;
  yy1331:
    yych = *++p;
    if (yych == 'A')
      goto yy1332;
    if (yych != 'a')
      goto yy1268;
  yy1332:
    yych = *++p;
    if (yych == 'T')
      goto yy1333;
    if (yych != 't')
      goto yy1268;
  yy1333:
    yych = *++p;
    if (yych == 'A')
      goto yy1334;
    if (yych != 'a')
      goto yy1268;
  yy1334:
    yych = *++p;
    if (yych != '[')
      goto yy1268;
  yy1335:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 4) {
      goto yy1335;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= ']')
          goto yy1344;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1337;
        if (yych <= 0xE0)
          goto yy1338;
        goto yy1339;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1343;
        if (yych <= 0xEF)
          goto yy1339;
        goto yy1340;
      } else {
        if (yych <= 0xF3)
          goto yy1341;
        if (yych <= 0xF4)
          goto yy1342;
        goto yy1268;
      }
    }
  yy1337:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1335;
    goto yy1268;
  yy1338:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1337;
    goto yy1268;
  yy1339:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1337;
    goto yy1268;
  yy1340:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1339;
    goto yy1268;
  yy1341:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1339;
    goto yy1268;
  yy1342:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1339;
    goto yy1268;
  yy1343:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1337;
    goto yy1268;
  yy1344:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 4) {
      goto yy1335;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych >= '^')
          goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1346;
        if (yych <= 0xE0)
          goto yy1347;
        goto yy1348;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1352;
        if (yych <= 0xEF)
          goto yy1348;
        goto yy1349;
      } else {
        if (yych <= 0xF3)
          goto yy1350;
        if (yych <= 0xF4)
          goto yy1351;
        goto yy1268;
      }
    }
    ++p;
    yych = *p;
    if (yych <= 0xE0) {
      if (yych <= '>') {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '=')
          goto yy1335;
        goto yy1285;
      } else {
        if (yych <= 0x7F)
          goto yy1335;
        if (yych <= 0xC1)
          goto yy1268;
        if (yych <= 0xDF)
          goto yy1353;
        goto yy1354;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1359;
        goto yy1355;
      } else {
        if (yych <= 0xF0)
          goto yy1356;
        if (yych <= 0xF3)
          goto yy1357;
        if (yych <= 0xF4)
          goto yy1358;
        goto yy1268;
      }
    }
  yy1346:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1335;
    goto yy1268;
  yy1347:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1346;
    goto yy1268;
  yy1348:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1346;
    goto yy1268;
  yy1349:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1348;
    goto yy1268;
  yy1350:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1348;
    goto yy1268;
  yy1351:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1348;
    goto yy1268;
  yy1352:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1346;
    goto yy1268;
  yy1353:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1335;
    goto yy1268;
  yy1354:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1353;
    goto yy1268;
  yy1355:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1353;
    goto yy1268;
  yy1356:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1355;
    goto yy1268;
  yy1357:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1355;
    goto yy1268;
  yy1358:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1355;
    goto yy1268;
  yy1359:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1353;
    goto yy1268;
  yy1360:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 8) {
      goto yy1360;
    }
    if (yych <= 0x1F) {
      if (yych <= 0x08)
        goto yy1268;
      if (yych >= 0x0E)
        goto yy1268;
    } else {
      if (yych <= ' ')
        goto yy1362;
      if (yych == '>')
        goto yy1285;
      goto yy1268;
    }
  yy1362:
    ++p;
    yych = *p;
    if (yych <= 0x1F) {
      if (yych <= 0x08)
        goto yy1268;
      if (yych <= '\r')
        goto yy1362;
      goto yy1268;
    } else {
      if (yych <= ' ')
        goto yy1362;
      if (yych == '>')
        goto yy1285;
      goto yy1268;
    }
  yy1364:
    ++p;
    yych = *p;
    if (yych <= '/') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1268;
        if (yych <= '\r')
          goto yy1366;
        if (yych <= 0x1F)
          goto yy1268;
      } else {
        if (yych == '-')
          goto yy1364;
        if (yych <= '.')
          goto yy1268;
        goto yy1368;
      }
    } else {
      if (yych <= '@') {
        if (yych <= '9')
          goto yy1364;
        if (yych == '>')
          goto yy1285;
        goto yy1268;
      } else {
        if (yych <= 'Z')
          goto yy1364;
        if (yych <= '`')
          goto yy1268;
        if (yych <= 'z')
          goto yy1364;
        goto yy1268;
      }
    }
  yy1366:
    ++p;
    yych = *p;
    if (yych <= ':') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1268;
        if (yych <= '\r')
          goto yy1366;
        if (yych <= 0x1F)
          goto yy1268;
        goto yy1366;
      } else {
        if (yych == '/')
          goto yy1368;
        if (yych <= '9')
          goto yy1268;
        goto yy1369;
      }
    } else {
      if (yych <= 'Z') {
        if (yych == '>')
          goto yy1285;
        if (yych <= '@')
          goto yy1268;
        goto yy1369;
      } else {
        if (yych <= '_') {
          if (yych <= '^')
            goto yy1268;
          goto yy1369;
        } else {
          if (yych <= '`')
            goto yy1268;
          if (yych <= 'z')
            goto yy1369;
          goto yy1268;
        }
      }
    }
  yy1368:
    yych = *++p;
    if (yych == '>')
      goto yy1285;
    goto yy1268;
  yy1369:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 16) {
      goto yy1369;
    }
    if (yych <= ',') {
      if (yych <= '\r') {
        if (yych <= 0x08)
          goto yy1268;
      } else {
        if (yych != ' ')
          goto yy1268;
      }
    } else {
      if (yych <= '<') {
        if (yych <= '/')
          goto yy1368;
        goto yy1268;
      } else {
        if (yych <= '=')
          goto yy1373;
        if (yych <= '>')
          goto yy1285;
        goto yy1268;
      }
    }
  yy1371:
    ++p;
    yych = *p;
    if (yych <= '<') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1268;
        if (yych <= '\r')
          goto yy1371;
        if (yych <= 0x1F)
          goto yy1268;
        goto yy1371;
      } else {
        if (yych <= '/') {
          if (yych <= '.')
            goto yy1268;
          goto yy1368;
        } else {
          if (yych == ':')
            goto yy1369;
          goto yy1268;
        }
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '=')
          goto yy1373;
        if (yych <= '>')
          goto yy1285;
        if (yych <= '@')
          goto yy1268;
        goto yy1369;
      } else {
        if (yych <= '_') {
          if (yych <= '^')
            goto yy1268;
          goto yy1369;
        } else {
          if (yych <= '`')
            goto yy1268;
          if (yych <= 'z')
            goto yy1369;
          goto yy1268;
        }
      }
    }
  yy1373:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1375;
    }
    if (yych <= 0xE0) {
      if (yych <= '"') {
        if (yych <= 0x00)
          goto yy1268;
        if (yych >= '!')
          goto yy1386;
      } else {
        if (yych <= '\'')
          goto yy1384;
        if (yych <= 0xC1)
          goto yy1268;
        if (yych <= 0xDF)
          goto yy1377;
        goto yy1378;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1383;
        goto yy1379;
      } else {
        if (yych <= 0xF0)
          goto yy1380;
        if (yych <= 0xF3)
          goto yy1381;
        if (yych <= 0xF4)
          goto yy1382;
        goto yy1268;
      }
    }
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1375;
    }
    if (yych <= 0xDF) {
      if (yych <= '\'') {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= ' ')
          goto yy1409;
        if (yych <= '"')
          goto yy1386;
        goto yy1384;
      } else {
        if (yych == '>')
          goto yy1285;
        if (yych <= 0xC1)
          goto yy1268;
        goto yy1377;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1378;
        if (yych == 0xED)
          goto yy1383;
        goto yy1379;
      } else {
        if (yych <= 0xF0)
          goto yy1380;
        if (yych <= 0xF3)
          goto yy1381;
        if (yych <= 0xF4)
          goto yy1382;
        goto yy1268;
      }
    }
  yy1375:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1375;
    }
    if (yych <= 0xE0) {
      if (yych <= '=') {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= ' ')
          goto yy1403;
        goto yy1268;
      } else {
        if (yych <= '>')
          goto yy1285;
        if (yych <= 0xC1)
          goto yy1268;
        if (yych >= 0xE0)
          goto yy1378;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1383;
        goto yy1379;
      } else {
        if (yych <= 0xF0)
          goto yy1380;
        if (yych <= 0xF3)
          goto yy1381;
        if (yych <= 0xF4)
          goto yy1382;
        goto yy1268;
      }
    }
  yy1377:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1375;
    goto yy1268;
  yy1378:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1377;
    goto yy1268;
  yy1379:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1377;
    goto yy1268;
  yy1380:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1379;
    goto yy1268;
  yy1381:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1379;
    goto yy1268;
  yy1382:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1379;
    goto yy1268;
  yy1383:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1377;
    goto yy1268;
  yy1384:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1384;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '\'')
          goto yy1395;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1396;
        if (yych <= 0xE0)
          goto yy1397;
        goto yy1398;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1402;
        if (yych <= 0xEF)
          goto yy1398;
        goto yy1399;
      } else {
        if (yych <= 0xF3)
          goto yy1400;
        if (yych <= 0xF4)
          goto yy1401;
        goto yy1268;
      }
    }
  yy1386:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1386;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1268;
        if (yych <= '"')
          goto yy1395;
        goto yy1268;
      } else {
        if (yych <= 0xDF)
          goto yy1388;
        if (yych <= 0xE0)
          goto yy1389;
        goto yy1390;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1394;
        if (yych <= 0xEF)
          goto yy1390;
        goto yy1391;
      } else {
        if (yych <= 0xF3)
          goto yy1392;
        if (yych <= 0xF4)
          goto yy1393;
        goto yy1268;
      }
    }
  yy1388:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1386;
    goto yy1268;
  yy1389:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1388;
    goto yy1268;
  yy1390:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1388;
    goto yy1268;
  yy1391:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1390;
    goto yy1268;
  yy1392:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1390;
    goto yy1268;
  yy1393:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1390;
    goto yy1268;
  yy1394:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1388;
    goto yy1268;
  yy1395:
    ++p;
    yych = *p;
    if (yych <= ' ') {
      if (yych <= 0x08)
        goto yy1268;
      if (yych <= '\r')
        goto yy1366;
      if (yych <= 0x1F)
        goto yy1268;
      goto yy1366;
    } else {
      if (yych <= '/') {
        if (yych <= '.')
          goto yy1268;
        goto yy1368;
      } else {
        if (yych == '>')
          goto yy1285;
        goto yy1268;
      }
    }
  yy1396:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1384;
    goto yy1268;
  yy1397:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1396;
    goto yy1268;
  yy1398:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1396;
    goto yy1268;
  yy1399:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1398;
    goto yy1268;
  yy1400:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0xBF)
      goto yy1398;
    goto yy1268;
  yy1401:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x8F)
      goto yy1398;
    goto yy1268;
  yy1402:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1268;
    if (yych <= 0x9F)
      goto yy1396;
    goto yy1268;
  yy1403:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '"') {
        if (yych <= '\r') {
          if (yych <= 0x00)
            goto yy1268;
          if (yych <= 0x08)
            goto yy1375;
          goto yy1403;
        } else {
          if (yych == ' ')
            goto yy1403;
          if (yych <= '!')
            goto yy1375;
          goto yy1268;
        }
      } else {
        if (yych <= ':') {
          if (yych == '\'')
            goto yy1268;
          if (yych <= '9')
            goto yy1375;
        } else {
          if (yych <= ';')
            goto yy1375;
          if (yych <= '=')
            goto yy1268;
          if (yych <= '>')
            goto yy1285;
          goto yy1375;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= '`') {
          if (yych <= 'Z')
            goto yy1405;
          if (yych <= '^')
            goto yy1375;
          if (yych >= '`')
            goto yy1268;
        } else {
          if (yych <= 'z')
            goto yy1405;
          if (yych <= 0x7F)
            goto yy1375;
          if (yych <= 0xC1)
            goto yy1268;
          goto yy1377;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1378;
          if (yych == 0xED)
            goto yy1383;
          goto yy1379;
        } else {
          if (yych <= 0xF0)
            goto yy1380;
          if (yych <= 0xF3)
            goto yy1381;
          if (yych <= 0xF4)
            goto yy1382;
          goto yy1268;
        }
      }
    }
  yy1405:
    ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= '&') {
        if (yych <= 0x1F) {
          if (yych <= 0x00)
            goto yy1268;
          if (yych <= 0x08)
            goto yy1375;
          if (yych >= 0x0E)
            goto yy1375;
        } else {
          if (yych <= ' ')
            goto yy1407;
          if (yych == '"')
            goto yy1268;
          goto yy1375;
        }
      } else {
        if (yych <= '/') {
          if (yych <= '\'')
            goto yy1268;
          if (yych <= ',')
            goto yy1375;
          if (yych <= '.')
            goto yy1405;
          goto yy1375;
        } else {
          if (yych <= ';') {
            if (yych <= ':')
              goto yy1405;
            goto yy1375;
          } else {
            if (yych <= '<')
              goto yy1268;
            if (yych <= '=')
              goto yy1373;
            goto yy1285;
          }
        }
      }
    } else {
      if (yych <= 0xC1) {
        if (yych <= '_') {
          if (yych <= '@')
            goto yy1375;
          if (yych <= 'Z')
            goto yy1405;
          if (yych <= '^')
            goto yy1375;
          goto yy1405;
        } else {
          if (yych <= '`')
            goto yy1268;
          if (yych <= 'z')
            goto yy1405;
          if (yych <= 0x7F)
            goto yy1375;
          goto yy1268;
        }
      } else {
        if (yych <= 0xED) {
          if (yych <= 0xDF)
            goto yy1377;
          if (yych <= 0xE0)
            goto yy1378;
          if (yych <= 0xEC)
            goto yy1379;
          goto yy1383;
        } else {
          if (yych <= 0xF0) {
            if (yych <= 0xEF)
              goto yy1379;
            goto yy1380;
          } else {
            if (yych <= 0xF3)
              goto yy1381;
            if (yych <= 0xF4)
              goto yy1382;
            goto yy1268;
          }
        }
      }
    }
  yy1407:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '&') {
        if (yych <= 0x1F) {
          if (yych <= 0x00)
            goto yy1268;
          if (yych <= 0x08)
            goto yy1375;
          if (yych <= '\r')
            goto yy1407;
          goto yy1375;
        } else {
          if (yych <= ' ')
            goto yy1407;
          if (yych == '"')
            goto yy1268;
          goto yy1375;
        }
      } else {
        if (yych <= ';') {
          if (yych <= '\'')
            goto yy1268;
          if (yych == ':')
            goto yy1405;
          goto yy1375;
        } else {
          if (yych <= '<')
            goto yy1268;
          if (yych <= '=')
            goto yy1373;
          if (yych <= '>')
            goto yy1285;
          goto yy1375;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= '`') {
          if (yych <= 'Z')
            goto yy1405;
          if (yych <= '^')
            goto yy1375;
          if (yych <= '_')
            goto yy1405;
          goto yy1268;
        } else {
          if (yych <= 'z')
            goto yy1405;
          if (yych <= 0x7F)
            goto yy1375;
          if (yych <= 0xC1)
            goto yy1268;
          goto yy1377;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1378;
          if (yych == 0xED)
            goto yy1383;
          goto yy1379;
        } else {
          if (yych <= 0xF0)
            goto yy1380;
          if (yych <= 0xF3)
            goto yy1381;
          if (yych <= 0xF4)
            goto yy1382;
          goto yy1268;
        }
      }
    }
  yy1409:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '"') {
        if (yych <= '\r') {
          if (yych <= 0x00)
            goto yy1268;
          if (yych <= 0x08)
            goto yy1375;
          goto yy1409;
        } else {
          if (yych == ' ')
            goto yy1409;
          if (yych <= '!')
            goto yy1375;
          goto yy1386;
        }
      } else {
        if (yych <= ':') {
          if (yych == '\'')
            goto yy1384;
          if (yych <= '9')
            goto yy1375;
          goto yy1405;
        } else {
          if (yych <= ';')
            goto yy1375;
          if (yych <= '=')
            goto yy1268;
          if (yych <= '>')
            goto yy1285;
          goto yy1375;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= '`') {
          if (yych <= 'Z')
            goto yy1405;
          if (yych <= '^')
            goto yy1375;
          if (yych <= '_')
            goto yy1405;
          goto yy1268;
        } else {
          if (yych <= 'z')
            goto yy1405;
          if (yych <= 0x7F)
            goto yy1375;
          if (yych <= 0xC1)
            goto yy1268;
          goto yy1377;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1378;
          if (yych == 0xED)
            goto yy1383;
          goto yy1379;
        } else {
          if (yych <= 0xF0)
            goto yy1380;
          if (yych <= 0xF3)
            goto yy1381;
          if (yych <= 0xF4)
            goto yy1382;
          goto yy1268;
        }
      }
    }
  }
}

// Try to match an HTML block tag start line, returning
// an integer code for the type of block (1-6, matching the spec).
// #7 is handled by a separate function, below.
bufsize_t _scan_html_block_start(const unsigned char *p) {
  const unsigned char *marker = NULL;

  {
    unsigned char yych;
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= ';') {
        if (yych != '\n')
          goto yy1415;
      } else {
        if (yych <= '<')
          goto yy1414;
        if (yych <= 0x7F)
          goto yy1415;
        if (yych >= 0xC2)
          goto yy1416;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1418;
        if (yych == 0xED)
          goto yy1423;
        goto yy1419;
      } else {
        if (yych <= 0xF0)
          goto yy1420;
        if (yych <= 0xF3)
          goto yy1421;
        if (yych <= 0xF4)
          goto yy1422;
      }
    }
  yy1413 : { return 0; }
  yy1414:
    yych = *(marker = ++p);
    switch (yych) {
    case '!':
      goto yy1440;
    case '/':
      goto yy1424;
    case '?':
      goto yy1441;
    case 'A':
    case 'a':
      goto yy1426;
    case 'B':
    case 'b':
      goto yy1427;
    case 'C':
    case 'c':
      goto yy1428;
    case 'D':
    case 'd':
      goto yy1429;
    case 'F':
    case 'f':
      goto yy1430;
    case 'H':
    case 'h':
      goto yy1431;
    case 'I':
    case 'i':
      goto yy1432;
    case 'L':
    case 'l':
      goto yy1433;
    case 'M':
    case 'm':
      goto yy1434;
    case 'N':
    case 'n':
      goto yy1435;
    case 'O':
    case 'o':
      goto yy1436;
    case 'P':
    case 'p':
      goto yy1425;
    case 'S':
    case 's':
      goto yy1437;
    case 'T':
    case 't':
      goto yy1438;
    case 'U':
    case 'u':
      goto yy1439;
    default:
      goto yy1413;
    }
  yy1415:
    yych = *++p;
    goto yy1413;
  yy1416:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1417;
    if (yych <= 0xBF)
      goto yy1415;
  yy1417:
    p = marker;
    goto yy1413;
  yy1418:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1417;
    if (yych <= 0xBF)
      goto yy1416;
    goto yy1417;
  yy1419:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1417;
    if (yych <= 0xBF)
      goto yy1416;
    goto yy1417;
  yy1420:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1417;
    if (yych <= 0xBF)
      goto yy1419;
    goto yy1417;
  yy1421:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1417;
    if (yych <= 0xBF)
      goto yy1419;
    goto yy1417;
  yy1422:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1417;
    if (yych <= 0x8F)
      goto yy1419;
    goto yy1417;
  yy1423:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1417;
    if (yych <= 0x9F)
      goto yy1416;
    goto yy1417;
  yy1424:
    yych = *++p;
    switch (yych) {
    case 'A':
    case 'a':
      goto yy1426;
    case 'B':
    case 'b':
      goto yy1427;
    case 'C':
    case 'c':
      goto yy1428;
    case 'D':
    case 'd':
      goto yy1429;
    case 'F':
    case 'f':
      goto yy1430;
    case 'H':
    case 'h':
      goto yy1431;
    case 'I':
    case 'i':
      goto yy1432;
    case 'L':
    case 'l':
      goto yy1433;
    case 'M':
    case 'm':
      goto yy1434;
    case 'N':
    case 'n':
      goto yy1435;
    case 'O':
    case 'o':
      goto yy1436;
    case 'P':
    case 'p':
      goto yy1625;
    case 'S':
    case 's':
      goto yy1626;
    case 'T':
    case 't':
      goto yy1438;
    case 'U':
    case 'u':
      goto yy1439;
    default:
      goto yy1417;
    }
  yy1425:
    yych = *++p;
    if (yych <= '>') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        if (yych <= 0x1F)
          goto yy1417;
        goto yy1457;
      } else {
        if (yych == '/')
          goto yy1459;
        if (yych <= '=')
          goto yy1417;
        goto yy1457;
      }
    } else {
      if (yych <= 'R') {
        if (yych == 'A')
          goto yy1622;
        if (yych <= 'Q')
          goto yy1417;
        goto yy1621;
      } else {
        if (yych <= 'a') {
          if (yych <= '`')
            goto yy1417;
          goto yy1622;
        } else {
          if (yych == 'r')
            goto yy1621;
          goto yy1417;
        }
      }
    }
  yy1426:
    yych = *++p;
    if (yych <= 'S') {
      if (yych <= 'D') {
        if (yych <= 'C')
          goto yy1417;
        goto yy1610;
      } else {
        if (yych <= 'Q')
          goto yy1417;
        if (yych <= 'R')
          goto yy1609;
        goto yy1608;
      }
    } else {
      if (yych <= 'q') {
        if (yych == 'd')
          goto yy1610;
        goto yy1417;
      } else {
        if (yych <= 'r')
          goto yy1609;
        if (yych <= 's')
          goto yy1608;
        goto yy1417;
      }
    }
  yy1427:
    yych = *++p;
    if (yych <= 'O') {
      if (yych <= 'K') {
        if (yych == 'A')
          goto yy1594;
        goto yy1417;
      } else {
        if (yych <= 'L')
          goto yy1593;
        if (yych <= 'N')
          goto yy1417;
        goto yy1592;
      }
    } else {
      if (yych <= 'k') {
        if (yych == 'a')
          goto yy1594;
        goto yy1417;
      } else {
        if (yych <= 'l')
          goto yy1593;
        if (yych == 'o')
          goto yy1592;
        goto yy1417;
      }
    }
  yy1428:
    yych = *++p;
    if (yych <= 'O') {
      if (yych <= 'D') {
        if (yych == 'A')
          goto yy1579;
        goto yy1417;
      } else {
        if (yych <= 'E')
          goto yy1578;
        if (yych <= 'N')
          goto yy1417;
        goto yy1577;
      }
    } else {
      if (yych <= 'd') {
        if (yych == 'a')
          goto yy1579;
        goto yy1417;
      } else {
        if (yych <= 'e')
          goto yy1578;
        if (yych == 'o')
          goto yy1577;
        goto yy1417;
      }
    }
  yy1429:
    yych = *++p;
    switch (yych) {
    case 'D':
    case 'L':
    case 'T':
    case 'd':
    case 'l':
    case 't':
      goto yy1456;
    case 'E':
    case 'e':
      goto yy1569;
    case 'I':
    case 'i':
      goto yy1568;
    default:
      goto yy1417;
    }
  yy1430:
    yych = *++p;
    if (yych <= 'R') {
      if (yych <= 'N') {
        if (yych == 'I')
          goto yy1544;
        goto yy1417;
      } else {
        if (yych <= 'O')
          goto yy1543;
        if (yych <= 'Q')
          goto yy1417;
        goto yy1542;
      }
    } else {
      if (yych <= 'n') {
        if (yych == 'i')
          goto yy1544;
        goto yy1417;
      } else {
        if (yych <= 'o')
          goto yy1543;
        if (yych == 'r')
          goto yy1542;
        goto yy1417;
      }
    }
  yy1431:
    yych = *++p;
    if (yych <= 'S') {
      if (yych <= 'D') {
        if (yych == '1')
          goto yy1456;
        goto yy1417;
      } else {
        if (yych <= 'E')
          goto yy1537;
        if (yych == 'R')
          goto yy1456;
        goto yy1417;
      }
    } else {
      if (yych <= 'q') {
        if (yych <= 'T')
          goto yy1536;
        if (yych == 'e')
          goto yy1537;
        goto yy1417;
      } else {
        if (yych <= 'r')
          goto yy1456;
        if (yych == 't')
          goto yy1536;
        goto yy1417;
      }
    }
  yy1432:
    yych = *++p;
    if (yych == 'F')
      goto yy1532;
    if (yych == 'f')
      goto yy1532;
    goto yy1417;
  yy1433:
    yych = *++p;
    if (yych <= 'I') {
      if (yych == 'E')
        goto yy1527;
      if (yych <= 'H')
        goto yy1417;
      goto yy1526;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy1417;
        goto yy1527;
      } else {
        if (yych == 'i')
          goto yy1526;
        goto yy1417;
      }
    }
  yy1434:
    yych = *++p;
    if (yych <= 'E') {
      if (yych == 'A')
        goto yy1518;
      if (yych <= 'D')
        goto yy1417;
      goto yy1517;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy1417;
        goto yy1518;
      } else {
        if (yych == 'e')
          goto yy1517;
        goto yy1417;
      }
    }
  yy1435:
    yych = *++p;
    if (yych <= 'O') {
      if (yych == 'A')
        goto yy1511;
      if (yych <= 'N')
        goto yy1417;
      goto yy1510;
    } else {
      if (yych <= 'a') {
        if (yych <= '`')
          goto yy1417;
        goto yy1511;
      } else {
        if (yych == 'o')
          goto yy1510;
        goto yy1417;
      }
    }
  yy1436:
    yych = *++p;
    if (yych <= 'P') {
      if (yych == 'L')
        goto yy1456;
      if (yych <= 'O')
        goto yy1417;
      goto yy1502;
    } else {
      if (yych <= 'l') {
        if (yych <= 'k')
          goto yy1417;
        goto yy1456;
      } else {
        if (yych == 'p')
          goto yy1502;
        goto yy1417;
      }
    }
  yy1437:
    yych = *++p;
    if (yych <= 'U') {
      if (yych <= 'E') {
        if (yych == 'C')
          goto yy1479;
        if (yych <= 'D')
          goto yy1417;
        goto yy1482;
      } else {
        if (yych <= 'O') {
          if (yych <= 'N')
            goto yy1417;
          goto yy1481;
        } else {
          if (yych <= 'S')
            goto yy1417;
          if (yych <= 'T')
            goto yy1478;
          goto yy1480;
        }
      }
    } else {
      if (yych <= 'n') {
        if (yych <= 'c') {
          if (yych <= 'b')
            goto yy1417;
          goto yy1479;
        } else {
          if (yych == 'e')
            goto yy1482;
          goto yy1417;
        }
      } else {
        if (yych <= 's') {
          if (yych <= 'o')
            goto yy1481;
          goto yy1417;
        } else {
          if (yych <= 't')
            goto yy1478;
          if (yych <= 'u')
            goto yy1480;
          goto yy1417;
        }
      }
    }
  yy1438:
    yych = *++p;
    switch (yych) {
    case 'A':
    case 'a':
      goto yy1465;
    case 'B':
    case 'b':
      goto yy1464;
    case 'D':
    case 'd':
      goto yy1456;
    case 'F':
    case 'f':
      goto yy1463;
    case 'H':
    case 'h':
      goto yy1462;
    case 'I':
    case 'i':
      goto yy1461;
    case 'R':
    case 'r':
      goto yy1460;
    default:
      goto yy1417;
    }
  yy1439:
    yych = *++p;
    if (yych == 'L')
      goto yy1456;
    if (yych == 'l')
      goto yy1456;
    goto yy1417;
  yy1440:
    yych = *++p;
    if (yych <= '@') {
      if (yych == '-')
        goto yy1443;
      goto yy1417;
    } else {
      if (yych <= 'Z')
        goto yy1444;
      if (yych <= '[')
        goto yy1446;
      goto yy1417;
    }
  yy1441:
    ++p;
    { return 3; }
  yy1443:
    yych = *++p;
    if (yych == '-')
      goto yy1454;
    goto yy1417;
  yy1444:
    ++p;
    { return 4; }
  yy1446:
    yych = *++p;
    if (yych == 'C')
      goto yy1447;
    if (yych != 'c')
      goto yy1417;
  yy1447:
    yych = *++p;
    if (yych == 'D')
      goto yy1448;
    if (yych != 'd')
      goto yy1417;
  yy1448:
    yych = *++p;
    if (yych == 'A')
      goto yy1449;
    if (yych != 'a')
      goto yy1417;
  yy1449:
    yych = *++p;
    if (yych == 'T')
      goto yy1450;
    if (yych != 't')
      goto yy1417;
  yy1450:
    yych = *++p;
    if (yych == 'A')
      goto yy1451;
    if (yych != 'a')
      goto yy1417;
  yy1451:
    yych = *++p;
    if (yych != '[')
      goto yy1417;
    ++p;
    { return 5; }
  yy1454:
    ++p;
    { return 2; }
  yy1456:
    yych = *++p;
    if (yych <= ' ') {
      if (yych <= 0x08)
        goto yy1417;
      if (yych <= '\r')
        goto yy1457;
      if (yych <= 0x1F)
        goto yy1417;
    } else {
      if (yych <= '/') {
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      } else {
        if (yych != '>')
          goto yy1417;
      }
    }
  yy1457:
    ++p;
    { return 6; }
  yy1459:
    yych = *++p;
    if (yych == '>')
      goto yy1457;
    goto yy1417;
  yy1460:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= '@') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'A')
          goto yy1476;
        if (yych == 'a')
          goto yy1476;
        goto yy1417;
      }
    }
  yy1461:
    yych = *++p;
    if (yych == 'T')
      goto yy1474;
    if (yych == 't')
      goto yy1474;
    goto yy1417;
  yy1462:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'D') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'E')
          goto yy1472;
        if (yych == 'e')
          goto yy1472;
        goto yy1417;
      }
    }
  yy1463:
    yych = *++p;
    if (yych == 'O')
      goto yy1470;
    if (yych == 'o')
      goto yy1470;
    goto yy1417;
  yy1464:
    yych = *++p;
    if (yych == 'O')
      goto yy1468;
    if (yych == 'o')
      goto yy1468;
    goto yy1417;
  yy1465:
    yych = *++p;
    if (yych == 'B')
      goto yy1466;
    if (yych != 'b')
      goto yy1417;
  yy1466:
    yych = *++p;
    if (yych == 'L')
      goto yy1467;
    if (yych != 'l')
      goto yy1417;
  yy1467:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1468:
    yych = *++p;
    if (yych == 'D')
      goto yy1469;
    if (yych != 'd')
      goto yy1417;
  yy1469:
    yych = *++p;
    if (yych == 'Y')
      goto yy1456;
    if (yych == 'y')
      goto yy1456;
    goto yy1417;
  yy1470:
    yych = *++p;
    if (yych == 'O')
      goto yy1471;
    if (yych != 'o')
      goto yy1417;
  yy1471:
    yych = *++p;
    if (yych == 'T')
      goto yy1456;
    if (yych == 't')
      goto yy1456;
    goto yy1417;
  yy1472:
    yych = *++p;
    if (yych == 'A')
      goto yy1473;
    if (yych != 'a')
      goto yy1417;
  yy1473:
    yych = *++p;
    if (yych == 'D')
      goto yy1456;
    if (yych == 'd')
      goto yy1456;
    goto yy1417;
  yy1474:
    yych = *++p;
    if (yych == 'L')
      goto yy1475;
    if (yych != 'l')
      goto yy1417;
  yy1475:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1476:
    yych = *++p;
    if (yych == 'C')
      goto yy1477;
    if (yych != 'c')
      goto yy1417;
  yy1477:
    yych = *++p;
    if (yych == 'K')
      goto yy1456;
    if (yych == 'k')
      goto yy1456;
    goto yy1417;
  yy1478:
    yych = *++p;
    if (yych == 'Y')
      goto yy1500;
    if (yych == 'y')
      goto yy1500;
    goto yy1417;
  yy1479:
    yych = *++p;
    if (yych == 'R')
      goto yy1494;
    if (yych == 'r')
      goto yy1494;
    goto yy1417;
  yy1480:
    yych = *++p;
    if (yych == 'M')
      goto yy1490;
    if (yych == 'm')
      goto yy1490;
    goto yy1417;
  yy1481:
    yych = *++p;
    if (yych == 'U')
      goto yy1487;
    if (yych == 'u')
      goto yy1487;
    goto yy1417;
  yy1482:
    yych = *++p;
    if (yych == 'C')
      goto yy1483;
    if (yych != 'c')
      goto yy1417;
  yy1483:
    yych = *++p;
    if (yych == 'T')
      goto yy1484;
    if (yych != 't')
      goto yy1417;
  yy1484:
    yych = *++p;
    if (yych == 'I')
      goto yy1485;
    if (yych != 'i')
      goto yy1417;
  yy1485:
    yych = *++p;
    if (yych == 'O')
      goto yy1486;
    if (yych != 'o')
      goto yy1417;
  yy1486:
    yych = *++p;
    if (yych == 'N')
      goto yy1456;
    if (yych == 'n')
      goto yy1456;
    goto yy1417;
  yy1487:
    yych = *++p;
    if (yych == 'R')
      goto yy1488;
    if (yych != 'r')
      goto yy1417;
  yy1488:
    yych = *++p;
    if (yych == 'C')
      goto yy1489;
    if (yych != 'c')
      goto yy1417;
  yy1489:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1490:
    yych = *++p;
    if (yych == 'M')
      goto yy1491;
    if (yych != 'm')
      goto yy1417;
  yy1491:
    yych = *++p;
    if (yych == 'A')
      goto yy1492;
    if (yych != 'a')
      goto yy1417;
  yy1492:
    yych = *++p;
    if (yych == 'R')
      goto yy1493;
    if (yych != 'r')
      goto yy1417;
  yy1493:
    yych = *++p;
    if (yych == 'Y')
      goto yy1456;
    if (yych == 'y')
      goto yy1456;
    goto yy1417;
  yy1494:
    yych = *++p;
    if (yych == 'I')
      goto yy1495;
    if (yych != 'i')
      goto yy1417;
  yy1495:
    yych = *++p;
    if (yych == 'P')
      goto yy1496;
    if (yych != 'p')
      goto yy1417;
  yy1496:
    yych = *++p;
    if (yych == 'T')
      goto yy1497;
    if (yych != 't')
      goto yy1417;
  yy1497:
    yych = *++p;
    if (yych <= 0x1F) {
      if (yych <= 0x08)
        goto yy1417;
      if (yych >= 0x0E)
        goto yy1417;
    } else {
      if (yych <= ' ')
        goto yy1498;
      if (yych != '>')
        goto yy1417;
    }
  yy1498:
    ++p;
    { return 1; }
  yy1500:
    yych = *++p;
    if (yych == 'L')
      goto yy1501;
    if (yych != 'l')
      goto yy1417;
  yy1501:
    yych = *++p;
    if (yych == 'E')
      goto yy1497;
    if (yych == 'e')
      goto yy1497;
    goto yy1417;
  yy1502:
    yych = *++p;
    if (yych == 'T')
      goto yy1503;
    if (yych != 't')
      goto yy1417;
  yy1503:
    yych = *++p;
    if (yych <= 'I') {
      if (yych == 'G')
        goto yy1505;
      if (yych <= 'H')
        goto yy1417;
    } else {
      if (yych <= 'g') {
        if (yych <= 'f')
          goto yy1417;
        goto yy1505;
      } else {
        if (yych != 'i')
          goto yy1417;
      }
    }
    yych = *++p;
    if (yych == 'O')
      goto yy1509;
    if (yych == 'o')
      goto yy1509;
    goto yy1417;
  yy1505:
    yych = *++p;
    if (yych == 'R')
      goto yy1506;
    if (yych != 'r')
      goto yy1417;
  yy1506:
    yych = *++p;
    if (yych == 'O')
      goto yy1507;
    if (yych != 'o')
      goto yy1417;
  yy1507:
    yych = *++p;
    if (yych == 'U')
      goto yy1508;
    if (yych != 'u')
      goto yy1417;
  yy1508:
    yych = *++p;
    if (yych == 'P')
      goto yy1456;
    if (yych == 'p')
      goto yy1456;
    goto yy1417;
  yy1509:
    yych = *++p;
    if (yych == 'N')
      goto yy1456;
    if (yych == 'n')
      goto yy1456;
    goto yy1417;
  yy1510:
    yych = *++p;
    if (yych == 'F')
      goto yy1512;
    if (yych == 'f')
      goto yy1512;
    goto yy1417;
  yy1511:
    yych = *++p;
    if (yych == 'V')
      goto yy1456;
    if (yych == 'v')
      goto yy1456;
    goto yy1417;
  yy1512:
    yych = *++p;
    if (yych == 'R')
      goto yy1513;
    if (yych != 'r')
      goto yy1417;
  yy1513:
    yych = *++p;
    if (yych == 'A')
      goto yy1514;
    if (yych != 'a')
      goto yy1417;
  yy1514:
    yych = *++p;
    if (yych == 'M')
      goto yy1515;
    if (yych != 'm')
      goto yy1417;
  yy1515:
    yych = *++p;
    if (yych == 'E')
      goto yy1516;
    if (yych != 'e')
      goto yy1417;
  yy1516:
    yych = *++p;
    if (yych == 'S')
      goto yy1456;
    if (yych == 's')
      goto yy1456;
    goto yy1417;
  yy1517:
    yych = *++p;
    if (yych <= 'T') {
      if (yych == 'N')
        goto yy1520;
      if (yych <= 'S')
        goto yy1417;
      goto yy1521;
    } else {
      if (yych <= 'n') {
        if (yych <= 'm')
          goto yy1417;
        goto yy1520;
      } else {
        if (yych == 't')
          goto yy1521;
        goto yy1417;
      }
    }
  yy1518:
    yych = *++p;
    if (yych == 'I')
      goto yy1519;
    if (yych != 'i')
      goto yy1417;
  yy1519:
    yych = *++p;
    if (yych == 'N')
      goto yy1456;
    if (yych == 'n')
      goto yy1456;
    goto yy1417;
  yy1520:
    yych = *++p;
    if (yych == 'U')
      goto yy1522;
    if (yych == 'u')
      goto yy1522;
    goto yy1417;
  yy1521:
    yych = *++p;
    if (yych == 'A')
      goto yy1456;
    if (yych == 'a')
      goto yy1456;
    goto yy1417;
  yy1522:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'H') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'I')
          goto yy1523;
        if (yych != 'i')
          goto yy1417;
      }
    }
  yy1523:
    yych = *++p;
    if (yych == 'T')
      goto yy1524;
    if (yych != 't')
      goto yy1417;
  yy1524:
    yych = *++p;
    if (yych == 'E')
      goto yy1525;
    if (yych != 'e')
      goto yy1417;
  yy1525:
    yych = *++p;
    if (yych == 'M')
      goto yy1456;
    if (yych == 'm')
      goto yy1456;
    goto yy1417;
  yy1526:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'M') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'N')
          goto yy1531;
        if (yych == 'n')
          goto yy1531;
        goto yy1417;
      }
    }
  yy1527:
    yych = *++p;
    if (yych == 'G')
      goto yy1528;
    if (yych != 'g')
      goto yy1417;
  yy1528:
    yych = *++p;
    if (yych == 'E')
      goto yy1529;
    if (yych != 'e')
      goto yy1417;
  yy1529:
    yych = *++p;
    if (yych == 'N')
      goto yy1530;
    if (yych != 'n')
      goto yy1417;
  yy1530:
    yych = *++p;
    if (yych == 'D')
      goto yy1456;
    if (yych == 'd')
      goto yy1456;
    goto yy1417;
  yy1531:
    yych = *++p;
    if (yych == 'K')
      goto yy1456;
    if (yych == 'k')
      goto yy1456;
    goto yy1417;
  yy1532:
    yych = *++p;
    if (yych == 'R')
      goto yy1533;
    if (yych != 'r')
      goto yy1417;
  yy1533:
    yych = *++p;
    if (yych == 'A')
      goto yy1534;
    if (yych != 'a')
      goto yy1417;
  yy1534:
    yych = *++p;
    if (yych == 'M')
      goto yy1535;
    if (yych != 'm')
      goto yy1417;
  yy1535:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1536:
    yych = *++p;
    if (yych == 'M')
      goto yy1541;
    if (yych == 'm')
      goto yy1541;
    goto yy1417;
  yy1537:
    yych = *++p;
    if (yych == 'A')
      goto yy1538;
    if (yych != 'a')
      goto yy1417;
  yy1538:
    yych = *++p;
    if (yych == 'D')
      goto yy1539;
    if (yych != 'd')
      goto yy1417;
  yy1539:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'D') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'E')
          goto yy1540;
        if (yych != 'e')
          goto yy1417;
      }
    }
  yy1540:
    yych = *++p;
    if (yych == 'R')
      goto yy1456;
    if (yych == 'r')
      goto yy1456;
    goto yy1417;
  yy1541:
    yych = *++p;
    if (yych == 'L')
      goto yy1456;
    if (yych == 'l')
      goto yy1456;
    goto yy1417;
  yy1542:
    yych = *++p;
    if (yych == 'A')
      goto yy1563;
    if (yych == 'a')
      goto yy1563;
    goto yy1417;
  yy1543:
    yych = *++p;
    if (yych <= 'R') {
      if (yych == 'O')
        goto yy1559;
      if (yych <= 'Q')
        goto yy1417;
      goto yy1560;
    } else {
      if (yych <= 'o') {
        if (yych <= 'n')
          goto yy1417;
        goto yy1559;
      } else {
        if (yych == 'r')
          goto yy1560;
        goto yy1417;
      }
    }
  yy1544:
    yych = *++p;
    if (yych <= 'G') {
      if (yych == 'E')
        goto yy1545;
      if (yych <= 'F')
        goto yy1417;
      goto yy1546;
    } else {
      if (yych <= 'e') {
        if (yych <= 'd')
          goto yy1417;
      } else {
        if (yych == 'g')
          goto yy1546;
        goto yy1417;
      }
    }
  yy1545:
    yych = *++p;
    if (yych == 'L')
      goto yy1555;
    if (yych == 'l')
      goto yy1555;
    goto yy1417;
  yy1546:
    yych = *++p;
    if (yych <= 'U') {
      if (yych == 'C')
        goto yy1548;
      if (yych <= 'T')
        goto yy1417;
    } else {
      if (yych <= 'c') {
        if (yych <= 'b')
          goto yy1417;
        goto yy1548;
      } else {
        if (yych != 'u')
          goto yy1417;
      }
    }
    yych = *++p;
    if (yych == 'R')
      goto yy1554;
    if (yych == 'r')
      goto yy1554;
    goto yy1417;
  yy1548:
    yych = *++p;
    if (yych == 'A')
      goto yy1549;
    if (yych != 'a')
      goto yy1417;
  yy1549:
    yych = *++p;
    if (yych == 'P')
      goto yy1550;
    if (yych != 'p')
      goto yy1417;
  yy1550:
    yych = *++p;
    if (yych == 'T')
      goto yy1551;
    if (yych != 't')
      goto yy1417;
  yy1551:
    yych = *++p;
    if (yych == 'I')
      goto yy1552;
    if (yych != 'i')
      goto yy1417;
  yy1552:
    yych = *++p;
    if (yych == 'O')
      goto yy1553;
    if (yych != 'o')
      goto yy1417;
  yy1553:
    yych = *++p;
    if (yych == 'N')
      goto yy1456;
    if (yych == 'n')
      goto yy1456;
    goto yy1417;
  yy1554:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1555:
    yych = *++p;
    if (yych == 'D')
      goto yy1556;
    if (yych != 'd')
      goto yy1417;
  yy1556:
    yych = *++p;
    if (yych == 'S')
      goto yy1557;
    if (yych != 's')
      goto yy1417;
  yy1557:
    yych = *++p;
    if (yych == 'E')
      goto yy1558;
    if (yych != 'e')
      goto yy1417;
  yy1558:
    yych = *++p;
    if (yych == 'T')
      goto yy1456;
    if (yych == 't')
      goto yy1456;
    goto yy1417;
  yy1559:
    yych = *++p;
    if (yych == 'T')
      goto yy1561;
    if (yych == 't')
      goto yy1561;
    goto yy1417;
  yy1560:
    yych = *++p;
    if (yych == 'M')
      goto yy1456;
    if (yych == 'm')
      goto yy1456;
    goto yy1417;
  yy1561:
    yych = *++p;
    if (yych == 'E')
      goto yy1562;
    if (yych != 'e')
      goto yy1417;
  yy1562:
    yych = *++p;
    if (yych == 'R')
      goto yy1456;
    if (yych == 'r')
      goto yy1456;
    goto yy1417;
  yy1563:
    yych = *++p;
    if (yych == 'M')
      goto yy1564;
    if (yych != 'm')
      goto yy1417;
  yy1564:
    yych = *++p;
    if (yych == 'E')
      goto yy1565;
    if (yych != 'e')
      goto yy1417;
  yy1565:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'R') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'S')
          goto yy1566;
        if (yych != 's')
          goto yy1417;
      }
    }
  yy1566:
    yych = *++p;
    if (yych == 'E')
      goto yy1567;
    if (yych != 'e')
      goto yy1417;
  yy1567:
    yych = *++p;
    if (yych == 'T')
      goto yy1456;
    if (yych == 't')
      goto yy1456;
    goto yy1417;
  yy1568:
    yych = *++p;
    if (yych <= 'V') {
      if (yych <= 'Q') {
        if (yych == 'A')
          goto yy1574;
        goto yy1417;
      } else {
        if (yych <= 'R')
          goto yy1456;
        if (yych <= 'U')
          goto yy1417;
        goto yy1456;
      }
    } else {
      if (yych <= 'q') {
        if (yych == 'a')
          goto yy1574;
        goto yy1417;
      } else {
        if (yych <= 'r')
          goto yy1456;
        if (yych == 'v')
          goto yy1456;
        goto yy1417;
      }
    }
  yy1569:
    yych = *++p;
    if (yych == 'T')
      goto yy1570;
    if (yych != 't')
      goto yy1417;
  yy1570:
    yych = *++p;
    if (yych == 'A')
      goto yy1571;
    if (yych != 'a')
      goto yy1417;
  yy1571:
    yych = *++p;
    if (yych == 'I')
      goto yy1572;
    if (yych != 'i')
      goto yy1417;
  yy1572:
    yych = *++p;
    if (yych == 'L')
      goto yy1573;
    if (yych != 'l')
      goto yy1417;
  yy1573:
    yych = *++p;
    if (yych == 'S')
      goto yy1456;
    if (yych == 's')
      goto yy1456;
    goto yy1417;
  yy1574:
    yych = *++p;
    if (yych == 'L')
      goto yy1575;
    if (yych != 'l')
      goto yy1417;
  yy1575:
    yych = *++p;
    if (yych == 'O')
      goto yy1576;
    if (yych != 'o')
      goto yy1417;
  yy1576:
    yych = *++p;
    if (yych == 'G')
      goto yy1456;
    if (yych == 'g')
      goto yy1456;
    goto yy1417;
  yy1577:
    yych = *++p;
    if (yych == 'L')
      goto yy1587;
    if (yych == 'l')
      goto yy1587;
    goto yy1417;
  yy1578:
    yych = *++p;
    if (yych == 'N')
      goto yy1584;
    if (yych == 'n')
      goto yy1584;
    goto yy1417;
  yy1579:
    yych = *++p;
    if (yych == 'P')
      goto yy1580;
    if (yych != 'p')
      goto yy1417;
  yy1580:
    yych = *++p;
    if (yych == 'T')
      goto yy1581;
    if (yych != 't')
      goto yy1417;
  yy1581:
    yych = *++p;
    if (yych == 'I')
      goto yy1582;
    if (yych != 'i')
      goto yy1417;
  yy1582:
    yych = *++p;
    if (yych == 'O')
      goto yy1583;
    if (yych != 'o')
      goto yy1417;
  yy1583:
    yych = *++p;
    if (yych == 'N')
      goto yy1456;
    if (yych == 'n')
      goto yy1456;
    goto yy1417;
  yy1584:
    yych = *++p;
    if (yych == 'T')
      goto yy1585;
    if (yych != 't')
      goto yy1417;
  yy1585:
    yych = *++p;
    if (yych == 'E')
      goto yy1586;
    if (yych != 'e')
      goto yy1417;
  yy1586:
    yych = *++p;
    if (yych == 'R')
      goto yy1456;
    if (yych == 'r')
      goto yy1456;
    goto yy1417;
  yy1587:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'F') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'G')
          goto yy1588;
        if (yych != 'g')
          goto yy1417;
      }
    }
  yy1588:
    yych = *++p;
    if (yych == 'R')
      goto yy1589;
    if (yych != 'r')
      goto yy1417;
  yy1589:
    yych = *++p;
    if (yych == 'O')
      goto yy1590;
    if (yych != 'o')
      goto yy1417;
  yy1590:
    yych = *++p;
    if (yych == 'U')
      goto yy1591;
    if (yych != 'u')
      goto yy1417;
  yy1591:
    yych = *++p;
    if (yych == 'P')
      goto yy1456;
    if (yych == 'p')
      goto yy1456;
    goto yy1417;
  yy1592:
    yych = *++p;
    if (yych == 'D')
      goto yy1607;
    if (yych == 'd')
      goto yy1607;
    goto yy1417;
  yy1593:
    yych = *++p;
    if (yych == 'O')
      goto yy1600;
    if (yych == 'o')
      goto yy1600;
    goto yy1417;
  yy1594:
    yych = *++p;
    if (yych == 'S')
      goto yy1595;
    if (yych != 's')
      goto yy1417;
  yy1595:
    yych = *++p;
    if (yych == 'E')
      goto yy1596;
    if (yych != 'e')
      goto yy1417;
  yy1596:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= 'E') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'F')
          goto yy1597;
        if (yych != 'f')
          goto yy1417;
      }
    }
  yy1597:
    yych = *++p;
    if (yych == 'O')
      goto yy1598;
    if (yych != 'o')
      goto yy1417;
  yy1598:
    yych = *++p;
    if (yych == 'N')
      goto yy1599;
    if (yych != 'n')
      goto yy1417;
  yy1599:
    yych = *++p;
    if (yych == 'T')
      goto yy1456;
    if (yych == 't')
      goto yy1456;
    goto yy1417;
  yy1600:
    yych = *++p;
    if (yych == 'C')
      goto yy1601;
    if (yych != 'c')
      goto yy1417;
  yy1601:
    yych = *++p;
    if (yych == 'K')
      goto yy1602;
    if (yych != 'k')
      goto yy1417;
  yy1602:
    yych = *++p;
    if (yych == 'Q')
      goto yy1603;
    if (yych != 'q')
      goto yy1417;
  yy1603:
    yych = *++p;
    if (yych == 'U')
      goto yy1604;
    if (yych != 'u')
      goto yy1417;
  yy1604:
    yych = *++p;
    if (yych == 'O')
      goto yy1605;
    if (yych != 'o')
      goto yy1417;
  yy1605:
    yych = *++p;
    if (yych == 'T')
      goto yy1606;
    if (yych != 't')
      goto yy1417;
  yy1606:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1607:
    yych = *++p;
    if (yych == 'Y')
      goto yy1456;
    if (yych == 'y')
      goto yy1456;
    goto yy1417;
  yy1608:
    yych = *++p;
    if (yych == 'I')
      goto yy1619;
    if (yych == 'i')
      goto yy1619;
    goto yy1417;
  yy1609:
    yych = *++p;
    if (yych == 'T')
      goto yy1615;
    if (yych == 't')
      goto yy1615;
    goto yy1417;
  yy1610:
    yych = *++p;
    if (yych == 'D')
      goto yy1611;
    if (yych != 'd')
      goto yy1417;
  yy1611:
    yych = *++p;
    if (yych == 'R')
      goto yy1612;
    if (yych != 'r')
      goto yy1417;
  yy1612:
    yych = *++p;
    if (yych == 'E')
      goto yy1613;
    if (yych != 'e')
      goto yy1417;
  yy1613:
    yych = *++p;
    if (yych == 'S')
      goto yy1614;
    if (yych != 's')
      goto yy1417;
  yy1614:
    yych = *++p;
    if (yych == 'S')
      goto yy1456;
    if (yych == 's')
      goto yy1456;
    goto yy1417;
  yy1615:
    yych = *++p;
    if (yych == 'I')
      goto yy1616;
    if (yych != 'i')
      goto yy1417;
  yy1616:
    yych = *++p;
    if (yych == 'C')
      goto yy1617;
    if (yych != 'c')
      goto yy1417;
  yy1617:
    yych = *++p;
    if (yych == 'L')
      goto yy1618;
    if (yych != 'l')
      goto yy1417;
  yy1618:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1619:
    yych = *++p;
    if (yych == 'D')
      goto yy1620;
    if (yych != 'd')
      goto yy1417;
  yy1620:
    yych = *++p;
    if (yych == 'E')
      goto yy1456;
    if (yych == 'e')
      goto yy1456;
    goto yy1417;
  yy1621:
    yych = *++p;
    if (yych == 'E')
      goto yy1497;
    if (yych == 'e')
      goto yy1497;
    goto yy1417;
  yy1622:
    yych = *++p;
    if (yych == 'R')
      goto yy1623;
    if (yych != 'r')
      goto yy1417;
  yy1623:
    yych = *++p;
    if (yych == 'A')
      goto yy1624;
    if (yych != 'a')
      goto yy1417;
  yy1624:
    yych = *++p;
    if (yych == 'M')
      goto yy1456;
    if (yych == 'm')
      goto yy1456;
    goto yy1417;
  yy1625:
    yych = *++p;
    if (yych <= '/') {
      if (yych <= 0x1F) {
        if (yych <= 0x08)
          goto yy1417;
        if (yych <= '\r')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= ' ')
          goto yy1457;
        if (yych <= '.')
          goto yy1417;
        goto yy1459;
      }
    } else {
      if (yych <= '@') {
        if (yych == '>')
          goto yy1457;
        goto yy1417;
      } else {
        if (yych <= 'A')
          goto yy1622;
        if (yych == 'a')
          goto yy1622;
        goto yy1417;
      }
    }
  yy1626:
    ++p;
    if ((yych = *p) <= 'U') {
      if (yych <= 'N') {
        if (yych == 'E')
          goto yy1482;
        goto yy1417;
      } else {
        if (yych <= 'O')
          goto yy1481;
        if (yych <= 'T')
          goto yy1417;
        goto yy1480;
      }
    } else {
      if (yych <= 'n') {
        if (yych == 'e')
          goto yy1482;
        goto yy1417;
      } else {
        if (yych <= 'o')
          goto yy1481;
        if (yych == 'u')
          goto yy1480;
        goto yy1417;
      }
    }
  }
}

// Try to match an HTML block tag start line of type 7, returning
// 7 if successful, 0 if not.
bufsize_t _scan_html_block_start_7(const unsigned char *p) {
  const unsigned char *marker = NULL;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        0,   224, 224, 224, 224, 224, 224, 224, 224, 198, 202, 194, 198, 194,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 198, 224, 64,  224, 224, 224, 224, 128, 224, 224,
        224, 224, 224, 241, 240, 224, 241, 241, 241, 241, 241, 241, 241, 241,
        241, 241, 240, 224, 192, 192, 192, 224, 224, 241, 241, 241, 241, 241,
        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
        241, 241, 241, 241, 241, 241, 241, 224, 224, 224, 224, 240, 192, 241,
        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241,
        241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 224, 224, 224,
        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= ';') {
        if (yych != '\n')
          goto yy1631;
      } else {
        if (yych <= '<')
          goto yy1630;
        if (yych <= 0x7F)
          goto yy1631;
        if (yych >= 0xC2)
          goto yy1632;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1634;
        if (yych == 0xED)
          goto yy1639;
        goto yy1635;
      } else {
        if (yych <= 0xF0)
          goto yy1636;
        if (yych <= 0xF3)
          goto yy1637;
        if (yych <= 0xF4)
          goto yy1638;
      }
    }
  yy1629 : { return 0; }
  yy1630:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= '@') {
      if (yych == '/')
        goto yy1642;
      goto yy1629;
    } else {
      if (yych <= 'Z')
        goto yy1640;
      if (yych <= '`')
        goto yy1629;
      if (yych <= 'z')
        goto yy1640;
      goto yy1629;
    }
  yy1631:
    yych = *++p;
    goto yy1629;
  yy1632:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1631;
  yy1633:
    p = marker;
    if (yyaccept == 0) {
      goto yy1629;
    } else {
      goto yy1651;
    }
  yy1634:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1632;
    goto yy1633;
  yy1635:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1632;
    goto yy1633;
  yy1636:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1635;
    goto yy1633;
  yy1637:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1635;
    goto yy1633;
  yy1638:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x8F)
      goto yy1635;
    goto yy1633;
  yy1639:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x9F)
      goto yy1632;
    goto yy1633;
  yy1640:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 1) {
      goto yy1640;
    }
    if (yych <= ' ') {
      if (yych <= 0x08)
        goto yy1633;
      if (yych <= '\r')
        goto yy1653;
      if (yych <= 0x1F)
        goto yy1633;
      goto yy1653;
    } else {
      if (yych <= '/') {
        if (yych <= '.')
          goto yy1633;
        goto yy1655;
      } else {
        if (yych == '>')
          goto yy1647;
        goto yy1633;
      }
    }
  yy1642:
    yych = *++p;
    if (yych <= '@')
      goto yy1633;
    if (yych <= 'Z')
      goto yy1643;
    if (yych <= '`')
      goto yy1633;
    if (yych >= '{')
      goto yy1633;
  yy1643:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 2) {
      goto yy1645;
    }
    if (yych <= '=') {
      if (yych <= '-') {
        if (yych <= ',')
          goto yy1633;
        goto yy1643;
      } else {
        if (yych <= '/')
          goto yy1633;
        if (yych <= '9')
          goto yy1643;
        goto yy1633;
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '>')
          goto yy1647;
        if (yych <= '@')
          goto yy1633;
        goto yy1643;
      } else {
        if (yych <= '`')
          goto yy1633;
        if (yych <= 'z')
          goto yy1643;
        goto yy1633;
      }
    }
  yy1645:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 2) {
      goto yy1645;
    }
    if (yych != '>')
      goto yy1633;
  yy1647:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 4) {
      goto yy1647;
    }
    if (yych <= 0x08)
      goto yy1633;
    if (yych <= '\n')
      goto yy1649;
    if (yych <= '\v')
      goto yy1633;
    if (yych <= '\r')
      goto yy1652;
    goto yy1633;
  yy1649:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 4) {
      goto yy1647;
    }
    if (yych <= 0x08)
      goto yy1651;
    if (yych <= '\n')
      goto yy1649;
    if (yych <= '\v')
      goto yy1651;
    if (yych <= '\r')
      goto yy1652;
  yy1651 : { return 7; }
  yy1652:
    yych = *++p;
    goto yy1651;
  yy1653:
    ++p;
    yych = *p;
    if (yych <= ':') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1633;
        if (yych <= '\r')
          goto yy1653;
        if (yych <= 0x1F)
          goto yy1633;
        goto yy1653;
      } else {
        if (yych == '/')
          goto yy1655;
        if (yych <= '9')
          goto yy1633;
        goto yy1656;
      }
    } else {
      if (yych <= 'Z') {
        if (yych == '>')
          goto yy1647;
        if (yych <= '@')
          goto yy1633;
        goto yy1656;
      } else {
        if (yych <= '_') {
          if (yych <= '^')
            goto yy1633;
          goto yy1656;
        } else {
          if (yych <= '`')
            goto yy1633;
          if (yych <= 'z')
            goto yy1656;
          goto yy1633;
        }
      }
    }
  yy1655:
    yych = *++p;
    if (yych == '>')
      goto yy1647;
    goto yy1633;
  yy1656:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 16) {
      goto yy1656;
    }
    if (yych <= ',') {
      if (yych <= '\r') {
        if (yych <= 0x08)
          goto yy1633;
      } else {
        if (yych != ' ')
          goto yy1633;
      }
    } else {
      if (yych <= '<') {
        if (yych <= '/')
          goto yy1655;
        goto yy1633;
      } else {
        if (yych <= '=')
          goto yy1660;
        if (yych <= '>')
          goto yy1647;
        goto yy1633;
      }
    }
  yy1658:
    ++p;
    yych = *p;
    if (yych <= '<') {
      if (yych <= ' ') {
        if (yych <= 0x08)
          goto yy1633;
        if (yych <= '\r')
          goto yy1658;
        if (yych <= 0x1F)
          goto yy1633;
        goto yy1658;
      } else {
        if (yych <= '/') {
          if (yych <= '.')
            goto yy1633;
          goto yy1655;
        } else {
          if (yych == ':')
            goto yy1656;
          goto yy1633;
        }
      }
    } else {
      if (yych <= 'Z') {
        if (yych <= '=')
          goto yy1660;
        if (yych <= '>')
          goto yy1647;
        if (yych <= '@')
          goto yy1633;
        goto yy1656;
      } else {
        if (yych <= '_') {
          if (yych <= '^')
            goto yy1633;
          goto yy1656;
        } else {
          if (yych <= '`')
            goto yy1633;
          if (yych <= 'z')
            goto yy1656;
          goto yy1633;
        }
      }
    }
  yy1660:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1662;
    }
    if (yych <= 0xE0) {
      if (yych <= '"') {
        if (yych <= 0x00)
          goto yy1633;
        if (yych >= '!')
          goto yy1673;
      } else {
        if (yych <= '\'')
          goto yy1671;
        if (yych <= 0xC1)
          goto yy1633;
        if (yych <= 0xDF)
          goto yy1664;
        goto yy1665;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1670;
        goto yy1666;
      } else {
        if (yych <= 0xF0)
          goto yy1667;
        if (yych <= 0xF3)
          goto yy1668;
        if (yych <= 0xF4)
          goto yy1669;
        goto yy1633;
      }
    }
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1662;
    }
    if (yych <= 0xDF) {
      if (yych <= '\'') {
        if (yych <= 0x00)
          goto yy1633;
        if (yych <= ' ')
          goto yy1696;
        if (yych <= '"')
          goto yy1673;
        goto yy1671;
      } else {
        if (yych == '>')
          goto yy1647;
        if (yych <= 0xC1)
          goto yy1633;
        goto yy1664;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1665;
        if (yych == 0xED)
          goto yy1670;
        goto yy1666;
      } else {
        if (yych <= 0xF0)
          goto yy1667;
        if (yych <= 0xF3)
          goto yy1668;
        if (yych <= 0xF4)
          goto yy1669;
        goto yy1633;
      }
    }
  yy1662:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1662;
    }
    if (yych <= 0xE0) {
      if (yych <= '=') {
        if (yych <= 0x00)
          goto yy1633;
        if (yych <= ' ')
          goto yy1690;
        goto yy1633;
      } else {
        if (yych <= '>')
          goto yy1647;
        if (yych <= 0xC1)
          goto yy1633;
        if (yych >= 0xE0)
          goto yy1665;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1670;
        goto yy1666;
      } else {
        if (yych <= 0xF0)
          goto yy1667;
        if (yych <= 0xF3)
          goto yy1668;
        if (yych <= 0xF4)
          goto yy1669;
        goto yy1633;
      }
    }
  yy1664:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1662;
    goto yy1633;
  yy1665:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1664;
    goto yy1633;
  yy1666:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1664;
    goto yy1633;
  yy1667:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1666;
    goto yy1633;
  yy1668:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1666;
    goto yy1633;
  yy1669:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x8F)
      goto yy1666;
    goto yy1633;
  yy1670:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x9F)
      goto yy1664;
    goto yy1633;
  yy1671:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1671;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1633;
        if (yych <= '\'')
          goto yy1682;
        goto yy1633;
      } else {
        if (yych <= 0xDF)
          goto yy1683;
        if (yych <= 0xE0)
          goto yy1684;
        goto yy1685;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1689;
        if (yych <= 0xEF)
          goto yy1685;
        goto yy1686;
      } else {
        if (yych <= 0xF3)
          goto yy1687;
        if (yych <= 0xF4)
          goto yy1688;
        goto yy1633;
      }
    }
  yy1673:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1673;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy1633;
        if (yych <= '"')
          goto yy1682;
        goto yy1633;
      } else {
        if (yych <= 0xDF)
          goto yy1675;
        if (yych <= 0xE0)
          goto yy1676;
        goto yy1677;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1681;
        if (yych <= 0xEF)
          goto yy1677;
        goto yy1678;
      } else {
        if (yych <= 0xF3)
          goto yy1679;
        if (yych <= 0xF4)
          goto yy1680;
        goto yy1633;
      }
    }
  yy1675:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1673;
    goto yy1633;
  yy1676:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1675;
    goto yy1633;
  yy1677:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1675;
    goto yy1633;
  yy1678:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1677;
    goto yy1633;
  yy1679:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1677;
    goto yy1633;
  yy1680:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x8F)
      goto yy1677;
    goto yy1633;
  yy1681:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x9F)
      goto yy1675;
    goto yy1633;
  yy1682:
    ++p;
    yych = *p;
    if (yych <= ' ') {
      if (yych <= 0x08)
        goto yy1633;
      if (yych <= '\r')
        goto yy1653;
      if (yych <= 0x1F)
        goto yy1633;
      goto yy1653;
    } else {
      if (yych <= '/') {
        if (yych <= '.')
          goto yy1633;
        goto yy1655;
      } else {
        if (yych == '>')
          goto yy1647;
        goto yy1633;
      }
    }
  yy1683:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1671;
    goto yy1633;
  yy1684:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1683;
    goto yy1633;
  yy1685:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1683;
    goto yy1633;
  yy1686:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1685;
    goto yy1633;
  yy1687:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0xBF)
      goto yy1685;
    goto yy1633;
  yy1688:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x8F)
      goto yy1685;
    goto yy1633;
  yy1689:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1633;
    if (yych <= 0x9F)
      goto yy1683;
    goto yy1633;
  yy1690:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '"') {
        if (yych <= '\r') {
          if (yych <= 0x00)
            goto yy1633;
          if (yych <= 0x08)
            goto yy1662;
          goto yy1690;
        } else {
          if (yych == ' ')
            goto yy1690;
          if (yych <= '!')
            goto yy1662;
          goto yy1633;
        }
      } else {
        if (yych <= ':') {
          if (yych == '\'')
            goto yy1633;
          if (yych <= '9')
            goto yy1662;
        } else {
          if (yych <= ';')
            goto yy1662;
          if (yych <= '=')
            goto yy1633;
          if (yych <= '>')
            goto yy1647;
          goto yy1662;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= '`') {
          if (yych <= 'Z')
            goto yy1692;
          if (yych <= '^')
            goto yy1662;
          if (yych >= '`')
            goto yy1633;
        } else {
          if (yych <= 'z')
            goto yy1692;
          if (yych <= 0x7F)
            goto yy1662;
          if (yych <= 0xC1)
            goto yy1633;
          goto yy1664;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1665;
          if (yych == 0xED)
            goto yy1670;
          goto yy1666;
        } else {
          if (yych <= 0xF0)
            goto yy1667;
          if (yych <= 0xF3)
            goto yy1668;
          if (yych <= 0xF4)
            goto yy1669;
          goto yy1633;
        }
      }
    }
  yy1692:
    ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= '&') {
        if (yych <= 0x1F) {
          if (yych <= 0x00)
            goto yy1633;
          if (yych <= 0x08)
            goto yy1662;
          if (yych >= 0x0E)
            goto yy1662;
        } else {
          if (yych <= ' ')
            goto yy1694;
          if (yych == '"')
            goto yy1633;
          goto yy1662;
        }
      } else {
        if (yych <= '/') {
          if (yych <= '\'')
            goto yy1633;
          if (yych <= ',')
            goto yy1662;
          if (yych <= '.')
            goto yy1692;
          goto yy1662;
        } else {
          if (yych <= ';') {
            if (yych <= ':')
              goto yy1692;
            goto yy1662;
          } else {
            if (yych <= '<')
              goto yy1633;
            if (yych <= '=')
              goto yy1660;
            goto yy1647;
          }
        }
      }
    } else {
      if (yych <= 0xC1) {
        if (yych <= '_') {
          if (yych <= '@')
            goto yy1662;
          if (yych <= 'Z')
            goto yy1692;
          if (yych <= '^')
            goto yy1662;
          goto yy1692;
        } else {
          if (yych <= '`')
            goto yy1633;
          if (yych <= 'z')
            goto yy1692;
          if (yych <= 0x7F)
            goto yy1662;
          goto yy1633;
        }
      } else {
        if (yych <= 0xED) {
          if (yych <= 0xDF)
            goto yy1664;
          if (yych <= 0xE0)
            goto yy1665;
          if (yych <= 0xEC)
            goto yy1666;
          goto yy1670;
        } else {
          if (yych <= 0xF0) {
            if (yych <= 0xEF)
              goto yy1666;
            goto yy1667;
          } else {
            if (yych <= 0xF3)
              goto yy1668;
            if (yych <= 0xF4)
              goto yy1669;
            goto yy1633;
          }
        }
      }
    }
  yy1694:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '&') {
        if (yych <= 0x1F) {
          if (yych <= 0x00)
            goto yy1633;
          if (yych <= 0x08)
            goto yy1662;
          if (yych <= '\r')
            goto yy1694;
          goto yy1662;
        } else {
          if (yych <= ' ')
            goto yy1694;
          if (yych == '"')
            goto yy1633;
          goto yy1662;
        }
      } else {
        if (yych <= ';') {
          if (yych <= '\'')
            goto yy1633;
          if (yych == ':')
            goto yy1692;
          goto yy1662;
        } else {
          if (yych <= '<')
            goto yy1633;
          if (yych <= '=')
            goto yy1660;
          if (yych <= '>')
            goto yy1647;
          goto yy1662;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= '`') {
          if (yych <= 'Z')
            goto yy1692;
          if (yych <= '^')
            goto yy1662;
          if (yych <= '_')
            goto yy1692;
          goto yy1633;
        } else {
          if (yych <= 'z')
            goto yy1692;
          if (yych <= 0x7F)
            goto yy1662;
          if (yych <= 0xC1)
            goto yy1633;
          goto yy1664;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1665;
          if (yych == 0xED)
            goto yy1670;
          goto yy1666;
        } else {
          if (yych <= 0xF0)
            goto yy1667;
          if (yych <= 0xF3)
            goto yy1668;
          if (yych <= 0xF4)
            goto yy1669;
          goto yy1633;
        }
      }
    }
  yy1696:
    ++p;
    yych = *p;
    if (yych <= '@') {
      if (yych <= '"') {
        if (yych <= '\r') {
          if (yych <= 0x00)
            goto yy1633;
          if (yych <= 0x08)
            goto yy1662;
          goto yy1696;
        } else {
          if (yych == ' ')
            goto yy1696;
          if (yych <= '!')
            goto yy1662;
          goto yy1673;
        }
      } else {
        if (yych <= ':') {
          if (yych == '\'')
            goto yy1671;
          if (yych <= '9')
            goto yy1662;
          goto yy1692;
        } else {
          if (yych <= ';')
            goto yy1662;
          if (yych <= '=')
            goto yy1633;
          if (yych <= '>')
            goto yy1647;
          goto yy1662;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= '`') {
          if (yych <= 'Z')
            goto yy1692;
          if (yych <= '^')
            goto yy1662;
          if (yych <= '_')
            goto yy1692;
          goto yy1633;
        } else {
          if (yych <= 'z')
            goto yy1692;
          if (yych <= 0x7F)
            goto yy1662;
          if (yych <= 0xC1)
            goto yy1633;
          goto yy1664;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy1665;
          if (yych == 0xED)
            goto yy1670;
          goto yy1666;
        } else {
          if (yych <= 0xF0)
            goto yy1667;
          if (yych <= 0xF3)
            goto yy1668;
          if (yych <= 0xF4)
            goto yy1669;
          goto yy1633;
        }
      }
    }
  }
}

// Try to match an HTML block end line of type 1
bufsize_t _scan_html_block_end_1(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= ';') {
        if (yych != '\n')
          goto yy1701;
      } else {
        if (yych <= '<')
          goto yy1702;
        if (yych <= 0x7F)
          goto yy1701;
        if (yych >= 0xC2)
          goto yy1703;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1705;
        if (yych == 0xED)
          goto yy1710;
        goto yy1706;
      } else {
        if (yych <= 0xF0)
          goto yy1707;
        if (yych <= 0xF3)
          goto yy1708;
        if (yych <= 0xF4)
          goto yy1709;
      }
    }
  yy1700 : { return 0; }
  yy1701:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1700;
      goto yy1715;
    } else {
      if (yych <= 0xC1)
        goto yy1700;
      if (yych <= 0xF4)
        goto yy1715;
      goto yy1700;
    }
  yy1702:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= '/') {
      if (yych == '\n')
        goto yy1700;
      if (yych <= '.')
        goto yy1715;
      goto yy1711;
    } else {
      if (yych <= 0x7F)
        goto yy1715;
      if (yych <= 0xC1)
        goto yy1700;
      if (yych <= 0xF4)
        goto yy1715;
      goto yy1700;
    }
  yy1703:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1701;
  yy1704:
    p = marker;
    if (yyaccept == 0) {
      goto yy1700;
    } else {
      goto yy1732;
    }
  yy1705:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1703;
    goto yy1704;
  yy1706:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1703;
    goto yy1704;
  yy1707:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1706;
    goto yy1704;
  yy1708:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1706;
    goto yy1704;
  yy1709:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0x8F)
      goto yy1706;
    goto yy1704;
  yy1710:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0x9F)
      goto yy1703;
    goto yy1704;
  yy1711:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 's') {
      if (yych <= 'R') {
        if (yych <= '\n') {
          if (yych <= '\t')
            goto yy1714;
          goto yy1704;
        } else {
          if (yych == 'P')
            goto yy1723;
          goto yy1714;
        }
      } else {
        if (yych <= 'o') {
          if (yych <= 'S')
            goto yy1724;
          goto yy1714;
        } else {
          if (yych <= 'p')
            goto yy1723;
          if (yych <= 'r')
            goto yy1714;
          goto yy1724;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= 0x7F)
            goto yy1714;
          goto yy1704;
        } else {
          if (yych <= 0xDF)
            goto yy1716;
          if (yych <= 0xE0)
            goto yy1717;
          goto yy1718;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1722;
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1712:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xDF) {
      if (yych <= '.') {
        if (yych == '\n')
          goto yy1704;
      } else {
        if (yych <= '/')
          goto yy1711;
        if (yych <= 0x7F)
          goto yy1714;
        if (yych <= 0xC1)
          goto yy1704;
        goto yy1716;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1717;
        if (yych == 0xED)
          goto yy1722;
        goto yy1718;
      } else {
        if (yych <= 0xF0)
          goto yy1719;
        if (yych <= 0xF3)
          goto yy1720;
        if (yych <= 0xF4)
          goto yy1721;
        goto yy1704;
      }
    }
  yy1714:
    ++p;
    yych = *p;
  yy1715:
    if (yybm[0 + yych] & 128) {
      goto yy1714;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1704;
        if (yych <= '<')
          goto yy1712;
        goto yy1704;
      } else {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        goto yy1718;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1722;
        if (yych <= 0xEF)
          goto yy1718;
        goto yy1719;
      } else {
        if (yych <= 0xF3)
          goto yy1720;
        if (yych <= 0xF4)
          goto yy1721;
        goto yy1704;
      }
    }
  yy1716:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1714;
    goto yy1704;
  yy1717:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1716;
    goto yy1704;
  yy1718:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1716;
    goto yy1704;
  yy1719:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1718;
    goto yy1704;
  yy1720:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0xBF)
      goto yy1718;
    goto yy1704;
  yy1721:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0x8F)
      goto yy1718;
    goto yy1704;
  yy1722:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1704;
    if (yych <= 0x9F)
      goto yy1716;
    goto yy1704;
  yy1723:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'R') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'Q')
          goto yy1714;
        goto yy1735;
      } else {
        if (yych == 'r')
          goto yy1735;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1724:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 't') {
      if (yych <= 'S') {
        if (yych <= '\n') {
          if (yych <= '\t')
            goto yy1714;
          goto yy1704;
        } else {
          if (yych == 'C')
            goto yy1726;
          goto yy1714;
        }
      } else {
        if (yych <= 'b') {
          if (yych >= 'U')
            goto yy1714;
        } else {
          if (yych <= 'c')
            goto yy1726;
          if (yych <= 's')
            goto yy1714;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= 0x7F)
            goto yy1714;
          goto yy1704;
        } else {
          if (yych <= 0xDF)
            goto yy1716;
          if (yych <= 0xE0)
            goto yy1717;
          goto yy1718;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1722;
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'Y') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'X')
          goto yy1714;
        goto yy1733;
      } else {
        if (yych == 'y')
          goto yy1733;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1726:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'R') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'Q')
          goto yy1714;
      } else {
        if (yych == 'r')
          goto yy1727;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1727:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'I') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'H')
          goto yy1714;
      } else {
        if (yych == 'i')
          goto yy1728;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1728:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'P') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'O')
          goto yy1714;
      } else {
        if (yych == 'p')
          goto yy1729;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1729:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'T') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'S')
          goto yy1714;
      } else {
        if (yych == 't')
          goto yy1730;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1730:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych == '\n')
          goto yy1704;
        goto yy1714;
      } else {
        if (yych <= '>')
          goto yy1731;
        if (yych <= 0x7F)
          goto yy1714;
        if (yych <= 0xC1)
          goto yy1704;
        goto yy1716;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1717;
        if (yych == 0xED)
          goto yy1722;
        goto yy1718;
      } else {
        if (yych <= 0xF0)
          goto yy1719;
        if (yych <= 0xF3)
          goto yy1720;
        if (yych <= 0xF4)
          goto yy1721;
        goto yy1704;
      }
    }
  yy1731:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1714;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1732;
        if (yych <= '<')
          goto yy1712;
      } else {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        goto yy1718;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1722;
        if (yych <= 0xEF)
          goto yy1718;
        goto yy1719;
      } else {
        if (yych <= 0xF3)
          goto yy1720;
        if (yych <= 0xF4)
          goto yy1721;
      }
    }
  yy1732 : { return (bufsize_t)(p - start); }
  yy1733:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'L') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'K')
          goto yy1714;
      } else {
        if (yych == 'l')
          goto yy1734;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1734:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'E') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'D')
          goto yy1714;
        goto yy1730;
      } else {
        if (yych == 'e')
          goto yy1730;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  yy1735:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1712;
    }
    if (yych <= 0xC1) {
      if (yych <= 'E') {
        if (yych == '\n')
          goto yy1704;
        if (yych <= 'D')
          goto yy1714;
        goto yy1730;
      } else {
        if (yych == 'e')
          goto yy1730;
        if (yych <= 0x7F)
          goto yy1714;
        goto yy1704;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1716;
        if (yych <= 0xE0)
          goto yy1717;
        if (yych <= 0xEC)
          goto yy1718;
        goto yy1722;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1718;
          goto yy1719;
        } else {
          if (yych <= 0xF3)
            goto yy1720;
          if (yych <= 0xF4)
            goto yy1721;
          goto yy1704;
        }
      }
    }
  }
}

// Try to match an HTML block end line of type 2
bufsize_t _scan_html_block_end_2(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= ',') {
        if (yych != '\n')
          goto yy1739;
      } else {
        if (yych <= '-')
          goto yy1740;
        if (yych <= 0x7F)
          goto yy1739;
        if (yych >= 0xC2)
          goto yy1741;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1743;
        if (yych == 0xED)
          goto yy1748;
        goto yy1744;
      } else {
        if (yych <= 0xF0)
          goto yy1745;
        if (yych <= 0xF3)
          goto yy1746;
        if (yych <= 0xF4)
          goto yy1747;
      }
    }
  yy1738 : { return 0; }
  yy1739:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1738;
      goto yy1752;
    } else {
      if (yych <= 0xC1)
        goto yy1738;
      if (yych <= 0xF4)
        goto yy1752;
      goto yy1738;
    }
  yy1740:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 64) {
      goto yy1749;
    }
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1738;
      goto yy1752;
    } else {
      if (yych <= 0xC1)
        goto yy1738;
      if (yych <= 0xF4)
        goto yy1752;
      goto yy1738;
    }
  yy1741:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1739;
  yy1742:
    p = marker;
    if (yyaccept == 0) {
      goto yy1738;
    } else {
      goto yy1762;
    }
  yy1743:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1741;
    goto yy1742;
  yy1744:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1741;
    goto yy1742;
  yy1745:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1744;
    goto yy1742;
  yy1746:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1744;
    goto yy1742;
  yy1747:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0x8F)
      goto yy1744;
    goto yy1742;
  yy1748:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0x9F)
      goto yy1741;
    goto yy1742;
  yy1749:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1749;
    }
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych == '\n')
          goto yy1742;
      } else {
        if (yych <= '>')
          goto yy1761;
        if (yych <= 0x7F)
          goto yy1751;
        if (yych <= 0xC1)
          goto yy1742;
        goto yy1753;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1754;
        if (yych == 0xED)
          goto yy1759;
        goto yy1755;
      } else {
        if (yych <= 0xF0)
          goto yy1756;
        if (yych <= 0xF3)
          goto yy1757;
        if (yych <= 0xF4)
          goto yy1758;
        goto yy1742;
      }
    }
  yy1751:
    ++p;
    yych = *p;
  yy1752:
    if (yybm[0 + yych] & 128) {
      goto yy1751;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1742;
        if (yych <= '-')
          goto yy1760;
        goto yy1742;
      } else {
        if (yych <= 0xDF)
          goto yy1753;
        if (yych <= 0xE0)
          goto yy1754;
        goto yy1755;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1759;
        if (yych <= 0xEF)
          goto yy1755;
        goto yy1756;
      } else {
        if (yych <= 0xF3)
          goto yy1757;
        if (yych <= 0xF4)
          goto yy1758;
        goto yy1742;
      }
    }
  yy1753:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1751;
    goto yy1742;
  yy1754:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1753;
    goto yy1742;
  yy1755:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1753;
    goto yy1742;
  yy1756:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1755;
    goto yy1742;
  yy1757:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0xBF)
      goto yy1755;
    goto yy1742;
  yy1758:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0x8F)
      goto yy1755;
    goto yy1742;
  yy1759:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1742;
    if (yych <= 0x9F)
      goto yy1753;
    goto yy1742;
  yy1760:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1751;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1742;
        if (yych <= '-')
          goto yy1749;
        goto yy1742;
      } else {
        if (yych <= 0xDF)
          goto yy1753;
        if (yych <= 0xE0)
          goto yy1754;
        goto yy1755;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1759;
        if (yych <= 0xEF)
          goto yy1755;
        goto yy1756;
      } else {
        if (yych <= 0xF3)
          goto yy1757;
        if (yych <= 0xF4)
          goto yy1758;
        goto yy1742;
      }
    }
  yy1761:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1751;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1762;
        if (yych <= '-')
          goto yy1760;
      } else {
        if (yych <= 0xDF)
          goto yy1753;
        if (yych <= 0xE0)
          goto yy1754;
        goto yy1755;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1759;
        if (yych <= 0xEF)
          goto yy1755;
        goto yy1756;
      } else {
        if (yych <= 0xF3)
          goto yy1757;
        if (yych <= 0xF4)
          goto yy1758;
      }
    }
  yy1762 : { return (bufsize_t)(p - start); }
  }
}

// Try to match an HTML block end line of type 3
bufsize_t _scan_html_block_end_3(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= '>') {
        if (yych != '\n')
          goto yy1766;
      } else {
        if (yych <= '?')
          goto yy1767;
        if (yych <= 0x7F)
          goto yy1766;
        if (yych >= 0xC2)
          goto yy1768;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1770;
        if (yych == 0xED)
          goto yy1775;
        goto yy1771;
      } else {
        if (yych <= 0xF0)
          goto yy1772;
        if (yych <= 0xF3)
          goto yy1773;
        if (yych <= 0xF4)
          goto yy1774;
      }
    }
  yy1765 : { return 0; }
  yy1766:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1765;
      goto yy1781;
    } else {
      if (yych <= 0xC1)
        goto yy1765;
      if (yych <= 0xF4)
        goto yy1781;
      goto yy1765;
    }
  yy1767:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= '>') {
      if (yych == '\n')
        goto yy1765;
      if (yych <= '=')
        goto yy1781;
      goto yy1776;
    } else {
      if (yych <= 0x7F)
        goto yy1781;
      if (yych <= 0xC1)
        goto yy1765;
      if (yych <= 0xF4)
        goto yy1781;
      goto yy1765;
    }
  yy1768:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1766;
  yy1769:
    p = marker;
    if (yyaccept == 0) {
      goto yy1765;
    } else {
      goto yy1777;
    }
  yy1770:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1768;
    goto yy1769;
  yy1771:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1768;
    goto yy1769;
  yy1772:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1771;
    goto yy1769;
  yy1773:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1771;
    goto yy1769;
  yy1774:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0x8F)
      goto yy1771;
    goto yy1769;
  yy1775:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0x9F)
      goto yy1768;
    goto yy1769;
  yy1776:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1780;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1777;
        if (yych <= '?')
          goto yy1778;
      } else {
        if (yych <= 0xDF)
          goto yy1782;
        if (yych <= 0xE0)
          goto yy1783;
        goto yy1784;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1788;
        if (yych <= 0xEF)
          goto yy1784;
        goto yy1785;
      } else {
        if (yych <= 0xF3)
          goto yy1786;
        if (yych <= 0xF4)
          goto yy1787;
      }
    }
  yy1777 : { return (bufsize_t)(p - start); }
  yy1778:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1778;
    }
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych == '\n')
          goto yy1769;
      } else {
        if (yych <= '>')
          goto yy1776;
        if (yych <= 0x7F)
          goto yy1780;
        if (yych <= 0xC1)
          goto yy1769;
        goto yy1782;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1783;
        if (yych == 0xED)
          goto yy1788;
        goto yy1784;
      } else {
        if (yych <= 0xF0)
          goto yy1785;
        if (yych <= 0xF3)
          goto yy1786;
        if (yych <= 0xF4)
          goto yy1787;
        goto yy1769;
      }
    }
  yy1780:
    ++p;
    yych = *p;
  yy1781:
    if (yybm[0 + yych] & 128) {
      goto yy1780;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1769;
        if (yych <= '?')
          goto yy1778;
        goto yy1769;
      } else {
        if (yych <= 0xDF)
          goto yy1782;
        if (yych <= 0xE0)
          goto yy1783;
        goto yy1784;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1788;
        if (yych <= 0xEF)
          goto yy1784;
        goto yy1785;
      } else {
        if (yych <= 0xF3)
          goto yy1786;
        if (yych <= 0xF4)
          goto yy1787;
        goto yy1769;
      }
    }
  yy1782:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1780;
    goto yy1769;
  yy1783:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1782;
    goto yy1769;
  yy1784:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1782;
    goto yy1769;
  yy1785:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1784;
    goto yy1769;
  yy1786:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0xBF)
      goto yy1784;
    goto yy1769;
  yy1787:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0x8F)
      goto yy1784;
    goto yy1769;
  yy1788:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1769;
    if (yych <= 0x9F)
      goto yy1782;
    goto yy1769;
  }
}

// Try to match an HTML block end line of type 4
bufsize_t _scan_html_block_end_4(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych != '\n')
          goto yy1792;
      } else {
        if (yych <= '>')
          goto yy1793;
        if (yych <= 0x7F)
          goto yy1792;
        if (yych >= 0xC2)
          goto yy1795;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1797;
        if (yych == 0xED)
          goto yy1802;
        goto yy1798;
      } else {
        if (yych <= 0xF0)
          goto yy1799;
        if (yych <= 0xF3)
          goto yy1800;
        if (yych <= 0xF4)
          goto yy1801;
      }
    }
  yy1791 : { return 0; }
  yy1792:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1791;
      goto yy1806;
    } else {
      if (yych <= 0xC1)
        goto yy1791;
      if (yych <= 0xF4)
        goto yy1806;
      goto yy1791;
    }
  yy1793:
    yyaccept = 1;
    yych = *(marker = ++p);
    if (yych <= 0x7F) {
      if (yych != '\n')
        goto yy1806;
    } else {
      if (yych <= 0xC1)
        goto yy1794;
      if (yych <= 0xF4)
        goto yy1806;
    }
  yy1794 : { return (bufsize_t)(p - start); }
  yy1795:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1792;
  yy1796:
    p = marker;
    if (yyaccept == 0) {
      goto yy1791;
    } else {
      goto yy1794;
    }
  yy1797:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1795;
    goto yy1796;
  yy1798:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1795;
    goto yy1796;
  yy1799:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1798;
    goto yy1796;
  yy1800:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1798;
    goto yy1796;
  yy1801:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0x8F)
      goto yy1798;
    goto yy1796;
  yy1802:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0x9F)
      goto yy1795;
    goto yy1796;
  yy1803:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1805;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1794;
        if (yych <= '>')
          goto yy1803;
        goto yy1794;
      } else {
        if (yych <= 0xDF)
          goto yy1807;
        if (yych <= 0xE0)
          goto yy1808;
        goto yy1809;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1813;
        if (yych <= 0xEF)
          goto yy1809;
        goto yy1810;
      } else {
        if (yych <= 0xF3)
          goto yy1811;
        if (yych <= 0xF4)
          goto yy1812;
        goto yy1794;
      }
    }
  yy1805:
    ++p;
    yych = *p;
  yy1806:
    if (yybm[0 + yych] & 128) {
      goto yy1805;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1796;
        if (yych <= '>')
          goto yy1803;
        goto yy1796;
      } else {
        if (yych <= 0xDF)
          goto yy1807;
        if (yych <= 0xE0)
          goto yy1808;
        goto yy1809;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1813;
        if (yych <= 0xEF)
          goto yy1809;
        goto yy1810;
      } else {
        if (yych <= 0xF3)
          goto yy1811;
        if (yych <= 0xF4)
          goto yy1812;
        goto yy1796;
      }
    }
  yy1807:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1805;
    goto yy1796;
  yy1808:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1807;
    goto yy1796;
  yy1809:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1807;
    goto yy1796;
  yy1810:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1809;
    goto yy1796;
  yy1811:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0xBF)
      goto yy1809;
    goto yy1796;
  yy1812:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0x8F)
      goto yy1809;
    goto yy1796;
  yy1813:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1796;
    if (yych <= 0x9F)
      goto yy1807;
    goto yy1796;
  }
}

// Try to match an HTML block end line of type 5
bufsize_t _scan_html_block_end_5(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 0,   128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 64,  128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= '\\') {
        if (yych != '\n')
          goto yy1817;
      } else {
        if (yych <= ']')
          goto yy1818;
        if (yych <= 0x7F)
          goto yy1817;
        if (yych >= 0xC2)
          goto yy1819;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1821;
        if (yych == 0xED)
          goto yy1826;
        goto yy1822;
      } else {
        if (yych <= 0xF0)
          goto yy1823;
        if (yych <= 0xF3)
          goto yy1824;
        if (yych <= 0xF4)
          goto yy1825;
      }
    }
  yy1816 : { return 0; }
  yy1817:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1816;
      goto yy1830;
    } else {
      if (yych <= 0xC1)
        goto yy1816;
      if (yych <= 0xF4)
        goto yy1830;
      goto yy1816;
    }
  yy1818:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 64) {
      goto yy1827;
    }
    if (yych <= 0x7F) {
      if (yych == '\n')
        goto yy1816;
      goto yy1830;
    } else {
      if (yych <= 0xC1)
        goto yy1816;
      if (yych <= 0xF4)
        goto yy1830;
      goto yy1816;
    }
  yy1819:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1817;
  yy1820:
    p = marker;
    if (yyaccept == 0) {
      goto yy1816;
    } else {
      goto yy1840;
    }
  yy1821:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1819;
    goto yy1820;
  yy1822:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1819;
    goto yy1820;
  yy1823:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1822;
    goto yy1820;
  yy1824:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1822;
    goto yy1820;
  yy1825:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0x8F)
      goto yy1822;
    goto yy1820;
  yy1826:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0x9F)
      goto yy1819;
    goto yy1820;
  yy1827:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1827;
    }
    if (yych <= 0xDF) {
      if (yych <= '=') {
        if (yych == '\n')
          goto yy1820;
      } else {
        if (yych <= '>')
          goto yy1839;
        if (yych <= 0x7F)
          goto yy1829;
        if (yych <= 0xC1)
          goto yy1820;
        goto yy1831;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1832;
        if (yych == 0xED)
          goto yy1837;
        goto yy1833;
      } else {
        if (yych <= 0xF0)
          goto yy1834;
        if (yych <= 0xF3)
          goto yy1835;
        if (yych <= 0xF4)
          goto yy1836;
        goto yy1820;
      }
    }
  yy1829:
    ++p;
    yych = *p;
  yy1830:
    if (yybm[0 + yych] & 128) {
      goto yy1829;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1820;
        if (yych <= ']')
          goto yy1838;
        goto yy1820;
      } else {
        if (yych <= 0xDF)
          goto yy1831;
        if (yych <= 0xE0)
          goto yy1832;
        goto yy1833;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1837;
        if (yych <= 0xEF)
          goto yy1833;
        goto yy1834;
      } else {
        if (yych <= 0xF3)
          goto yy1835;
        if (yych <= 0xF4)
          goto yy1836;
        goto yy1820;
      }
    }
  yy1831:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1829;
    goto yy1820;
  yy1832:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1831;
    goto yy1820;
  yy1833:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1831;
    goto yy1820;
  yy1834:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1833;
    goto yy1820;
  yy1835:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0xBF)
      goto yy1833;
    goto yy1820;
  yy1836:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0x8F)
      goto yy1833;
    goto yy1820;
  yy1837:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1820;
    if (yych <= 0x9F)
      goto yy1831;
    goto yy1820;
  yy1838:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1829;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1820;
        if (yych <= ']')
          goto yy1827;
        goto yy1820;
      } else {
        if (yych <= 0xDF)
          goto yy1831;
        if (yych <= 0xE0)
          goto yy1832;
        goto yy1833;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1837;
        if (yych <= 0xEF)
          goto yy1833;
        goto yy1834;
      } else {
        if (yych <= 0xF3)
          goto yy1835;
        if (yych <= 0xF4)
          goto yy1836;
        goto yy1820;
      }
    }
  yy1839:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1829;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= '\n')
          goto yy1840;
        if (yych <= ']')
          goto yy1838;
      } else {
        if (yych <= 0xDF)
          goto yy1831;
        if (yych <= 0xE0)
          goto yy1832;
        goto yy1833;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1837;
        if (yych <= 0xEF)
          goto yy1833;
        goto yy1834;
      } else {
        if (yych <= 0xF3)
          goto yy1835;
        if (yych <= 0xF4)
          goto yy1836;
      }
    }
  yy1840 : { return (bufsize_t)(p - start); }
  }
}

// Try to match a URL in a link or reference, return number of chars matched.
// This may optionally be contained in <..>; otherwise
// whitespace and unbalanced right parentheses aren't allowed.
// Newlines aren't ever allowed.
bufsize_t _scan_link_url(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        0,   128, 128, 128, 128, 128, 128, 128, 128, 128, 8,   128, 128, 8,
        128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
        128, 128, 128, 128, 136, 224, 224, 224, 224, 224, 224, 224, 128, 128,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 32,  224, 32,  224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 16,  224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= '[') {
      if (yych <= ' ') {
        if (yych <= '\f') {
          if (yych == '\n')
            goto yy1844;
          goto yy1860;
        } else {
          if (yych <= '\r')
            goto yy1846;
          if (yych <= 0x1F)
            goto yy1860;
          goto yy1846;
        }
      } else {
        if (yych <= ')') {
          if (yych <= '\'')
            goto yy1848;
          if (yych <= '(')
            goto yy1859;
          goto yy1860;
        } else {
          if (yych == '<')
            goto yy1847;
          goto yy1848;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1857;
          if (yych <= 0x7F)
            goto yy1848;
        } else {
          if (yych <= 0xDF)
            goto yy1849;
          if (yych <= 0xE0)
            goto yy1851;
          goto yy1852;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1856;
          if (yych <= 0xEF)
            goto yy1852;
          goto yy1853;
        } else {
          if (yych <= 0xF3)
            goto yy1854;
          if (yych <= 0xF4)
            goto yy1855;
        }
      }
    }
  yy1843 : { return (bufsize_t)(p - start); }
  yy1844:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
  yy1845:
    if (yybm[0 + yych] & 8) {
      goto yy1844;
    }
    if (yych <= 0x7F) {
      if (yych <= ')') {
        if (yych <= 0x1F)
          goto yy1843;
        if (yych <= '\'')
          goto yy1872;
        if (yych <= '(')
          goto yy1863;
        goto yy1843;
      } else {
        if (yych <= '<') {
          if (yych <= ';')
            goto yy1872;
          goto yy1907;
        } else {
          if (yych == '\\')
            goto yy1881;
          goto yy1872;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF) {
          if (yych <= 0xC1)
            goto yy1843;
          goto yy1874;
        } else {
          if (yych <= 0xE0)
            goto yy1875;
          if (yych <= 0xEC)
            goto yy1876;
          goto yy1880;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1876;
          goto yy1877;
        } else {
          if (yych <= 0xF3)
            goto yy1878;
          if (yych <= 0xF4)
            goto yy1879;
          goto yy1843;
        }
      }
    }
  yy1846:
    yyaccept = 0;
    yych = *(marker = ++p);
    goto yy1845;
  yy1847:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 64) {
      goto yy1907;
    }
    if (yych <= '>') {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1843;
          goto yy1921;
        } else {
          if (yych <= '\n')
            goto yy1843;
          if (yych <= '\f')
            goto yy1921;
          goto yy1843;
        }
      } else {
        if (yych <= '(') {
          if (yych <= ' ')
            goto yy1921;
          goto yy1919;
        } else {
          if (yych <= ')')
            goto yy1921;
          if (yych <= '<')
            goto yy1872;
          goto yy1909;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1918;
          goto yy1843;
        } else {
          if (yych <= 0xDF)
            goto yy1911;
          if (yych <= 0xE0)
            goto yy1912;
          goto yy1913;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1917;
          if (yych <= 0xEF)
            goto yy1913;
          goto yy1914;
        } else {
          if (yych <= 0xF3)
            goto yy1915;
          if (yych <= 0xF4)
            goto yy1916;
          goto yy1843;
        }
      }
    }
  yy1848:
    yyaccept = 0;
    yych = *(marker = ++p);
    goto yy1873;
  yy1849:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1848;
  yy1850:
    p = marker;
    if (yyaccept <= 1) {
      if (yyaccept == 0) {
        goto yy1843;
      } else {
        goto yy1858;
      }
    } else {
      goto yy1910;
    }
  yy1851:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1849;
    goto yy1850;
  yy1852:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1849;
    goto yy1850;
  yy1853:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1852;
    goto yy1850;
  yy1854:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1852;
    goto yy1850;
  yy1855:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1852;
    goto yy1850;
  yy1856:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1849;
    goto yy1850;
  yy1857:
    yyaccept = 1;
    yych = *(marker = ++p);
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x7F)
          goto yy1872;
      } else {
        if (yych <= 0xDF)
          goto yy1882;
        if (yych <= 0xE0)
          goto yy1883;
        goto yy1884;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1888;
        if (yych <= 0xEF)
          goto yy1884;
        goto yy1885;
      } else {
        if (yych <= 0xF3)
          goto yy1886;
        if (yych <= 0xF4)
          goto yy1887;
      }
    }
  yy1858 : { return 0; }
  yy1859:
    yyaccept = 1;
    yych = *(marker = ++p);
    if (yych <= '(') {
      if (yych <= ' ')
        goto yy1858;
      if (yych <= '\'')
        goto yy1864;
      goto yy1858;
    } else {
      if (yych <= 0x7F)
        goto yy1864;
      if (yych <= 0xC1)
        goto yy1858;
      if (yych <= 0xF4)
        goto yy1864;
      goto yy1858;
    }
  yy1860:
    yych = *++p;
    goto yy1858;
  yy1861:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 16) {
      goto yy1861;
    }
    if (yych <= 0xE0) {
      if (yych <= ')') {
        if (yych <= ' ')
          goto yy1850;
        if (yych >= ')')
          goto yy1889;
      } else {
        if (yych <= 0x7F)
          goto yy1863;
        if (yych <= 0xC1)
          goto yy1850;
        if (yych <= 0xDF)
          goto yy1865;
        goto yy1866;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1871;
        goto yy1867;
      } else {
        if (yych <= 0xF0)
          goto yy1868;
        if (yych <= 0xF3)
          goto yy1869;
        if (yych <= 0xF4)
          goto yy1870;
        goto yy1850;
      }
    }
  yy1863:
    ++p;
    yych = *p;
  yy1864:
    if (yybm[0 + yych] & 32) {
      goto yy1863;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= '(')
          goto yy1850;
        if (yych <= ')')
          goto yy1872;
        goto yy1861;
      } else {
        if (yych <= 0xC1)
          goto yy1850;
        if (yych >= 0xE0)
          goto yy1866;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1871;
        goto yy1867;
      } else {
        if (yych <= 0xF0)
          goto yy1868;
        if (yych <= 0xF3)
          goto yy1869;
        if (yych <= 0xF4)
          goto yy1870;
        goto yy1850;
      }
    }
  yy1865:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1863;
    goto yy1850;
  yy1866:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1865;
    goto yy1850;
  yy1867:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1865;
    goto yy1850;
  yy1868:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1867;
    goto yy1850;
  yy1869:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1867;
    goto yy1850;
  yy1870:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1867;
    goto yy1850;
  yy1871:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1865;
    goto yy1850;
  yy1872:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
  yy1873:
    if (yych <= 0xC1) {
      if (yych <= ')') {
        if (yych <= ' ')
          goto yy1843;
        if (yych <= '\'')
          goto yy1872;
        if (yych <= '(')
          goto yy1863;
        goto yy1843;
      } else {
        if (yych == '\\')
          goto yy1881;
        if (yych <= 0x7F)
          goto yy1872;
        goto yy1843;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1874;
        if (yych <= 0xE0)
          goto yy1875;
        if (yych <= 0xEC)
          goto yy1876;
        goto yy1880;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1876;
          goto yy1877;
        } else {
          if (yych <= 0xF3)
            goto yy1878;
          if (yych <= 0xF4)
            goto yy1879;
          goto yy1843;
        }
      }
    }
  yy1874:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1872;
    goto yy1850;
  yy1875:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1874;
    goto yy1850;
  yy1876:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1874;
    goto yy1850;
  yy1877:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1876;
    goto yy1850;
  yy1878:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1876;
    goto yy1850;
  yy1879:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1876;
    goto yy1850;
  yy1880:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1874;
    goto yy1850;
  yy1881:
    ++p;
    yych = *p;
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x7F)
          goto yy1872;
        goto yy1850;
      } else {
        if (yych <= 0xDF)
          goto yy1882;
        if (yych <= 0xE0)
          goto yy1883;
        goto yy1884;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy1888;
        if (yych <= 0xEF)
          goto yy1884;
        goto yy1885;
      } else {
        if (yych <= 0xF3)
          goto yy1886;
        if (yych <= 0xF4)
          goto yy1887;
        goto yy1850;
      }
    }
  yy1882:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1872;
    goto yy1850;
  yy1883:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1882;
    goto yy1850;
  yy1884:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1882;
    goto yy1850;
  yy1885:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1884;
    goto yy1850;
  yy1886:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1884;
    goto yy1850;
  yy1887:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1884;
    goto yy1850;
  yy1888:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1882;
    goto yy1850;
  yy1889:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
  yy1890:
    if (yych <= 0xC1) {
      if (yych <= ')') {
        if (yych <= ' ')
          goto yy1843;
        if (yych <= '\'')
          goto yy1889;
        if (yych <= '(')
          goto yy1863;
        goto yy1872;
      } else {
        if (yych == '\\')
          goto yy1898;
        if (yych <= 0x7F)
          goto yy1889;
        goto yy1843;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1891;
        if (yych <= 0xE0)
          goto yy1892;
        if (yych <= 0xEC)
          goto yy1893;
        goto yy1897;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1893;
          goto yy1894;
        } else {
          if (yych <= 0xF3)
            goto yy1895;
          if (yych <= 0xF4)
            goto yy1896;
          goto yy1843;
        }
      }
    }
  yy1891:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1889;
    goto yy1850;
  yy1892:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1891;
    goto yy1850;
  yy1893:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1891;
    goto yy1850;
  yy1894:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1893;
    goto yy1850;
  yy1895:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1893;
    goto yy1850;
  yy1896:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1893;
    goto yy1850;
  yy1897:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1891;
    goto yy1850;
  yy1898:
    ++p;
    yych = *p;
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= ' ')
          goto yy1872;
        if (yych <= '[')
          goto yy1889;
      } else {
        if (yych <= 0x7F)
          goto yy1889;
        if (yych <= 0xC1)
          goto yy1850;
        if (yych <= 0xDF)
          goto yy1900;
        goto yy1901;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1906;
        goto yy1902;
      } else {
        if (yych <= 0xF0)
          goto yy1903;
        if (yych <= 0xF3)
          goto yy1904;
        if (yych <= 0xF4)
          goto yy1905;
        goto yy1850;
      }
    }
    yyaccept = 0;
    marker = ++p;
    yych = *p;
    if (yych <= 0xDF) {
      if (yych <= '[') {
        if (yych <= ' ')
          goto yy1843;
        if (yych == '(')
          goto yy1863;
        goto yy1889;
      } else {
        if (yych <= '\\')
          goto yy1898;
        if (yych <= 0x7F)
          goto yy1889;
        if (yych <= 0xC1)
          goto yy1843;
        goto yy1891;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy1892;
        if (yych == 0xED)
          goto yy1897;
        goto yy1893;
      } else {
        if (yych <= 0xF0)
          goto yy1894;
        if (yych <= 0xF3)
          goto yy1895;
        if (yych <= 0xF4)
          goto yy1896;
        goto yy1843;
      }
    }
  yy1900:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1889;
    goto yy1850;
  yy1901:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1900;
    goto yy1850;
  yy1902:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1900;
    goto yy1850;
  yy1903:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1902;
    goto yy1850;
  yy1904:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1902;
    goto yy1850;
  yy1905:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1902;
    goto yy1850;
  yy1906:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1900;
    goto yy1850;
  yy1907:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1907;
    }
    if (yych <= '>') {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1843;
          goto yy1921;
        } else {
          if (yych <= '\n')
            goto yy1843;
          if (yych <= '\f')
            goto yy1921;
          goto yy1843;
        }
      } else {
        if (yych <= '(') {
          if (yych <= ' ')
            goto yy1921;
          goto yy1919;
        } else {
          if (yych <= ')')
            goto yy1921;
          if (yych <= '<')
            goto yy1872;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1918;
          goto yy1843;
        } else {
          if (yych <= 0xDF)
            goto yy1911;
          if (yych <= 0xE0)
            goto yy1912;
          goto yy1913;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1917;
          if (yych <= 0xEF)
            goto yy1913;
          goto yy1914;
        } else {
          if (yych <= 0xF3)
            goto yy1915;
          if (yych <= 0xF4)
            goto yy1916;
          goto yy1843;
        }
      }
    }
  yy1909:
    yyaccept = 2;
    yych = *(marker = ++p);
    if (yych <= ')') {
      if (yych <= ' ')
        goto yy1910;
      if (yych <= '(')
        goto yy1873;
    } else {
      if (yych <= 0x7F)
        goto yy1873;
      if (yych <= 0xC1)
        goto yy1910;
      if (yych <= 0xF4)
        goto yy1873;
    }
  yy1910 : { return (bufsize_t)(p - start); }
  yy1911:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1907;
    goto yy1850;
  yy1912:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1911;
    goto yy1850;
  yy1913:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1911;
    goto yy1850;
  yy1914:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1913;
    goto yy1850;
  yy1915:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1913;
    goto yy1850;
  yy1916:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1913;
    goto yy1850;
  yy1917:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1911;
    goto yy1850;
  yy1918:
    ++p;
    yych = *p;
    if (yych <= 0x7F) {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1872;
          goto yy1907;
        } else {
          if (yych <= '\n')
            goto yy1872;
          if (yych <= '\f')
            goto yy1907;
          goto yy1872;
        }
      } else {
        if (yych <= '>') {
          if (yych <= '=')
            goto yy1907;
          goto yy1965;
        } else {
          if (yych == '\\')
            goto yy1966;
          goto yy1907;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF) {
          if (yych <= 0xC1)
            goto yy1850;
          goto yy1967;
        } else {
          if (yych <= 0xE0)
            goto yy1968;
          if (yych <= 0xEC)
            goto yy1969;
          goto yy1973;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1969;
          goto yy1970;
        } else {
          if (yych <= 0xF3)
            goto yy1971;
          if (yych <= 0xF4)
            goto yy1972;
          goto yy1850;
        }
      }
    }
  yy1919:
    ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= ' ') {
        if (yych <= '\n') {
          if (yych <= 0x00)
            goto yy1850;
          if (yych >= '\n')
            goto yy1850;
        } else {
          if (yych == '\r')
            goto yy1850;
        }
      } else {
        if (yych <= ')') {
          if (yych <= '\'')
            goto yy1919;
          if (yych >= ')')
            goto yy1907;
        } else {
          if (yych == '<')
            goto yy1863;
          if (yych <= '=')
            goto yy1919;
          goto yy1934;
        }
      }
    } else {
      if (yych <= 0xE0) {
        if (yych <= 0x7F) {
          if (yych == '\\')
            goto yy1935;
          goto yy1919;
        } else {
          if (yych <= 0xC1)
            goto yy1850;
          if (yych <= 0xDF)
            goto yy1937;
          goto yy1938;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych == 0xED)
            goto yy1943;
          goto yy1939;
        } else {
          if (yych <= 0xF0)
            goto yy1940;
          if (yych <= 0xF3)
            goto yy1941;
          if (yych <= 0xF4)
            goto yy1942;
          goto yy1850;
        }
      }
    }
  yy1921:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1921;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= '<')
          goto yy1850;
        if (yych >= '?')
          goto yy1924;
      } else {
        if (yych <= 0xC1)
          goto yy1850;
        if (yych <= 0xDF)
          goto yy1926;
        goto yy1927;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1932;
        goto yy1928;
      } else {
        if (yych <= 0xF0)
          goto yy1929;
        if (yych <= 0xF3)
          goto yy1930;
        if (yych <= 0xF4)
          goto yy1931;
        goto yy1850;
      }
    }
  yy1923:
    yych = *++p;
    goto yy1910;
  yy1924:
    ++p;
    yych = *p;
    if (yych <= 0x7F) {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1850;
          goto yy1921;
        } else {
          if (yych <= '\n')
            goto yy1850;
          if (yych <= '\f')
            goto yy1921;
          goto yy1850;
        }
      } else {
        if (yych <= '>') {
          if (yych <= '=')
            goto yy1921;
          goto yy1933;
        } else {
          if (yych == '\\')
            goto yy1924;
          goto yy1921;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF) {
          if (yych <= 0xC1)
            goto yy1850;
        } else {
          if (yych <= 0xE0)
            goto yy1927;
          if (yych <= 0xEC)
            goto yy1928;
          goto yy1932;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1928;
          goto yy1929;
        } else {
          if (yych <= 0xF3)
            goto yy1930;
          if (yych <= 0xF4)
            goto yy1931;
          goto yy1850;
        }
      }
    }
  yy1926:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1921;
    goto yy1850;
  yy1927:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1926;
    goto yy1850;
  yy1928:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1926;
    goto yy1850;
  yy1929:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1928;
    goto yy1850;
  yy1930:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1928;
    goto yy1850;
  yy1931:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1928;
    goto yy1850;
  yy1932:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1926;
    goto yy1850;
  yy1933:
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy1921;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= '<')
          goto yy1910;
        if (yych <= '>')
          goto yy1923;
        goto yy1924;
      } else {
        if (yych <= 0xC1)
          goto yy1910;
        if (yych <= 0xDF)
          goto yy1926;
        goto yy1927;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1932;
        goto yy1928;
      } else {
        if (yych <= 0xF0)
          goto yy1929;
        if (yych <= 0xF3)
          goto yy1930;
        if (yych <= 0xF4)
          goto yy1931;
        goto yy1910;
      }
    }
  yy1934:
    yyaccept = 2;
    yych = *(marker = ++p);
    if (yych <= '(') {
      if (yych <= ' ')
        goto yy1910;
      if (yych <= '\'')
        goto yy1864;
      goto yy1910;
    } else {
      if (yych <= 0x7F)
        goto yy1864;
      if (yych <= 0xC1)
        goto yy1910;
      if (yych <= 0xF4)
        goto yy1864;
      goto yy1910;
    }
  yy1935:
    ++p;
    yych = *p;
    if (yych <= '[') {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1850;
          goto yy1921;
        } else {
          if (yych <= '\n')
            goto yy1850;
          if (yych <= '\f')
            goto yy1921;
          goto yy1850;
        }
      } else {
        if (yych <= ')') {
          if (yych <= ' ')
            goto yy1921;
          if (yych <= '(')
            goto yy1919;
          goto yy1944;
        } else {
          if (yych == '>')
            goto yy1946;
          goto yy1919;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1935;
          if (yych <= 0x7F)
            goto yy1919;
          goto yy1850;
        } else {
          if (yych <= 0xDF)
            goto yy1937;
          if (yych <= 0xE0)
            goto yy1938;
          goto yy1939;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1943;
          if (yych <= 0xEF)
            goto yy1939;
          goto yy1940;
        } else {
          if (yych <= 0xF3)
            goto yy1941;
          if (yych <= 0xF4)
            goto yy1942;
          goto yy1850;
        }
      }
    }
  yy1937:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1919;
    goto yy1850;
  yy1938:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1937;
    goto yy1850;
  yy1939:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1937;
    goto yy1850;
  yy1940:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1939;
    goto yy1850;
  yy1941:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1939;
    goto yy1850;
  yy1942:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1939;
    goto yy1850;
  yy1943:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1937;
    goto yy1850;
  yy1944:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= ' ') {
        if (yych <= '\n') {
          if (yych <= 0x00)
            goto yy1843;
          if (yych <= '\t')
            goto yy1921;
          goto yy1843;
        } else {
          if (yych == '\r')
            goto yy1843;
          goto yy1921;
        }
      } else {
        if (yych <= ')') {
          if (yych <= '\'')
            goto yy1944;
          if (yych <= '(')
            goto yy1919;
          goto yy1907;
        } else {
          if (yych == '<')
            goto yy1889;
          if (yych <= '=')
            goto yy1944;
          goto yy1947;
        }
      }
    } else {
      if (yych <= 0xE0) {
        if (yych <= 0x7F) {
          if (yych == '\\')
            goto yy1948;
          goto yy1944;
        } else {
          if (yych <= 0xC1)
            goto yy1843;
          if (yych <= 0xDF)
            goto yy1949;
          goto yy1950;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych == 0xED)
            goto yy1955;
          goto yy1951;
        } else {
          if (yych <= 0xF0)
            goto yy1952;
          if (yych <= 0xF3)
            goto yy1953;
          if (yych <= 0xF4)
            goto yy1954;
          goto yy1843;
        }
      }
    }
  yy1946:
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= ' ') {
        if (yych <= '\n') {
          if (yych <= 0x00)
            goto yy1910;
          if (yych <= '\t')
            goto yy1921;
          goto yy1910;
        } else {
          if (yych == '\r')
            goto yy1910;
          goto yy1921;
        }
      } else {
        if (yych <= ')') {
          if (yych <= '\'')
            goto yy1919;
          if (yych <= '(')
            goto yy1921;
          goto yy1907;
        } else {
          if (yych == '<')
            goto yy1863;
          if (yych <= '=')
            goto yy1919;
          goto yy1934;
        }
      }
    } else {
      if (yych <= 0xE0) {
        if (yych <= 0x7F) {
          if (yych == '\\')
            goto yy1935;
          goto yy1919;
        } else {
          if (yych <= 0xC1)
            goto yy1910;
          if (yych <= 0xDF)
            goto yy1937;
          goto yy1938;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych == 0xED)
            goto yy1943;
          goto yy1939;
        } else {
          if (yych <= 0xF0)
            goto yy1940;
          if (yych <= 0xF3)
            goto yy1941;
          if (yych <= 0xF4)
            goto yy1942;
          goto yy1910;
        }
      }
    }
  yy1947:
    yyaccept = 2;
    yych = *(marker = ++p);
    if (yych <= ' ')
      goto yy1910;
    if (yych <= 0x7F)
      goto yy1890;
    if (yych <= 0xC1)
      goto yy1910;
    if (yych <= 0xF4)
      goto yy1890;
    goto yy1910;
  yy1948:
    ++p;
    yych = *p;
    if (yych <= '\\') {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1872;
          goto yy1907;
        } else {
          if (yych <= '\n')
            goto yy1872;
          if (yych <= '\f')
            goto yy1907;
          goto yy1872;
        }
      } else {
        if (yych <= '=') {
          if (yych <= ' ')
            goto yy1907;
          goto yy1944;
        } else {
          if (yych <= '>')
            goto yy1956;
          if (yych <= '[')
            goto yy1944;
          goto yy1957;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= 0x7F)
            goto yy1944;
          goto yy1850;
        } else {
          if (yych <= 0xDF)
            goto yy1958;
          if (yych <= 0xE0)
            goto yy1959;
          goto yy1960;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1964;
          if (yych <= 0xEF)
            goto yy1960;
          goto yy1961;
        } else {
          if (yych <= 0xF3)
            goto yy1962;
          if (yych <= 0xF4)
            goto yy1963;
          goto yy1850;
        }
      }
    }
  yy1949:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1944;
    goto yy1850;
  yy1950:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1949;
    goto yy1850;
  yy1951:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1949;
    goto yy1850;
  yy1952:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1951;
    goto yy1850;
  yy1953:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1951;
    goto yy1850;
  yy1954:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1951;
    goto yy1850;
  yy1955:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1949;
    goto yy1850;
  yy1956:
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yych <= '>') {
      if (yych <= ' ') {
        if (yych <= '\n') {
          if (yych <= 0x00)
            goto yy1910;
          if (yych <= '\t')
            goto yy1921;
          goto yy1910;
        } else {
          if (yych == '\r')
            goto yy1910;
          goto yy1921;
        }
      } else {
        if (yych <= ')') {
          if (yych <= '\'')
            goto yy1944;
          if (yych <= '(')
            goto yy1919;
          goto yy1907;
        } else {
          if (yych == '<')
            goto yy1889;
          if (yych <= '=')
            goto yy1944;
          goto yy1947;
        }
      }
    } else {
      if (yych <= 0xE0) {
        if (yych <= 0x7F) {
          if (yych == '\\')
            goto yy1948;
          goto yy1944;
        } else {
          if (yych <= 0xC1)
            goto yy1910;
          if (yych <= 0xDF)
            goto yy1949;
          goto yy1950;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych == 0xED)
            goto yy1955;
          goto yy1951;
        } else {
          if (yych <= 0xF0)
            goto yy1952;
          if (yych <= 0xF3)
            goto yy1953;
          if (yych <= 0xF4)
            goto yy1954;
          goto yy1910;
        }
      }
    }
  yy1957:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
    if (yych <= '[') {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1843;
          goto yy1921;
        } else {
          if (yych <= '\n')
            goto yy1843;
          if (yych <= '\f')
            goto yy1921;
          goto yy1843;
        }
      } else {
        if (yych <= '(') {
          if (yych <= ' ')
            goto yy1921;
          if (yych <= '\'')
            goto yy1944;
          goto yy1919;
        } else {
          if (yych == '>')
            goto yy1956;
          goto yy1944;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1948;
          if (yych <= 0x7F)
            goto yy1944;
          goto yy1843;
        } else {
          if (yych <= 0xDF)
            goto yy1949;
          if (yych <= 0xE0)
            goto yy1950;
          goto yy1951;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1955;
          if (yych <= 0xEF)
            goto yy1951;
          goto yy1952;
        } else {
          if (yych <= 0xF3)
            goto yy1953;
          if (yych <= 0xF4)
            goto yy1954;
          goto yy1843;
        }
      }
    }
  yy1958:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1944;
    goto yy1850;
  yy1959:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1958;
    goto yy1850;
  yy1960:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1958;
    goto yy1850;
  yy1961:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1960;
    goto yy1850;
  yy1962:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1960;
    goto yy1850;
  yy1963:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1960;
    goto yy1850;
  yy1964:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1958;
    goto yy1850;
  yy1965:
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy1907;
    }
    if (yych <= '>') {
      if (yych <= '\r') {
        if (yych <= '\t') {
          if (yych <= 0x00)
            goto yy1910;
          goto yy1921;
        } else {
          if (yych <= '\n')
            goto yy1910;
          if (yych <= '\f')
            goto yy1921;
          goto yy1910;
        }
      } else {
        if (yych <= '(') {
          if (yych <= ' ')
            goto yy1921;
          goto yy1919;
        } else {
          if (yych <= ')')
            goto yy1921;
          if (yych <= '<')
            goto yy1872;
          goto yy1909;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1918;
          goto yy1910;
        } else {
          if (yych <= 0xDF)
            goto yy1911;
          if (yych <= 0xE0)
            goto yy1912;
          goto yy1913;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1917;
          if (yych <= 0xEF)
            goto yy1913;
          goto yy1914;
        } else {
          if (yych <= 0xF3)
            goto yy1915;
          if (yych <= 0xF4)
            goto yy1916;
          goto yy1910;
        }
      }
    }
  yy1966:
    yyaccept = 0;
    marker = ++p;
    yych = *p;
    if (yych <= '[') {
      if (yych <= ' ') {
        if (yych <= '\n') {
          if (yych <= 0x00)
            goto yy1843;
          if (yych <= '\t')
            goto yy1921;
          goto yy1843;
        } else {
          if (yych == '\r')
            goto yy1843;
          goto yy1921;
        }
      } else {
        if (yych <= ')') {
          if (yych <= '\'')
            goto yy1907;
          if (yych <= '(')
            goto yy1919;
          goto yy1921;
        } else {
          if (yych == '>')
            goto yy1965;
          goto yy1907;
        }
      }
    } else {
      if (yych <= 0xEC) {
        if (yych <= 0xC1) {
          if (yych <= '\\')
            goto yy1918;
          if (yych <= 0x7F)
            goto yy1907;
          goto yy1843;
        } else {
          if (yych <= 0xDF)
            goto yy1911;
          if (yych <= 0xE0)
            goto yy1912;
          goto yy1913;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xED)
            goto yy1917;
          if (yych <= 0xEF)
            goto yy1913;
          goto yy1914;
        } else {
          if (yych <= 0xF3)
            goto yy1915;
          if (yych <= 0xF4)
            goto yy1916;
          goto yy1843;
        }
      }
    }
  yy1967:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1907;
    goto yy1850;
  yy1968:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1967;
    goto yy1850;
  yy1969:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1967;
    goto yy1850;
  yy1970:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1969;
    goto yy1850;
  yy1971:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0xBF)
      goto yy1969;
    goto yy1850;
  yy1972:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x8F)
      goto yy1969;
    goto yy1850;
  yy1973:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1850;
    if (yych <= 0x9F)
      goto yy1967;
    goto yy1850;
  }
}

// Try to match a link title (in single quotes, in double quotes, or
// in parentheses), returning number of chars matched.  Allow one
// level of internal nesting (quotes within quotes).
bufsize_t _scan_link_title(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    static const unsigned char yybm[] = {
        0,   224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 96,  224, 224, 224, 224, 160, 224, 192,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 16,  224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224, 224,
        224, 224, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xC1) {
      if (yych <= '"') {
        if (yych == '\n')
          goto yy1976;
        if (yych <= '!')
          goto yy1980;
        goto yy1977;
      } else {
        if (yych <= '\'') {
          if (yych <= '&')
            goto yy1980;
          goto yy1978;
        } else {
          if (yych <= '(')
            goto yy1979;
          if (yych <= 0x7F)
            goto yy1980;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy1981;
        if (yych <= 0xE0)
          goto yy1983;
        if (yych <= 0xEC)
          goto yy1984;
        goto yy1988;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy1984;
          goto yy1985;
        } else {
          if (yych <= 0xF3)
            goto yy1986;
          if (yych <= 0xF4)
            goto yy1987;
        }
      }
    }
  yy1976 : { return 0; }
  yy1977:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x00)
      goto yy1976;
    if (yych <= 0x7F)
      goto yy2020;
    if (yych <= 0xC1)
      goto yy1976;
    if (yych <= 0xF4)
      goto yy2020;
    goto yy1976;
  yy1978:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x00)
      goto yy1976;
    if (yych <= 0x7F)
      goto yy2006;
    if (yych <= 0xC1)
      goto yy1976;
    if (yych <= 0xF4)
      goto yy2006;
    goto yy1976;
  yy1979:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych <= 0x00)
      goto yy1976;
    if (yych <= 0x7F)
      goto yy1992;
    if (yych <= 0xC1)
      goto yy1976;
    if (yych <= 0xF4)
      goto yy1992;
    goto yy1976;
  yy1980:
    yych = *++p;
    goto yy1976;
  yy1981:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1980;
  yy1982:
    p = marker;
    if (yyaccept <= 1) {
      if (yyaccept == 0) {
        goto yy1976;
      } else {
        goto yy2001;
      }
    } else {
      if (yyaccept == 2) {
        goto yy2015;
      } else {
        goto yy2029;
      }
    }
  yy1983:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1981;
    goto yy1982;
  yy1984:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1981;
    goto yy1982;
  yy1985:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1984;
    goto yy1982;
  yy1986:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1984;
    goto yy1982;
  yy1987:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x8F)
      goto yy1984;
    goto yy1982;
  yy1988:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x9F)
      goto yy1981;
    goto yy1982;
  yy1989:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1991;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy1982;
        if (yych <= ')')
          goto yy2002;
        goto yy1989;
      } else {
        if (yych <= 0xC1)
          goto yy1982;
        if (yych <= 0xDF)
          goto yy1993;
        goto yy1994;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1999;
        goto yy1995;
      } else {
        if (yych <= 0xF0)
          goto yy1996;
        if (yych <= 0xF3)
          goto yy1997;
        if (yych <= 0xF4)
          goto yy1998;
        goto yy1982;
      }
    }
  yy1991:
    ++p;
    yych = *p;
  yy1992:
    if (yybm[0 + yych] & 32) {
      goto yy1991;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy1982;
        if (yych <= ')')
          goto yy2000;
        goto yy1989;
      } else {
        if (yych <= 0xC1)
          goto yy1982;
        if (yych >= 0xE0)
          goto yy1994;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1999;
        goto yy1995;
      } else {
        if (yych <= 0xF0)
          goto yy1996;
        if (yych <= 0xF3)
          goto yy1997;
        if (yych <= 0xF4)
          goto yy1998;
        goto yy1982;
      }
    }
  yy1993:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1991;
    goto yy1982;
  yy1994:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1993;
    goto yy1982;
  yy1995:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1993;
    goto yy1982;
  yy1996:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1995;
    goto yy1982;
  yy1997:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy1995;
    goto yy1982;
  yy1998:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x8F)
      goto yy1995;
    goto yy1982;
  yy1999:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x9F)
      goto yy1993;
    goto yy1982;
  yy2000:
    ++p;
  yy2001 : { return (bufsize_t)(p - start); }
  yy2002:
    yyaccept = 1;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy1991;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy2001;
        if (yych <= ')')
          goto yy2000;
        goto yy1989;
      } else {
        if (yych <= 0xC1)
          goto yy2001;
        if (yych <= 0xDF)
          goto yy1993;
        goto yy1994;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy1999;
        goto yy1995;
      } else {
        if (yych <= 0xF0)
          goto yy1996;
        if (yych <= 0xF3)
          goto yy1997;
        if (yych <= 0xF4)
          goto yy1998;
        goto yy2001;
      }
    }
  yy2003:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy2005;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy1982;
        if (yych <= '\'')
          goto yy2016;
        goto yy2003;
      } else {
        if (yych <= 0xC1)
          goto yy1982;
        if (yych <= 0xDF)
          goto yy2007;
        goto yy2008;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2013;
        goto yy2009;
      } else {
        if (yych <= 0xF0)
          goto yy2010;
        if (yych <= 0xF3)
          goto yy2011;
        if (yych <= 0xF4)
          goto yy2012;
        goto yy1982;
      }
    }
  yy2005:
    ++p;
    yych = *p;
  yy2006:
    if (yybm[0 + yych] & 64) {
      goto yy2005;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy1982;
        if (yych <= '\'')
          goto yy2014;
        goto yy2003;
      } else {
        if (yych <= 0xC1)
          goto yy1982;
        if (yych >= 0xE0)
          goto yy2008;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2013;
        goto yy2009;
      } else {
        if (yych <= 0xF0)
          goto yy2010;
        if (yych <= 0xF3)
          goto yy2011;
        if (yych <= 0xF4)
          goto yy2012;
        goto yy1982;
      }
    }
  yy2007:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2005;
    goto yy1982;
  yy2008:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2007;
    goto yy1982;
  yy2009:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2007;
    goto yy1982;
  yy2010:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2009;
    goto yy1982;
  yy2011:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2009;
    goto yy1982;
  yy2012:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x8F)
      goto yy2009;
    goto yy1982;
  yy2013:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x9F)
      goto yy2007;
    goto yy1982;
  yy2014:
    ++p;
  yy2015 : { return (bufsize_t)(p - start); }
  yy2016:
    yyaccept = 2;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy2005;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy2015;
        if (yych <= '\'')
          goto yy2014;
        goto yy2003;
      } else {
        if (yych <= 0xC1)
          goto yy2015;
        if (yych <= 0xDF)
          goto yy2007;
        goto yy2008;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2013;
        goto yy2009;
      } else {
        if (yych <= 0xF0)
          goto yy2010;
        if (yych <= 0xF3)
          goto yy2011;
        if (yych <= 0xF4)
          goto yy2012;
        goto yy2015;
      }
    }
  yy2017:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2019;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy1982;
        if (yych <= '"')
          goto yy2030;
        goto yy2017;
      } else {
        if (yych <= 0xC1)
          goto yy1982;
        if (yych <= 0xDF)
          goto yy2021;
        goto yy2022;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2027;
        goto yy2023;
      } else {
        if (yych <= 0xF0)
          goto yy2024;
        if (yych <= 0xF3)
          goto yy2025;
        if (yych <= 0xF4)
          goto yy2026;
        goto yy1982;
      }
    }
  yy2019:
    ++p;
    yych = *p;
  yy2020:
    if (yybm[0 + yych] & 128) {
      goto yy2019;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy1982;
        if (yych <= '"')
          goto yy2028;
        goto yy2017;
      } else {
        if (yych <= 0xC1)
          goto yy1982;
        if (yych >= 0xE0)
          goto yy2022;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2027;
        goto yy2023;
      } else {
        if (yych <= 0xF0)
          goto yy2024;
        if (yych <= 0xF3)
          goto yy2025;
        if (yych <= 0xF4)
          goto yy2026;
        goto yy1982;
      }
    }
  yy2021:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2019;
    goto yy1982;
  yy2022:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2021;
    goto yy1982;
  yy2023:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2021;
    goto yy1982;
  yy2024:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2023;
    goto yy1982;
  yy2025:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0xBF)
      goto yy2023;
    goto yy1982;
  yy2026:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x8F)
      goto yy2023;
    goto yy1982;
  yy2027:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy1982;
    if (yych <= 0x9F)
      goto yy2021;
    goto yy1982;
  yy2028:
    ++p;
  yy2029 : { return (bufsize_t)(p - start); }
  yy2030:
    yyaccept = 3;
    marker = ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2019;
    }
    if (yych <= 0xE0) {
      if (yych <= '\\') {
        if (yych <= 0x00)
          goto yy2029;
        if (yych <= '"')
          goto yy2028;
        goto yy2017;
      } else {
        if (yych <= 0xC1)
          goto yy2029;
        if (yych <= 0xDF)
          goto yy2021;
        goto yy2022;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2027;
        goto yy2023;
      } else {
        if (yych <= 0xF0)
          goto yy2024;
        if (yych <= 0xF3)
          goto yy2025;
        if (yych <= 0xF4)
          goto yy2026;
        goto yy2029;
      }
    }
  }
}

// Match space characters, including newlines.
bufsize_t _scan_spacechars(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 128, 128, 128, 128, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   128, 0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,   0,   0,   0,   0, 0,
    };
    yych = *(marker = p);
    if (yych <= 0xC1) {
      if (yych <= '\r') {
        if (yych <= 0x08)
          goto yy2037;
        if (yych == '\n')
          goto yy2035;
        goto yy2034;
      } else {
        if (yych == ' ')
          goto yy2034;
        if (yych <= 0x7F)
          goto yy2037;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy2039;
        if (yych <= 0xE0)
          goto yy2041;
        if (yych <= 0xEC)
          goto yy2042;
        goto yy2046;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy2042;
          goto yy2043;
        } else {
          if (yych <= 0xF3)
            goto yy2044;
          if (yych <= 0xF4)
            goto yy2045;
        }
      }
    }
  yy2033 : { return (bufsize_t)(p - start); }
  yy2034:
    yych = *++p;
    goto yy2036;
  yy2035:
    ++p;
    yych = *p;
  yy2036:
    if (yybm[0 + yych] & 128) {
      goto yy2035;
    }
    goto yy2033;
  yy2037:
    ++p;
    { return 0; }
  yy2039:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2040;
    if (yych <= 0xBF)
      goto yy2037;
  yy2040:
    p = marker;
    goto yy2033;
  yy2041:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2040;
    if (yych <= 0xBF)
      goto yy2039;
    goto yy2040;
  yy2042:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2040;
    if (yych <= 0xBF)
      goto yy2039;
    goto yy2040;
  yy2043:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2040;
    if (yych <= 0xBF)
      goto yy2042;
    goto yy2040;
  yy2044:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2040;
    if (yych <= 0xBF)
      goto yy2042;
    goto yy2040;
  yy2045:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2040;
    if (yych <= 0x8F)
      goto yy2042;
    goto yy2040;
  yy2046:
    ++p;
    if ((yych = *p) <= 0x7F)
      goto yy2040;
    if (yych <= 0x9F)
      goto yy2039;
    goto yy2040;
  }
}

// Match ATX header start.
bufsize_t _scan_atx_header_start(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0,
    };
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= '"') {
        if (yych != '\n')
          goto yy2051;
      } else {
        if (yych <= '#')
          goto yy2050;
        if (yych <= 0x7F)
          goto yy2051;
        if (yych >= 0xC2)
          goto yy2052;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy2054;
        if (yych == 0xED)
          goto yy2059;
        goto yy2055;
      } else {
        if (yych <= 0xF0)
          goto yy2056;
        if (yych <= 0xF3)
          goto yy2057;
        if (yych <= 0xF4)
          goto yy2058;
      }
    }
  yy2049 : { return 0; }
  yy2050:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 128) {
      goto yy2062;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2060;
      goto yy2049;
    } else {
      if (yych <= '\r')
        goto yy2060;
      if (yych == '#')
        goto yy2064;
      goto yy2049;
    }
  yy2051:
    yych = *++p;
    goto yy2049;
  yy2052:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2053;
    if (yych <= 0xBF)
      goto yy2051;
  yy2053:
    p = marker;
    goto yy2049;
  yy2054:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2053;
    if (yych <= 0xBF)
      goto yy2052;
    goto yy2053;
  yy2055:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2053;
    if (yych <= 0xBF)
      goto yy2052;
    goto yy2053;
  yy2056:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2053;
    if (yych <= 0xBF)
      goto yy2055;
    goto yy2053;
  yy2057:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2053;
    if (yych <= 0xBF)
      goto yy2055;
    goto yy2053;
  yy2058:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2053;
    if (yych <= 0x8F)
      goto yy2055;
    goto yy2053;
  yy2059:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2053;
    if (yych <= 0x9F)
      goto yy2052;
    goto yy2053;
  yy2060:
    ++p;
  yy2061 : { return (bufsize_t)(p - start); }
  yy2062:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2062;
    }
    goto yy2061;
  yy2064:
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy2062;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2060;
      goto yy2053;
    } else {
      if (yych <= '\r')
        goto yy2060;
      if (yych != '#')
        goto yy2053;
    }
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy2062;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2060;
      goto yy2053;
    } else {
      if (yych <= '\r')
        goto yy2060;
      if (yych != '#')
        goto yy2053;
    }
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy2062;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2060;
      goto yy2053;
    } else {
      if (yych <= '\r')
        goto yy2060;
      if (yych != '#')
        goto yy2053;
    }
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy2062;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2060;
      goto yy2053;
    } else {
      if (yych <= '\r')
        goto yy2060;
      if (yych != '#')
        goto yy2053;
    }
    ++p;
    if (yybm[0 + (yych = *p)] & 128) {
      goto yy2062;
    }
    if (yych == '\n')
      goto yy2060;
    if (yych == '\r')
      goto yy2060;
    goto yy2053;
  }
}

// Match setext header line.  Return 1 for level-1 header,
// 2 for level-2, 0 for no match.
bufsize_t _scan_setext_header_line(const unsigned char *p) {
  const unsigned char *marker = NULL;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0, 0, 0,   0, 0, 0, 0,
        0, 0,  0, 0, 0, 0, 0, 0, 0, 0, 0,  0, 0, 0,
    };
    yych = *(marker = p);
    if (yych <= 0xC1) {
      if (yych <= '-') {
        if (yych == '\n')
          goto yy2071;
        if (yych <= ',')
          goto yy2074;
        goto yy2073;
      } else {
        if (yych == '=')
          goto yy2072;
        if (yych <= 0x7F)
          goto yy2074;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy2075;
        if (yych <= 0xE0)
          goto yy2077;
        if (yych <= 0xEC)
          goto yy2078;
        goto yy2082;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy2078;
          goto yy2079;
        } else {
          if (yych <= 0xF3)
            goto yy2080;
          if (yych <= 0xF4)
            goto yy2081;
        }
      }
    }
  yy2071 : { return 0; }
  yy2072:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 128) {
      goto yy2093;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2091;
      goto yy2071;
    } else {
      if (yych <= '\r')
        goto yy2091;
      if (yych == ' ')
        goto yy2089;
      goto yy2071;
    }
  yy2073:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 32) {
      goto yy2083;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2085;
      goto yy2071;
    } else {
      if (yych <= '\r')
        goto yy2085;
      if (yych == '-')
        goto yy2087;
      goto yy2071;
    }
  yy2074:
    yych = *++p;
    goto yy2071;
  yy2075:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2076;
    if (yych <= 0xBF)
      goto yy2074;
  yy2076:
    p = marker;
    goto yy2071;
  yy2077:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2076;
    if (yych <= 0xBF)
      goto yy2075;
    goto yy2076;
  yy2078:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2076;
    if (yych <= 0xBF)
      goto yy2075;
    goto yy2076;
  yy2079:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2076;
    if (yych <= 0xBF)
      goto yy2078;
    goto yy2076;
  yy2080:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2076;
    if (yych <= 0xBF)
      goto yy2078;
    goto yy2076;
  yy2081:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2076;
    if (yych <= 0x8F)
      goto yy2078;
    goto yy2076;
  yy2082:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2076;
    if (yych <= 0x9F)
      goto yy2075;
    goto yy2076;
  yy2083:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy2083;
    }
    if (yych == '\n')
      goto yy2085;
    if (yych != '\r')
      goto yy2076;
  yy2085:
    ++p;
    { return 2; }
  yy2087:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy2083;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2085;
      goto yy2076;
    } else {
      if (yych <= '\r')
        goto yy2085;
      if (yych == '-')
        goto yy2087;
      goto yy2076;
    }
  yy2089:
    ++p;
    yych = *p;
    if (yych <= '\f') {
      if (yych != '\n')
        goto yy2076;
    } else {
      if (yych <= '\r')
        goto yy2091;
      if (yych == ' ')
        goto yy2089;
      goto yy2076;
    }
  yy2091:
    ++p;
    { return 1; }
  yy2093:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2093;
    }
    if (yych <= '\f') {
      if (yych == '\n')
        goto yy2091;
      goto yy2076;
    } else {
      if (yych <= '\r')
        goto yy2091;
      if (yych == ' ')
        goto yy2089;
      goto yy2076;
    }
  }
}

// Scan a horizontal rule line: "...three or more hyphens, asterisks,
// or underscores on a line by themselves. If you wish, you may use
// spaces between the hyphens or asterisks."
bufsize_t _scan_hrule(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0, 0,  0, 0, 0, 0, 0, 0,  0, 32, 0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  248, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0,
        0, 16, 0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 64, 0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   0,
        0, 0,  0, 0, 0, 0, 0, 0,  0, 0,  0,   0, 0, 0,
    };
    yych = *(marker = p);
    if (yych <= 0x7F) {
      if (yych <= '*') {
        if (yych == '\n')
          goto yy2097;
        if (yych <= ')')
          goto yy2101;
        goto yy2098;
      } else {
        if (yych <= '-') {
          if (yych <= ',')
            goto yy2101;
          goto yy2100;
        } else {
          if (yych == '_')
            goto yy2099;
          goto yy2101;
        }
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF) {
          if (yych >= 0xC2)
            goto yy2102;
        } else {
          if (yych <= 0xE0)
            goto yy2104;
          if (yych <= 0xEC)
            goto yy2105;
          goto yy2109;
        }
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy2105;
          goto yy2106;
        } else {
          if (yych <= 0xF3)
            goto yy2107;
          if (yych <= 0xF4)
            goto yy2108;
        }
      }
    }
  yy2097 : { return 0; }
  yy2098:
    yych = *(marker = ++p);
    if (yych == ' ')
      goto yy2130;
    if (yych == '*')
      goto yy2132;
    goto yy2097;
  yy2099:
    yych = *(marker = ++p);
    if (yych == ' ')
      goto yy2120;
    if (yych == '_')
      goto yy2122;
    goto yy2097;
  yy2100:
    yych = *(marker = ++p);
    if (yybm[0 + yych] & 8) {
      goto yy2110;
    }
    if (yych == '-')
      goto yy2112;
    goto yy2097;
  yy2101:
    yych = *++p;
    goto yy2097;
  yy2102:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2103;
    if (yych <= 0xBF)
      goto yy2101;
  yy2103:
    p = marker;
    goto yy2097;
  yy2104:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2103;
    if (yych <= 0xBF)
      goto yy2102;
    goto yy2103;
  yy2105:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2103;
    if (yych <= 0xBF)
      goto yy2102;
    goto yy2103;
  yy2106:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2103;
    if (yych <= 0xBF)
      goto yy2105;
    goto yy2103;
  yy2107:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2103;
    if (yych <= 0xBF)
      goto yy2105;
    goto yy2103;
  yy2108:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2103;
    if (yych <= 0x8F)
      goto yy2105;
    goto yy2103;
  yy2109:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2103;
    if (yych <= 0x9F)
      goto yy2102;
    goto yy2103;
  yy2110:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 8) {
      goto yy2110;
    }
    if (yych != '-')
      goto yy2103;
  yy2112:
    ++p;
    yych = *p;
    if (yych == ' ')
      goto yy2112;
    if (yych != '-')
      goto yy2103;
  yy2114:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 16) {
      goto yy2114;
    }
    if (yych <= '\n') {
      if (yych <= 0x08)
        goto yy2103;
      if (yych >= '\n')
        goto yy2118;
    } else {
      if (yych == '\r')
        goto yy2118;
      goto yy2103;
    }
  yy2116:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy2116;
    }
    if (yych <= 0x08)
      goto yy2103;
    if (yych <= '\n')
      goto yy2118;
    if (yych != '\r')
      goto yy2103;
  yy2118:
    ++p;
    { return (bufsize_t)(p - start); }
  yy2120:
    ++p;
    yych = *p;
    if (yych == ' ')
      goto yy2120;
    if (yych != '_')
      goto yy2103;
  yy2122:
    ++p;
    yych = *p;
    if (yych == ' ')
      goto yy2122;
    if (yych != '_')
      goto yy2103;
  yy2124:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy2124;
    }
    if (yych <= '\n') {
      if (yych <= 0x08)
        goto yy2103;
      if (yych >= '\n')
        goto yy2128;
    } else {
      if (yych == '\r')
        goto yy2128;
      goto yy2103;
    }
  yy2126:
    ++p;
    yych = *p;
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy2103;
      if (yych <= '\t')
        goto yy2126;
      if (yych >= '\v')
        goto yy2103;
    } else {
      if (yych <= '\r')
        goto yy2128;
      if (yych == ' ')
        goto yy2126;
      goto yy2103;
    }
  yy2128:
    ++p;
    { return (bufsize_t)(p - start); }
  yy2130:
    ++p;
    yych = *p;
    if (yych == ' ')
      goto yy2130;
    if (yych != '*')
      goto yy2103;
  yy2132:
    ++p;
    yych = *p;
    if (yych == ' ')
      goto yy2132;
    if (yych != '*')
      goto yy2103;
  yy2134:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2134;
    }
    if (yych <= '\n') {
      if (yych <= 0x08)
        goto yy2103;
      if (yych >= '\n')
        goto yy2138;
    } else {
      if (yych == '\r')
        goto yy2138;
      goto yy2103;
    }
  yy2136:
    ++p;
    yych = *p;
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy2103;
      if (yych <= '\t')
        goto yy2136;
      if (yych >= '\v')
        goto yy2103;
    } else {
      if (yych <= '\r')
        goto yy2138;
      if (yych == ' ')
        goto yy2136;
      goto yy2103;
    }
  yy2138:
    ++p;
    { return (bufsize_t)(p - start); }
  }
}

// Scan an opening code fence.
bufsize_t _scan_open_code_fence(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0,   160, 160, 160, 160, 160, 160, 160, 160, 160, 0,   160, 160, 0,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 96,  160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, 160,
        144, 160, 0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
        0,   0,   0,   0,
    };
    yych = *(marker = p);
    if (yych <= 0xC1) {
      if (yych <= '`') {
        if (yych == '\n')
          goto yy2142;
        if (yych <= '_')
          goto yy2145;
        goto yy2143;
      } else {
        if (yych == '~')
          goto yy2144;
        if (yych <= 0x7F)
          goto yy2145;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy2146;
        if (yych <= 0xE0)
          goto yy2148;
        if (yych <= 0xEC)
          goto yy2149;
        goto yy2153;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy2149;
          goto yy2150;
        } else {
          if (yych <= 0xF3)
            goto yy2151;
          if (yych <= 0xF4)
            goto yy2152;
        }
      }
    }
  yy2142 : { return 0; }
  yy2143:
    yych = *(marker = ++p);
    if (yych == '`')
      goto yy2168;
    goto yy2142;
  yy2144:
    yych = *(marker = ++p);
    if (yych == '~')
      goto yy2154;
    goto yy2142;
  yy2145:
    yych = *++p;
    goto yy2142;
  yy2146:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2145;
  yy2147:
    p = marker;
    goto yy2142;
  yy2148:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2146;
    goto yy2147;
  yy2149:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2146;
    goto yy2147;
  yy2150:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2149;
    goto yy2147;
  yy2151:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2149;
    goto yy2147;
  yy2152:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0x8F)
      goto yy2149;
    goto yy2147;
  yy2153:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0x9F)
      goto yy2146;
    goto yy2147;
  yy2154:
    yych = *++p;
    if (yybm[0 + yych] & 16) {
      goto yy2155;
    }
    goto yy2147;
  yy2155:
    marker = p + 1;
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy2157;
    }
    if (yych <= 0xE0) {
      if (yych <= '~') {
        if (yych <= 0x00)
          goto yy2147;
        if (yych <= '\r')
          goto yy2166;
        goto yy2155;
      } else {
        if (yych <= 0xC1)
          goto yy2147;
        if (yych <= 0xDF)
          goto yy2159;
        goto yy2160;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2165;
        goto yy2161;
      } else {
        if (yych <= 0xF0)
          goto yy2162;
        if (yych <= 0xF3)
          goto yy2163;
        if (yych <= 0xF4)
          goto yy2164;
        goto yy2147;
      }
    }
  yy2157:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 32) {
      goto yy2157;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy2147;
        if (yych <= '\r')
          goto yy2166;
        goto yy2147;
      } else {
        if (yych <= 0xDF)
          goto yy2159;
        if (yych <= 0xE0)
          goto yy2160;
        goto yy2161;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy2165;
        if (yych <= 0xEF)
          goto yy2161;
        goto yy2162;
      } else {
        if (yych <= 0xF3)
          goto yy2163;
        if (yych <= 0xF4)
          goto yy2164;
        goto yy2147;
      }
    }
  yy2159:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2157;
    goto yy2147;
  yy2160:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2159;
    goto yy2147;
  yy2161:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2159;
    goto yy2147;
  yy2162:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2161;
    goto yy2147;
  yy2163:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2161;
    goto yy2147;
  yy2164:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0x8F)
      goto yy2161;
    goto yy2147;
  yy2165:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0x9F)
      goto yy2159;
    goto yy2147;
  yy2166:
    ++p;
    p = marker;
    { return (bufsize_t)(p - start); }
  yy2168:
    yych = *++p;
    if (yybm[0 + yych] & 64) {
      goto yy2169;
    }
    goto yy2147;
  yy2169:
    marker = p + 1;
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2171;
    }
    if (yych <= 0xE0) {
      if (yych <= '`') {
        if (yych <= 0x00)
          goto yy2147;
        if (yych <= '\r')
          goto yy2180;
        goto yy2169;
      } else {
        if (yych <= 0xC1)
          goto yy2147;
        if (yych <= 0xDF)
          goto yy2173;
        goto yy2174;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych == 0xED)
          goto yy2179;
        goto yy2175;
      } else {
        if (yych <= 0xF0)
          goto yy2176;
        if (yych <= 0xF3)
          goto yy2177;
        if (yych <= 0xF4)
          goto yy2178;
        goto yy2147;
      }
    }
  yy2171:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2171;
    }
    if (yych <= 0xEC) {
      if (yych <= 0xC1) {
        if (yych <= 0x00)
          goto yy2147;
        if (yych <= '\r')
          goto yy2180;
        goto yy2147;
      } else {
        if (yych <= 0xDF)
          goto yy2173;
        if (yych <= 0xE0)
          goto yy2174;
        goto yy2175;
      }
    } else {
      if (yych <= 0xF0) {
        if (yych <= 0xED)
          goto yy2179;
        if (yych <= 0xEF)
          goto yy2175;
        goto yy2176;
      } else {
        if (yych <= 0xF3)
          goto yy2177;
        if (yych <= 0xF4)
          goto yy2178;
        goto yy2147;
      }
    }
  yy2173:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2171;
    goto yy2147;
  yy2174:
    ++p;
    yych = *p;
    if (yych <= 0x9F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2173;
    goto yy2147;
  yy2175:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2173;
    goto yy2147;
  yy2176:
    ++p;
    yych = *p;
    if (yych <= 0x8F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2175;
    goto yy2147;
  yy2177:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0xBF)
      goto yy2175;
    goto yy2147;
  yy2178:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0x8F)
      goto yy2175;
    goto yy2147;
  yy2179:
    ++p;
    yych = *p;
    if (yych <= 0x7F)
      goto yy2147;
    if (yych <= 0x9F)
      goto yy2173;
    goto yy2147;
  yy2180:
    ++p;
    p = marker;
    { return (bufsize_t)(p - start); }
  }
}

// Scan a closing code fence with length at least len.
bufsize_t _scan_close_code_fence(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    static const unsigned char yybm[] = {
        0, 0, 0, 0, 0, 0, 0, 0, 0,   64, 0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  64, 0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 128, 0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0, 0, 0, 0,  0, 0, 0, 0, 0,
        0, 0, 0, 0, 0, 0, 0, 0, 0,   0,  0,  0, 0, 0,
    };
    yych = *(marker = p);
    if (yych <= 0xC1) {
      if (yych <= '`') {
        if (yych == '\n')
          goto yy2184;
        if (yych <= '_')
          goto yy2187;
        goto yy2185;
      } else {
        if (yych == '~')
          goto yy2186;
        if (yych <= 0x7F)
          goto yy2187;
      }
    } else {
      if (yych <= 0xED) {
        if (yych <= 0xDF)
          goto yy2188;
        if (yych <= 0xE0)
          goto yy2190;
        if (yych <= 0xEC)
          goto yy2191;
        goto yy2195;
      } else {
        if (yych <= 0xF0) {
          if (yych <= 0xEF)
            goto yy2191;
          goto yy2192;
        } else {
          if (yych <= 0xF3)
            goto yy2193;
          if (yych <= 0xF4)
            goto yy2194;
        }
      }
    }
  yy2184 : { return 0; }
  yy2185:
    yych = *(marker = ++p);
    if (yych == '`')
      goto yy2203;
    goto yy2184;
  yy2186:
    yych = *(marker = ++p);
    if (yych == '~')
      goto yy2196;
    goto yy2184;
  yy2187:
    yych = *++p;
    goto yy2184;
  yy2188:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2189;
    if (yych <= 0xBF)
      goto yy2187;
  yy2189:
    p = marker;
    goto yy2184;
  yy2190:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2189;
    if (yych <= 0xBF)
      goto yy2188;
    goto yy2189;
  yy2191:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2189;
    if (yych <= 0xBF)
      goto yy2188;
    goto yy2189;
  yy2192:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2189;
    if (yych <= 0xBF)
      goto yy2191;
    goto yy2189;
  yy2193:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2189;
    if (yych <= 0xBF)
      goto yy2191;
    goto yy2189;
  yy2194:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2189;
    if (yych <= 0x8F)
      goto yy2191;
    goto yy2189;
  yy2195:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2189;
    if (yych <= 0x9F)
      goto yy2188;
    goto yy2189;
  yy2196:
    yych = *++p;
    if (yybm[0 + yych] & 32) {
      goto yy2197;
    }
    goto yy2189;
  yy2197:
    marker = p + 1;
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy2199;
    }
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy2189;
      if (yych <= '\n')
        goto yy2201;
      goto yy2189;
    } else {
      if (yych <= '\r')
        goto yy2201;
      if (yych == '~')
        goto yy2197;
      goto yy2189;
    }
  yy2199:
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 64) {
      goto yy2199;
    }
    if (yych <= 0x08)
      goto yy2189;
    if (yych <= '\n')
      goto yy2201;
    if (yych != '\r')
      goto yy2189;
  yy2201:
    ++p;
    p = marker;
    { return (bufsize_t)(p - start); }
  yy2203:
    yych = *++p;
    if (yybm[0 + yych] & 128) {
      goto yy2204;
    }
    goto yy2189;
  yy2204:
    marker = p + 1;
    ++p;
    yych = *p;
    if (yybm[0 + yych] & 128) {
      goto yy2204;
    }
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy2189;
      if (yych <= '\t')
        goto yy2206;
      if (yych <= '\n')
        goto yy2208;
      goto yy2189;
    } else {
      if (yych <= '\r')
        goto yy2208;
      if (yych != ' ')
        goto yy2189;
    }
  yy2206:
    ++p;
    yych = *p;
    if (yych <= '\f') {
      if (yych <= 0x08)
        goto yy2189;
      if (yych <= '\t')
        goto yy2206;
      if (yych >= '\v')
        goto yy2189;
    } else {
      if (yych <= '\r')
        goto yy2208;
      if (yych == ' ')
        goto yy2206;
      goto yy2189;
    }
  yy2208:
    ++p;
    p = marker;
    { return (bufsize_t)(p - start); }
  }
}

// Scans an entity.
// Returns number of chars matched.
bufsize_t _scan_entity(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    yych = *(marker = p);
    if (yych <= 0xDF) {
      if (yych <= '%') {
        if (yych != '\n')
          goto yy2214;
      } else {
        if (yych <= '&')
          goto yy2213;
        if (yych <= 0x7F)
          goto yy2214;
        if (yych >= 0xC2)
          goto yy2215;
      }
    } else {
      if (yych <= 0xEF) {
        if (yych <= 0xE0)
          goto yy2217;
        if (yych == 0xED)
          goto yy2222;
        goto yy2218;
      } else {
        if (yych <= 0xF0)
          goto yy2219;
        if (yych <= 0xF3)
          goto yy2220;
        if (yych <= 0xF4)
          goto yy2221;
      }
    }
  yy2212 : { return 0; }
  yy2213:
    yych = *(marker = ++p);
    if (yych <= '@') {
      if (yych == '#')
        goto yy2223;
      goto yy2212;
    } else {
      if (yych <= 'Z')
        goto yy2224;
      if (yych <= '`')
        goto yy2212;
      if (yych <= 'z')
        goto yy2224;
      goto yy2212;
    }
  yy2214:
    yych = *++p;
    goto yy2212;
  yy2215:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2216;
    if (yych <= 0xBF)
      goto yy2214;
  yy2216:
    p = marker;
    goto yy2212;
  yy2217:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2216;
    if (yych <= 0xBF)
      goto yy2215;
    goto yy2216;
  yy2218:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2216;
    if (yych <= 0xBF)
      goto yy2215;
    goto yy2216;
  yy2219:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2216;
    if (yych <= 0xBF)
      goto yy2218;
    goto yy2216;
  yy2220:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2216;
    if (yych <= 0xBF)
      goto yy2218;
    goto yy2216;
  yy2221:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2216;
    if (yych <= 0x8F)
      goto yy2218;
    goto yy2216;
  yy2222:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2216;
    if (yych <= 0x9F)
      goto yy2215;
    goto yy2216;
  yy2223:
    yych = *++p;
    if (yych <= 'W') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2259;
      goto yy2216;
    } else {
      if (yych <= 'X')
        goto yy2258;
      if (yych == 'x')
        goto yy2258;
      goto yy2216;
    }
  yy2224:
    yych = *++p;
    if (yych <= '@') {
      if (yych <= '/')
        goto yy2216;
      if (yych >= ':')
        goto yy2216;
    } else {
      if (yych <= 'Z')
        goto yy2225;
      if (yych <= '`')
        goto yy2216;
      if (yych >= '{')
        goto yy2216;
    }
  yy2225:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2228;
      if (yych <= ':')
        goto yy2216;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
        goto yy2228;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych <= 'z')
          goto yy2228;
        goto yy2216;
      }
    }
  yy2226:
    ++p;
    { return (bufsize_t)(p - start); }
  yy2228:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2229;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2229:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2230;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2230:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2231;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2231:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2232;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2232:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2233;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2233:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2234;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2234:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2235;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2235:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2236;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2236:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2237;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2237:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2238;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2238:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2239;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2239:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2240;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2240:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2241;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2241:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2242;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2242:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2243;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2243:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2244;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2244:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2245;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2245:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2246;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2246:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2247;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2247:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2248;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2248:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2249;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2249:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2250;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2250:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2251;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2251:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2252;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2252:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2253;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2253:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2254;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2254:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2255;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2255:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2256;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2256:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2257;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'Z') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= '{')
          goto yy2216;
      }
    }
  yy2257:
    yych = *++p;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2258:
    yych = *++p;
    if (yych <= '@') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2266;
      goto yy2216;
    } else {
      if (yych <= 'F')
        goto yy2266;
      if (yych <= '`')
        goto yy2216;
      if (yych <= 'f')
        goto yy2266;
      goto yy2216;
    }
  yy2259:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2260;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2260:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2261;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2261:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2262;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2262:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2263;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2263:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2264;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2264:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2265;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2265:
    yych = *++p;
    if (yych <= '/')
      goto yy2216;
    if (yych <= '9')
      goto yy2257;
    if (yych == ';')
      goto yy2226;
    goto yy2216;
  yy2266:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2267;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= 'g')
          goto yy2216;
      }
    }
  yy2267:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2268;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= 'g')
          goto yy2216;
      }
    }
  yy2268:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2269;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= 'g')
          goto yy2216;
      }
    }
  yy2269:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2270;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= 'g')
          goto yy2216;
      }
    }
  yy2270:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2271;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= 'g')
          goto yy2216;
      }
    }
  yy2271:
    yych = *++p;
    if (yych <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2272;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych >= 'g')
          goto yy2216;
      }
    }
  yy2272:
    ++p;
    if ((yych = *p) <= ';') {
      if (yych <= '/')
        goto yy2216;
      if (yych <= '9')
        goto yy2257;
      if (yych <= ':')
        goto yy2216;
      goto yy2226;
    } else {
      if (yych <= 'F') {
        if (yych <= '@')
          goto yy2216;
        goto yy2257;
      } else {
        if (yych <= '`')
          goto yy2216;
        if (yych <= 'f')
          goto yy2257;
        goto yy2216;
      }
    }
  }
}

// Returns positive value if a URL begins in a way that is potentially
// dangerous, with javascript:, vbscript:, file:, or data:, otherwise 0.
bufsize_t _scan_dangerous_url(const unsigned char *p) {
  const unsigned char *marker = NULL;
  const unsigned char *start = p;

  {
    unsigned char yych;
    unsigned int yyaccept = 0;
    yych = *(marker = p);
    if (yych <= 'f') {
      if (yych <= 'I') {
        if (yych <= 'C') {
          if (yych != '\n')
            goto yy2280;
        } else {
          if (yych <= 'D')
            goto yy2276;
          if (yych == 'F')
            goto yy2279;
          goto yy2280;
        }
      } else {
        if (yych <= 'V') {
          if (yych <= 'J')
            goto yy2277;
          if (yych <= 'U')
            goto yy2280;
          goto yy2278;
        } else {
          if (yych == 'd')
            goto yy2276;
          if (yych <= 'e')
            goto yy2280;
          goto yy2279;
        }
      }
    } else {
      if (yych <= 0xDF) {
        if (yych <= 'u') {
          if (yych == 'j')
            goto yy2277;
          goto yy2280;
        } else {
          if (yych <= 'v')
            goto yy2278;
          if (yych <= 0x7F)
            goto yy2280;
          if (yych >= 0xC2)
            goto yy2281;
        }
      } else {
        if (yych <= 0xEF) {
          if (yych <= 0xE0)
            goto yy2283;
          if (yych == 0xED)
            goto yy2288;
          goto yy2284;
        } else {
          if (yych <= 0xF0)
            goto yy2285;
          if (yych <= 0xF3)
            goto yy2286;
          if (yych <= 0xF4)
            goto yy2287;
        }
      }
    }
  yy2275 : { return 0; }
  yy2276:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych == 'A')
      goto yy2310;
    if (yych == 'a')
      goto yy2310;
    goto yy2275;
  yy2277:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych == 'A')
      goto yy2301;
    if (yych == 'a')
      goto yy2301;
    goto yy2275;
  yy2278:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych == 'B')
      goto yy2294;
    if (yych == 'b')
      goto yy2294;
    goto yy2275;
  yy2279:
    yyaccept = 0;
    yych = *(marker = ++p);
    if (yych == 'I')
      goto yy2289;
    if (yych == 'i')
      goto yy2289;
    goto yy2275;
  yy2280:
    yych = *++p;
    goto yy2275;
  yy2281:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2282;
    if (yych <= 0xBF)
      goto yy2280;
  yy2282:
    p = marker;
    if (yyaccept == 0) {
      goto yy2275;
    } else {
      goto yy2293;
    }
  yy2283:
    yych = *++p;
    if (yych <= 0x9F)
      goto yy2282;
    if (yych <= 0xBF)
      goto yy2281;
    goto yy2282;
  yy2284:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2282;
    if (yych <= 0xBF)
      goto yy2281;
    goto yy2282;
  yy2285:
    yych = *++p;
    if (yych <= 0x8F)
      goto yy2282;
    if (yych <= 0xBF)
      goto yy2284;
    goto yy2282;
  yy2286:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2282;
    if (yych <= 0xBF)
      goto yy2284;
    goto yy2282;
  yy2287:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2282;
    if (yych <= 0x8F)
      goto yy2284;
    goto yy2282;
  yy2288:
    yych = *++p;
    if (yych <= 0x7F)
      goto yy2282;
    if (yych <= 0x9F)
      goto yy2281;
    goto yy2282;
  yy2289:
    yych = *++p;
    if (yych == 'L')
      goto yy2290;
    if (yych != 'l')
      goto yy2282;
  yy2290:
    yych = *++p;
    if (yych == 'E')
      goto yy2291;
    if (yych != 'e')
      goto yy2282;
  yy2291:
    yych = *++p;
    if (yych != ':')
      goto yy2282;
  yy2292:
    ++p;
  yy2293 : { return (bufsize_t)(p - start); }
  yy2294:
    yych = *++p;
    if (yych == 'S')
      goto yy2295;
    if (yych != 's')
      goto yy2282;
  yy2295:
    yych = *++p;
    if (yych == 'C')
      goto yy2296;
    if (yych != 'c')
      goto yy2282;
  yy2296:
    yych = *++p;
    if (yych == 'R')
      goto yy2297;
    if (yych != 'r')
      goto yy2282;
  yy2297:
    yych = *++p;
    if (yych == 'I')
      goto yy2298;
    if (yych != 'i')
      goto yy2282;
  yy2298:
    yych = *++p;
    if (yych == 'P')
      goto yy2299;
    if (yych != 'p')
      goto yy2282;
  yy2299:
    yych = *++p;
    if (yych == 'T')
      goto yy2300;
    if (yych != 't')
      goto yy2282;
  yy2300:
    yych = *++p;
    if (yych == ':')
      goto yy2292;
    goto yy2282;
  yy2301:
    yych = *++p;
    if (yych == 'V')
      goto yy2302;
    if (yych != 'v')
      goto yy2282;
  yy2302:
    yych = *++p;
    if (yych == 'A')
      goto yy2303;
    if (yych != 'a')
      goto yy2282;
  yy2303:
    yych = *++p;
    if (yych == 'S')
      goto yy2304;
    if (yych != 's')
      goto yy2282;
  yy2304:
    yych = *++p;
    if (yych == 'C')
      goto yy2305;
    if (yych != 'c')
      goto yy2282;
  yy2305:
    yych = *++p;
    if (yych == 'R')
      goto yy2306;
    if (yych != 'r')
      goto yy2282;
  yy2306:
    yych = *++p;
    if (yych == 'I')
      goto yy2307;
    if (yych != 'i')
      goto yy2282;
  yy2307:
    yych = *++p;
    if (yych == 'P')
      goto yy2308;
    if (yych != 'p')
      goto yy2282;
  yy2308:
    yych = *++p;
    if (yych == 'T')
      goto yy2309;
    if (yych != 't')
      goto yy2282;
  yy2309:
    yych = *++p;
    if (yych == ':')
      goto yy2292;
    goto yy2282;
  yy2310:
    yych = *++p;
    if (yych == 'T')
      goto yy2311;
    if (yych != 't')
      goto yy2282;
  yy2311:
    yych = *++p;
    if (yych == 'A')
      goto yy2312;
    if (yych != 'a')
      goto yy2282;
  yy2312:
    yych = *++p;
    if (yych != ':')
      goto yy2282;
    yyaccept = 1;
    yych = *(marker = ++p);
    if (yych == 'I')
      goto yy2314;
    if (yych != 'i')
      goto yy2293;
  yy2314:
    yych = *++p;
    if (yych == 'M')
      goto yy2315;
    if (yych != 'm')
      goto yy2282;
  yy2315:
    yych = *++p;
    if (yych == 'A')
      goto yy2316;
    if (yych != 'a')
      goto yy2282;
  yy2316:
    yych = *++p;
    if (yych == 'G')
      goto yy2317;
    if (yych != 'g')
      goto yy2282;
  yy2317:
    yych = *++p;
    if (yych == 'E')
      goto yy2318;
    if (yych != 'e')
      goto yy2282;
  yy2318:
    yych = *++p;
    if (yych != '/')
      goto yy2282;
    yych = *++p;
    if (yych <= 'W') {
      if (yych <= 'J') {
        if (yych == 'G')
          goto yy2321;
        if (yych <= 'I')
          goto yy2282;
        goto yy2322;
      } else {
        if (yych == 'P')
          goto yy2320;
        if (yych <= 'V')
          goto yy2282;
        goto yy2323;
      }
    } else {
      if (yych <= 'j') {
        if (yych == 'g')
          goto yy2321;
        if (yych <= 'i')
          goto yy2282;
        goto yy2322;
      } else {
        if (yych <= 'p') {
          if (yych <= 'o')
            goto yy2282;
        } else {
          if (yych == 'w')
            goto yy2323;
          goto yy2282;
        }
      }
    }
  yy2320:
    yych = *++p;
    if (yych == 'N')
      goto yy2331;
    if (yych == 'n')
      goto yy2331;
    goto yy2282;
  yy2321:
    yych = *++p;
    if (yych == 'I')
      goto yy2330;
    if (yych == 'i')
      goto yy2330;
    goto yy2282;
  yy2322:
    yych = *++p;
    if (yych == 'P')
      goto yy2328;
    if (yych == 'p')
      goto yy2328;
    goto yy2282;
  yy2323:
    yych = *++p;
    if (yych == 'E')
      goto yy2324;
    if (yych != 'e')
      goto yy2282;
  yy2324:
    yych = *++p;
    if (yych == 'B')
      goto yy2325;
    if (yych != 'b')
      goto yy2282;
  yy2325:
    yych = *++p;
    if (yych == 'P')
      goto yy2326;
    if (yych != 'p')
      goto yy2282;
  yy2326:
    ++p;
    { return 0; }
  yy2328:
    yych = *++p;
    if (yych == 'E')
      goto yy2329;
    if (yych != 'e')
      goto yy2282;
  yy2329:
    yych = *++p;
    if (yych == 'G')
      goto yy2326;
    if (yych == 'g')
      goto yy2326;
    goto yy2282;
  yy2330:
    yych = *++p;
    if (yych == 'F')
      goto yy2326;
    if (yych == 'f')
      goto yy2326;
    goto yy2282;
  yy2331:
    ++p;
    if ((yych = *p) == 'G')
      goto yy2326;
    if (yych == 'g')
      goto yy2326;
    goto yy2282;
  }
}
