/* ANSI-C code produced by gperf version 3.0.3 */ /* Command-line: gperf -C -l -L ANSI-C -E -C -H tld_hash -N in_tld_set */ /* Computed positions: -k'1-2,6' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126)) /* The character set is not based on ISO-646. */ #error "gperf generated tables don't work with this execution character set. Please report a bug to ." #endif /* maximum key range = 983, duplicates = 0 */ #ifdef __GNUC__ __inline #else #ifdef __cplusplus inline #endif #endif static unsigned int tld_hash(const char *str, unsigned int len) { static const unsigned short asso_values[] = { 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 0, 15, 988, 988, 988, 988, 0, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 170, 328, 88, 3, 50, 293, 205, 123, 430, 500, 238, 115, 320, 375, 30, 413, 348, 70, 43, 475, 18, 6, 283, 95, 58, 10, 220, 5, 485, 480, 8, 190, 390, 225, 113, 420, 95, 0, 15, 50, 295, 20, 128, 130, 80, 405, 470, 340, 0, 305, 415, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988, 988}; int hval = len; switch (hval) { default: hval += asso_values[(unsigned char)str[5]]; /*FALLTHROUGH*/ case 5: case 4: case 3: case 2: hval += asso_values[(unsigned char)str[1]]; /*FALLTHROUGH*/ case 1: hval += asso_values[(unsigned char)str[0] + 25]; break; } return hval; } #ifdef __GNUC__ __inline #ifdef __GNUC_STDC_INLINE__ __attribute__((__gnu_inline__)) #endif #endif static const char * in_tld_set(const char *str, unsigned int len) { enum { TOTAL_KEYWORDS = 280, MIN_WORD_LENGTH = 2, MAX_WORD_LENGTH = 18, MIN_HASH_VALUE = 5, MAX_HASH_VALUE = 987 }; static const unsigned char lengthtable[] = { 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 2, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 4, 2, 0, 2, 3, 4, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 4, 0, 0, 2, 0, 2, 0, 4, 2, 0, 2, 3, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 4, 2, 0, 2, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 2, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 3, 0, 2, 0, 2, 0, 0, 2, 0, 2, 3, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, 4, 2, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 2, 0, 0, 0, 2, 3, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 4, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 3, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 2, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 6, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 6, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 3, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 11, 2, 0, 0, 0, 16, 2, 0, 0, 0, 11, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 17, 0, 0, 2, 0, 2, 2, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 3, 0, 2, 11, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 10, 0, 2, 0, 2, 0, 0, 2, 0, 12, 0, 0, 2, 3, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 18, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 2, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 12, 0, 0, 0, 0, 2, 18, 0, 0, 0, 2, 3, 4, 2, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2}; static const char *const wordlist[] = { "", "", "", "", "", "md", "", "", "mv", "", "cd", "", "mz", "cv", "", "ad", "", "cz", "", "", "mu", "", "az", "", "", "cu", "", "nz", "", "", "au", "", "mo", "", "mobi", "nu", "", "co", "com", "coop", "fo", "", "ao", "", "", "ms", "", "no", "", "", "", "", "me", "", "", "as", "", "asia", "", "", "my", "", "ae", "", "aero", "cy", "", "ne", "net", "", "", "", "mr", "", "", "", "", "cr", "", "", "fr", "", "ar", "", "arpa", "td", "", "nr", "tv", "", "mc", "", "tz", "", "", "cc", "", "mx", "", "", "ac", "", "cx", "lv", "", "nc", "", "ax", "", "", "", "", "to", "", "", "lu", "", "ml", "", "", "", "", "cl", "org", "", "mh", "", "al", "", "", "ch", "", "nl", "tel", "", "sd", "", "", "sv", "", "ls", "", "sz", "", "", "jo", "", "jobs", "ru", "", "su", "", "tr", "", "", "ly", "", "", "", "", "ro", "", "so", "", "", "je", "", "lr", "", "", "tc", "", "ma", "rs", "", "", "", "ca", "cat", "", "re", "", "se", "", "", "lc", "", "na", "", "name", "sy", "", "qa", "", "", "gd", "", "tl", "", "", "", "", "sr", "", "", "th", "", "mg", "", "", "gu", "", "cg", "", "", "", "", "ag", "", "", "sc", "", "ng", "gov", "", "bd", "", "", "bv", "", "id", "", "bz", "", "", "gs", "", "", "", "", "mk", "", "ge", "", "", "ck", "", "sl", "fk", "", "gy", "", "bo", "", "", "sh", "", "io", "", "", "", "", "gr", "", "", "bs", "", "la", "", "", "is", "travel", "be", "", "", "", "", "ie", "", "", "by", "", "", "", "", "mw", "", "tg", "", "", "", "", "br", "", "", "aw", "", "ir", "", "", "cf", "", "sa", "", "", "af", "", "gl", "", "", "nf", "", "", "", "", "gh", "", "", "", "", "tk", "", "mm", "", "", "yu", "", "cm", "", "", "fm", "", "am", "", "", "lk", "", "sg", "", "", "ps", "", "il", "", "museum", "bh", "", "pe", "", "", "mq", "", "", "", "", "py", "", "ye", "", "", "aq", "", "ga", "", "", "tw", "", "pr", "pro", "", "sk", "", "om", "", "", "tf", "", "mn", "", "", "", "", "cn", "", "", "ws", "xn--g6w251d", "an", "", "", "", "xn--80akhbyknj4f", "ba", "", "", "", "xn--0zwm56d", "gg", "", "", "", "", "tm", "", "", "", "", "xn--11b5bs3a9aj6g", "", "", "hu", "", "pl", "rw", "", "mp", "", "uz", "", "", "ph", "", "", "", "", "lb", "", "bg", "", "", "np", "", "kz", "mil", "", "jm", "xn--deba0ad", "ci", "", "", "fi", "", "ai", "", "", "", "", "ni", "", "", "us", "", "sm", "", "", "", "", "tn", "", "", "sb", "", "hr", "", "", "uy", "", "pa", "", "", "", "", "ke", "xn--zckzah", "", "gw", "", "mt", "", "", "ky", "", "xn--jxalpdlp", "", "", "gf", "edu", "at", "", "", "vu", "", "kr", "", "", "tp", "", "dz", "", "", "eu", "", "pg", "", "", "bw", "", "sn", "xn--hlcj6aya9esc7a", "", "fj", "", "gm", "", "", "bf", "", "do", "", "", "gb", "", "ve", "", "", "es", "", "li", "jp", "", "", "", "ee", "", "", "pk", "", "de", "", "", "gq", "", "bm", "", "", "kh", "", "im", "", "", "bb", "", "er", "", "", "", "", "tt", "", "", "vc", "", "si", "", "", "", "", "gn", "", "", "ec", "", "lt", "", "", "iq", "", "ua", "", "", "pw", "", "tj", "", "", "", "", "za", "", "", "pf", "", "xn--kgbechtv", "", "", "", "", "bn", "xn--hgbk6aj7f53bba", "", "", "", "in", "int", "info", "gp", "", "st", "", "", "", "", "ug", "", "", "", "", "pm", "", "", "", "", "gi", "", "", "", "", "kg", "", "", "hk", "", "sj", "", "", "wf", "", "", "", "", "", "", "va", "", "", "uk", "", "", "", "", "", "", "bi", "biz", "", "", "", "", "", "", "", "", "", "", "", "", "", "gt", "", "", "", "", "pn", "", "", "", "", "vg", "", "", "", "", "", "", "", "", "", "eg", "", "", "", "", "", "", "", "", "", "bt", "", "", "zw", "", "it", "", "", "kw", "", "", "", "", "", "", "hm", "", "", "", "", "", "", "", "", "", "bj", "", "", "dk", "", "", "", "", "", "", "", "", "", "", "", "zm", "", "", "", "", "km", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "hn", "", "", "", "", "pt", "", "", "", "", "", "", "", "", "", "yt", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "kn", "", "", "", "", "", "", "", "", "", "dm", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "kp", "", "", "", "", "", "", "", "", "", "", "", "vn", "", "", "", "", "ki", "", "", "", "", "", "", "", "", "", "", "", "xn--9t4b11yi5a", "", "", "ht", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "vi", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "et", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "dj"}; if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) { int key = tld_hash(str, len); if (key <= MAX_HASH_VALUE && key >= 0) if (len == lengthtable[key]) { const char *s = wordlist[key]; if (*str == *s && !memcmp(str + 1, s + 1, len - 1)) return s; } } return 0; }