summaryrefslogtreecommitdiffstats
path: root/crypto/heimdal/lib/otp/otp_parse.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/heimdal/lib/otp/otp_parse.c')
-rw-r--r--crypto/heimdal/lib/otp/otp_parse.c2515
1 files changed, 0 insertions, 2515 deletions
diff --git a/crypto/heimdal/lib/otp/otp_parse.c b/crypto/heimdal/lib/otp/otp_parse.c
deleted file mode 100644
index cc69de5..0000000
--- a/crypto/heimdal/lib/otp/otp_parse.c
+++ /dev/null
@@ -1,2515 +0,0 @@
-/*
- * Copyright (c) 1995 - 2000 Kungliga Tekniska Högskolan
- * (Royal Institute of Technology, Stockholm, Sweden).
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- *
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * 3. Neither the name of the Institute nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
-#ifdef HAVE_CONFIG_H
-#include "config.h"
-RCSID("$Id: otp_parse.c,v 1.20 2000/07/01 13:58:38 assar Exp $");
-#endif
-
-#include "otp_locl.h"
-
-struct e {
- char *s;
- unsigned n;
-};
-
-extern const struct e inv_std_dict[2048];
-
-static int
-cmp(const void *a, const void *b)
-{
- struct e *e1, *e2;
-
- e1 = (struct e *)a;
- e2 = (struct e *)b;
- return strcasecmp (e1->s, e2->s);
-}
-
-static int
-get_stdword (const char *s, void *v)
-{
- struct e e, *r;
-
- e.s = (char *)s;
- e.n = -1;
- r = (struct e *) bsearch (&e, inv_std_dict,
- sizeof(inv_std_dict)/sizeof(*inv_std_dict),
- sizeof(*inv_std_dict), cmp);
- if (r)
- return r->n;
- else
- return -1;
-}
-
-static void
-compress (OtpKey key, unsigned wn[])
-{
- key[0] = wn[0] >> 3;
- key[1] = ((wn[0] & 0x07) << 5) | (wn[1] >> 6);
- key[2] = ((wn[1] & 0x3F) << 2) | (wn[2] >> 9);
- key[3] = ((wn[2] >> 1) & 0xFF);
- key[4] = ((wn[2] & 0x01) << 7) | (wn[3] >> 4);
- key[5] = ((wn[3] & 0x0F) << 4) | (wn[4] >> 7);
- key[6] = ((wn[4] & 0x7F) << 1) | (wn[5] >> 10);
- key[7] = ((wn[5] >> 2) & 0xFF);
-}
-
-static int
-get_altword (const char *s, void *a)
-{
- OtpAlgorithm *alg = (OtpAlgorithm *)a;
- int ret;
- unsigned char *res = malloc(alg->hashsize);
-
- if (res == NULL)
- return -1;
- alg->hash (s, strlen(s), res);
- ret = (unsigned)(res[alg->hashsize - 1]) |
- ((res[alg->hashsize - 2] & 0x03) << 8);
- free (res);
- return ret;
-}
-
-static int
-parse_words(unsigned wn[],
- const char *str,
- int (*convert)(const char *, void *),
- void *arg)
-{
- unsigned char *w, *wend, c;
- int i;
- int tmp;
-
- w = (unsigned char *)str;
- for (i = 0; i < 6; ++i) {
- while (isspace(*w))
- ++w;
- wend = w;
- while (isalpha (*wend))
- ++wend;
- c = *wend;
- *wend = '\0';
- tmp = (*convert)((char *)w, arg);
- *wend = c;
- w = wend;
- if (tmp < 0)
- return -1;
- wn[i] = tmp;
- }
- return 0;
-}
-
-static int
-otp_parse_internal (OtpKey key, const char *str,
- OtpAlgorithm *alg,
- int (*convert)(const char *, void *))
-{
- unsigned wn[6];
-
- if (parse_words (wn, str, convert, alg))
- return -1;
- compress (key, wn);
- if (otp_checksum (key) != (wn[5] & 0x03))
- return -1;
- return 0;
-}
-
-int
-otp_parse_stddict (OtpKey key, const char *str)
-{
- return otp_parse_internal (key, str, NULL, get_stdword);
-}
-
-int
-otp_parse_altdict (OtpKey key, const char *str, OtpAlgorithm *alg)
-{
- return otp_parse_internal (key, str, alg, get_altword);
-}
-
-int
-otp_parse_hex (OtpKey key, const char *s)
-{
- char buf[17], *b;
- int is[8];
- int i;
-
- b = buf;
- while (*s) {
- if (strchr ("0123456789ABCDEFabcdef", *s)) {
- if (b - buf >= 16)
- return -1;
- else
- *b++ = tolower(*s);
- }
- s++;
- }
- *b = '\0';
- if (sscanf (buf, "%2x%2x%2x%2x%2x%2x%2x%2x",
- &is[0], &is[1], &is[2], &is[3], &is[4],
- &is[5], &is[6], &is[7]) != 8)
- return -1;
- for (i = 0; i < OTPKEYSIZE; ++i)
- key[i] = is[i];
- return 0;
-}
-
-int
-otp_parse (OtpKey key, const char *s, OtpAlgorithm *alg)
-{
- int ret;
- int dohex = 1;
-
- if (strncmp (s, OTP_HEXPREFIX, strlen(OTP_HEXPREFIX)) == 0)
- return otp_parse_hex (key, s + strlen(OTP_HEXPREFIX));
- if (strncmp (s, OTP_WORDPREFIX, strlen(OTP_WORDPREFIX)) == 0) {
- s += strlen(OTP_WORDPREFIX);
- dohex = 0;
- }
-
- ret = otp_parse_stddict (key, s);
- if (ret)
- ret = otp_parse_altdict (key, s, alg);
- if (ret && dohex)
- ret = otp_parse_hex (key, s);
- return ret;
-}
-
-const char *const std_dict[2048] =
-{ "A", "ABE", "ACE", "ACT", "AD", "ADA", "ADD",
-"AGO", "AID", "AIM", "AIR", "ALL", "ALP", "AM", "AMY",
-"AN", "ANA", "AND", "ANN", "ANT", "ANY", "APE", "APS",
-"APT", "ARC", "ARE", "ARK", "ARM", "ART", "AS", "ASH",
-"ASK", "AT", "ATE", "AUG", "AUK", "AVE", "AWE", "AWK",
-"AWL", "AWN", "AX", "AYE", "BAD", "BAG", "BAH", "BAM",
-"BAN", "BAR", "BAT", "BAY", "BE", "BED", "BEE", "BEG",
-"BEN", "BET", "BEY", "BIB", "BID", "BIG", "BIN", "BIT",
-"BOB", "BOG", "BON", "BOO", "BOP", "BOW", "BOY", "BUB",
-"BUD", "BUG", "BUM", "BUN", "BUS", "BUT", "BUY", "BY",
-"BYE", "CAB", "CAL", "CAM", "CAN", "CAP", "CAR", "CAT",
-"CAW", "COD", "COG", "COL", "CON", "COO", "COP", "COT",
-"COW", "COY", "CRY", "CUB", "CUE", "CUP", "CUR", "CUT",
-"DAB", "DAD", "DAM", "DAN", "DAR", "DAY", "DEE", "DEL",
-"DEN", "DES", "DEW", "DID", "DIE", "DIG", "DIN", "DIP",
-"DO", "DOE", "DOG", "DON", "DOT", "DOW", "DRY", "DUB",
-"DUD", "DUE", "DUG", "DUN", "EAR", "EAT", "ED", "EEL",
-"EGG", "EGO", "ELI", "ELK", "ELM", "ELY", "EM", "END",
-"EST", "ETC", "EVA", "EVE", "EWE", "EYE", "FAD", "FAN",
-"FAR", "FAT", "FAY", "FED", "FEE", "FEW", "FIB", "FIG",
-"FIN", "FIR", "FIT", "FLO", "FLY", "FOE", "FOG", "FOR",
-"FRY", "FUM", "FUN", "FUR", "GAB", "GAD", "GAG", "GAL",
-"GAM", "GAP", "GAS", "GAY", "GEE", "GEL", "GEM", "GET",
-"GIG", "GIL", "GIN", "GO", "GOT", "GUM", "GUN", "GUS",
-"GUT", "GUY", "GYM", "GYP", "HA", "HAD", "HAL", "HAM",
-"HAN", "HAP", "HAS", "HAT", "HAW", "HAY", "HE", "HEM",
-"HEN", "HER", "HEW", "HEY", "HI", "HID", "HIM", "HIP",
-"HIS", "HIT", "HO", "HOB", "HOC", "HOE", "HOG", "HOP",
-"HOT", "HOW", "HUB", "HUE", "HUG", "HUH", "HUM", "HUT",
-"I", "ICY", "IDA", "IF", "IKE", "ILL", "INK", "INN",
-"IO", "ION", "IQ", "IRA", "IRE", "IRK", "IS", "IT",
-"ITS", "IVY", "JAB", "JAG", "JAM", "JAN", "JAR", "JAW",
-"JAY", "JET", "JIG", "JIM", "JO", "JOB", "JOE", "JOG",
-"JOT", "JOY", "JUG", "JUT", "KAY", "KEG", "KEN", "KEY",
-"KID", "KIM", "KIN", "KIT", "LA", "LAB", "LAC", "LAD",
-"LAG", "LAM", "LAP", "LAW", "LAY", "LEA", "LED", "LEE",
-"LEG", "LEN", "LEO", "LET", "LEW", "LID", "LIE", "LIN",
-"LIP", "LIT", "LO", "LOB", "LOG", "LOP", "LOS", "LOT",
-"LOU", "LOW", "LOY", "LUG", "LYE", "MA", "MAC", "MAD",
-"MAE", "MAN", "MAO", "MAP", "MAT", "MAW", "MAY", "ME",
-"MEG", "MEL", "MEN", "MET", "MEW", "MID", "MIN", "MIT",
-"MOB", "MOD", "MOE", "MOO", "MOP", "MOS", "MOT", "MOW",
-"MUD", "MUG", "MUM", "MY", "NAB", "NAG", "NAN", "NAP",
-"NAT", "NAY", "NE", "NED", "NEE", "NET", "NEW", "NIB",
-"NIIL", "NIP", "NIT", "NO", "NOB", "NOD", "NON", "NOR",
-"NOT", "NOV", "NOW", "NU", "NUN", "NUT", "O", "OAF",
-"OAK", "OAR", "OAT", "ODD", "ODE", "OF", "OFF", "OFT",
-"OH", "OIL", "OK", "OLD", "ON", "ONE", "OR", "ORB",
-"ORE", "ORR", "OS", "OTT", "OUR", "OUT", "OVA", "OW",
-"OWE", "OWL", "OWN", "OX", "PA", "PAD", "PAL", "PAM",
-"PAN", "PAP", "PAR", "PAT", "PAW", "PAY", "PEA", "PEG",
-"PEN", "PEP", "PER", "PET", "PEW", "PHI", "PI", "PIE",
-"PIN", "PIT", "PLY", "PO", "POD", "POE", "POP", "POT",
-"POW", "PRO", "PRY", "PUB", "PUG", "PUN", "PUP", "PUT",
-"QUO", "RAG", "RAM", "RAN", "RAP", "RAT", "RAW", "RAY",
-"REB", "RED", "REP", "RET", "RIB", "RID", "RIG", "RIM",
-"RIO", "RIP", "ROB", "ROD", "ROE", "RON", "ROT", "ROW",
-"ROY", "RUB", "RUE", "RUG", "RUM", "RUN", "RYE", "SAC",
-"SAD", "SAG", "SAL", "SAM", "SAN", "SAP", "SAT", "SAW",
-"SAY", "SEA", "SEC", "SEE", "SEN", "SET", "SEW", "SHE",
-"SHY", "SIN", "SIP", "SIR", "SIS", "SIT", "SKI", "SKY",
-"SLY", "SO", "SOB", "SOD", "SON", "SOP", "SOW", "SOY",
-"SPA", "SPY", "SUB", "SUD", "SUE", "SUM", "SUN", "SUP",
-"TAB", "TAD", "TAG", "TAN", "TAP", "TAR", "TEA", "TED",
-"TEE", "TEN", "THE", "THY", "TIC", "TIE", "TIM", "TIN",
-"TIP", "TO", "TOE", "TOG", "TOM", "TON", "TOO", "TOP",
-"TOW", "TOY", "TRY", "TUB", "TUG", "TUM", "TUN", "TWO",
-"UN", "UP", "US", "USE", "VAN", "VAT", "VET", "VIE",
-"WAD", "WAG", "WAR", "WAS", "WAY", "WE", "WEB", "WED",
-"WEE", "WET", "WHO", "WHY", "WIN", "WIT", "WOK", "WON",
-"WOO", "WOW", "WRY", "WU", "YAM", "YAP", "YAW", "YE",
-"YEA", "YES", "YET", "YOU", "ABED", "ABEL", "ABET", "ABLE",
-"ABUT", "ACHE", "ACID", "ACME", "ACRE", "ACTA", "ACTS", "ADAM",
-"ADDS", "ADEN", "AFAR", "AFRO", "AGEE", "AHEM", "AHOY", "AIDA",
-"AIDE", "AIDS", "AIRY", "AJAR", "AKIN", "ALAN", "ALEC", "ALGA",
-"ALIA", "ALLY", "ALMA", "ALOE", "ALSO", "ALTO", "ALUM", "ALVA",
-"AMEN", "AMES", "AMID", "AMMO", "AMOK", "AMOS", "AMRA", "ANDY",
-"ANEW", "ANNA", "ANNE", "ANTE", "ANTI", "AQUA", "ARAB", "ARCH",
-"AREA", "ARGO", "ARID", "ARMY", "ARTS", "ARTY", "ASIA", "ASKS",
-"ATOM", "AUNT", "AURA", "AUTO", "AVER", "AVID", "AVIS", "AVON",
-"AVOW", "AWAY", "AWRY", "BABE", "BABY", "BACH", "BACK", "BADE",
-"BAIL", "BAIT", "BAKE", "BALD", "BALE", "BALI", "BALK", "BALL",
-"BALM", "BAND", "BANE", "BANG", "BANK", "BARB", "BARD", "BARE",
-"BARK", "BARN", "BARR", "BASE", "BASH", "BASK", "BASS", "BATE",
-"BATH", "BAWD", "BAWL", "BEAD", "BEAK", "BEAM", "BEAN", "BEAR",
-"BEAT", "BEAU", "BECK", "BEEF", "BEEN", "BEER", "BEET", "BELA",
-"BELL", "BELT", "BEND", "BENT", "BERG", "BERN", "BERT", "BESS",
-"BEST", "BETA", "BETH", "BHOY", "BIAS", "BIDE", "BIEN", "BILE",
-"BILK", "BILL", "BIND", "BING", "BIRD", "BITE", "BITS", "BLAB",
-"BLAT", "BLED", "BLEW", "BLOB", "BLOC", "BLOT", "BLOW", "BLUE",
-"BLUM", "BLUR", "BOAR", "BOAT", "BOCA", "BOCK", "BODE", "BODY",
-"BOGY", "BOHR", "BOIL", "BOLD", "BOLO", "BOLT", "BOMB", "BONA",
-"BOND", "BONE", "BONG", "BONN", "BONY", "BOOK", "BOOM", "BOON",
-"BOOT", "BORE", "BORG", "BORN", "BOSE", "BOSS", "BOTH", "BOUT",
-"BOWL", "BOYD", "BRAD", "BRAE", "BRAG", "BRAN", "BRAY", "BRED",
-"BREW", "BRIG", "BRIM", "BROW", "BUCK", "BUDD", "BUFF", "BULB",
-"BULK", "BULL", "BUNK", "BUNT", "BUOY", "BURG", "BURL", "BURN",
-"BURR", "BURT", "BURY", "BUSH", "BUSS", "BUST", "BUSY", "BYTE",
-"CADY", "CAFE", "CAGE", "CAIN", "CAKE", "CALF", "CALL", "CALM",
-"CAME", "CANE", "CANT", "CARD", "CARE", "CARL", "CARR", "CART",
-"CASE", "CASH", "CASK", "CAST", "CAVE", "CEIL", "CELL", "CENT",
-"CERN", "CHAD", "CHAR", "CHAT", "CHAW", "CHEF", "CHEN", "CHEW",
-"CHIC", "CHIN", "CHOU", "CHOW", "CHUB", "CHUG", "CHUM", "CITE",
-"CITY", "CLAD", "CLAM", "CLAN", "CLAW", "CLAY", "CLOD", "CLOG",
-"CLOT", "CLUB", "CLUE", "COAL", "COAT", "COCA", "COCK", "COCO",
-"CODA", "CODE", "CODY", "COED", "COIL", "COIN", "COKE", "COLA",
-"COLD", "COLT", "COMA", "COMB", "COME", "COOK", "COOL", "COON",
-"COOT", "CORD", "CORE", "CORK", "CORN", "COST", "COVE", "COWL",
-"CRAB", "CRAG", "CRAM", "CRAY", "CREW", "CRIB", "CROW", "CRUD",
-"CUBA", "CUBE", "CUFF", "CULL", "CULT", "CUNY", "CURB", "CURD",
-"CURE", "CURL", "CURT", "CUTS", "DADE", "DALE", "DAME", "DANA",
-"DANE", "DANG", "DANK", "DARE", "DARK", "DARN", "DART", "DASH",
-"DATA", "DATE", "DAVE", "DAVY", "DAWN", "DAYS", "DEAD", "DEAF",
-"DEAL", "DEAN", "DEAR", "DEBT", "DECK", "DEED", "DEEM", "DEER",
-"DEFT", "DEFY", "DELL", "DENT", "DENY", "DESK", "DIAL", "DICE",
-"DIED", "DIET", "DIME", "DINE", "DING", "DINT", "DIRE", "DIRT",
-"DISC", "DISH", "DISK", "DIVE", "DOCK", "DOES", "DOLE", "DOLL",
-"DOLT", "DOME", "DONE", "DOOM", "DOOR", "DORA", "DOSE", "DOTE",
-"DOUG", "DOUR", "DOVE", "DOWN", "DRAB", "DRAG", "DRAM", "DRAW",
-"DREW", "DRUB", "DRUG", "DRUM", "DUAL", "DUCK", "DUCT", "DUEL",
-"DUET", "DUKE", "DULL", "DUMB", "DUNE", "DUNK", "DUSK", "DUST",
-"DUTY", "EACH", "EARL", "EARN", "EASE", "EAST", "EASY", "EBEN",
-"ECHO", "EDDY", "EDEN", "EDGE", "EDGY", "EDIT", "EDNA", "EGAN",
-"ELAN", "ELBA", "ELLA", "ELSE", "EMIL", "EMIT", "EMMA", "ENDS",
-"ERIC", "EROS", "EVEN", "EVER", "EVIL", "EYED", "FACE", "FACT",
-"FADE", "FAIL", "FAIN", "FAIR", "FAKE", "FALL", "FAME", "FANG",
-"FARM", "FAST", "FATE", "FAWN", "FEAR", "FEAT", "FEED", "FEEL",
-"FEET", "FELL", "FELT", "FEND", "FERN", "FEST", "FEUD", "FIEF",
-"FIGS", "FILE", "FILL", "FILM", "FIND", "FINE", "FINK", "FIRE",
-"FIRM", "FISH", "FISK", "FIST", "FITS", "FIVE", "FLAG", "FLAK",
-"FLAM", "FLAT", "FLAW", "FLEA", "FLED", "FLEW", "FLIT", "FLOC",
-"FLOG", "FLOW", "FLUB", "FLUE", "FOAL", "FOAM", "FOGY", "FOIL",
-"FOLD", "FOLK", "FOND", "FONT", "FOOD", "FOOL", "FOOT", "FORD",
-"FORE", "FORK", "FORM", "FORT", "FOSS", "FOUL", "FOUR", "FOWL",
-"FRAU", "FRAY", "FRED", "FREE", "FRET", "FREY", "FROG", "FROM",
-"FUEL", "FULL", "FUME", "FUND", "FUNK", "FURY", "FUSE", "FUSS",
-"GAFF", "GAGE", "GAIL", "GAIN", "GAIT", "GALA", "GALE", "GALL",
-"GALT", "GAME", "GANG", "GARB", "GARY", "GASH", "GATE", "GAUL",
-"GAUR", "GAVE", "GAWK", "GEAR", "GELD", "GENE", "GENT", "GERM",
-"GETS", "GIBE", "GIFT", "GILD", "GILL", "GILT", "GINA", "GIRD",
-"GIRL", "GIST", "GIVE", "GLAD", "GLEE", "GLEN", "GLIB", "GLOB",
-"GLOM", "GLOW", "GLUE", "GLUM", "GLUT", "GOAD", "GOAL", "GOAT",
-"GOER", "GOES", "GOLD", "GOLF", "GONE", "GONG", "GOOD", "GOOF",
-"GORE", "GORY", "GOSH", "GOUT", "GOWN", "GRAB", "GRAD", "GRAY",
-"GREG", "GREW", "GREY", "GRID", "GRIM", "GRIN", "GRIT", "GROW",
-"GRUB", "GULF", "GULL", "GUNK", "GURU", "GUSH", "GUST", "GWEN",
-"GWYN", "HAAG", "HAAS", "HACK", "HAIL", "HAIR", "HALE", "HALF",
-"HALL", "HALO", "HALT", "HAND", "HANG", "HANK", "HANS", "HARD",
-"HARK", "HARM", "HART", "HASH", "HAST", "HATE", "HATH", "HAUL",
-"HAVE", "HAWK", "HAYS", "HEAD", "HEAL", "HEAR", "HEAT", "HEBE",
-"HECK", "HEED", "HEEL", "HEFT", "HELD", "HELL", "HELM", "HERB",
-"HERD", "HERE", "HERO", "HERS", "HESS", "HEWN", "HICK", "HIDE",
-"HIGH", "HIKE", "HILL", "HILT", "HIND", "HINT", "HIRE", "HISS",
-"HIVE", "HOBO", "HOCK", "HOFF", "HOLD", "HOLE", "HOLM", "HOLT",
-"HOME", "HONE", "HONK", "HOOD", "HOOF", "HOOK", "HOOT", "HORN",
-"HOSE", "HOST", "HOUR", "HOVE", "HOWE", "HOWL", "HOYT", "HUCK",
-"HUED", "HUFF", "HUGE", "HUGH", "HUGO", "HULK", "HULL", "HUNK",
-"HUNT", "HURD", "HURL", "HURT", "HUSH", "HYDE", "HYMN", "IBIS",
-"ICON", "IDEA", "IDLE", "IFFY", "INCA", "INCH", "INTO", "IONS",
-"IOTA", "IOWA", "IRIS", "IRMA", "IRON", "ISLE", "ITCH", "ITEM",
-"IVAN", "JACK", "JADE", "JAIL", "JAKE", "JANE", "JAVA", "JEAN",
-"JEFF", "JERK", "JESS", "JEST", "JIBE", "JILL", "JILT", "JIVE",
-"JOAN", "JOBS", "JOCK", "JOEL", "JOEY", "JOHN", "JOIN", "JOKE",
-"JOLT", "JOVE", "JUDD", "JUDE", "JUDO", "JUDY", "JUJU", "JUKE",
-"JULY", "JUNE", "JUNK", "JUNO", "JURY", "JUST", "JUTE", "KAHN",
-"KALE", "KANE", "KANT", "KARL", "KATE", "KEEL", "KEEN", "KENO",
-"KENT", "KERN", "KERR", "KEYS", "KICK", "KILL", "KIND", "KING",
-"KIRK", "KISS", "KITE", "KLAN", "KNEE", "KNEW", "KNIT", "KNOB",
-"KNOT", "KNOW", "KOCH", "KONG", "KUDO", "KURD", "KURT", "KYLE",
-"LACE", "LACK", "LACY", "LADY", "LAID", "LAIN", "LAIR", "LAKE",
-"LAMB", "LAME", "LAND", "LANE", "LANG", "LARD", "LARK", "LASS",
-"LAST", "LATE", "LAUD", "LAVA", "LAWN", "LAWS", "LAYS", "LEAD",
-"LEAF", "LEAK", "LEAN", "LEAR", "LEEK", "LEER", "LEFT", "LEND",
-"LENS", "LENT", "LEON", "LESK", "LESS", "LEST", "LETS", "LIAR",
-"LICE", "LICK", "LIED", "LIEN", "LIES", "LIEU", "LIFE", "LIFT",
-"LIKE", "LILA", "LILT", "LILY", "LIMA", "LIMB", "LIME", "LIND",
-"LINE", "LINK", "LINT", "LION", "LISA", "LIST", "LIVE", "LOAD",
-"LOAF", "LOAM", "LOAN", "LOCK", "LOFT", "LOGE", "LOIS", "LOLA",
-"LONE", "LONG", "LOOK", "LOON", "LOOT", "LORD", "LORE", "LOSE",
-"LOSS", "LOST", "LOUD", "LOVE", "LOWE", "LUCK", "LUCY", "LUGE",
-"LUKE", "LULU", "LUND", "LUNG", "LURA", "LURE", "LURK", "LUSH",
-"LUST", "LYLE", "LYNN", "LYON", "LYRA", "MACE", "MADE", "MAGI",
-"MAID", "MAIL", "MAIN", "MAKE", "MALE", "MALI", "MALL", "MALT",
-"MANA", "MANN", "MANY", "MARC", "MARE", "MARK", "MARS", "MART",
-"MARY", "MASH", "MASK", "MASS", "MAST", "MATE", "MATH", "MAUL",
-"MAYO", "MEAD", "MEAL", "MEAN", "MEAT", "MEEK", "MEET", "MELD",
-"MELT", "MEMO", "MEND", "MENU", "MERT", "MESH", "MESS", "MICE",
-"MIKE", "MILD", "MILE", "MILK", "MILL", "MILT", "MIMI", "MIND",
-"MINE", "MINI", "MINK", "MINT", "MIRE", "MISS", "MIST", "MITE",
-"MITT", "MOAN", "MOAT", "MOCK", "MODE", "MOLD", "MOLE", "MOLL",
-"MOLT", "MONA", "MONK", "MONT", "MOOD", "MOON", "MOOR", "MOOT",
-"MORE", "MORN", "MORT", "MOSS", "MOST", "MOTH", "MOVE", "MUCH",
-"MUCK", "MUDD", "MUFF", "MULE", "MULL", "MURK", "MUSH", "MUST",
-"MUTE", "MUTT", "MYRA", "MYTH", "NAGY", "NAIL", "NAIR", "NAME",
-"NARY", "NASH", "NAVE", "NAVY", "NEAL", "NEAR", "NEAT", "NECK",
-"NEED", "NEIL", "NELL", "NEON", "NERO", "NESS", "NEST", "NEWS",
-"NEWT", "NIBS", "NICE", "NICK", "NILE", "NINA", "NINE", "NOAH",
-"NODE", "NOEL", "NOLL", "NONE", "NOOK", "NOON", "NORM", "NOSE",
-"NOTE", "NOUN", "NOVA", "NUDE", "NULL", "NUMB", "OATH", "OBEY",
-"OBOE", "ODIN", "OHIO", "OILY", "OINT", "OKAY", "OLAF", "OLDY",
-"OLGA", "OLIN", "OMAN", "OMEN", "OMIT", "ONCE", "ONES", "ONLY",
-"ONTO", "ONUS", "ORAL", "ORGY", "OSLO", "OTIS", "OTTO", "OUCH",
-"OUST", "OUTS", "OVAL", "OVEN", "OVER", "OWLY", "OWNS", "QUAD",
-"QUIT", "QUOD", "RACE", "RACK", "RACY", "RAFT", "RAGE", "RAID",
-"RAIL", "RAIN", "RAKE", "RANK", "RANT", "RARE", "RASH", "RATE",
-"RAVE", "RAYS", "READ", "REAL", "REAM", "REAR", "RECK", "REED",
-"REEF", "REEK", "REEL", "REID", "REIN", "RENA", "REND", "RENT",
-"REST", "RICE", "RICH", "RICK", "RIDE", "RIFT", "RILL", "RIME",
-"RING", "RINK", "RISE", "RISK", "RITE", "ROAD", "ROAM", "ROAR",
-"ROBE", "ROCK", "RODE", "ROIL", "ROLL", "ROME", "ROOD", "ROOF",
-"ROOK", "ROOM", "ROOT", "ROSA", "ROSE", "ROSS", "ROSY", "ROTH",
-"ROUT", "ROVE", "ROWE", "ROWS", "RUBE", "RUBY", "RUDE", "RUDY",
-"RUIN", "RULE", "RUNG", "RUNS", "RUNT", "RUSE", "RUSH", "RUSK",
-"RUSS", "RUST", "RUTH", "SACK", "SAFE", "SAGE", "SAID", "SAIL",
-"SALE", "SALK", "SALT", "SAME", "SAND", "SANE", "SANG", "SANK",
-"SARA", "SAUL", "SAVE", "SAYS", "SCAN", "SCAR", "SCAT", "SCOT",
-"SEAL", "SEAM", "SEAR", "SEAT", "SEED", "SEEK", "SEEM", "SEEN",
-"SEES", "SELF", "SELL", "SEND", "SENT", "SETS", "SEWN", "SHAG",
-"SHAM", "SHAW", "SHAY", "SHED", "SHIM", "SHIN", "SHOD", "SHOE",
-"SHOT", "SHOW", "SHUN", "SHUT", "SICK", "SIDE", "SIFT", "SIGH",
-"SIGN", "SILK", "SILL", "SILO", "SILT", "SINE", "SING", "SINK",
-"SIRE", "SITE", "SITS", "SITU", "SKAT", "SKEW", "SKID", "SKIM",
-"SKIN", "SKIT", "SLAB", "SLAM", "SLAT", "SLAY", "SLED", "SLEW",
-"SLID", "SLIM", "SLIT", "SLOB", "SLOG", "SLOT", "SLOW", "SLUG",
-"SLUM", "SLUR", "SMOG", "SMUG", "SNAG", "SNOB", "SNOW", "SNUB",
-"SNUG", "SOAK", "SOAR", "SOCK", "SODA", "SOFA", "SOFT", "SOIL",
-"SOLD", "SOME", "SONG", "SOON", "SOOT", "SORE", "SORT", "SOUL",
-"SOUR", "SOWN", "STAB", "STAG", "STAN", "STAR", "STAY", "STEM",
-"STEW", "STIR", "STOW", "STUB", "STUN", "SUCH", "SUDS", "SUIT",
-"SULK", "SUMS", "SUNG", "SUNK", "SURE", "SURF", "SWAB", "SWAG",
-"SWAM", "SWAN", "SWAT", "SWAY", "SWIM", "SWUM", "TACK", "TACT",
-"TAIL", "TAKE", "TALE", "TALK", "TALL", "TANK", "TASK", "TATE",
-"TAUT", "TEAL", "TEAM", "TEAR", "TECH", "TEEM", "TEEN", "TEET",
-"TELL", "TEND", "TENT", "TERM", "TERN", "TESS", "TEST", "THAN",
-"THAT", "THEE", "THEM", "THEN", "THEY", "THIN", "THIS", "THUD",
-"THUG", "TICK", "TIDE", "TIDY", "TIED", "TIER", "TILE", "TILL",
-"TILT", "TIME", "TINA", "TINE", "TINT", "TINY", "TIRE", "TOAD",
-"TOGO", "TOIL", "TOLD", "TOLL", "TONE", "TONG", "TONY", "TOOK",
-"TOOL", "TOOT", "TORE", "TORN", "TOTE", "TOUR", "TOUT", "TOWN",
-"TRAG", "TRAM", "TRAY", "TREE", "TREK", "TRIG", "TRIM", "TRIO",
-"TROD", "TROT", "TROY", "TRUE", "TUBA", "TUBE", "TUCK", "TUFT",
-"TUNA", "TUNE", "TUNG", "TURF", "TURN", "TUSK", "TWIG", "TWIN",
-"TWIT", "ULAN", "UNIT", "URGE", "USED", "USER", "USES", "UTAH",
-"VAIL", "VAIN", "VALE", "VARY", "VASE", "VAST", "VEAL", "VEDA",
-"VEIL", "VEIN", "VEND", "VENT", "VERB", "VERY", "VETO", "VICE",
-"VIEW", "VINE", "VISE", "VOID", "VOLT", "VOTE", "WACK", "WADE",
-"WAGE", "WAIL", "WAIT", "WAKE", "WALE", "WALK", "WALL", "WALT",
-"WAND", "WANE", "WANG", "WANT", "WARD", "WARM", "WARN", "WART",
-"WASH", "WAST", "WATS", "WATT", "WAVE", "WAVY", "WAYS", "WEAK",
-"WEAL", "WEAN", "WEAR", "WEED", "WEEK", "WEIR", "WELD", "WELL",
-"WELT", "WENT", "WERE", "WERT", "WEST", "WHAM", "WHAT", "WHEE",
-"WHEN", "WHET", "WHOA", "WHOM", "WICK", "WIFE", "WILD", "WILL",
-"WIND", "WINE", "WING", "WINK", "WINO", "WIRE", "WISE", "WISH",
-"WITH", "WOLF", "WONT", "WOOD", "WOOL", "WORD", "WORE", "WORK",
-"WORM", "WORN", "WOVE", "WRIT", "WYNN", "YALE", "YANG", "YANK",
-"YARD", "YARN", "YAWL", "YAWN", "YEAH", "YEAR", "YELL", "YOGA",
-"YOKE" };
-
-const struct e inv_std_dict[2048] = {
-{"A", 0},
-{"ABE", 1},
-{"ABED", 571},
-{"ABEL", 572},
-{"ABET", 573},
-{"ABLE", 574},
-{"ABUT", 575},
-{"ACE", 2},
-{"ACHE", 576},
-{"ACID", 577},
-{"ACME", 578},
-{"ACRE", 579},
-{"ACT", 3},
-{"ACTA", 580},
-{"ACTS", 581},
-{"AD", 4},
-{"ADA", 5},
-{"ADAM", 582},
-{"ADD", 6},
-{"ADDS", 583},
-{"ADEN", 584},
-{"AFAR", 585},
-{"AFRO", 586},
-{"AGEE", 587},
-{"AGO", 7},
-{"AHEM", 588},
-{"AHOY", 589},
-{"AID", 8},
-{"AIDA", 590},
-{"AIDE", 591},
-{"AIDS", 592},
-{"AIM", 9},
-{"AIR", 10},
-{"AIRY", 593},
-{"AJAR", 594},
-{"AKIN", 595},
-{"ALAN", 596},
-{"ALEC", 597},
-{"ALGA", 598},
-{"ALIA", 599},
-{"ALL", 11},
-{"ALLY", 600},
-{"ALMA", 601},
-{"ALOE", 602},
-{"ALP", 12},
-{"ALSO", 603},
-{"ALTO", 604},
-{"ALUM", 605},
-{"ALVA", 606},
-{"AM", 13},
-{"AMEN", 607},
-{"AMES", 608},
-{"AMID", 609},
-{"AMMO", 610},
-{"AMOK", 611},
-{"AMOS", 612},
-{"AMRA", 613},
-{"AMY", 14},
-{"AN", 15},
-{"ANA", 16},
-{"AND", 17},
-{"ANDY", 614},
-{"ANEW", 615},
-{"ANN", 18},
-{"ANNA", 616},
-{"ANNE", 617},
-{"ANT", 19},
-{"ANTE", 618},
-{"ANTI", 619},
-{"ANY", 20},
-{"APE", 21},
-{"APS", 22},
-{"APT", 23},
-{"AQUA", 620},
-{"ARAB", 621},
-{"ARC", 24},
-{"ARCH", 622},
-{"ARE", 25},
-{"AREA", 623},
-{"ARGO", 624},
-{"ARID", 625},
-{"ARK", 26},
-{"ARM", 27},
-{"ARMY", 626},
-{"ART", 28},
-{"ARTS", 627},
-{"ARTY", 628},
-{"AS", 29},
-{"ASH", 30},
-{"ASIA", 629},
-{"ASK", 31},
-{"ASKS", 630},
-{"AT", 32},
-{"ATE", 33},
-{"ATOM", 631},
-{"AUG", 34},
-{"AUK", 35},
-{"AUNT", 632},
-{"AURA", 633},
-{"AUTO", 634},
-{"AVE", 36},
-{"AVER", 635},
-{"AVID", 636},
-{"AVIS", 637},
-{"AVON", 638},
-{"AVOW", 639},
-{"AWAY", 640},
-{"AWE", 37},
-{"AWK", 38},
-{"AWL", 39},
-{"AWN", 40},
-{"AWRY", 641},
-{"AX", 41},
-{"AYE", 42},
-{"BABE", 642},
-{"BABY", 643},
-{"BACH", 644},
-{"BACK", 645},
-{"BAD", 43},
-{"BADE", 646},
-{"BAG", 44},
-{"BAH", 45},
-{"BAIL", 647},
-{"BAIT", 648},
-{"BAKE", 649},
-{"BALD", 650},
-{"BALE", 651},
-{"BALI", 652},
-{"BALK", 653},
-{"BALL", 654},
-{"BALM", 655},
-{"BAM", 46},
-{"BAN", 47},
-{"BAND", 656},
-{"BANE", 657},
-{"BANG", 658},
-{"BANK", 659},
-{"BAR", 48},
-{"BARB", 660},
-{"BARD", 661},
-{"BARE", 662},
-{"BARK", 663},
-{"BARN", 664},
-{"BARR", 665},
-{"BASE", 666},
-{"BASH", 667},
-{"BASK", 668},
-{"BASS", 669},
-{"BAT", 49},
-{"BATE", 670},
-{"BATH", 671},
-{"BAWD", 672},
-{"BAWL", 673},
-{"BAY", 50},
-{"BE", 51},
-{"BEAD", 674},
-{"BEAK", 675},
-{"BEAM", 676},
-{"BEAN", 677},
-{"BEAR", 678},
-{"BEAT", 679},
-{"BEAU", 680},
-{"BECK", 681},
-{"BED", 52},
-{"BEE", 53},
-{"BEEF", 682},
-{"BEEN", 683},
-{"BEER", 684},
-{"BEET", 685},
-{"BEG", 54},
-{"BELA", 686},
-{"BELL", 687},
-{"BELT", 688},
-{"BEN", 55},
-{"BEND", 689},
-{"BENT", 690},
-{"BERG", 691},
-{"BERN", 692},
-{"BERT", 693},
-{"BESS", 694},
-{"BEST", 695},
-{"BET", 56},
-{"BETA", 696},
-{"BETH", 697},
-{"BEY", 57},
-{"BHOY", 698},
-{"BIAS", 699},
-{"BIB", 58},
-{"BID", 59},
-{"BIDE", 700},
-{"BIEN", 701},
-{"BIG", 60},
-{"BILE", 702},
-{"BILK", 703},
-{"BILL", 704},
-{"BIN", 61},
-{"BIND", 705},
-{"BING", 706},
-{"BIRD", 707},
-{"BIT", 62},
-{"BITE", 708},
-{"BITS", 709},
-{"BLAB", 710},
-{"BLAT", 711},
-{"BLED", 712},
-{"BLEW", 713},
-{"BLOB", 714},
-{"BLOC", 715},
-{"BLOT", 716},
-{"BLOW", 717},
-{"BLUE", 718},
-{"BLUM", 719},
-{"BLUR", 720},
-{"BOAR", 721},
-{"BOAT", 722},
-{"BOB", 63},
-{"BOCA", 723},
-{"BOCK", 724},
-{"BODE", 725},
-{"BODY", 726},
-{"BOG", 64},
-{"BOGY", 727},
-{"BOHR", 728},
-{"BOIL", 729},
-{"BOLD", 730},
-{"BOLO", 731},
-{"BOLT", 732},
-{"BOMB", 733},
-{"BON", 65},
-{"BONA", 734},
-{"BOND", 735},
-{"BONE", 736},
-{"BONG", 737},
-{"BONN", 738},
-{"BONY", 739},
-{"BOO", 66},
-{"BOOK", 740},
-{"BOOM", 741},
-{"BOON", 742},
-{"BOOT", 743},
-{"BOP", 67},
-{"BORE", 744},
-{"BORG", 745},
-{"BORN", 746},
-{"BOSE", 747},
-{"BOSS", 748},
-{"BOTH", 749},
-{"BOUT", 750},
-{"BOW", 68},
-{"BOWL", 751},
-{"BOY", 69},
-{"BOYD", 752},
-{"BRAD", 753},
-{"BRAE", 754},
-{"BRAG", 755},
-{"BRAN", 756},
-{"BRAY", 757},
-{"BRED", 758},
-{"BREW", 759},
-{"BRIG", 760},
-{"BRIM", 761},
-{"BROW", 762},
-{"BUB", 70},
-{"BUCK", 763},
-{"BUD", 71},
-{"BUDD", 764},
-{"BUFF", 765},
-{"BUG", 72},
-{"BULB", 766},
-{"BULK", 767},
-{"BULL", 768},
-{"BUM", 73},
-{"BUN", 74},
-{"BUNK", 769},
-{"BUNT", 770},
-{"BUOY", 771},
-{"BURG", 772},
-{"BURL", 773},
-{"BURN", 774},
-{"BURR", 775},
-{"BURT", 776},
-{"BURY", 777},
-{"BUS", 75},
-{"BUSH", 778},
-{"BUSS", 779},
-{"BUST", 780},
-{"BUSY", 781},
-{"BUT", 76},
-{"BUY", 77},
-{"BY", 78},
-{"BYE", 79},
-{"BYTE", 782},
-{"CAB", 80},
-{"CADY", 783},
-{"CAFE", 784},
-{"CAGE", 785},
-{"CAIN", 786},
-{"CAKE", 787},
-{"CAL", 81},
-{"CALF", 788},
-{"CALL", 789},
-{"CALM", 790},
-{"CAM", 82},
-{"CAME", 791},
-{"CAN", 83},
-{"CANE", 792},
-{"CANT", 793},
-{"CAP", 84},
-{"CAR", 85},
-{"CARD", 794},
-{"CARE", 795},
-{"CARL", 796},
-{"CARR", 797},
-{"CART", 798},
-{"CASE", 799},
-{"CASH", 800},
-{"CASK", 801},
-{"CAST", 802},
-{"CAT", 86},
-{"CAVE", 803},
-{"CAW", 87},
-{"CEIL", 804},
-{"CELL", 805},
-{"CENT", 806},
-{"CERN", 807},
-{"CHAD", 808},
-{"CHAR", 809},
-{"CHAT", 810},
-{"CHAW", 811},
-{"CHEF", 812},
-{"CHEN", 813},
-{"CHEW", 814},
-{"CHIC", 815},
-{"CHIN", 816},
-{"CHOU", 817},
-{"CHOW", 818},
-{"CHUB", 819},
-{"CHUG", 820},
-{"CHUM", 821},
-{"CITE", 822},
-{"CITY", 823},
-{"CLAD", 824},
-{"CLAM", 825},
-{"CLAN", 826},
-{"CLAW", 827},
-{"CLAY", 828},
-{"CLOD", 829},
-{"CLOG", 830},
-{"CLOT", 831},
-{"CLUB", 832},
-{"CLUE", 833},
-{"COAL", 834},
-{"COAT", 835},
-{"COCA", 836},
-{"COCK", 837},
-{"COCO", 838},
-{"COD", 88},
-{"CODA", 839},
-{"CODE", 840},
-{"CODY", 841},
-{"COED", 842},
-{"COG", 89},
-{"COIL", 843},
-{"COIN", 844},
-{"COKE", 845},
-{"COL", 90},
-{"COLA", 846},
-{"COLD", 847},
-{"COLT", 848},
-{"COMA", 849},
-{"COMB", 850},
-{"COME", 851},
-{"CON", 91},
-{"COO", 92},
-{"COOK", 852},
-{"COOL", 853},
-{"COON", 854},
-{"COOT", 855},
-{"COP", 93},
-{"CORD", 856},
-{"CORE", 857},
-{"CORK", 858},
-{"CORN", 859},
-{"COST", 860},
-{"COT", 94},
-{"COVE", 861},
-{"COW", 95},
-{"COWL", 862},
-{"COY", 96},
-{"CRAB", 863},
-{"CRAG", 864},
-{"CRAM", 865},
-{"CRAY", 866},
-{"CREW", 867},
-{"CRIB", 868},
-{"CROW", 869},
-{"CRUD", 870},
-{"CRY", 97},
-{"CUB", 98},
-{"CUBA", 871},
-{"CUBE", 872},
-{"CUE", 99},
-{"CUFF", 873},
-{"CULL", 874},
-{"CULT", 875},
-{"CUNY", 876},
-{"CUP", 100},
-{"CUR", 101},
-{"CURB", 877},
-{"CURD", 878},
-{"CURE", 879},
-{"CURL", 880},
-{"CURT", 881},
-{"CUT", 102},
-{"CUTS", 882},
-{"DAB", 103},
-{"DAD", 104},
-{"DADE", 883},
-{"DALE", 884},
-{"DAM", 105},
-{"DAME", 885},
-{"DAN", 106},
-{"DANA", 886},
-{"DANE", 887},
-{"DANG", 888},
-{"DANK", 889},
-{"DAR", 107},
-{"DARE", 890},
-{"DARK", 891},
-{"DARN", 892},
-{"DART", 893},
-{"DASH", 894},
-{"DATA", 895},
-{"DATE", 896},
-{"DAVE", 897},
-{"DAVY", 898},
-{"DAWN", 899},
-{"DAY", 108},
-{"DAYS", 900},
-{"DEAD", 901},
-{"DEAF", 902},
-{"DEAL", 903},
-{"DEAN", 904},
-{"DEAR", 905},
-{"DEBT", 906},
-{"DECK", 907},
-{"DEE", 109},
-{"DEED", 908},
-{"DEEM", 909},
-{"DEER", 910},
-{"DEFT", 911},
-{"DEFY", 912},
-{"DEL", 110},
-{"DELL", 913},
-{"DEN", 111},
-{"DENT", 914},
-{"DENY", 915},
-{"DES", 112},
-{"DESK", 916},
-{"DEW", 113},
-{"DIAL", 917},
-{"DICE", 918},
-{"DID", 114},
-{"DIE", 115},
-{"DIED", 919},
-{"DIET", 920},
-{"DIG", 116},
-{"DIME", 921},
-{"DIN", 117},
-{"DINE", 922},
-{"DING", 923},
-{"DINT", 924},
-{"DIP", 118},
-{"DIRE", 925},
-{"DIRT", 926},
-{"DISC", 927},
-{"DISH", 928},
-{"DISK", 929},
-{"DIVE", 930},
-{"DO", 119},
-{"DOCK", 931},
-{"DOE", 120},
-{"DOES", 932},
-{"DOG", 121},
-{"DOLE", 933},
-{"DOLL", 934},
-{"DOLT", 935},
-{"DOME", 936},
-{"DON", 122},
-{"DONE", 937},
-{"DOOM", 938},
-{"DOOR", 939},
-{"DORA", 940},
-{"DOSE", 941},
-{"DOT", 123},
-{"DOTE", 942},
-{"DOUG", 943},
-{"DOUR", 944},
-{"DOVE", 945},
-{"DOW", 124},
-{"DOWN", 946},
-{"DRAB", 947},
-{"DRAG", 948},
-{"DRAM", 949},
-{"DRAW", 950},
-{"DREW", 951},
-{"DRUB", 952},
-{"DRUG", 953},
-{"DRUM", 954},
-{"DRY", 125},
-{"DUAL", 955},
-{"DUB", 126},
-{"DUCK", 956},
-{"DUCT", 957},
-{"DUD", 127},
-{"DUE", 128},
-{"DUEL", 958},
-{"DUET", 959},
-{"DUG", 129},
-{"DUKE", 960},
-{"DULL", 961},
-{"DUMB", 962},
-{"DUN", 130},
-{"DUNE", 963},
-{"DUNK", 964},
-{"DUSK", 965},
-{"DUST", 966},
-{"DUTY", 967},
-{"EACH", 968},
-{"EAR", 131},
-{"EARL", 969},
-{"EARN", 970},
-{"EASE", 971},
-{"EAST", 972},
-{"EASY", 973},
-{"EAT", 132},
-{"EBEN", 974},
-{"ECHO", 975},
-{"ED", 133},
-{"EDDY", 976},
-{"EDEN", 977},
-{"EDGE", 978},
-{"EDGY", 979},
-{"EDIT", 980},
-{"EDNA", 981},
-{"EEL", 134},
-{"EGAN", 982},
-{"EGG", 135},
-{"EGO", 136},
-{"ELAN", 983},
-{"ELBA", 984},
-{"ELI", 137},
-{"ELK", 138},
-{"ELLA", 985},
-{"ELM", 139},
-{"ELSE", 986},
-{"ELY", 140},
-{"EM", 141},
-{"EMIL", 987},
-{"EMIT", 988},
-{"EMMA", 989},
-{"END", 142},
-{"ENDS", 990},
-{"ERIC", 991},
-{"EROS", 992},
-{"EST", 143},
-{"ETC", 144},
-{"EVA", 145},
-{"EVE", 146},
-{"EVEN", 993},
-{"EVER", 994},
-{"EVIL", 995},
-{"EWE", 147},
-{"EYE", 148},
-{"EYED", 996},
-{"FACE", 997},
-{"FACT", 998},
-{"FAD", 149},
-{"FADE", 999},
-{"FAIL", 1000},
-{"FAIN", 1001},
-{"FAIR", 1002},
-{"FAKE", 1003},
-{"FALL", 1004},
-{"FAME", 1005},
-{"FAN", 150},
-{"FANG", 1006},
-{"FAR", 151},
-{"FARM", 1007},
-{"FAST", 1008},
-{"FAT", 152},
-{"FATE", 1009},
-{"FAWN", 1010},
-{"FAY", 153},
-{"FEAR", 1011},
-{"FEAT", 1012},
-{"FED", 154},
-{"FEE", 155},
-{"FEED", 1013},
-{"FEEL", 1014},
-{"FEET", 1015},
-{"FELL", 1016},
-{"FELT", 1017},
-{"FEND", 1018},
-{"FERN", 1019},
-{"FEST", 1020},
-{"FEUD", 1021},
-{"FEW", 156},
-{"FIB", 157},
-{"FIEF", 1022},
-{"FIG", 158},
-{"FIGS", 1023},
-{"FILE", 1024},
-{"FILL", 1025},
-{"FILM", 1026},
-{"FIN", 159},
-{"FIND", 1027},
-{"FINE", 1028},
-{"FINK", 1029},
-{"FIR", 160},
-{"FIRE", 1030},
-{"FIRM", 1031},
-{"FISH", 1032},
-{"FISK", 1033},
-{"FIST", 1034},
-{"FIT", 161},
-{"FITS", 1035},
-{"FIVE", 1036},
-{"FLAG", 1037},
-{"FLAK", 1038},
-{"FLAM", 1039},
-{"FLAT", 1040},
-{"FLAW", 1041},
-{"FLEA", 1042},
-{"FLED", 1043},
-{"FLEW", 1044},
-{"FLIT", 1045},
-{"FLO", 162},
-{"FLOC", 1046},
-{"FLOG", 1047},
-{"FLOW", 1048},
-{"FLUB", 1049},
-{"FLUE", 1050},
-{"FLY", 163},
-{"FOAL", 1051},
-{"FOAM", 1052},
-{"FOE", 164},
-{"FOG", 165},
-{"FOGY", 1053},
-{"FOIL", 1054},
-{"FOLD", 1055},
-{"FOLK", 1056},
-{"FOND", 1057},
-{"FONT", 1058},
-{"FOOD", 1059},
-{"FOOL", 1060},
-{"FOOT", 1061},
-{"FOR", 166},
-{"FORD", 1062},
-{"FORE", 1063},
-{"FORK", 1064},
-{"FORM", 1065},
-{"FORT", 1066},
-{"FOSS", 1067},
-{"FOUL", 1068},
-{"FOUR", 1069},
-{"FOWL", 1070},
-{"FRAU", 1071},
-{"FRAY", 1072},
-{"FRED", 1073},
-{"FREE", 1074},
-{"FRET", 1075},
-{"FREY", 1076},
-{"FROG", 1077},
-{"FROM", 1078},
-{"FRY", 167},
-{"FUEL", 1079},
-{"FULL", 1080},
-{"FUM", 168},
-{"FUME", 1081},
-{"FUN", 169},
-{"FUND", 1082},
-{"FUNK", 1083},
-{"FUR", 170},
-{"FURY", 1084},
-{"FUSE", 1085},
-{"FUSS", 1086},
-{"GAB", 171},
-{"GAD", 172},
-{"GAFF", 1087},
-{"GAG", 173},
-{"GAGE", 1088},
-{"GAIL", 1089},
-{"GAIN", 1090},
-{"GAIT", 1091},
-{"GAL", 174},
-{"GALA", 1092},
-{"GALE", 1093},
-{"GALL", 1094},
-{"GALT", 1095},
-{"GAM", 175},
-{"GAME", 1096},
-{"GANG", 1097},
-{"GAP", 176},
-{"GARB", 1098},
-{"GARY", 1099},
-{"GAS", 177},
-{"GASH", 1100},
-{"GATE", 1101},
-{"GAUL", 1102},
-{"GAUR", 1103},
-{"GAVE", 1104},
-{"GAWK", 1105},
-{"GAY", 178},
-{"GEAR", 1106},
-{"GEE", 179},
-{"GEL", 180},
-{"GELD", 1107},
-{"GEM", 181},
-{"GENE", 1108},
-{"GENT", 1109},
-{"GERM", 1110},
-{"GET", 182},
-{"GETS", 1111},
-{"GIBE", 1112},
-{"GIFT", 1113},
-{"GIG", 183},
-{"GIL", 184},
-{"GILD", 1114},
-{"GILL", 1115},
-{"GILT", 1116},
-{"GIN", 185},
-{"GINA", 1117},
-{"GIRD", 1118},
-{"GIRL", 1119},
-{"GIST", 1120},
-{"GIVE", 1121},
-{"GLAD", 1122},
-{"GLEE", 1123},
-{"GLEN", 1124},
-{"GLIB", 1125},
-{"GLOB", 1126},
-{"GLOM", 1127},
-{"GLOW", 1128},
-{"GLUE", 1129},
-{"GLUM", 1130},
-{"GLUT", 1131},
-{"GO", 186},
-{"GOAD", 1132},
-{"GOAL", 1133},
-{"GOAT", 1134},
-{"GOER", 1135},
-{"GOES", 1136},
-{"GOLD", 1137},
-{"GOLF", 1138},
-{"GONE", 1139},
-{"GONG", 1140},
-{"GOOD", 1141},
-{"GOOF", 1142},
-{"GORE", 1143},
-{"GORY", 1144},
-{"GOSH", 1145},
-{"GOT", 187},
-{"GOUT", 1146},
-{"GOWN", 1147},
-{"GRAB", 1148},
-{"GRAD", 1149},
-{"GRAY", 1150},
-{"GREG", 1151},
-{"GREW", 1152},
-{"GREY", 1153},
-{"GRID", 1154},
-{"GRIM", 1155},
-{"GRIN", 1156},
-{"GRIT", 1157},
-{"GROW", 1158},
-{"GRUB", 1159},
-{"GULF", 1160},
-{"GULL", 1161},
-{"GUM", 188},
-{"GUN", 189},
-{"GUNK", 1162},
-{"GURU", 1163},
-{"GUS", 190},
-{"GUSH", 1164},
-{"GUST", 1165},
-{"GUT", 191},
-{"GUY", 192},
-{"GWEN", 1166},
-{"GWYN", 1167},
-{"GYM", 193},
-{"GYP", 194},
-{"HA", 195},
-{"HAAG", 1168},
-{"HAAS", 1169},
-{"HACK", 1170},
-{"HAD", 196},
-{"HAIL", 1171},
-{"HAIR", 1172},
-{"HAL", 197},
-{"HALE", 1173},
-{"HALF", 1174},
-{"HALL", 1175},
-{"HALO", 1176},
-{"HALT", 1177},
-{"HAM", 198},
-{"HAN", 199},
-{"HAND", 1178},
-{"HANG", 1179},
-{"HANK", 1180},
-{"HANS", 1181},
-{"HAP", 200},
-{"HARD", 1182},
-{"HARK", 1183},
-{"HARM", 1184},
-{"HART", 1185},
-{"HAS", 201},
-{"HASH", 1186},
-{"HAST", 1187},
-{"HAT", 202},
-{"HATE", 1188},
-{"HATH", 1189},
-{"HAUL", 1190},
-{"HAVE", 1191},
-{"HAW", 203},
-{"HAWK", 1192},
-{"HAY", 204},
-{"HAYS", 1193},
-{"HE", 205},
-{"HEAD", 1194},
-{"HEAL", 1195},
-{"HEAR", 1196},
-{"HEAT", 1197},
-{"HEBE", 1198},
-{"HECK", 1199},
-{"HEED", 1200},
-{"HEEL", 1201},
-{"HEFT", 1202},
-{"HELD", 1203},
-{"HELL", 1204},
-{"HELM", 1205},
-{"HEM", 206},
-{"HEN", 207},
-{"HER", 208},
-{"HERB", 1206},
-{"HERD", 1207},
-{"HERE", 1208},
-{"HERO", 1209},
-{"HERS", 1210},
-{"HESS", 1211},
-{"HEW", 209},
-{"HEWN", 1212},
-{"HEY", 210},
-{"HI", 211},
-{"HICK", 1213},
-{"HID", 212},
-{"HIDE", 1214},
-{"HIGH", 1215},
-{"HIKE", 1216},
-{"HILL", 1217},
-{"HILT", 1218},
-{"HIM", 213},
-{"HIND", 1219},
-{"HINT", 1220},
-{"HIP", 214},
-{"HIRE", 1221},
-{"HIS", 215},
-{"HISS", 1222},
-{"HIT", 216},
-{"HIVE", 1223},
-{"HO", 217},
-{"HOB", 218},
-{"HOBO", 1224},
-{"HOC", 219},
-{"HOCK", 1225},
-{"HOE", 220},
-{"HOFF", 1226},
-{"HOG", 221},
-{"HOLD", 1227},
-{"HOLE", 1228},
-{"HOLM", 1229},
-{"HOLT", 1230},
-{"HOME", 1231},
-{"HONE", 1232},
-{"HONK", 1233},
-{"HOOD", 1234},
-{"HOOF", 1235},
-{"HOOK", 1236},
-{"HOOT", 1237},
-{"HOP", 222},
-{"HORN", 1238},
-{"HOSE", 1239},
-{"HOST", 1240},
-{"HOT", 223},
-{"HOUR", 1241},
-{"HOVE", 1242},
-{"HOW", 224},
-{"HOWE", 1243},
-{"HOWL", 1244},
-{"HOYT", 1245},
-{"HUB", 225},
-{"HUCK", 1246},
-{"HUE", 226},
-{"HUED", 1247},
-{"HUFF", 1248},
-{"HUG", 227},
-{"HUGE", 1249},
-{"HUGH", 1250},
-{"HUGO", 1251},
-{"HUH", 228},
-{"HULK", 1252},
-{"HULL", 1253},
-{"HUM", 229},
-{"HUNK", 1254},
-{"HUNT", 1255},
-{"HURD", 1256},
-{"HURL", 1257},
-{"HURT", 1258},
-{"HUSH", 1259},
-{"HUT", 230},
-{"HYDE", 1260},
-{"HYMN", 1261},
-{"I", 231},
-{"IBIS", 1262},
-{"ICON", 1263},
-{"ICY", 232},
-{"IDA", 233},
-{"IDEA", 1264},
-{"IDLE", 1265},
-{"IF", 234},
-{"IFFY", 1266},
-{"IKE", 235},
-{"ILL", 236},
-{"INCA", 1267},
-{"INCH", 1268},
-{"INK", 237},
-{"INN", 238},
-{"INTO", 1269},
-{"IO", 239},
-{"ION", 240},
-{"IONS", 1270},
-{"IOTA", 1271},
-{"IOWA", 1272},
-{"IQ", 241},
-{"IRA", 242},
-{"IRE", 243},
-{"IRIS", 1273},
-{"IRK", 244},
-{"IRMA", 1274},
-{"IRON", 1275},
-{"IS", 245},
-{"ISLE", 1276},
-{"IT", 246},
-{"ITCH", 1277},
-{"ITEM", 1278},
-{"ITS", 247},
-{"IVAN", 1279},
-{"IVY", 248},
-{"JAB", 249},
-{"JACK", 1280},
-{"JADE", 1281},
-{"JAG", 250},
-{"JAIL", 1282},
-{"JAKE", 1283},
-{"JAM", 251},
-{"JAN", 252},
-{"JANE", 1284},
-{"JAR", 253},
-{"JAVA", 1285},
-{"JAW", 254},
-{"JAY", 255},
-{"JEAN", 1286},
-{"JEFF", 1287},
-{"JERK", 1288},
-{"JESS", 1289},
-{"JEST", 1290},
-{"JET", 256},
-{"JIBE", 1291},
-{"JIG", 257},
-{"JILL", 1292},
-{"JILT", 1293},
-{"JIM", 258},
-{"JIVE", 1294},
-{"JO", 259},
-{"JOAN", 1295},
-{"JOB", 260},
-{"JOBS", 1296},
-{"JOCK", 1297},
-{"JOE", 261},
-{"JOEL", 1298},
-{"JOEY", 1299},
-{"JOG", 262},
-{"JOHN", 1300},
-{"JOIN", 1301},
-{"JOKE", 1302},
-{"JOLT", 1303},
-{"JOT", 263},
-{"JOVE", 1304},
-{"JOY", 264},
-{"JUDD", 1305},
-{"JUDE", 1306},
-{"JUDO", 1307},
-{"JUDY", 1308},
-{"JUG", 265},
-{"JUJU", 1309},
-{"JUKE", 1310},
-{"JULY", 1311},
-{"JUNE", 1312},
-{"JUNK", 1313},
-{"JUNO", 1314},
-{"JURY", 1315},
-{"JUST", 1316},
-{"JUT", 266},
-{"JUTE", 1317},
-{"KAHN", 1318},
-{"KALE", 1319},
-{"KANE", 1320},
-{"KANT", 1321},
-{"KARL", 1322},
-{"KATE", 1323},
-{"KAY", 267},
-{"KEEL", 1324},
-{"KEEN", 1325},
-{"KEG", 268},
-{"KEN", 269},
-{"KENO", 1326},
-{"KENT", 1327},
-{"KERN", 1328},
-{"KERR", 1329},
-{"KEY", 270},
-{"KEYS", 1330},
-{"KICK", 1331},
-{"KID", 271},
-{"KILL", 1332},
-{"KIM", 272},
-{"KIN", 273},
-{"KIND", 1333},
-{"KING", 1334},
-{"KIRK", 1335},
-{"KISS", 1336},
-{"KIT", 274},
-{"KITE", 1337},
-{"KLAN", 1338},
-{"KNEE", 1339},
-{"KNEW", 1340},
-{"KNIT", 1341},
-{"KNOB", 1342},
-{"KNOT", 1343},
-{"KNOW", 1344},
-{"KOCH", 1345},
-{"KONG", 1346},
-{"KUDO", 1347},
-{"KURD", 1348},
-{"KURT", 1349},
-{"KYLE", 1350},
-{"LA", 275},
-{"LAB", 276},
-{"LAC", 277},
-{"LACE", 1351},
-{"LACK", 1352},
-{"LACY", 1353},
-{"LAD", 278},
-{"LADY", 1354},
-{"LAG", 279},
-{"LAID", 1355},
-{"LAIN", 1356},
-{"LAIR", 1357},
-{"LAKE", 1358},
-{"LAM", 280},
-{"LAMB", 1359},
-{"LAME", 1360},
-{"LAND", 1361},
-{"LANE", 1362},
-{"LANG", 1363},
-{"LAP", 281},
-{"LARD", 1364},
-{"LARK", 1365},
-{"LASS", 1366},
-{"LAST", 1367},
-{"LATE", 1368},
-{"LAUD", 1369},
-{"LAVA", 1370},
-{"LAW", 282},
-{"LAWN", 1371},
-{"LAWS", 1372},
-{"LAY", 283},
-{"LAYS", 1373},
-{"LEA", 284},
-{"LEAD", 1374},
-{"LEAF", 1375},
-{"LEAK", 1376},
-{"LEAN", 1377},
-{"LEAR", 1378},
-{"LED", 285},
-{"LEE", 286},
-{"LEEK", 1379},
-{"LEER", 1380},
-{"LEFT", 1381},
-{"LEG", 287},
-{"LEN", 288},
-{"LEND", 1382},
-{"LENS", 1383},
-{"LENT", 1384},
-{"LEO", 289},
-{"LEON", 1385},
-{"LESK", 1386},
-{"LESS", 1387},
-{"LEST", 1388},
-{"LET", 290},
-{"LETS", 1389},
-{"LEW", 291},
-{"LIAR", 1390},
-{"LICE", 1391},
-{"LICK", 1392},
-{"LID", 292},
-{"LIE", 293},
-{"LIED", 1393},
-{"LIEN", 1394},
-{"LIES", 1395},
-{"LIEU", 1396},
-{"LIFE", 1397},
-{"LIFT", 1398},
-{"LIKE", 1399},
-{"LILA", 1400},
-{"LILT", 1401},
-{"LILY", 1402},
-{"LIMA", 1403},
-{"LIMB", 1404},
-{"LIME", 1405},
-{"LIN", 294},
-{"LIND", 1406},
-{"LINE", 1407},
-{"LINK", 1408},
-{"LINT", 1409},
-{"LION", 1410},
-{"LIP", 295},
-{"LISA", 1411},
-{"LIST", 1412},
-{"LIT", 296},
-{"LIVE", 1413},
-{"LO", 297},
-{"LOAD", 1414},
-{"LOAF", 1415},
-{"LOAM", 1416},
-{"LOAN", 1417},
-{"LOB", 298},
-{"LOCK", 1418},
-{"LOFT", 1419},
-{"LOG", 299},
-{"LOGE", 1420},
-{"LOIS", 1421},
-{"LOLA", 1422},
-{"LONE", 1423},
-{"LONG", 1424},
-{"LOOK", 1425},
-{"LOON", 1426},
-{"LOOT", 1427},
-{"LOP", 300},
-{"LORD", 1428},
-{"LORE", 1429},
-{"LOS", 301},
-{"LOSE", 1430},
-{"LOSS", 1431},
-{"LOST", 1432},
-{"LOT", 302},
-{"LOU", 303},
-{"LOUD", 1433},
-{"LOVE", 1434},
-{"LOW", 304},
-{"LOWE", 1435},
-{"LOY", 305},
-{"LUCK", 1436},
-{"LUCY", 1437},
-{"LUG", 306},
-{"LUGE", 1438},
-{"LUKE", 1439},
-{"LULU", 1440},
-{"LUND", 1441},
-{"LUNG", 1442},
-{"LURA", 1443},
-{"LURE", 1444},
-{"LURK", 1445},
-{"LUSH", 1446},
-{"LUST", 1447},
-{"LYE", 307},
-{"LYLE", 1448},
-{"LYNN", 1449},
-{"LYON", 1450},
-{"LYRA", 1451},
-{"MA", 308},
-{"MAC", 309},
-{"MACE", 1452},
-{"MAD", 310},
-{"MADE", 1453},
-{"MAE", 311},
-{"MAGI", 1454},
-{"MAID", 1455},
-{"MAIL", 1456},
-{"MAIN", 1457},
-{"MAKE", 1458},
-{"MALE", 1459},
-{"MALI", 1460},
-{"MALL", 1461},
-{"MALT", 1462},
-{"MAN", 312},
-{"MANA", 1463},
-{"MANN", 1464},
-{"MANY", 1465},
-{"MAO", 313},
-{"MAP", 314},
-{"MARC", 1466},
-{"MARE", 1467},
-{"MARK", 1468},
-{"MARS", 1469},
-{"MART", 1470},
-{"MARY", 1471},
-{"MASH", 1472},
-{"MASK", 1473},
-{"MASS", 1474},
-{"MAST", 1475},
-{"MAT", 315},
-{"MATE", 1476},
-{"MATH", 1477},
-{"MAUL", 1478},
-{"MAW", 316},
-{"MAY", 317},
-{"MAYO", 1479},
-{"ME", 318},
-{"MEAD", 1480},
-{"MEAL", 1481},
-{"MEAN", 1482},
-{"MEAT", 1483},
-{"MEEK", 1484},
-{"MEET", 1485},
-{"MEG", 319},
-{"MEL", 320},
-{"MELD", 1486},
-{"MELT", 1487},
-{"MEMO", 1488},
-{"MEN", 321},
-{"MEND", 1489},
-{"MENU", 1490},
-{"MERT", 1491},
-{"MESH", 1492},
-{"MESS", 1493},
-{"MET", 322},
-{"MEW", 323},
-{"MICE", 1494},
-{"MID", 324},
-{"MIKE", 1495},
-{"MILD", 1496},
-{"MILE", 1497},
-{"MILK", 1498},
-{"MILL", 1499},
-{"MILT", 1500},
-{"MIMI", 1501},
-{"MIN", 325},
-{"MIND", 1502},
-{"MINE", 1503},
-{"MINI", 1504},
-{"MINK", 1505},
-{"MINT", 1506},
-{"MIRE", 1507},
-{"MISS", 1508},
-{"MIST", 1509},
-{"MIT", 326},
-{"MITE", 1510},
-{"MITT", 1511},
-{"MOAN", 1512},
-{"MOAT", 1513},
-{"MOB", 327},
-{"MOCK", 1514},
-{"MOD", 328},
-{"MODE", 1515},
-{"MOE", 329},
-{"MOLD", 1516},
-{"MOLE", 1517},
-{"MOLL", 1518},
-{"MOLT", 1519},
-{"MONA", 1520},
-{"MONK", 1521},
-{"MONT", 1522},
-{"MOO", 330},
-{"MOOD", 1523},
-{"MOON", 1524},
-{"MOOR", 1525},
-{"MOOT", 1526},
-{"MOP", 331},
-{"MORE", 1527},
-{"MORN", 1528},
-{"MORT", 1529},
-{"MOS", 332},
-{"MOSS", 1530},
-{"MOST", 1531},
-{"MOT", 333},
-{"MOTH", 1532},
-{"MOVE", 1533},
-{"MOW", 334},
-{"MUCH", 1534},
-{"MUCK", 1535},
-{"MUD", 335},
-{"MUDD", 1536},
-{"MUFF", 1537},
-{"MUG", 336},
-{"MULE", 1538},
-{"MULL", 1539},
-{"MUM", 337},
-{"MURK", 1540},
-{"MUSH", 1541},
-{"MUST", 1542},
-{"MUTE", 1543},
-{"MUTT", 1544},
-{"MY", 338},
-{"MYRA", 1545},
-{"MYTH", 1546},
-{"NAB", 339},
-{"NAG", 340},
-{"NAGY", 1547},
-{"NAIL", 1548},
-{"NAIR", 1549},
-{"NAME", 1550},
-{"NAN", 341},
-{"NAP", 342},
-{"NARY", 1551},
-{"NASH", 1552},
-{"NAT", 343},
-{"NAVE", 1553},
-{"NAVY", 1554},
-{"NAY", 344},
-{"NE", 345},
-{"NEAL", 1555},
-{"NEAR", 1556},
-{"NEAT", 1557},
-{"NECK", 1558},
-{"NED", 346},
-{"NEE", 347},
-{"NEED", 1559},
-{"NEIL", 1560},
-{"NELL", 1561},
-{"NEON", 1562},
-{"NERO", 1563},
-{"NESS", 1564},
-{"NEST", 1565},
-{"NET", 348},
-{"NEW", 349},
-{"NEWS", 1566},
-{"NEWT", 1567},
-{"NIB", 350},
-{"NIBS", 1568},
-{"NICE", 1569},
-{"NICK", 1570},
-{"NIIL", 351},
-{"NILE", 1571},
-{"NINA", 1572},
-{"NINE", 1573},
-{"NIP", 352},
-{"NIT", 353},
-{"NO", 354},
-{"NOAH", 1574},
-{"NOB", 355},
-{"NOD", 356},
-{"NODE", 1575},
-{"NOEL", 1576},
-{"NOLL", 1577},
-{"NON", 357},
-{"NONE", 1578},
-{"NOOK", 1579},
-{"NOON", 1580},
-{"NOR", 358},
-{"NORM", 1581},
-{"NOSE", 1582},
-{"NOT", 359},
-{"NOTE", 1583},
-{"NOUN", 1584},
-{"NOV", 360},
-{"NOVA", 1585},
-{"NOW", 361},
-{"NU", 362},
-{"NUDE", 1586},
-{"NULL", 1587},
-{"NUMB", 1588},
-{"NUN", 363},
-{"NUT", 364},
-{"O", 365},
-{"OAF", 366},
-{"OAK", 367},
-{"OAR", 368},
-{"OAT", 369},
-{"OATH", 1589},
-{"OBEY", 1590},
-{"OBOE", 1591},
-{"ODD", 370},
-{"ODE", 371},
-{"ODIN", 1592},
-{"OF", 372},
-{"OFF", 373},
-{"OFT", 374},
-{"OH", 375},
-{"OHIO", 1593},
-{"OIL", 376},
-{"OILY", 1594},
-{"OINT", 1595},
-{"OK", 377},
-{"OKAY", 1596},
-{"OLAF", 1597},
-{"OLD", 378},
-{"OLDY", 1598},
-{"OLGA", 1599},
-{"OLIN", 1600},
-{"OMAN", 1601},
-{"OMEN", 1602},
-{"OMIT", 1603},
-{"ON", 379},
-{"ONCE", 1604},
-{"ONE", 380},
-{"ONES", 1605},
-{"ONLY", 1606},
-{"ONTO", 1607},
-{"ONUS", 1608},
-{"OR", 381},
-{"ORAL", 1609},
-{"ORB", 382},
-{"ORE", 383},
-{"ORGY", 1610},
-{"ORR", 384},
-{"OS", 385},
-{"OSLO", 1611},
-{"OTIS", 1612},
-{"OTT", 386},
-{"OTTO", 1613},
-{"OUCH", 1614},
-{"OUR", 387},
-{"OUST", 1615},
-{"OUT", 388},
-{"OUTS", 1616},
-{"OVA", 389},
-{"OVAL", 1617},
-{"OVEN", 1618},
-{"OVER", 1619},
-{"OW", 390},
-{"OWE", 391},
-{"OWL", 392},
-{"OWLY", 1620},
-{"OWN", 393},
-{"OWNS", 1621},
-{"OX", 394},
-{"PA", 395},
-{"PAD", 396},
-{"PAL", 397},
-{"PAM", 398},
-{"PAN", 399},
-{"PAP", 400},
-{"PAR", 401},
-{"PAT", 402},
-{"PAW", 403},
-{"PAY", 404},
-{"PEA", 405},
-{"PEG", 406},
-{"PEN", 407},
-{"PEP", 408},
-{"PER", 409},
-{"PET", 410},
-{"PEW", 411},
-{"PHI", 412},
-{"PI", 413},
-{"PIE", 414},
-{"PIN", 415},
-{"PIT", 416},
-{"PLY", 417},
-{"PO", 418},
-{"POD", 419},
-{"POE", 420},
-{"POP", 421},
-{"POT", 422},
-{"POW", 423},
-{"PRO", 424},
-{"PRY", 425},
-{"PUB", 426},
-{"PUG", 427},
-{"PUN", 428},
-{"PUP", 429},
-{"PUT", 430},
-{"QUAD", 1622},
-{"QUIT", 1623},
-{"QUO", 431},
-{"QUOD", 1624},
-{"RACE", 1625},
-{"RACK", 1626},
-{"RACY", 1627},
-{"RAFT", 1628},
-{"RAG", 432},
-{"RAGE", 1629},
-{"RAID", 1630},
-{"RAIL", 1631},
-{"RAIN", 1632},
-{"RAKE", 1633},
-{"RAM", 433},
-{"RAN", 434},
-{"RANK", 1634},
-{"RANT", 1635},
-{"RAP", 435},
-{"RARE", 1636},
-{"RASH", 1637},
-{"RAT", 436},
-{"RATE", 1638},
-{"RAVE", 1639},
-{"RAW", 437},
-{"RAY", 438},
-{"RAYS", 1640},
-{"READ", 1641},
-{"REAL", 1642},
-{"REAM", 1643},
-{"REAR", 1644},
-{"REB", 439},
-{"RECK", 1645},
-{"RED", 440},
-{"REED", 1646},
-{"REEF", 1647},
-{"REEK", 1648},
-{"REEL", 1649},
-{"REID", 1650},
-{"REIN", 1651},
-{"RENA", 1652},
-{"REND", 1653},
-{"RENT", 1654},
-{"REP", 441},
-{"REST", 1655},
-{"RET", 442},
-{"RIB", 443},
-{"RICE", 1656},
-{"RICH", 1657},
-{"RICK", 1658},
-{"RID", 444},
-{"RIDE", 1659},
-{"RIFT", 1660},
-{"RIG", 445},
-{"RILL", 1661},
-{"RIM", 446},
-{"RIME", 1662},
-{"RING", 1663},
-{"RINK", 1664},
-{"RIO", 447},
-{"RIP", 448},
-{"RISE", 1665},
-{"RISK", 1666},
-{"RITE", 1667},
-{"ROAD", 1668},
-{"ROAM", 1669},
-{"ROAR", 1670},
-{"ROB", 449},
-{"ROBE", 1671},
-{"ROCK", 1672},
-{"ROD", 450},
-{"RODE", 1673},
-{"ROE", 451},
-{"ROIL", 1674},
-{"ROLL", 1675},
-{"ROME", 1676},
-{"RON", 452},
-{"ROOD", 1677},
-{"ROOF", 1678},
-{"ROOK", 1679},
-{"ROOM", 1680},
-{"ROOT", 1681},
-{"ROSA", 1682},
-{"ROSE", 1683},
-{"ROSS", 1684},
-{"ROSY", 1685},
-{"ROT", 453},
-{"ROTH", 1686},
-{"ROUT", 1687},
-{"ROVE", 1688},
-{"ROW", 454},
-{"ROWE", 1689},
-{"ROWS", 1690},
-{"ROY", 455},
-{"RUB", 456},
-{"RUBE", 1691},
-{"RUBY", 1692},
-{"RUDE", 1693},
-{"RUDY", 1694},
-{"RUE", 457},
-{"RUG", 458},
-{"RUIN", 1695},
-{"RULE", 1696},
-{"RUM", 459},
-{"RUN", 460},
-{"RUNG", 1697},
-{"RUNS", 1698},
-{"RUNT", 1699},
-{"RUSE", 1700},
-{"RUSH", 1701},
-{"RUSK", 1702},
-{"RUSS", 1703},
-{"RUST", 1704},
-{"RUTH", 1705},
-{"RYE", 461},
-{"SAC", 462},
-{"SACK", 1706},
-{"SAD", 463},
-{"SAFE", 1707},
-{"SAG", 464},
-{"SAGE", 1708},
-{"SAID", 1709},
-{"SAIL", 1710},
-{"SAL", 465},
-{"SALE", 1711},
-{"SALK", 1712},
-{"SALT", 1713},
-{"SAM", 466},
-{"SAME", 1714},
-{"SAN", 467},
-{"SAND", 1715},
-{"SANE", 1716},
-{"SANG", 1717},
-{"SANK", 1718},
-{"SAP", 468},
-{"SARA", 1719},
-{"SAT", 469},
-{"SAUL", 1720},
-{"SAVE", 1721},
-{"SAW", 470},
-{"SAY", 471},
-{"SAYS", 1722},
-{"SCAN", 1723},
-{"SCAR", 1724},
-{"SCAT", 1725},
-{"SCOT", 1726},
-{"SEA", 472},
-{"SEAL", 1727},
-{"SEAM", 1728},
-{"SEAR", 1729},
-{"SEAT", 1730},
-{"SEC", 473},
-{"SEE", 474},
-{"SEED", 1731},
-{"SEEK", 1732},
-{"SEEM", 1733},
-{"SEEN", 1734},
-{"SEES", 1735},
-{"SELF", 1736},
-{"SELL", 1737},
-{"SEN", 475},
-{"SEND", 1738},
-{"SENT", 1739},
-{"SET", 476},
-{"SETS", 1740},
-{"SEW", 477},
-{"SEWN", 1741},
-{"SHAG", 1742},
-{"SHAM", 1743},
-{"SHAW", 1744},
-{"SHAY", 1745},
-{"SHE", 478},
-{"SHED", 1746},
-{"SHIM", 1747},
-{"SHIN", 1748},
-{"SHOD", 1749},
-{"SHOE", 1750},
-{"SHOT", 1751},
-{"SHOW", 1752},
-{"SHUN", 1753},
-{"SHUT", 1754},
-{"SHY", 479},
-{"SICK", 1755},
-{"SIDE", 1756},
-{"SIFT", 1757},
-{"SIGH", 1758},
-{"SIGN", 1759},
-{"SILK", 1760},
-{"SILL", 1761},
-{"SILO", 1762},
-{"SILT", 1763},
-{"SIN", 480},
-{"SINE", 1764},
-{"SING", 1765},
-{"SINK", 1766},
-{"SIP", 481},
-{"SIR", 482},
-{"SIRE", 1767},
-{"SIS", 483},
-{"SIT", 484},
-{"SITE", 1768},
-{"SITS", 1769},
-{"SITU", 1770},
-{"SKAT", 1771},
-{"SKEW", 1772},
-{"SKI", 485},
-{"SKID", 1773},
-{"SKIM", 1774},
-{"SKIN", 1775},
-{"SKIT", 1776},
-{"SKY", 486},
-{"SLAB", 1777},
-{"SLAM", 1778},
-{"SLAT", 1779},
-{"SLAY", 1780},
-{"SLED", 1781},
-{"SLEW", 1782},
-{"SLID", 1783},
-{"SLIM", 1784},
-{"SLIT", 1785},
-{"SLOB", 1786},
-{"SLOG", 1787},
-{"SLOT", 1788},
-{"SLOW", 1789},
-{"SLUG", 1790},
-{"SLUM", 1791},
-{"SLUR", 1792},
-{"SLY", 487},
-{"SMOG", 1793},
-{"SMUG", 1794},
-{"SNAG", 1795},
-{"SNOB", 1796},
-{"SNOW", 1797},
-{"SNUB", 1798},
-{"SNUG", 1799},
-{"SO", 488},
-{"SOAK", 1800},
-{"SOAR", 1801},
-{"SOB", 489},
-{"SOCK", 1802},
-{"SOD", 490},
-{"SODA", 1803},
-{"SOFA", 1804},
-{"SOFT", 1805},
-{"SOIL", 1806},
-{"SOLD", 1807},
-{"SOME", 1808},
-{"SON", 491},
-{"SONG", 1809},
-{"SOON", 1810},
-{"SOOT", 1811},
-{"SOP", 492},
-{"SORE", 1812},
-{"SORT", 1813},
-{"SOUL", 1814},
-{"SOUR", 1815},
-{"SOW", 493},
-{"SOWN", 1816},
-{"SOY", 494},
-{"SPA", 495},
-{"SPY", 496},
-{"STAB", 1817},
-{"STAG", 1818},
-{"STAN", 1819},
-{"STAR", 1820},
-{"STAY", 1821},
-{"STEM", 1822},
-{"STEW", 1823},
-{"STIR", 1824},
-{"STOW", 1825},
-{"STUB", 1826},
-{"STUN", 1827},
-{"SUB", 497},
-{"SUCH", 1828},
-{"SUD", 498},
-{"SUDS", 1829},
-{"SUE", 499},
-{"SUIT", 1830},
-{"SULK", 1831},
-{"SUM", 500},
-{"SUMS", 1832},
-{"SUN", 501},
-{"SUNG", 1833},
-{"SUNK", 1834},
-{"SUP", 502},
-{"SURE", 1835},
-{"SURF", 1836},
-{"SWAB", 1837},
-{"SWAG", 1838},
-{"SWAM", 1839},
-{"SWAN", 1840},
-{"SWAT", 1841},
-{"SWAY", 1842},
-{"SWIM", 1843},
-{"SWUM", 1844},
-{"TAB", 503},
-{"TACK", 1845},
-{"TACT", 1846},
-{"TAD", 504},
-{"TAG", 505},
-{"TAIL", 1847},
-{"TAKE", 1848},
-{"TALE", 1849},
-{"TALK", 1850},
-{"TALL", 1851},
-{"TAN", 506},
-{"TANK", 1852},
-{"TAP", 507},
-{"TAR", 508},
-{"TASK", 1853},
-{"TATE", 1854},
-{"TAUT", 1855},
-{"TEA", 509},
-{"TEAL", 1856},
-{"TEAM", 1857},
-{"TEAR", 1858},
-{"TECH", 1859},
-{"TED", 510},
-{"TEE", 511},
-{"TEEM", 1860},
-{"TEEN", 1861},
-{"TEET", 1862},
-{"TELL", 1863},
-{"TEN", 512},
-{"TEND", 1864},
-{"TENT", 1865},
-{"TERM", 1866},
-{"TERN", 1867},
-{"TESS", 1868},
-{"TEST", 1869},
-{"THAN", 1870},
-{"THAT", 1871},
-{"THE", 513},
-{"THEE", 1872},
-{"THEM", 1873},
-{"THEN", 1874},
-{"THEY", 1875},
-{"THIN", 1876},
-{"THIS", 1877},
-{"THUD", 1878},
-{"THUG", 1879},
-{"THY", 514},
-{"TIC", 515},
-{"TICK", 1880},
-{"TIDE", 1881},
-{"TIDY", 1882},
-{"TIE", 516},
-{"TIED", 1883},
-{"TIER", 1884},
-{"TILE", 1885},
-{"TILL", 1886},
-{"TILT", 1887},
-{"TIM", 517},
-{"TIME", 1888},
-{"TIN", 518},
-{"TINA", 1889},
-{"TINE", 1890},
-{"TINT", 1891},
-{"TINY", 1892},
-{"TIP", 519},
-{"TIRE", 1893},
-{"TO", 520},
-{"TOAD", 1894},
-{"TOE", 521},
-{"TOG", 522},
-{"TOGO", 1895},
-{"TOIL", 1896},
-{"TOLD", 1897},
-{"TOLL", 1898},
-{"TOM", 523},
-{"TON", 524},
-{"TONE", 1899},
-{"TONG", 1900},
-{"TONY", 1901},
-{"TOO", 525},
-{"TOOK", 1902},
-{"TOOL", 1903},
-{"TOOT", 1904},
-{"TOP", 526},
-{"TORE", 1905},
-{"TORN", 1906},
-{"TOTE", 1907},
-{"TOUR", 1908},
-{"TOUT", 1909},
-{"TOW", 527},
-{"TOWN", 1910},
-{"TOY", 528},
-{"TRAG", 1911},
-{"TRAM", 1912},
-{"TRAY", 1913},
-{"TREE", 1914},
-{"TREK", 1915},
-{"TRIG", 1916},
-{"TRIM", 1917},
-{"TRIO", 1918},
-{"TROD", 1919},
-{"TROT", 1920},
-{"TROY", 1921},
-{"TRUE", 1922},
-{"TRY", 529},
-{"TUB", 530},
-{"TUBA", 1923},
-{"TUBE", 1924},
-{"TUCK", 1925},
-{"TUFT", 1926},
-{"TUG", 531},
-{"TUM", 532},
-{"TUN", 533},
-{"TUNA", 1927},
-{"TUNE", 1928},
-{"TUNG", 1929},
-{"TURF", 1930},
-{"TURN", 1931},
-{"TUSK", 1932},
-{"TWIG", 1933},
-{"TWIN", 1934},
-{"TWIT", 1935},
-{"TWO", 534},
-{"ULAN", 1936},
-{"UN", 535},
-{"UNIT", 1937},
-{"UP", 536},
-{"URGE", 1938},
-{"US", 537},
-{"USE", 538},
-{"USED", 1939},
-{"USER", 1940},
-{"USES", 1941},
-{"UTAH", 1942},
-{"VAIL", 1943},
-{"VAIN", 1944},
-{"VALE", 1945},
-{"VAN", 539},
-{"VARY", 1946},
-{"VASE", 1947},
-{"VAST", 1948},
-{"VAT", 540},
-{"VEAL", 1949},
-{"VEDA", 1950},
-{"VEIL", 1951},
-{"VEIN", 1952},
-{"VEND", 1953},
-{"VENT", 1954},
-{"VERB", 1955},
-{"VERY", 1956},
-{"VET", 541},
-{"VETO", 1957},
-{"VICE", 1958},
-{"VIE", 542},
-{"VIEW", 1959},
-{"VINE", 1960},
-{"VISE", 1961},
-{"VOID", 1962},
-{"VOLT", 1963},
-{"VOTE", 1964},
-{"WACK", 1965},
-{"WAD", 543},
-{"WADE", 1966},
-{"WAG", 544},
-{"WAGE", 1967},
-{"WAIL", 1968},
-{"WAIT", 1969},
-{"WAKE", 1970},
-{"WALE", 1971},
-{"WALK", 1972},
-{"WALL", 1973},
-{"WALT", 1974},
-{"WAND", 1975},
-{"WANE", 1976},
-{"WANG", 1977},
-{"WANT", 1978},
-{"WAR", 545},
-{"WARD", 1979},
-{"WARM", 1980},
-{"WARN", 1981},
-{"WART", 1982},
-{"WAS", 546},
-{"WASH", 1983},
-{"WAST", 1984},
-{"WATS", 1985},
-{"WATT", 1986},
-{"WAVE", 1987},
-{"WAVY", 1988},
-{"WAY", 547},
-{"WAYS", 1989},
-{"WE", 548},
-{"WEAK", 1990},
-{"WEAL", 1991},
-{"WEAN", 1992},
-{"WEAR", 1993},
-{"WEB", 549},
-{"WED", 550},
-{"WEE", 551},
-{"WEED", 1994},
-{"WEEK", 1995},
-{"WEIR", 1996},
-{"WELD", 1997},
-{"WELL", 1998},
-{"WELT", 1999},
-{"WENT", 2000},
-{"WERE", 2001},
-{"WERT", 2002},
-{"WEST", 2003},
-{"WET", 552},
-{"WHAM", 2004},
-{"WHAT", 2005},
-{"WHEE", 2006},
-{"WHEN", 2007},
-{"WHET", 2008},
-{"WHO", 553},
-{"WHOA", 2009},
-{"WHOM", 2010},
-{"WHY", 554},
-{"WICK", 2011},
-{"WIFE", 2012},
-{"WILD", 2013},
-{"WILL", 2014},
-{"WIN", 555},
-{"WIND", 2015},
-{"WINE", 2016},
-{"WING", 2017},
-{"WINK", 2018},
-{"WINO", 2019},
-{"WIRE", 2020},
-{"WISE", 2021},
-{"WISH", 2022},
-{"WIT", 556},
-{"WITH", 2023},
-{"WOK", 557},
-{"WOLF", 2024},
-{"WON", 558},
-{"WONT", 2025},
-{"WOO", 559},
-{"WOOD", 2026},
-{"WOOL", 2027},
-{"WORD", 2028},
-{"WORE", 2029},
-{"WORK", 2030},
-{"WORM", 2031},
-{"WORN", 2032},
-{"WOVE", 2033},
-{"WOW", 560},
-{"WRIT", 2034},
-{"WRY", 561},
-{"WU", 562},
-{"WYNN", 2035},
-{"YALE", 2036},
-{"YAM", 563},
-{"YANG", 2037},
-{"YANK", 2038},
-{"YAP", 564},
-{"YARD", 2039},
-{"YARN", 2040},
-{"YAW", 565},
-{"YAWL", 2041},
-{"YAWN", 2042},
-{"YE", 566},
-{"YEA", 567},
-{"YEAH", 2043},
-{"YEAR", 2044},
-{"YELL", 2045},
-{"YES", 568},
-{"YET", 569},
-{"YOGA", 2046},
-{"YOKE", 2047},
-{"YOU", 570}
-};
OpenPOWER on IntegriCloud