text: /* ANSI-C code produced by gperf version 3.1 */
  /* Command-line: gperf -m100 src/tag_lookup.gperf  */
  /* Computed positions: -k'1-2,$' */
  /* Filtered by: gperf-filter.sed */
  
  #include "tag_lookup.h"
  #include "macros.h"
  #include "ascii.h"
  #include <string.h>
  
  #define TOTAL_KEYWORDS 151
  #define MIN_WORD_LENGTH 1
  #define MAX_WORD_LENGTH 14
  #define MIN_HASH_VALUE 9
  #define MAX_HASH_VALUE 271
  /* maximum key range = 263, duplicates = 0 */
  
  
  
  static inline unsigned int
  hash (register const char *str, register size_t len)
  {
    static const unsigned short asso_values[] =
      {
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272,  11,
          7,   6,   4,   4,   3,   4,   3,   3, 272, 272,
        272, 272, 272, 272, 272,  70,  83, 152,   7,  16,
         61,  98,   5,  76, 102, 126,  12,  19,  54,  54,
         31,  97,   3,   4,   9,  33, 136, 113,  86,  15,
        272, 272, 272, 272, 272, 272, 272,  70,  83, 152,
          7,  16,  61,  98,   5,  76, 102, 126,  12,  19,
         54,  54,  31,  97,   3,   4,   9,  33, 136, 113,
         86,  15, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272, 272,
        272, 272, 272, 272, 272, 272, 272, 272, 272
      };
    register unsigned int hval = len;
  
    switch (hval)
      {
        default:
          hval += asso_values[(unsigned char)str[1]+3];
        /*FALLTHROUGH*/
        case 1:
          hval += asso_values[(unsigned char)str[0]];
          break;
      }
    return hval + asso_values[(unsigned char)str[len - 1]];
  }
  
  const TagHashSlot *
  gumbo_tag_lookup (register const char *str, register size_t len)
  {
    static const unsigned char lengthtable[] =
      {
         0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  2,
         2,  2,  2,  6,  2,  6,  6,  4,  2,  7,  6,  3,  0,  3,
         0,  6,  6,  8,  5,  0,  0,  4,  5,  5,  8,  0,  2,  4,
         5,  2,  0,  5,  4,  2,  0,  7,  0,  8,  5,  0,  0,  0,
         0,  0,  0,  5,  3,  4,  5,  1,  4,  0,  4,  1,  2,  8,
         7,  7,  6,  6,  8,  2,  8,  4,  2,  0,  6,  0,  0,  3,
         4,  6, 13,  4,  4,  6,  8,  0,  8,  4,  0,  6,  0,  8,
         4,  5,  0,  2,  2,  9,  2,  4,  0,  8,  4,  2,  4,  8,
         7,  0,  2,  5,  2,  0,  6,  0,  3,  2,  2,  6,  3,  8,
         7,  2,  5,  7,  0,  2,  6,  2,  4,  3,  0, 10,  5,  6,
         3,  1,  2,  0,  6,  0,  5,  5,  0,  3,  0,  3,  3,  1,
         4,  6,  4,  7,  3,  0,  0,  2, 10, 10,  0,  0,  6,  1,
         4,  6,  3,  0,  2,  5,  6,  4,  3,  4,  0,  7,  3,  0,
         0,  0,  4,  0,  0,  5,  0,  0,  0,  6,  0, 14,  8,  1,
         3,  0,  0,  7,  3,  0,  0,  0,  0,  0,  0,  5,  3,  0,
         0,  0,  0,  0,  0,  5,  0,  0,  0,  0,  7,  6,  0,  0,
         0,  0,  0,  5,  0,  6,  0,  0,  0,  0,  0,  0,  0,  0,
         3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
         0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  0,  0,  0,  0,
         0,  0,  5,  0,  0,  3
      };
    static const TagHashSlot wordlist[] =
      {
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"s", GUMBO_TAG_S},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"h6", GUMBO_TAG_H6},
        {"h5", GUMBO_TAG_H5},
        {"h4", GUMBO_TAG_H4},
        {"h3", GUMBO_TAG_H3},
        {"spacer", GUMBO_TAG_SPACER},
        {"h2", GUMBO_TAG_H2},
        {"header", GUMBO_TAG_HEADER},
        {"search", GUMBO_TAG_SEARCH},
        {"head", GUMBO_TAG_HEAD},
        {"h1", GUMBO_TAG_H1},
        {"details", GUMBO_TAG_DETAILS},
        {"select", GUMBO_TAG_SELECT},
        {"dir", GUMBO_TAG_DIR},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"del", GUMBO_TAG_DEL},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"source", GUMBO_TAG_SOURCE},
        {"legend", GUMBO_TAG_LEGEND},
        {"datalist", GUMBO_TAG_DATALIST},
        {"meter", GUMBO_TAG_METER},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"math", GUMBO_TAG_MATH},
        {"label", GUMBO_TAG_LABEL},
        {"table", GUMBO_TAG_TABLE},
        {"template", GUMBO_TAG_TEMPLATE},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"rp", GUMBO_TAG_RP},
        {"time", GUMBO_TAG_TIME},
        {"title", GUMBO_TAG_TITLE},
        {"hr", GUMBO_TAG_HR},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"tbody", GUMBO_TAG_TBODY},
        {"samp", GUMBO_TAG_SAMP},
        {"tr", GUMBO_TAG_TR},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"marquee", GUMBO_TAG_MARQUEE},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"menuitem", GUMBO_TAG_MENUITEM},
        {"small", GUMBO_TAG_SMALL},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"embed", GUMBO_TAG_EMBED},
        {"map", GUMBO_TAG_MAP},
        {"menu", GUMBO_TAG_MENU},
        {"param", GUMBO_TAG_PARAM},
        {"p", GUMBO_TAG_P},
        {"nobr", GUMBO_TAG_NOBR},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"span", GUMBO_TAG_SPAN},
        {"u", GUMBO_TAG_U},
        {"em", GUMBO_TAG_EM},
        {"noframes", GUMBO_TAG_NOFRAMES},
        {"section", GUMBO_TAG_SECTION},
        {"noembed", GUMBO_TAG_NOEMBED},
        {"nextid", GUMBO_TAG_NEXTID},
        {"footer", GUMBO_TAG_FOOTER},
        {"noscript", GUMBO_TAG_NOSCRIPT},
        {"dl", GUMBO_TAG_DL},
        {"progress", GUMBO_TAG_PROGRESS},
        {"font", GUMBO_TAG_FONT},
        {"mo", GUMBO_TAG_MO},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"script", GUMBO_TAG_SCRIPT},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"pre", GUMBO_TAG_PRE},
        {"main", GUMBO_TAG_MAIN},
        {"object", GUMBO_TAG_OBJECT},
        {"foreignobject", GUMBO_TAG_FOREIGNOBJECT},
        {"form", GUMBO_TAG_FORM},
        {"data", GUMBO_TAG_DATA},
        {"applet", GUMBO_TAG_APPLET},
        {"fieldset", GUMBO_TAG_FIELDSET},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"textarea", GUMBO_TAG_TEXTAREA},
        {"abbr", GUMBO_TAG_ABBR},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"figure", GUMBO_TAG_FIGURE},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"optgroup", GUMBO_TAG_OPTGROUP},
        {"meta", GUMBO_TAG_META},
        {"tfoot", GUMBO_TAG_TFOOT},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"ul", GUMBO_TAG_UL},
        {"li", GUMBO_TAG_LI},
        {"plaintext", GUMBO_TAG_PLAINTEXT},
        {"rb", GUMBO_TAG_RB},
        {"body", GUMBO_TAG_BODY},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"basefont", GUMBO_TAG_BASEFONT},
        {"ruby", GUMBO_TAG_RUBY},
        {"mi", GUMBO_TAG_MI},
        {"base", GUMBO_TAG_BASE},
        {"frameset", GUMBO_TAG_FRAMESET},
        {"summary", GUMBO_TAG_SUMMARY},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"dd", GUMBO_TAG_DD},
        {"frame", GUMBO_TAG_FRAME},
        {"td", GUMBO_TAG_TD},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"option", GUMBO_TAG_OPTION},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"svg", GUMBO_TAG_SVG},
        {"br", GUMBO_TAG_BR},
        {"ol", GUMBO_TAG_OL},
        {"dialog", GUMBO_TAG_DIALOG},
        {"sup", GUMBO_TAG_SUP},
        {"multicol", GUMBO_TAG_MULTICOL},
        {"article", GUMBO_TAG_ARTICLE},
        {"rt", GUMBO_TAG_RT},
        {"image", GUMBO_TAG_IMAGE},
        {"listing", GUMBO_TAG_LISTING},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"dt", GUMBO_TAG_DT},
        {"mglyph", GUMBO_TAG_MGLYPH},
        {"tt", GUMBO_TAG_TT},
        {"html", GUMBO_TAG_HTML},
        {"wbr", GUMBO_TAG_WBR},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"figcaption", GUMBO_TAG_FIGCAPTION},
        {"style", GUMBO_TAG_STYLE},
        {"strike", GUMBO_TAG_STRIKE},
        {"dfn", GUMBO_TAG_DFN},
        {"a", GUMBO_TAG_A},
        {"th", GUMBO_TAG_TH},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"hgroup", GUMBO_TAG_HGROUP},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"mtext", GUMBO_TAG_MTEXT},
        {"thead", GUMBO_TAG_THEAD},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"var", GUMBO_TAG_VAR},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"xmp", GUMBO_TAG_XMP},
        {"kbd", GUMBO_TAG_KBD},
        {"i", GUMBO_TAG_I},
        {"link", GUMBO_TAG_LINK},
        {"output", GUMBO_TAG_OUTPUT},
        {"mark", GUMBO_TAG_MARK},
        {"acronym", GUMBO_TAG_ACRONYM},
        {"div", GUMBO_TAG_DIV},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"ms", GUMBO_TAG_MS},
        {"malignmark", GUMBO_TAG_MALIGNMARK},
        {"blockquote", GUMBO_TAG_BLOCKQUOTE},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"center", GUMBO_TAG_CENTER},
        {"b", GUMBO_TAG_B},
        {"desc", GUMBO_TAG_DESC},
        {"canvas", GUMBO_TAG_CANVAS},
        {"col", GUMBO_TAG_COL},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"mn", GUMBO_TAG_MN},
        {"track", GUMBO_TAG_TRACK},
        {"iframe", GUMBO_TAG_IFRAME},
        {"code", GUMBO_TAG_CODE},
        {"sub", GUMBO_TAG_SUB},
        {"area", GUMBO_TAG_AREA},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"address", GUMBO_TAG_ADDRESS},
        {"ins", GUMBO_TAG_INS},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"cite", GUMBO_TAG_CITE},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"input", GUMBO_TAG_INPUT},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"keygen", GUMBO_TAG_KEYGEN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"annotation-xml", GUMBO_TAG_ANNOTATION_XML},
        {"colgroup", GUMBO_TAG_COLGROUP},
        {"q", GUMBO_TAG_Q},
        {"big", GUMBO_TAG_BIG},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"bgsound", GUMBO_TAG_BGSOUND},
        {"nav", GUMBO_TAG_NAV},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"video", GUMBO_TAG_VIDEO},
        {"img", GUMBO_TAG_IMG},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"audio", GUMBO_TAG_AUDIO},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"caption", GUMBO_TAG_CAPTION},
        {"strong", GUMBO_TAG_STRONG},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"aside", GUMBO_TAG_ASIDE},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"button", GUMBO_TAG_BUTTON},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"bdo", GUMBO_TAG_BDO},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"bdi", GUMBO_TAG_BDI},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"blink", GUMBO_TAG_BLINK},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {(char*)0,GUMBO_TAG_UNKNOWN},
        {"rtc", GUMBO_TAG_RTC}
      };
  
    if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
      {
        register unsigned int key = hash (str, len);
  
        if (key <= MAX_HASH_VALUE)
          if (len == lengthtable[key])
            {
              register const char *s = wordlist[key].key;
  
              if (s && (((unsigned char)*str ^ (unsigned char)*s) & ~32) == 0 && !gumbo_ascii_strncasecmp(str, s, len))
                return &wordlist[key];
            }
      }
    return 0;
  }
  